
/* std::locale::facet::_M_sso_shim(std::locale::id const*) const */

__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  int *piVar4;
  __locale_data *p_Var5;
  char *pcVar6;
  __locale_struct *p_Var7;
  
  piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);
  if (piVar4 == (int *)0x0) {
    if (param_1 == (id *)PTR_id_004c32f8) {
      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);
      *(undefined4 *)(p_Var5 + 4) = 0;
      *(undefined4 *)(p_Var5 + 8) = 0;
      *(undefined4 *)(p_Var5 + 0xc) = 0;
      puVar3 = PTR_vtable_004c13b0;
      puVar2 = PTR_operator_new_004c13a8;
      p_Var5[0x10] = (__locale_data)0x0;
      *(undefined4 *)(p_Var5 + 0x14) = 0;
      *(undefined4 *)(p_Var5 + 0x18) = 0;
      *(undefined **)p_Var5 = puVar3 + 8;
      *(undefined4 *)(p_Var5 + 0x1c) = 0;
      *(undefined4 *)(p_Var5 + 0x20) = 0;
      *(undefined2 *)(p_Var5 + 0x24) = 0;
      p_Var5[100] = (__locale_data)0x0;
      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);
      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[3] = (__locale_data *)this;
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      puVar2 = PTR_PTR_004c1268;
      p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */
      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);
      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);
      return p_Var7;
    }
    if (param_1 == (id *)PTR_id_004c3314) {
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      puVar2 = PTR__S_get_c_locale_004c13c0;
                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);
      p_Var5 = (__locale_data *)(*(code *)puVar2)();
      p_Var7->__locales[2] = p_Var5;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[3] = (__locale_data *)this;
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);
    }
    else if (param_1 == (id *)PTR_id_004c3338) {
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = (__locale_data *)this;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);
    }
    else if (param_1 == (id *)PTR_id_004c3330) {
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = (__locale_data *)this;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);
    }
    else {
      if (param_1 != (id *)PTR_id_004c3328) {
        if (param_1 == (id *)PTR_id_004c32c4) {
          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);
          *(undefined4 *)(p_Var5 + 4) = 0;
          *(undefined4 *)(p_Var5 + 8) = 0;
          *(undefined4 *)(p_Var5 + 0xc) = 0;
          puVar3 = PTR_vtable_004c13c4;
          puVar2 = PTR_operator_new_004c13a8;
          *(undefined2 *)(p_Var5 + 0x10) = 0;
          p_Var5[0x12] = (__locale_data)0x0;
          *(undefined4 *)(p_Var5 + 0x14) = 0;
          *(undefined **)p_Var5 = puVar3 + 8;
          *(undefined4 *)(p_Var5 + 0x18) = 0;
          *(undefined4 *)(p_Var5 + 0x1c) = 0;
          *(undefined4 *)(p_Var5 + 0x20) = 0;
          *(undefined4 *)(p_Var5 + 0x24) = 0;
          *(undefined4 *)(p_Var5 + 0x28) = 0;
          *(undefined4 *)(p_Var5 + 0x2c) = 0;
          *(undefined4 *)(p_Var5 + 0x30) = 0;
          *(undefined4 *)(p_Var5 + 0x34) = 0;
          p_Var5[0x43] = (__locale_data)0x0;
          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
          p_Var7->__locales[1] = (__locale_data *)0x0;
          p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */
          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);
          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
          p_Var7->__locales[3] = (__locale_data *)this;
          if (bVar1) {
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
          }
          else {
            SYNC(0);
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
            SYNC(0);
          }
          puVar2 = PTR_PTR_004c1268;
          p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */
          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);
          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);
        }
        else {
          if (param_1 != (id *)PTR_id_004c32cc) {
            if (param_1 == (id *)PTR_id_004c3340) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);
                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */
              (*(code *)PTR_messages_004c3308)(p_Var7,0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[4] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c3194) {
              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);
              *(undefined4 *)(p_Var5 + 4) = 0;
              *(undefined4 *)(p_Var5 + 8) = 0;
              *(undefined4 *)(p_Var5 + 0xc) = 0;
              puVar3 = PTR_vtable_004c13e8;
              puVar2 = PTR_operator_new_004c13a8;
              p_Var5[0x10] = (__locale_data)0x0;
              *(undefined4 *)(p_Var5 + 0x14) = 0;
              *(undefined4 *)(p_Var5 + 0x18) = 0;
              *(undefined **)p_Var5 = puVar3 + 8;
              *(undefined4 *)(p_Var5 + 0x1c) = 0;
              *(undefined4 *)(p_Var5 + 0x20) = 0;
              *(undefined4 *)(p_Var5 + 0x24) = 0;
              *(undefined4 *)(p_Var5 + 0x28) = 0;
              p_Var5[0x124] = (__locale_data)0x0;
              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);
              numpunct<wchar_t>::_M_initialize_numpunct
                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              puVar2 = PTR_PTR_004c1268;
              p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */
              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);
              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31b8) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              puVar2 = PTR__S_get_c_locale_004c13c0;
                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);
              p_Var5 = (__locale_data *)(*(code *)puVar2)();
              p_Var7->__locales[2] = p_Var5;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31dc) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = (__locale_data *)this;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31d4) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = (__locale_data *)this;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31cc) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = (__locale_data *)this;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c3158) {
              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);
              *(undefined4 *)(p_Var5 + 4) = 0;
              *(undefined4 *)(p_Var5 + 8) = 0;
              *(undefined4 *)(p_Var5 + 0xc) = 0;
              puVar3 = PTR_vtable_004c13f8;
              puVar2 = PTR_operator_new_004c13a8;
              p_Var5[0x10] = (__locale_data)0x0;
              *(undefined4 *)(p_Var5 + 0x14) = 0;
              *(undefined4 *)(p_Var5 + 0x18) = 0;
              *(undefined **)p_Var5 = puVar3 + 8;
              *(undefined4 *)(p_Var5 + 0x1c) = 0;
              *(undefined4 *)(p_Var5 + 0x20) = 0;
              *(undefined4 *)(p_Var5 + 0x24) = 0;
              *(undefined4 *)(p_Var5 + 0x28) = 0;
              *(undefined4 *)(p_Var5 + 0x2c) = 0;
              *(undefined4 *)(p_Var5 + 0x30) = 0;
              *(undefined4 *)(p_Var5 + 0x34) = 0;
              *(undefined4 *)(p_Var5 + 0x38) = 0;
              *(undefined4 *)(p_Var5 + 0x3c) = 0;
              p_Var5[0x6c] = (__locale_data)0x0;
              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);
              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              puVar2 = PTR_PTR_004c1268;
              p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */
              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);
              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c3168) {
              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);
              *(undefined4 *)(p_Var5 + 4) = 0;
              *(undefined4 *)(p_Var5 + 8) = 0;
              *(undefined4 *)(p_Var5 + 0xc) = 0;
              puVar3 = PTR_vtable_004c1408;
              puVar2 = PTR_operator_new_004c13a8;
              p_Var5[0x10] = (__locale_data)0x0;
              *(undefined4 *)(p_Var5 + 0x14) = 0;
              *(undefined4 *)(p_Var5 + 0x18) = 0;
              *(undefined **)p_Var5 = puVar3 + 8;
              *(undefined4 *)(p_Var5 + 0x1c) = 0;
              *(undefined4 *)(p_Var5 + 0x20) = 0;
              *(undefined4 *)(p_Var5 + 0x24) = 0;
              *(undefined4 *)(p_Var5 + 0x28) = 0;
              *(undefined4 *)(p_Var5 + 0x2c) = 0;
              *(undefined4 *)(p_Var5 + 0x30) = 0;
              *(undefined4 *)(p_Var5 + 0x34) = 0;
              *(undefined4 *)(p_Var5 + 0x38) = 0;
              *(undefined4 *)(p_Var5 + 0x3c) = 0;
              p_Var5[0x6c] = (__locale_data)0x0;
              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);
              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              puVar2 = PTR_PTR_004c1268;
              p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */
              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);
              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31e4) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);
                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */
              (*(code *)PTR_messages_004c31ac)(p_Var7,0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[4] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);
              return p_Var7;
            }
            pcVar6 = PTR_UINT_004c12dc + -0x2e54;
            __throw_logic_error(pcVar6);
                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */
            (*(code *)PTR__facet_004c12f8)(param_1);
            (*(code *)PTR_operator_delete_004c12fc)(param_1);
            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);
            return p_Var7;
          }
          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);
          *(undefined4 *)(p_Var5 + 4) = 0;
          *(undefined4 *)(p_Var5 + 8) = 0;
          *(undefined4 *)(p_Var5 + 0xc) = 0;
          puVar3 = PTR_vtable_004c13d4;
          puVar2 = PTR_operator_new_004c13a8;
          *(undefined2 *)(p_Var5 + 0x10) = 0;
          p_Var5[0x12] = (__locale_data)0x0;
          *(undefined4 *)(p_Var5 + 0x14) = 0;
          *(undefined **)p_Var5 = puVar3 + 8;
          *(undefined4 *)(p_Var5 + 0x18) = 0;
          *(undefined4 *)(p_Var5 + 0x1c) = 0;
          *(undefined4 *)(p_Var5 + 0x20) = 0;
          *(undefined4 *)(p_Var5 + 0x24) = 0;
          *(undefined4 *)(p_Var5 + 0x28) = 0;
          *(undefined4 *)(p_Var5 + 0x2c) = 0;
          *(undefined4 *)(p_Var5 + 0x30) = 0;
          *(undefined4 *)(p_Var5 + 0x34) = 0;
          p_Var5[0x43] = (__locale_data)0x0;
          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
          p_Var7->__locales[1] = (__locale_data *)0x0;
          p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */
          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);
          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
          p_Var7->__locales[3] = (__locale_data *)this;
          if (bVar1) {
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
          }
          else {
            SYNC(0);
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
            SYNC(0);
          }
          puVar2 = PTR_PTR_004c1268;
          p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */
          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);
          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);
        }
        return p_Var7;
      }
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = (__locale_data *)this;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);
    }
  }
  else {
    p_Var7 = (__locale_struct *)*piVar4;
  }
  return p_Var7;
}



/* std::locale::facet::_M_sso_shim(std::locale::id const*) const */

__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  int *piVar4;
  __locale_data *p_Var5;
  char *pcVar6;
  __locale_struct *p_Var7;
  
  piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);
  if (piVar4 == (int *)0x0) {
    if (param_1 == (id *)PTR_id_004c32f8) {
      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);
      *(undefined4 *)(p_Var5 + 4) = 0;
      *(undefined4 *)(p_Var5 + 8) = 0;
      *(undefined4 *)(p_Var5 + 0xc) = 0;
      puVar3 = PTR_vtable_004c13b0;
      puVar2 = PTR_operator_new_004c13a8;
      p_Var5[0x10] = (__locale_data)0x0;
      *(undefined4 *)(p_Var5 + 0x14) = 0;
      *(undefined4 *)(p_Var5 + 0x18) = 0;
      *(undefined **)p_Var5 = puVar3 + 8;
      *(undefined4 *)(p_Var5 + 0x1c) = 0;
      *(undefined4 *)(p_Var5 + 0x20) = 0;
      *(undefined2 *)(p_Var5 + 0x24) = 0;
      p_Var5[100] = (__locale_data)0x0;
      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);
      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[3] = (__locale_data *)this;
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      puVar2 = PTR_PTR_004c1268;
      p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */
      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);
      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);
      return p_Var7;
    }
    if (param_1 == (id *)PTR_id_004c3314) {
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      puVar2 = PTR__S_get_c_locale_004c13c0;
                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);
      p_Var5 = (__locale_data *)(*(code *)puVar2)();
      p_Var7->__locales[2] = p_Var5;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[3] = (__locale_data *)this;
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);
    }
    else if (param_1 == (id *)PTR_id_004c3338) {
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = (__locale_data *)this;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);
    }
    else if (param_1 == (id *)PTR_id_004c3330) {
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = (__locale_data *)this;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);
    }
    else {
      if (param_1 != (id *)PTR_id_004c3328) {
        if (param_1 == (id *)PTR_id_004c32c4) {
          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);
          *(undefined4 *)(p_Var5 + 4) = 0;
          *(undefined4 *)(p_Var5 + 8) = 0;
          *(undefined4 *)(p_Var5 + 0xc) = 0;
          puVar3 = PTR_vtable_004c13c4;
          puVar2 = PTR_operator_new_004c13a8;
          *(undefined2 *)(p_Var5 + 0x10) = 0;
          p_Var5[0x12] = (__locale_data)0x0;
          *(undefined4 *)(p_Var5 + 0x14) = 0;
          *(undefined **)p_Var5 = puVar3 + 8;
          *(undefined4 *)(p_Var5 + 0x18) = 0;
          *(undefined4 *)(p_Var5 + 0x1c) = 0;
          *(undefined4 *)(p_Var5 + 0x20) = 0;
          *(undefined4 *)(p_Var5 + 0x24) = 0;
          *(undefined4 *)(p_Var5 + 0x28) = 0;
          *(undefined4 *)(p_Var5 + 0x2c) = 0;
          *(undefined4 *)(p_Var5 + 0x30) = 0;
          *(undefined4 *)(p_Var5 + 0x34) = 0;
          p_Var5[0x43] = (__locale_data)0x0;
          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
          p_Var7->__locales[1] = (__locale_data *)0x0;
          p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */
          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);
          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
          p_Var7->__locales[3] = (__locale_data *)this;
          if (bVar1) {
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
          }
          else {
            SYNC(0);
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
            SYNC(0);
          }
          puVar2 = PTR_PTR_004c1268;
          p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */
          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);
          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);
        }
        else {
          if (param_1 != (id *)PTR_id_004c32cc) {
            if (param_1 == (id *)PTR_id_004c3340) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);
                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */
              (*(code *)PTR_messages_004c3308)(p_Var7,0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[4] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c3194) {
              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);
              *(undefined4 *)(p_Var5 + 4) = 0;
              *(undefined4 *)(p_Var5 + 8) = 0;
              *(undefined4 *)(p_Var5 + 0xc) = 0;
              puVar3 = PTR_vtable_004c13e8;
              puVar2 = PTR_operator_new_004c13a8;
              p_Var5[0x10] = (__locale_data)0x0;
              *(undefined4 *)(p_Var5 + 0x14) = 0;
              *(undefined4 *)(p_Var5 + 0x18) = 0;
              *(undefined **)p_Var5 = puVar3 + 8;
              *(undefined4 *)(p_Var5 + 0x1c) = 0;
              *(undefined4 *)(p_Var5 + 0x20) = 0;
              *(undefined4 *)(p_Var5 + 0x24) = 0;
              *(undefined4 *)(p_Var5 + 0x28) = 0;
              p_Var5[0x124] = (__locale_data)0x0;
              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);
              numpunct<wchar_t>::_M_initialize_numpunct
                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              puVar2 = PTR_PTR_004c1268;
              p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */
              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);
              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31b8) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              puVar2 = PTR__S_get_c_locale_004c13c0;
                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);
              p_Var5 = (__locale_data *)(*(code *)puVar2)();
              p_Var7->__locales[2] = p_Var5;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31dc) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = (__locale_data *)this;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31d4) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = (__locale_data *)this;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31cc) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = (__locale_data *)this;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c3158) {
              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);
              *(undefined4 *)(p_Var5 + 4) = 0;
              *(undefined4 *)(p_Var5 + 8) = 0;
              *(undefined4 *)(p_Var5 + 0xc) = 0;
              puVar3 = PTR_vtable_004c13f8;
              puVar2 = PTR_operator_new_004c13a8;
              p_Var5[0x10] = (__locale_data)0x0;
              *(undefined4 *)(p_Var5 + 0x14) = 0;
              *(undefined4 *)(p_Var5 + 0x18) = 0;
              *(undefined **)p_Var5 = puVar3 + 8;
              *(undefined4 *)(p_Var5 + 0x1c) = 0;
              *(undefined4 *)(p_Var5 + 0x20) = 0;
              *(undefined4 *)(p_Var5 + 0x24) = 0;
              *(undefined4 *)(p_Var5 + 0x28) = 0;
              *(undefined4 *)(p_Var5 + 0x2c) = 0;
              *(undefined4 *)(p_Var5 + 0x30) = 0;
              *(undefined4 *)(p_Var5 + 0x34) = 0;
              *(undefined4 *)(p_Var5 + 0x38) = 0;
              *(undefined4 *)(p_Var5 + 0x3c) = 0;
              p_Var5[0x6c] = (__locale_data)0x0;
              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);
              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              puVar2 = PTR_PTR_004c1268;
              p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */
              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);
              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c3168) {
              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);
              *(undefined4 *)(p_Var5 + 4) = 0;
              *(undefined4 *)(p_Var5 + 8) = 0;
              *(undefined4 *)(p_Var5 + 0xc) = 0;
              puVar3 = PTR_vtable_004c1408;
              puVar2 = PTR_operator_new_004c13a8;
              p_Var5[0x10] = (__locale_data)0x0;
              *(undefined4 *)(p_Var5 + 0x14) = 0;
              *(undefined4 *)(p_Var5 + 0x18) = 0;
              *(undefined **)p_Var5 = puVar3 + 8;
              *(undefined4 *)(p_Var5 + 0x1c) = 0;
              *(undefined4 *)(p_Var5 + 0x20) = 0;
              *(undefined4 *)(p_Var5 + 0x24) = 0;
              *(undefined4 *)(p_Var5 + 0x28) = 0;
              *(undefined4 *)(p_Var5 + 0x2c) = 0;
              *(undefined4 *)(p_Var5 + 0x30) = 0;
              *(undefined4 *)(p_Var5 + 0x34) = 0;
              *(undefined4 *)(p_Var5 + 0x38) = 0;
              *(undefined4 *)(p_Var5 + 0x3c) = 0;
              p_Var5[0x6c] = (__locale_data)0x0;
              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);
              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              puVar2 = PTR_PTR_004c1268;
              p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */
              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);
              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31e4) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);
                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */
              (*(code *)PTR_messages_004c31ac)(p_Var7,0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[4] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);
              return p_Var7;
            }
            pcVar6 = PTR_UINT_004c12dc + -0x2e54;
            __throw_logic_error(pcVar6);
                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */
            (*(code *)PTR__facet_004c12f8)(param_1);
            (*(code *)PTR_operator_delete_004c12fc)(param_1);
            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);
            return p_Var7;
          }
          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);
          *(undefined4 *)(p_Var5 + 4) = 0;
          *(undefined4 *)(p_Var5 + 8) = 0;
          *(undefined4 *)(p_Var5 + 0xc) = 0;
          puVar3 = PTR_vtable_004c13d4;
          puVar2 = PTR_operator_new_004c13a8;
          *(undefined2 *)(p_Var5 + 0x10) = 0;
          p_Var5[0x12] = (__locale_data)0x0;
          *(undefined4 *)(p_Var5 + 0x14) = 0;
          *(undefined **)p_Var5 = puVar3 + 8;
          *(undefined4 *)(p_Var5 + 0x18) = 0;
          *(undefined4 *)(p_Var5 + 0x1c) = 0;
          *(undefined4 *)(p_Var5 + 0x20) = 0;
          *(undefined4 *)(p_Var5 + 0x24) = 0;
          *(undefined4 *)(p_Var5 + 0x28) = 0;
          *(undefined4 *)(p_Var5 + 0x2c) = 0;
          *(undefined4 *)(p_Var5 + 0x30) = 0;
          *(undefined4 *)(p_Var5 + 0x34) = 0;
          p_Var5[0x43] = (__locale_data)0x0;
          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
          p_Var7->__locales[1] = (__locale_data *)0x0;
          p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */
          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);
          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
          p_Var7->__locales[3] = (__locale_data *)this;
          if (bVar1) {
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
          }
          else {
            SYNC(0);
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
            SYNC(0);
          }
          puVar2 = PTR_PTR_004c1268;
          p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */
          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);
          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);
        }
        return p_Var7;
      }
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = (__locale_data *)this;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);
    }
  }
  else {
    p_Var7 = (__locale_struct *)*piVar4;
  }
  return p_Var7;
}


lui gp,0x15
addiu gp,gp,-0x6b68
addu gp,gp,t9
addiu sp,sp,-0x28
lw t9,-0x7ee4(gp)
lw a2,-0x7ee0(gp)
li a3,-0x2
sw s0,0x18(sp)
or s0,a1,zero
sw gp,0x10(sp)
sw s1,0x1c(sp)
or s1,a0,zero
sw ra,0x24(sp)
lw a1,-0x7edc(gp)
bal 0x0038cef0
_sw s2,0x20(sp)
beq v0,zero,0x0037fe10
_lw gp,0x10(sp)
lw s0,0x0(v0)
lw ra,0x24(sp)
or v0,s0,zero
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
lw v0,-0x5f48(gp)
beq s0,v0,0x0037fef0
_lw v0,-0x5f2c(gp)
beq s0,v0,0x003800b8
_lw v0,-0x5f08(gp)
beq s0,v0,0x0037ffe0
_lw v0,-0x5f10(gp)
beq s0,v0,0x00380124
_lw v0,-0x5f18(gp)
beq s0,v0,0x00380180
_lw v0,-0x5f7c(gp)
beq s0,v0,0x003801ec
_lw v0,-0x5f74(gp)
beq s0,v0,0x003802f0
_lw v0,-0x5f00(gp)
beq s0,v0,0x003803f4
_lw v0,-0x60ac(gp)
beq s0,v0,0x00380464
_lw v0,-0x6088(gp)
beq s0,v0,0x0038004c
_lw v0,-0x6064(gp)
beq s0,v0,0x00380574
_lw v0,-0x606c(gp)
beq s0,v0,0x003805d0
_lw v0,-0x6074(gp)
beq s0,v0,0x0038063c
_lw v0,-0x60e8(gp)
beq s0,v0,0x003806a8
_lw v0,-0x60d8(gp)
beq s0,v0,0x003807c0
_lw v0,-0x605c(gp)
bne s0,v0,0x003808f8
_lw t9,-0x7e98(gp)
jalr t9
_li a0,0x14
or a1,zero,zero
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x6094(gp)
jalr t9
_or s0,v0,zero
lw gp,0x10(sp)
lw v0,-0x37a0(gp)
beq v0,zero,0x00380554
_sw s1,0x10(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x0037fec8
_nop
sync 0x0
lw v0,-0x7fcc(gp)
addiu v0,v0,0x7604
b 0x0037fdf4
_sw v0,0x0(s0)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x68
li a0,0x14
lw gp,0x10(sp)
or s2,v0,zero
sw zero,0x4(v0)
sw zero,0x8(v0)
sw zero,0xc(v0)
lw v0,-0x7e90(gp)
lw t9,-0x7e98(gp)
sb zero,0x10(s2)
addiu v0,v0,0x8
sw zero,0x14(s2)
sw zero,0x18(s2)
sw v0,0x0(s2)
sw zero,0x1c(s2)
sw zero,0x20(s2)
sh zero,0x24(s2)
jalr t9
_sb zero,0x64(s2)
or a1,zero,zero
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
or a0,v0,zero
sw s2,0x8(v0)
lw v0,-0x5f60(gp)
lw t9,-0x5f64(gp)
addiu v0,v0,0x8
bal 0x0038ef90
_sw v0,0x0(s0)
lw gp,0x10(sp)
lw v0,-0x37a0(gp)
beq v0,zero,0x0038003c
_sw s1,0xc(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x0037ff84
_nop
sync 0x0
lw v0,-0x7fd8(gp)
or a0,zero,zero
lw t9,-0x3c54(gp)
or a2,s2,zero
sll a0,a0,0x18
sw s2,0x10(s0)
addiu v0,v0,-0xa98
or a1,s1,zero
bal 0x00384610
_sw v0,0x0(s0)
lw ra,0x24(sp)
or v0,s0,zero
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
lw t9,-0x7e98(gp)
jalr t9
_li a0,0xc
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
sw s1,0x8(v0)
lw v0,-0x5ff0(gp)
lw v1,-0x37a0(gp)
addiu v0,v0,0x8
beq v1,zero,0x003802e0
_sw v0,0x0(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x00380014
_nop
sync 0x0
lw v0,-0x7fd8(gp)
addiu v0,v0,-0x948
b 0x0037fdf4
_sw v0,0x0(s0)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x0037ff9c
_sw v0,0x4(s1)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x10
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
lw v0,-0x6164(gp)
lw t9,-0x7e80(gp)
addiu v0,v0,0x8
jalr t9
_sw v0,0x0(s0)
lw gp,0x10(sp)
sw v0,0x8(s0)
lw v1,-0x37a0(gp)
beq v1,zero,0x003807a0
_sw s1,0xc(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x00380090
_nop
sync 0x0
lw v0,-0x7fd8(gp)
addiu v0,v0,-0x9cc
b 0x0037fdf4
_sw v0,0x0(s0)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x10
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
lw v0,-0x5fec(gp)
lw t9,-0x7e80(gp)
addiu v0,v0,0x8
jalr t9
_sw v0,0x0(s0)
lw gp,0x10(sp)
sw v0,0x8(s0)
lw v1,-0x37a0(gp)
beq v1,zero,0x003801dc
_sw s1,0xc(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x003800fc
_nop
sync 0x0
lw v0,-0x7fd8(gp)
addiu v0,v0,-0xa74
b 0x0037fdf4
_sw v0,0x0(s0)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0xc
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
sw s1,0x8(v0)
lw v0,-0x5ff8(gp)
lw v1,-0x37a0(gp)
addiu v0,v0,0x8
beq v1,zero,0x003803e4
_sw v0,0x0(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x00380158
_nop
sync 0x0
lw v0,-0x7fcc(gp)
addiu v0,v0,0x7588
b 0x0037fdf4
_sw v0,0x0(s0)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0xc
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
sw s1,0x8(v0)
lw v0,-0x5ff4(gp)
lw v1,-0x37a0(gp)
addiu v0,v0,0x8
beq v1,zero,0x00380454
_sw v0,0x0(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x003801b4
_nop
sync 0x0
lw v0,-0x7fcc(gp)
addiu v0,v0,0x75a0
b 0x0037fdf4
_sw v0,0x0(s0)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x00380114
_sw v0,0x4(s1)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x44
li a0,0x14
lw gp,0x10(sp)
or s2,v0,zero
sw zero,0x4(v0)
sw zero,0x8(v0)
sw zero,0xc(v0)
lw v0,-0x7e7c(gp)
lw t9,-0x7e98(gp)
sh zero,0x10(s2)
addiu v0,v0,0x8
sb zero,0x12(s2)
sw zero,0x14(s2)
sw v0,0x0(s2)
sw zero,0x18(s2)
sw zero,0x1c(s2)
sw zero,0x20(s2)
sw zero,0x24(s2)
sw zero,0x28(s2)
sw zero,0x2c(s2)
sw zero,0x30(s2)
sw zero,0x34(s2)
jalr t9
_sb zero,0x43(s2)
or a2,zero,zero
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
or a0,v0,zero
sw s2,0x8(v0)
or a1,zero,zero
lw v0,-0x5fa8(gp)
lw t9,-0x5fa4(gp)
addiu v0,v0,0x8
bal 0x0038f740
_sw v0,0x0(s0)
lw gp,0x10(sp)
lw v0,-0x37a0(gp)
beq v0,zero,0x00380544
_sw s1,0xc(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x00380298
_nop
sync 0x0
lw v0,-0x7fd8(gp)
or a0,zero,zero
lw t9,-0x3c50(gp)
or a2,s2,zero
sll a0,a0,0x18
sw s2,0x10(s0)
addiu v0,v0,-0xa58
or a1,s1,zero
bal 0x00384fbc
_sw v0,0x0(s0)
b 0x0037ffc8
_lw ra,0x24(sp)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x0038002c
_sw v0,0x4(s1)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x44
li a0,0x14
lw gp,0x10(sp)
or s2,v0,zero
sw zero,0x4(v0)
sw zero,0x8(v0)
sw zero,0xc(v0)
lw v0,-0x7e6c(gp)
lw t9,-0x7e98(gp)
sh zero,0x10(s2)
addiu v0,v0,0x8
sb zero,0x12(s2)
sw zero,0x14(s2)
sw v0,0x0(s2)
sw zero,0x18(s2)
sw zero,0x1c(s2)
sw zero,0x20(s2)
sw zero,0x24(s2)
sw zero,0x28(s2)
sw zero,0x2c(s2)
sw zero,0x30(s2)
sw zero,0x34(s2)
jalr t9
_sb zero,0x43(s2)
or a2,zero,zero
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
or a0,v0,zero
sw s2,0x8(v0)
or a1,zero,zero
lw v0,-0x5fd4(gp)
lw t9,-0x5fd0(gp)
addiu v0,v0,0x8
bal 0x0038fe18
_sw v0,0x0(s0)
lw gp,0x10(sp)
lw v0,-0x37a0(gp)
beq v0,zero,0x00380564
_sw s1,0xc(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x0038039c
_nop
sync 0x0
lw v0,-0x7fd8(gp)
or a0,zero,zero
lw t9,-0x3c4c(gp)
or a2,s2,zero
sll a0,a0,0x18
sw s2,0x10(s0)
addiu v0,v0,-0xa24
or a1,s1,zero
bal 0x00385408
_sw v0,0x0(s0)
b 0x0037ffc8
_lw ra,0x24(sp)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x00380170
_sw v0,0x4(s1)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x14
or a1,zero,zero
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x5f38(gp)
jalr t9
_or s0,v0,zero
lw gp,0x10(sp)
lw v0,-0x37a0(gp)
beq v0,zero,0x0038062c
_sw s1,0x10(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x0038042c
_nop
sync 0x0
lw v0,-0x7fcc(gp)
addiu v0,v0,0x75b8
b 0x0037fdf4
_sw v0,0x0(s0)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x003801cc
_sw v0,0x4(s1)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x128
li a0,0x14
lw gp,0x10(sp)
or s2,v0,zero
sw zero,0x4(v0)
sw zero,0x8(v0)
sw zero,0xc(v0)
lw v0,-0x7e58(gp)
lw t9,-0x7e98(gp)
sb zero,0x10(s2)
addiu v0,v0,0x8
sw zero,0x14(s2)
sw zero,0x18(s2)
sw v0,0x0(s2)
sw zero,0x1c(s2)
sw zero,0x20(s2)
sw zero,0x24(s2)
sw zero,0x28(s2)
jalr t9
_sb zero,0x124(s2)
or a1,zero,zero
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
or a0,v0,zero
sw s2,0x8(v0)
lw v0,-0x60c4(gp)
lw t9,-0x60c8(gp)
addiu v0,v0,0x8
bal 0x0038f394
_sw v0,0x0(s0)
lw gp,0x10(sp)
lw v0,-0x37a0(gp)
beq v0,zero,0x00380698
_sw s1,0xc(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x003804fc
_nop
sync 0x0
lw v0,-0x7fd8(gp)
or a0,zero,zero
lw t9,-0x3c48(gp)
or a2,s2,zero
sll a0,a0,0x18
sw s2,0x10(s0)
addiu v0,v0,-0x9f0
or a1,s1,zero
bal 0x00384948
_sw v0,0x0(s0)
b 0x0037ffc8
_lw ra,0x24(sp)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x003802b0
_sw v0,0x4(s1)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x0037fee0
_sw v0,0x4(s1)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x003803b4
_sw v0,0x4(s1)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0xc
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
sw s1,0x8(v0)
lw v0,-0x6168(gp)
lw v1,-0x37a0(gp)
addiu v0,v0,0x8
beq v1,zero,0x003807b0
_sw v0,0x0(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x003805a8
_nop
sync 0x0
lw v0,-0x7fd8(gp)
addiu v0,v0,-0x91c
b 0x0037fdf4
_sw v0,0x0(s0)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0xc
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
sw s1,0x8(v0)
lw v0,-0x6170(gp)
lw v1,-0x37a0(gp)
addiu v0,v0,0x8
beq v1,zero,0x003808b8
_sw v0,0x0(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x00380604
_nop
sync 0x0
lw v0,-0x7fcc(gp)
addiu v0,v0,0x75d4
b 0x0037fdf4
_sw v0,0x0(s0)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x00380444
_sw v0,0x4(s1)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0xc
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
sw s1,0x8(v0)
lw v0,-0x616c(gp)
lw v1,-0x37a0(gp)
addiu v0,v0,0x8
beq v1,zero,0x003808c8
_sw v0,0x0(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x00380670
_nop
sync 0x0
lw v0,-0x7fcc(gp)
addiu v0,v0,0x75ec
b 0x0037fdf4
_sw v0,0x0(s0)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x00380514
_sw v0,0x4(s1)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x70
li a0,0x14
lw gp,0x10(sp)
or s2,v0,zero
sw zero,0x4(v0)
sw zero,0x8(v0)
sw zero,0xc(v0)
lw v0,-0x7e48(gp)
lw t9,-0x7e98(gp)
sb zero,0x10(s2)
addiu v0,v0,0x8
sw zero,0x14(s2)
sw zero,0x18(s2)
sw v0,0x0(s2)
sw zero,0x1c(s2)
sw zero,0x20(s2)
sw zero,0x24(s2)
sw zero,0x28(s2)
sw zero,0x2c(s2)
sw zero,0x30(s2)
sw zero,0x34(s2)
sw zero,0x38(s2)
sw zero,0x3c(s2)
jalr t9
_sb zero,0x6c(s2)
or a2,zero,zero
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
or a0,v0,zero
sw s2,0x8(v0)
or a1,zero,zero
lw v0,-0x6114(gp)
lw t9,-0x6110(gp)
addiu v0,v0,0x8
bal 0x00390860
_sw v0,0x0(s0)
lw gp,0x10(sp)
lw v0,-0x37a0(gp)
beq v0,zero,0x003808d8
_sw s1,0xc(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x00380758
_nop
sync 0x0
lw v0,-0x7fd8(gp)
or a0,zero,zero
lw t9,-0x3c44(gp)
or a2,s2,zero
sll a0,a0,0x18
sw s2,0x10(s0)
addiu v0,v0,-0x9b0
or a1,s1,zero
bal 0x00385854
_sw v0,0x0(s0)
b 0x0037ffc8
_lw ra,0x24(sp)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x003800a8
_sw v0,0x4(s1)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x003805c0
_sw v0,0x4(s1)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x70
li a0,0x14
lw gp,0x10(sp)
or s2,v0,zero
sw zero,0x4(v0)
sw zero,0x8(v0)
sw zero,0xc(v0)
lw v0,-0x7e38(gp)
lw t9,-0x7e98(gp)
sb zero,0x10(s2)
addiu v0,v0,0x8
sw zero,0x14(s2)
sw zero,0x18(s2)
sw v0,0x0(s2)
sw zero,0x1c(s2)
sw zero,0x20(s2)
sw zero,0x24(s2)
sw zero,0x28(s2)
sw zero,0x2c(s2)
sw zero,0x30(s2)
sw zero,0x34(s2)
sw zero,0x38(s2)
sw zero,0x3c(s2)
jalr t9
_sb zero,0x6c(s2)
or a2,zero,zero
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x4(v0)
or a0,v0,zero
sw s2,0x8(v0)
or a1,zero,zero
lw v0,-0x6140(gp)
lw t9,-0x613c(gp)
addiu v0,v0,0x8
bal 0x00390fb8
_sw v0,0x0(s0)
lw gp,0x10(sp)
lw v0,-0x37a0(gp)
beq v0,zero,0x003808e8
_sw s1,0xc(s0)
sync 0x0
ll at,0x4(s1)
addiu at,at,0x1
sc at,0x4(s1)
beq at,zero,0x00380870
_nop
sync 0x0
lw v0,-0x7fd8(gp)
or a0,zero,zero
lw t9,-0x3c40(gp)
or a2,s2,zero
sll a0,a0,0x18
sw s2,0x10(s0)
addiu v0,v0,-0x97c
or a1,s1,zero
bal 0x00385d34
_sw v0,0x0(s0)
b 0x0037ffc8
_lw ra,0x24(sp)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x0038061c
_sw v0,0x4(s1)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x00380688
_sw v0,0x4(s1)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x00380770
_sw v0,0x4(s1)
lw v0,0x4(s1)
addiu v0,v0,0x1
b 0x00380888
_sw v0,0x4(s1)
lw a0,-0x7f64(gp)
lw t9,-0x7f68(gp)
bal 0x003895c0
_addiu a0,a0,-0x2e54
lw gp,0x10(sp)
or s1,a0,zero
lw t9,-0x7f48(gp)
jalr t9
_or a0,s0,zero
or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw t9,-0x7f78(gp)
jalr t9
_or a0,s1,zero
(translation_unit "/* std::locale::facet::_M_sso_shim(std::locale::id const*) const */\n\n__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int *piVar4;\n  __locale_data *p_Var5;\n  char *pcVar6;\n  __locale_struct *p_Var7;\n  \n  piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);\n  if (piVar4 == (int *)0x0) {\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }\n  else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }\n  return p_Var7;\n}\n\n" comment (ERROR "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1)" (binary_expression "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1" (binary_expression "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this" (binary_expression "__locale_struct * __thiscall" identifier * identifier) (ERROR "std::locale::facet::_M_sso_shim(facet" identifier : : identifier : : identifier : : identifier ( identifier) * identifier) (ERROR ",id" , identifier) * identifier) )) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int *piVar4;\n  __locale_data *p_Var5;\n  char *pcVar6;\n  __locale_struct *p_Var7;\n  \n  piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);\n  if (piVar4 == (int *)0x0) {\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }\n  else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }\n  return p_Var7;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "__locale_data *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "__locale_struct *p_Var7;" type_identifier (pointer_declarator "*p_Var7" * identifier) ;) (expression_statement "piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);" (assignment_expression "piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" identifier = (cast_expression "(int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" identifier (argument_list "(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" ( identifier , identifier , identifier , number_literal ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }\n  else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }" { (if_statement "if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c32f8)" ( (binary_expression "param_1 == (id *)PTR_id_004c32f8" identifier == (cast_expression "(id *)PTR_id_004c32f8" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x68)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x68)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13b0;" (assignment_expression "puVar3 = PTR_vtable_004c13b0" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x24)" * (cast_expression "(undefined2 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[100] = (__locale_data)0x0;" (assignment_expression "p_Var5[100] = (__locale_data)0x0" (subscript_expression "p_Var5[100]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c32e0 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c32e0 + 8)" ( (binary_expression "PTR_vtable_004c32e0 + 8" identifier + number_literal) )))) ;) (expression_statement "numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);" (binary_expression "numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" (binary_expression "numpunct<char" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" identifier (argument_list "((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" ( (parenthesized_expression "(numpunct<char> *)p_Var7,(__locale_struct *)0x0)" ( (comma_expression "numpunct<char> *)p_Var7,(__locale_struct *)0x0" (binary_expression "numpunct<char> *)p_Var7" (binary_expression "numpunct<char" identifier < identifier) > (pointer_expression "*)p_Var7" * (ERROR ")" )) identifier)) , (cast_expression "(__locale_struct *)0x0" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) )))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0xa98)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0xa98)" ( (binary_expression "puVar2 + -0xa98" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__numpunct_fill_cache<char>(0,this,p_Var5);" (binary_expression "__numpunct_fill_cache<char>(0,this,p_Var5)" (binary_expression "__numpunct_fill_cache<char" identifier < identifier) > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) ))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3314)" ( (binary_expression "param_1 == (id *)PTR_id_004c3314" identifier == (cast_expression "(id *)PTR_id_004c3314" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar2 = PTR__S_get_c_locale_004c13c0;" (assignment_expression "puVar2 = PTR__S_get_c_locale_004c13c0" identifier = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3254 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3254 + 8)" ( (binary_expression "PTR_vtable_004c3254 + 8" identifier + number_literal) )))) ;) (expression_statement "p_Var5 = (__locale_data *)(*(code *)puVar2)();" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)puVar2)()" identifier = (cast_expression "(__locale_data *)(*(code *)puVar2)()" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)()" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0xa74)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0xa74)" ( (binary_expression "PTR_PTR_004c1268 + -0xa74" identifier + number_literal) )))) ;) }) (else_clause "else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" else (if_statement "if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3338)" ( (binary_expression "param_1 == (id *)PTR_id_004c3338" identifier == (cast_expression "(id *)PTR_id_004c3338" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3250 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3250 + 8)" ( (binary_expression "PTR_vtable_004c3250 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x948)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0x948)" ( (binary_expression "PTR_PTR_004c1268 + -0x948" identifier + number_literal) )))) ;) }) (else_clause "else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" else (if_statement "if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3330)" ( (binary_expression "param_1 == (id *)PTR_id_004c3330" identifier == (cast_expression "(id *)PTR_id_004c3330" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3248 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3248 + 8)" ( (binary_expression "PTR_vtable_004c3248 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x7588)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x7588" identifier + number_literal) )))) ;) }) (else_clause "else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" else (compound_statement "{\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" { (if_statement "if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }" if (parenthesized_expression "(param_1 != (id *)PTR_id_004c3328)" ( (binary_expression "param_1 != (id *)PTR_id_004c3328" identifier != (cast_expression "(id *)PTR_id_004c3328" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }" { (if_statement "if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c32c4)" ( (binary_expression "param_1 == (id *)PTR_id_004c32c4" identifier == (cast_expression "(id *)PTR_id_004c32c4" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x44)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x44)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13c4;" (assignment_expression "puVar3 = PTR_vtable_004c13c4" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "*(undefined2 *)(p_Var5 + 0x10) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x10) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x10)" * (cast_expression "(undefined2 *)(p_Var5 + 0x10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x10)" ( (binary_expression "p_Var5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x12] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x12] = (__locale_data)0x0" (subscript_expression "p_Var5[0x12]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x43] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x43] = (__locale_data)0x0" (subscript_expression "p_Var5[0x43]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3298 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3298 + 8)" ( (binary_expression "PTR_vtable_004c3298 + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<char" identifier < identifier) , (binary_expression "true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" true > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" else (compound_statement "{\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0xa58)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0xa58)" ( (binary_expression "puVar2 + -0xa58" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<char,true>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<char,true>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<char" identifier < identifier) , (binary_expression "true>(0,this,p_Var5)" true > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) }) (else_clause "else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" else (compound_statement "{\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" { (if_statement "if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }" if (parenthesized_expression "(param_1 != (id *)PTR_id_004c32cc)" ( (binary_expression "param_1 != (id *)PTR_id_004c32cc" identifier != (cast_expression "(id *)PTR_id_004c32cc" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }" { (if_statement "if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3340)" ( (binary_expression "param_1 == (id *)PTR_id_004c3340" identifier == (cast_expression "(id *)PTR_id_004c3340" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) comment (expression_statement "(*(code *)PTR_messages_004c3308)(p_Var7,0);" (call_expression "(*(code *)PTR_messages_004c3308)(p_Var7,0)" (parenthesized_expression "(*(code *)PTR_messages_004c3308)" ( (pointer_expression "*(code *)PTR_messages_004c3308" * (cast_expression "(code *)PTR_messages_004c3308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p_Var7,0)" ( identifier , number_literal ))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[4] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[4] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75b8" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3194)" ( (binary_expression "param_1 == (id *)PTR_id_004c3194" identifier == (cast_expression "(id *)PTR_id_004c3194" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x128)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x128)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13e8;" (assignment_expression "puVar3 = PTR_vtable_004c13e8" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x124] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x124] = (__locale_data)0x0" (subscript_expression "p_Var5[0x124]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c317c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c317c + 8)" ( (binary_expression "PTR_vtable_004c317c + 8" identifier + number_literal) )))) ;) (expression_statement "numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);" (binary_expression "numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" (binary_expression "numpunct<wchar_t" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" identifier (argument_list "((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" ( (parenthesized_expression "(numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" ( (comma_expression "numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0" (binary_expression "numpunct<wchar_t> *)p_Var7" (binary_expression "numpunct<wchar_t" identifier < identifier) > (pointer_expression "*)p_Var7" * (ERROR ")" )) identifier)) , (cast_expression "(__locale_struct *)0x0" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) )))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0x9f0)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x9f0)" ( (binary_expression "puVar2 + -0x9f0" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__numpunct_fill_cache<wchar_t>(0,this,p_Var5);" (binary_expression "__numpunct_fill_cache<wchar_t>(0,this,p_Var5)" (binary_expression "__numpunct_fill_cache<wchar_t" identifier < identifier) > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) ))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31b8)" ( (binary_expression "param_1 == (id *)PTR_id_004c31b8" identifier == (cast_expression "(id *)PTR_id_004c31b8" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar2 = PTR__S_get_c_locale_004c13c0;" (assignment_expression "puVar2 = PTR__S_get_c_locale_004c13c0" identifier = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30dc + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30dc + 8)" ( (binary_expression "PTR_vtable_004c30dc + 8" identifier + number_literal) )))) ;) (expression_statement "p_Var5 = (__locale_data *)(*(code *)puVar2)();" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)puVar2)()" identifier = (cast_expression "(__locale_data *)(*(code *)puVar2)()" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)()" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x9cc)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0x9cc)" ( (binary_expression "PTR_PTR_004c1268 + -0x9cc" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31dc)" ( (binary_expression "param_1 == (id *)PTR_id_004c31dc" identifier == (cast_expression "(id *)PTR_id_004c31dc" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30d8 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30d8 + 8)" ( (binary_expression "PTR_vtable_004c30d8 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x91c)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0x91c)" ( (binary_expression "PTR_PTR_004c1268 + -0x91c" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31d4)" ( (binary_expression "param_1 == (id *)PTR_id_004c31d4" identifier == (cast_expression "(id *)PTR_id_004c31d4" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30d0 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30d0 + 8)" ( (binary_expression "PTR_vtable_004c30d0 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75d4" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31cc)" ( (binary_expression "param_1 == (id *)PTR_id_004c31cc" identifier == (cast_expression "(id *)PTR_id_004c31cc" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30d4 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30d4 + 8)" ( (binary_expression "PTR_vtable_004c30d4 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75ec" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3158)" ( (binary_expression "param_1 == (id *)PTR_id_004c3158" identifier == (cast_expression "(id *)PTR_id_004c3158" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x70)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x70)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13f8;" (assignment_expression "puVar3 = PTR_vtable_004c13f8" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x38) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x38)" * (cast_expression "(undefined4 *)(p_Var5 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x38)" ( (binary_expression "p_Var5 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x3c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x3c)" ( (binary_expression "p_Var5 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x6c] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x6c] = (__locale_data)0x0" (subscript_expression "p_Var5[0x6c]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c312c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c312c + 8)" ( (binary_expression "PTR_vtable_004c312c + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<wchar_t" identifier < identifier) , (binary_expression "true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" true > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0x9b0)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x9b0)" ( (binary_expression "puVar2 + -0x9b0" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<wchar_t" identifier < identifier) , (binary_expression "true>(0,this,p_Var5)" true > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3168)" ( (binary_expression "param_1 == (id *)PTR_id_004c3168" identifier == (cast_expression "(id *)PTR_id_004c3168" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x70)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x70)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c1408;" (assignment_expression "puVar3 = PTR_vtable_004c1408" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x38) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x38)" * (cast_expression "(undefined4 *)(p_Var5 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x38)" ( (binary_expression "p_Var5 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x3c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x3c)" ( (binary_expression "p_Var5 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x6c] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x6c] = (__locale_data)0x0" (subscript_expression "p_Var5[0x6c]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3100 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3100 + 8)" ( (binary_expression "PTR_vtable_004c3100 + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<wchar_t" identifier < identifier) , (binary_expression "false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" false > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0x97c)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x97c)" ( (binary_expression "puVar2 + -0x97c" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<wchar_t" identifier < identifier) , (binary_expression "false>(0,this,p_Var5)" false > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31e4)" ( (binary_expression "param_1 == (id *)PTR_id_004c31e4" identifier == (cast_expression "(id *)PTR_id_004c31e4" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) comment (expression_statement "(*(code *)PTR_messages_004c31ac)(p_Var7,0);" (call_expression "(*(code *)PTR_messages_004c31ac)(p_Var7,0)" (parenthesized_expression "(*(code *)PTR_messages_004c31ac)" ( (pointer_expression "*(code *)PTR_messages_004c31ac" * (cast_expression "(code *)PTR_messages_004c31ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p_Var7,0)" ( identifier , number_literal ))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[4] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[4] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x7604)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x7604" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (expression_statement "pcVar6 = PTR_UINT_004c12dc + -0x2e54;" (assignment_expression "pcVar6 = PTR_UINT_004c12dc + -0x2e54" identifier = (binary_expression "PTR_UINT_004c12dc + -0x2e54" identifier + number_literal)) ;) (expression_statement "__throw_logic_error(pcVar6);" (call_expression "__throw_logic_error(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) comment (expression_statement "(*(code *)PTR__facet_004c12f8)(param_1);" (call_expression "(*(code *)PTR__facet_004c12f8)(param_1)" (parenthesized_expression "(*(code *)PTR__facet_004c12f8)" ( (pointer_expression "*(code *)PTR__facet_004c12f8" * (cast_expression "(code *)PTR__facet_004c12f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(param_1);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(param_1)" (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 "(param_1)" ( identifier ))) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_004c12c8)(pcVar6)" (parenthesized_expression "(*(code *)PTR_FUN_004c12c8)" ( (pointer_expression "*(code *)PTR_FUN_004c12c8" * (cast_expression "(code *)PTR_FUN_004c12c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6)" ( identifier ))))) ;) (return_statement "return p_Var7;" return identifier ;) })) (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x44)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x44)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13d4;" (assignment_expression "puVar3 = PTR_vtable_004c13d4" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "*(undefined2 *)(p_Var5 + 0x10) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x10) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x10)" * (cast_expression "(undefined2 *)(p_Var5 + 0x10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x10)" ( (binary_expression "p_Var5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x12] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x12] = (__locale_data)0x0" (subscript_expression "p_Var5[0x12]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x43] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x43] = (__locale_data)0x0" (subscript_expression "p_Var5[0x43]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c326c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c326c + 8)" ( (binary_expression "PTR_vtable_004c326c + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<char" identifier < identifier) , (binary_expression "false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" false > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" else (compound_statement "{\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0xa24)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0xa24)" ( (binary_expression "puVar2 + -0xa24" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<char,false>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<char,false>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<char" identifier < identifier) , (binary_expression "false>(0,this,p_Var5)" false > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) }))) (return_statement "return p_Var7;" return identifier ;) })) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c324c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c324c + 8)" ( (binary_expression "PTR_vtable_004c324c + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75a0" identifier + number_literal) )))) ;) }))))))) }) (else_clause "else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" else (compound_statement "{\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" { (expression_statement "p_Var7 = (__locale_struct *)*piVar4;" (assignment_expression "p_Var7 = (__locale_struct *)*piVar4" identifier = (cast_expression "(__locale_struct *)*piVar4" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) }))) (return_statement "return p_Var7;" return identifier ;) }))
(translation_unit "/* std::locale::facet::_M_sso_shim(std::locale::id const*) const */\n\n__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int *piVar4;\n  __locale_data *p_Var5;\n  char *pcVar6;\n  __locale_struct *p_Var7;\n  \n  piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);\n  if (piVar4 == (int *)0x0) {\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }\n  else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }\n  return p_Var7;\n}\n\n" comment (ERROR "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1)" (binary_expression "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1" (binary_expression "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this" (binary_expression "__locale_struct * __thiscall" identifier * identifier) (ERROR "std::locale::facet::_M_sso_shim(facet" identifier : : identifier : : identifier : : identifier ( identifier) * identifier) (ERROR ",id" , identifier) * identifier) )) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int *piVar4;\n  __locale_data *p_Var5;\n  char *pcVar6;\n  __locale_struct *p_Var7;\n  \n  piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);\n  if (piVar4 == (int *)0x0) {\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }\n  else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }\n  return p_Var7;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "__locale_data *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "__locale_struct *p_Var7;" type_identifier (pointer_declarator "*p_Var7" * identifier) ;) (expression_statement "piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);" (assignment_expression "piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" identifier = (cast_expression "(int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" identifier (argument_list "(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" ( identifier , identifier , identifier , number_literal ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }\n  else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }" { (if_statement "if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c32f8)" ( (binary_expression "param_1 == (id *)PTR_id_004c32f8" identifier == (cast_expression "(id *)PTR_id_004c32f8" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */\n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x68)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x68)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13b0;" (assignment_expression "puVar3 = PTR_vtable_004c13b0" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x24)" * (cast_expression "(undefined2 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[100] = (__locale_data)0x0;" (assignment_expression "p_Var5[100] = (__locale_data)0x0" (subscript_expression "p_Var5[100]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c32e0 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c32e0 + 8)" ( (binary_expression "PTR_vtable_004c32e0 + 8" identifier + number_literal) )))) ;) (expression_statement "numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);" (binary_expression "numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" (binary_expression "numpunct<char" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" identifier (argument_list "((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" ( (parenthesized_expression "(numpunct<char> *)p_Var7,(__locale_struct *)0x0)" ( (comma_expression "numpunct<char> *)p_Var7,(__locale_struct *)0x0" (binary_expression "numpunct<char> *)p_Var7" (binary_expression "numpunct<char" identifier < identifier) > (pointer_expression "*)p_Var7" * (ERROR ")" )) identifier)) , (cast_expression "(__locale_struct *)0x0" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) )))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0xa98)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0xa98)" ( (binary_expression "puVar2 + -0xa98" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__numpunct_fill_cache<char>(0,this,p_Var5);" (binary_expression "__numpunct_fill_cache<char>(0,this,p_Var5)" (binary_expression "__numpunct_fill_cache<char" identifier < identifier) > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) ))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3314)" ( (binary_expression "param_1 == (id *)PTR_id_004c3314" identifier == (cast_expression "(id *)PTR_id_004c3314" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar2 = PTR__S_get_c_locale_004c13c0;" (assignment_expression "puVar2 = PTR__S_get_c_locale_004c13c0" identifier = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3254 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3254 + 8)" ( (binary_expression "PTR_vtable_004c3254 + 8" identifier + number_literal) )))) ;) (expression_statement "p_Var5 = (__locale_data *)(*(code *)puVar2)();" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)puVar2)()" identifier = (cast_expression "(__locale_data *)(*(code *)puVar2)()" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)()" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0xa74)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0xa74)" ( (binary_expression "PTR_PTR_004c1268 + -0xa74" identifier + number_literal) )))) ;) }) (else_clause "else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" else (if_statement "if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3338)" ( (binary_expression "param_1 == (id *)PTR_id_004c3338" identifier == (cast_expression "(id *)PTR_id_004c3338" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3250 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3250 + 8)" ( (binary_expression "PTR_vtable_004c3250 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x948)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0x948)" ( (binary_expression "PTR_PTR_004c1268 + -0x948" identifier + number_literal) )))) ;) }) (else_clause "else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" else (if_statement "if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3330)" ( (binary_expression "param_1 == (id *)PTR_id_004c3330" identifier == (cast_expression "(id *)PTR_id_004c3330" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3248 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3248 + 8)" ( (binary_expression "PTR_vtable_004c3248 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x7588)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x7588" identifier + number_literal) )))) ;) }) (else_clause "else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" else (compound_statement "{\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" { (if_statement "if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }" if (parenthesized_expression "(param_1 != (id *)PTR_id_004c3328)" ( (binary_expression "param_1 != (id *)PTR_id_004c3328" identifier != (cast_expression "(id *)PTR_id_004c3328" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }" { (if_statement "if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c32c4)" ( (binary_expression "param_1 == (id *)PTR_id_004c32c4" identifier == (cast_expression "(id *)PTR_id_004c32c4" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x44)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x44)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13c4;" (assignment_expression "puVar3 = PTR_vtable_004c13c4" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "*(undefined2 *)(p_Var5 + 0x10) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x10) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x10)" * (cast_expression "(undefined2 *)(p_Var5 + 0x10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x10)" ( (binary_expression "p_Var5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x12] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x12] = (__locale_data)0x0" (subscript_expression "p_Var5[0x12]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x43] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x43] = (__locale_data)0x0" (subscript_expression "p_Var5[0x43]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3298 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3298 + 8)" ( (binary_expression "PTR_vtable_004c3298 + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<char" identifier < identifier) , (binary_expression "true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" true > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" else (compound_statement "{\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0xa58)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0xa58)" ( (binary_expression "puVar2 + -0xa58" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<char,true>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<char,true>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<char" identifier < identifier) , (binary_expression "true>(0,this,p_Var5)" true > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) }) (else_clause "else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" else (compound_statement "{\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */\n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */\n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" { (if_statement "if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }" if (parenthesized_expression "(param_1 != (id *)PTR_id_004c32cc)" ( (binary_expression "param_1 != (id *)PTR_id_004c32cc" identifier != (cast_expression "(id *)PTR_id_004c32cc" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */\n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);\n            return p_Var7;\n          }" { (if_statement "if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3340)" ( (binary_expression "param_1 == (id *)PTR_id_004c3340" identifier == (cast_expression "(id *)PTR_id_004c3340" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */\n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) comment (expression_statement "(*(code *)PTR_messages_004c3308)(p_Var7,0);" (call_expression "(*(code *)PTR_messages_004c3308)(p_Var7,0)" (parenthesized_expression "(*(code *)PTR_messages_004c3308)" ( (pointer_expression "*(code *)PTR_messages_004c3308" * (cast_expression "(code *)PTR_messages_004c3308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p_Var7,0)" ( identifier , number_literal ))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[4] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[4] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75b8" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3194)" ( (binary_expression "param_1 == (id *)PTR_id_004c3194" identifier == (cast_expression "(id *)PTR_id_004c3194" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x128)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x128)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13e8;" (assignment_expression "puVar3 = PTR_vtable_004c13e8" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x124] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x124] = (__locale_data)0x0" (subscript_expression "p_Var5[0x124]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c317c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c317c + 8)" ( (binary_expression "PTR_vtable_004c317c + 8" identifier + number_literal) )))) ;) (expression_statement "numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);" (binary_expression "numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" (binary_expression "numpunct<wchar_t" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" identifier (argument_list "((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" ( (parenthesized_expression "(numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" ( (comma_expression "numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0" (binary_expression "numpunct<wchar_t> *)p_Var7" (binary_expression "numpunct<wchar_t" identifier < identifier) > (pointer_expression "*)p_Var7" * (ERROR ")" )) identifier)) , (cast_expression "(__locale_struct *)0x0" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) )))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0x9f0)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x9f0)" ( (binary_expression "puVar2 + -0x9f0" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__numpunct_fill_cache<wchar_t>(0,this,p_Var5);" (binary_expression "__numpunct_fill_cache<wchar_t>(0,this,p_Var5)" (binary_expression "__numpunct_fill_cache<wchar_t" identifier < identifier) > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) ))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31b8)" ( (binary_expression "param_1 == (id *)PTR_id_004c31b8" identifier == (cast_expression "(id *)PTR_id_004c31b8" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar2 = PTR__S_get_c_locale_004c13c0;" (assignment_expression "puVar2 = PTR__S_get_c_locale_004c13c0" identifier = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30dc + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30dc + 8)" ( (binary_expression "PTR_vtable_004c30dc + 8" identifier + number_literal) )))) ;) (expression_statement "p_Var5 = (__locale_data *)(*(code *)puVar2)();" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)puVar2)()" identifier = (cast_expression "(__locale_data *)(*(code *)puVar2)()" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)()" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x9cc)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0x9cc)" ( (binary_expression "PTR_PTR_004c1268 + -0x9cc" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31dc)" ( (binary_expression "param_1 == (id *)PTR_id_004c31dc" identifier == (cast_expression "(id *)PTR_id_004c31dc" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30d8 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30d8 + 8)" ( (binary_expression "PTR_vtable_004c30d8 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x91c)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0x91c)" ( (binary_expression "PTR_PTR_004c1268 + -0x91c" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31d4)" ( (binary_expression "param_1 == (id *)PTR_id_004c31d4" identifier == (cast_expression "(id *)PTR_id_004c31d4" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30d0 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30d0 + 8)" ( (binary_expression "PTR_vtable_004c30d0 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75d4" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31cc)" ( (binary_expression "param_1 == (id *)PTR_id_004c31cc" identifier == (cast_expression "(id *)PTR_id_004c31cc" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30d4 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30d4 + 8)" ( (binary_expression "PTR_vtable_004c30d4 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75ec" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3158)" ( (binary_expression "param_1 == (id *)PTR_id_004c3158" identifier == (cast_expression "(id *)PTR_id_004c3158" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x70)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x70)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13f8;" (assignment_expression "puVar3 = PTR_vtable_004c13f8" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x38) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x38)" * (cast_expression "(undefined4 *)(p_Var5 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x38)" ( (binary_expression "p_Var5 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x3c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x3c)" ( (binary_expression "p_Var5 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x6c] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x6c] = (__locale_data)0x0" (subscript_expression "p_Var5[0x6c]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c312c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c312c + 8)" ( (binary_expression "PTR_vtable_004c312c + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<wchar_t" identifier < identifier) , (binary_expression "true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" true > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0x9b0)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x9b0)" ( (binary_expression "puVar2 + -0x9b0" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<wchar_t" identifier < identifier) , (binary_expression "true>(0,this,p_Var5)" true > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3168)" ( (binary_expression "param_1 == (id *)PTR_id_004c3168" identifier == (cast_expression "(id *)PTR_id_004c3168" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */\n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x70)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x70)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c1408;" (assignment_expression "puVar3 = PTR_vtable_004c1408" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x38) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x38)" * (cast_expression "(undefined4 *)(p_Var5 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x38)" ( (binary_expression "p_Var5 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x3c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x3c)" ( (binary_expression "p_Var5 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x6c] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x6c] = (__locale_data)0x0" (subscript_expression "p_Var5[0x6c]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3100 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3100 + 8)" ( (binary_expression "PTR_vtable_004c3100 + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<wchar_t" identifier < identifier) , (binary_expression "false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" false > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0x97c)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x97c)" ( (binary_expression "puVar2 + -0x97c" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<wchar_t" identifier < identifier) , (binary_expression "false>(0,this,p_Var5)" false > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31e4)" ( (binary_expression "param_1 == (id *)PTR_id_004c31e4" identifier == (cast_expression "(id *)PTR_id_004c31e4" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */\n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) comment (expression_statement "(*(code *)PTR_messages_004c31ac)(p_Var7,0);" (call_expression "(*(code *)PTR_messages_004c31ac)(p_Var7,0)" (parenthesized_expression "(*(code *)PTR_messages_004c31ac)" ( (pointer_expression "*(code *)PTR_messages_004c31ac" * (cast_expression "(code *)PTR_messages_004c31ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p_Var7,0)" ( identifier , number_literal ))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[4] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[4] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x7604)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x7604" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (expression_statement "pcVar6 = PTR_UINT_004c12dc + -0x2e54;" (assignment_expression "pcVar6 = PTR_UINT_004c12dc + -0x2e54" identifier = (binary_expression "PTR_UINT_004c12dc + -0x2e54" identifier + number_literal)) ;) (expression_statement "__throw_logic_error(pcVar6);" (call_expression "__throw_logic_error(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) comment (expression_statement "(*(code *)PTR__facet_004c12f8)(param_1);" (call_expression "(*(code *)PTR__facet_004c12f8)(param_1)" (parenthesized_expression "(*(code *)PTR__facet_004c12f8)" ( (pointer_expression "*(code *)PTR__facet_004c12f8" * (cast_expression "(code *)PTR__facet_004c12f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(param_1);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(param_1)" (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 "(param_1)" ( identifier ))) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__Unwind_Resume_004c12c8)(pcVar6)" (parenthesized_expression "(*(code *)PTR__Unwind_Resume_004c12c8)" ( (pointer_expression "*(code *)PTR__Unwind_Resume_004c12c8" * (cast_expression "(code *)PTR__Unwind_Resume_004c12c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6)" ( identifier ))))) ;) (return_statement "return p_Var7;" return identifier ;) })) (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x44)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x44)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13d4;" (assignment_expression "puVar3 = PTR_vtable_004c13d4" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "*(undefined2 *)(p_Var5 + 0x10) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x10) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x10)" * (cast_expression "(undefined2 *)(p_Var5 + 0x10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x10)" ( (binary_expression "p_Var5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x12] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x12] = (__locale_data)0x0" (subscript_expression "p_Var5[0x12]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x43] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x43] = (__locale_data)0x0" (subscript_expression "p_Var5[0x43]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c326c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c326c + 8)" ( (binary_expression "PTR_vtable_004c326c + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<char" identifier < identifier) , (binary_expression "false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" false > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" else (compound_statement "{\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) comment (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0xa24)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0xa24)" ( (binary_expression "puVar2 + -0xa24" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<char,false>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<char,false>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<char" identifier < identifier) , (binary_expression "false>(0,this,p_Var5)" false > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) }))) (return_statement "return p_Var7;" return identifier ;) })) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c324c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c324c + 8)" ( (binary_expression "PTR_vtable_004c324c + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75a0" identifier + number_literal) )))) ;) }))))))) }) (else_clause "else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" else (compound_statement "{\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" { (expression_statement "p_Var7 = (__locale_struct *)*piVar4;" (assignment_expression "p_Var7 = (__locale_struct *)*piVar4" identifier = (cast_expression "(__locale_struct *)*piVar4" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) }))) (return_statement "return p_Var7;" return identifier ;) }))
(translation_unit "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int *piVar4;\n  __locale_data *p_Var5;\n  char *pcVar6;\n  __locale_struct *p_Var7;\n  \n  piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);\n  if (piVar4 == (int *)0x0) {\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }\n  else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }\n  return p_Var7;\n}\n\n" (ERROR "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1)" (binary_expression "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1" (binary_expression "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this" (binary_expression "__locale_struct * __thiscall" identifier * identifier) (ERROR "std::locale::facet::_M_sso_shim(facet" identifier : : identifier : : identifier : : identifier ( identifier) * identifier) (ERROR ",id" , identifier) * identifier) )) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int *piVar4;\n  __locale_data *p_Var5;\n  char *pcVar6;\n  __locale_struct *p_Var7;\n  \n  piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);\n  if (piVar4 == (int *)0x0) {\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }\n  else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }\n  return p_Var7;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "__locale_data *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "__locale_struct *p_Var7;" type_identifier (pointer_declarator "*p_Var7" * identifier) ;) (expression_statement "piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);" (assignment_expression "piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" identifier = (cast_expression "(int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" identifier (argument_list "(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" ( identifier , identifier , identifier , number_literal ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }\n  else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }" { (if_statement "if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c32f8)" ( (binary_expression "param_1 == (id *)PTR_id_004c32f8" identifier == (cast_expression "(id *)PTR_id_004c32f8" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x68)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x68)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13b0;" (assignment_expression "puVar3 = PTR_vtable_004c13b0" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x24)" * (cast_expression "(undefined2 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[100] = (__locale_data)0x0;" (assignment_expression "p_Var5[100] = (__locale_data)0x0" (subscript_expression "p_Var5[100]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c32e0 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c32e0 + 8)" ( (binary_expression "PTR_vtable_004c32e0 + 8" identifier + number_literal) )))) ;) (expression_statement "numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);" (binary_expression "numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" (binary_expression "numpunct<char" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" identifier (argument_list "((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" ( (parenthesized_expression "(numpunct<char> *)p_Var7,(__locale_struct *)0x0)" ( (comma_expression "numpunct<char> *)p_Var7,(__locale_struct *)0x0" (binary_expression "numpunct<char> *)p_Var7" (binary_expression "numpunct<char" identifier < identifier) > (pointer_expression "*)p_Var7" * (ERROR ")" )) identifier)) , (cast_expression "(__locale_struct *)0x0" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) )))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0xa98)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0xa98)" ( (binary_expression "puVar2 + -0xa98" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__numpunct_fill_cache<char>(0,this,p_Var5);" (binary_expression "__numpunct_fill_cache<char>(0,this,p_Var5)" (binary_expression "__numpunct_fill_cache<char" identifier < identifier) > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) ))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3314)" ( (binary_expression "param_1 == (id *)PTR_id_004c3314" identifier == (cast_expression "(id *)PTR_id_004c3314" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar2 = PTR__S_get_c_locale_004c13c0;" (assignment_expression "puVar2 = PTR__S_get_c_locale_004c13c0" identifier = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3254 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3254 + 8)" ( (binary_expression "PTR_vtable_004c3254 + 8" identifier + number_literal) )))) ;) (expression_statement "p_Var5 = (__locale_data *)(*(code *)puVar2)();" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)puVar2)()" identifier = (cast_expression "(__locale_data *)(*(code *)puVar2)()" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)()" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0xa74)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0xa74)" ( (binary_expression "PTR_PTR_004c1268 + -0xa74" identifier + number_literal) )))) ;) }) (else_clause "else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" else (if_statement "if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3338)" ( (binary_expression "param_1 == (id *)PTR_id_004c3338" identifier == (cast_expression "(id *)PTR_id_004c3338" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3250 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3250 + 8)" ( (binary_expression "PTR_vtable_004c3250 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x948)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0x948)" ( (binary_expression "PTR_PTR_004c1268 + -0x948" identifier + number_literal) )))) ;) }) (else_clause "else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" else (if_statement "if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3330)" ( (binary_expression "param_1 == (id *)PTR_id_004c3330" identifier == (cast_expression "(id *)PTR_id_004c3330" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3248 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3248 + 8)" ( (binary_expression "PTR_vtable_004c3248 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x7588)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x7588" identifier + number_literal) )))) ;) }) (else_clause "else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" else (compound_statement "{\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" { (if_statement "if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }" if (parenthesized_expression "(param_1 != (id *)PTR_id_004c3328)" ( (binary_expression "param_1 != (id *)PTR_id_004c3328" identifier != (cast_expression "(id *)PTR_id_004c3328" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }" { (if_statement "if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c32c4)" ( (binary_expression "param_1 == (id *)PTR_id_004c32c4" identifier == (cast_expression "(id *)PTR_id_004c32c4" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x44)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x44)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13c4;" (assignment_expression "puVar3 = PTR_vtable_004c13c4" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "*(undefined2 *)(p_Var5 + 0x10) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x10) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x10)" * (cast_expression "(undefined2 *)(p_Var5 + 0x10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x10)" ( (binary_expression "p_Var5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x12] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x12] = (__locale_data)0x0" (subscript_expression "p_Var5[0x12]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x43] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x43] = (__locale_data)0x0" (subscript_expression "p_Var5[0x43]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3298 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3298 + 8)" ( (binary_expression "PTR_vtable_004c3298 + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<char" identifier < identifier) , (binary_expression "true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" true > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" else (compound_statement "{\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0xa58)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0xa58)" ( (binary_expression "puVar2 + -0xa58" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<char,true>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<char,true>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<char" identifier < identifier) , (binary_expression "true>(0,this,p_Var5)" true > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) }) (else_clause "else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" else (compound_statement "{\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" { (if_statement "if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }" if (parenthesized_expression "(param_1 != (id *)PTR_id_004c32cc)" ( (binary_expression "param_1 != (id *)PTR_id_004c32cc" identifier != (cast_expression "(id *)PTR_id_004c32cc" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }" { (if_statement "if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3340)" ( (binary_expression "param_1 == (id *)PTR_id_004c3340" identifier == (cast_expression "(id *)PTR_id_004c3340" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "(*(code *)PTR_messages_004c3308)(p_Var7,0);" (call_expression "(*(code *)PTR_messages_004c3308)(p_Var7,0)" (parenthesized_expression "(*(code *)PTR_messages_004c3308)" ( (pointer_expression "*(code *)PTR_messages_004c3308" * (cast_expression "(code *)PTR_messages_004c3308" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p_Var7,0)" ( identifier , number_literal ))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[4] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[4] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75b8" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3194)" ( (binary_expression "param_1 == (id *)PTR_id_004c3194" identifier == (cast_expression "(id *)PTR_id_004c3194" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x128)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x128)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13e8;" (assignment_expression "puVar3 = PTR_vtable_004c13e8" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x124] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x124] = (__locale_data)0x0" (subscript_expression "p_Var5[0x124]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c317c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c317c + 8)" ( (binary_expression "PTR_vtable_004c317c + 8" identifier + number_literal) )))) ;) (expression_statement "numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);" (binary_expression "numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" (binary_expression "numpunct<wchar_t" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" identifier (argument_list "((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" ( (parenthesized_expression "(numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" ( (comma_expression "numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0" (binary_expression "numpunct<wchar_t> *)p_Var7" (binary_expression "numpunct<wchar_t" identifier < identifier) > (pointer_expression "*)p_Var7" * (ERROR ")" )) identifier)) , (cast_expression "(__locale_struct *)0x0" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) )))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0x9f0)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x9f0)" ( (binary_expression "puVar2 + -0x9f0" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__numpunct_fill_cache<wchar_t>(0,this,p_Var5);" (binary_expression "__numpunct_fill_cache<wchar_t>(0,this,p_Var5)" (binary_expression "__numpunct_fill_cache<wchar_t" identifier < identifier) > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) ))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31b8)" ( (binary_expression "param_1 == (id *)PTR_id_004c31b8" identifier == (cast_expression "(id *)PTR_id_004c31b8" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar2 = PTR__S_get_c_locale_004c13c0;" (assignment_expression "puVar2 = PTR__S_get_c_locale_004c13c0" identifier = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30dc + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30dc + 8)" ( (binary_expression "PTR_vtable_004c30dc + 8" identifier + number_literal) )))) ;) (expression_statement "p_Var5 = (__locale_data *)(*(code *)puVar2)();" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)puVar2)()" identifier = (cast_expression "(__locale_data *)(*(code *)puVar2)()" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)()" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x9cc)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0x9cc)" ( (binary_expression "PTR_PTR_004c1268 + -0x9cc" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31dc)" ( (binary_expression "param_1 == (id *)PTR_id_004c31dc" identifier == (cast_expression "(id *)PTR_id_004c31dc" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30d8 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30d8 + 8)" ( (binary_expression "PTR_vtable_004c30d8 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x91c)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_PTR_004c1268 + -0x91c)" ( (binary_expression "PTR_PTR_004c1268 + -0x91c" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31d4)" ( (binary_expression "param_1 == (id *)PTR_id_004c31d4" identifier == (cast_expression "(id *)PTR_id_004c31d4" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30d0 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30d0 + 8)" ( (binary_expression "PTR_vtable_004c30d0 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75d4" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31cc)" ( (binary_expression "param_1 == (id *)PTR_id_004c31cc" identifier == (cast_expression "(id *)PTR_id_004c31cc" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c30d4 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c30d4 + 8)" ( (binary_expression "PTR_vtable_004c30d4 + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75ec" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3158)" ( (binary_expression "param_1 == (id *)PTR_id_004c3158" identifier == (cast_expression "(id *)PTR_id_004c3158" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x70)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x70)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13f8;" (assignment_expression "puVar3 = PTR_vtable_004c13f8" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x38) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x38)" * (cast_expression "(undefined4 *)(p_Var5 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x38)" ( (binary_expression "p_Var5 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x3c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x3c)" ( (binary_expression "p_Var5 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x6c] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x6c] = (__locale_data)0x0" (subscript_expression "p_Var5[0x6c]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c312c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c312c + 8)" ( (binary_expression "PTR_vtable_004c312c + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<wchar_t" identifier < identifier) , (binary_expression "true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" true > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0x9b0)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x9b0)" ( (binary_expression "puVar2 + -0x9b0" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<wchar_t" identifier < identifier) , (binary_expression "true>(0,this,p_Var5)" true > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c3168)" ( (binary_expression "param_1 == (id *)PTR_id_004c3168" identifier == (cast_expression "(id *)PTR_id_004c3168" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }" { (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x70)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x70)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c1408;" (assignment_expression "puVar3 = PTR_vtable_004c1408" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x38) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x38)" * (cast_expression "(undefined4 *)(p_Var5 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x38)" ( (binary_expression "p_Var5 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x3c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x3c)" ( (binary_expression "p_Var5 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x6c] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x6c] = (__locale_data)0x0" (subscript_expression "p_Var5[0x6c]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c3100 + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c3100 + 8)" ( (binary_expression "PTR_vtable_004c3100 + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<wchar_t" identifier < identifier) , (binary_expression "false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" false > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0x97c)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x97c)" ( (binary_expression "puVar2 + -0x97c" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<wchar_t" identifier < identifier) , (binary_expression "false>(0,this,p_Var5)" false > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) (return_statement "return p_Var7;" return identifier ;) })) (if_statement "if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }" if (parenthesized_expression "(param_1 == (id *)PTR_id_004c31e4)" ( (binary_expression "param_1 == (id *)PTR_id_004c31e4" identifier == (cast_expression "(id *)PTR_id_004c31e4" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }" { (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "(*(code *)PTR_messages_004c31ac)(p_Var7,0);" (call_expression "(*(code *)PTR_messages_004c31ac)(p_Var7,0)" (parenthesized_expression "(*(code *)PTR_messages_004c31ac)" ( (pointer_expression "*(code *)PTR_messages_004c31ac" * (cast_expression "(code *)PTR_messages_004c31ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p_Var7,0)" ( identifier , number_literal ))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[4] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[4] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" else (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x7604)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x7604" identifier + number_literal) )))) ;) (return_statement "return p_Var7;" return identifier ;) })) (expression_statement "pcVar6 = PTR_UINT_004c12dc + -0x2e54;" (assignment_expression "pcVar6 = PTR_UINT_004c12dc + -0x2e54" identifier = (binary_expression "PTR_UINT_004c12dc + -0x2e54" identifier + number_literal)) ;) (expression_statement "__throw_logic_error(pcVar6);" (call_expression "__throw_logic_error(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "(*(code *)PTR__facet_004c12f8)(param_1);" (call_expression "(*(code *)PTR__facet_004c12f8)(param_1)" (parenthesized_expression "(*(code *)PTR__facet_004c12f8)" ( (pointer_expression "*(code *)PTR__facet_004c12f8" * (cast_expression "(code *)PTR__facet_004c12f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(param_1);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(param_1)" (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 "(param_1)" ( identifier ))) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_004c12c8)(pcVar6)" (parenthesized_expression "(*(code *)PTR_FUN_004c12c8)" ( (pointer_expression "*(code *)PTR_FUN_004c12c8" * (cast_expression "(code *)PTR_FUN_004c12c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6)" ( identifier ))))) ;) (return_statement "return p_Var7;" return identifier ;) })) (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" identifier = (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x44)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x44)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" * (cast_expression "(undefined4 *)(p_Var5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 4)" ( (binary_expression "p_Var5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" * (cast_expression "(undefined4 *)(p_Var5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 8)" ( (binary_expression "p_Var5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" * (cast_expression "(undefined4 *)(p_Var5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0xc)" ( (binary_expression "p_Var5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR_vtable_004c13d4;" (assignment_expression "puVar3 = PTR_vtable_004c13d4" identifier = identifier) ;) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" identifier = identifier) ;) (expression_statement "*(undefined2 *)(p_Var5 + 0x10) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x10) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x10)" * (cast_expression "(undefined2 *)(p_Var5 + 0x10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x10)" ( (binary_expression "p_Var5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x12] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x12] = (__locale_data)0x0" (subscript_expression "p_Var5[0x12]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" * (cast_expression "(undefined4 *)(p_Var5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x14)" ( (binary_expression "p_Var5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" * (cast_expression "(undefined **)p_Var5" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" * (cast_expression "(undefined4 *)(p_Var5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x18)" ( (binary_expression "p_Var5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x1c)" ( (binary_expression "p_Var5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" * (cast_expression "(undefined4 *)(p_Var5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x20)" ( (binary_expression "p_Var5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" * (cast_expression "(undefined4 *)(p_Var5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x24)" ( (binary_expression "p_Var5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" * (cast_expression "(undefined4 *)(p_Var5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x28)" ( (binary_expression "p_Var5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" * (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x2c)" ( (binary_expression "p_Var5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" * (cast_expression "(undefined4 *)(p_Var5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x30)" ( (binary_expression "p_Var5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" * (cast_expression "(undefined4 *)(p_Var5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var5 + 0x34)" ( (binary_expression "p_Var5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Var5[0x43] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x43] = (__locale_data)0x0" (subscript_expression "p_Var5[0x43]" identifier [ number_literal ]) = (cast_expression "(__locale_data)0x0" ( (type_descriptor "__locale_data" type_identifier) ) number_literal)) ;) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" identifier = (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c326c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c326c + 8)" ( (binary_expression "PTR_vtable_004c326c + 8" identifier + number_literal) )))) ;) (expression_statement "moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<char" identifier < identifier) , (binary_expression "false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" false > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" identifier (argument_list "(p_Var7,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" else (compound_statement "{\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" identifier = identifier) ;) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(puVar2 + -0xa24)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0xa24)" ( (binary_expression "puVar2 + -0xa24" identifier + number_literal) )))) ;) (labeled_statement "__facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);" statement_identifier : (ERROR ":" :) (expression_statement "__moneypunct_fill_cache<char,false>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<char,false>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<char" identifier < identifier) , (binary_expression "false>(0,this,p_Var5)" false > (parenthesized_expression "(0,this,p_Var5)" ( (comma_expression "0,this,p_Var5" number_literal , (comma_expression "this,p_Var5" identifier , identifier)) )))) ;)) }))) (return_statement "return p_Var7;" return identifier ;) })) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)0x0" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)this" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier = (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_vtable_004c324c + 8)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_vtable_004c324c + 8)" ( (binary_expression "PTR_vtable_004c324c + 8" identifier + number_literal) )))) ;) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" { (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" else (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" { (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" ( (type_descriptor "__locale_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" ( (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75a0" identifier + number_literal) )))) ;) }))))))) }) (else_clause "else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" else (compound_statement "{\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" { (expression_statement "p_Var7 = (__locale_struct *)*piVar4;" (assignment_expression "p_Var7 = (__locale_struct *)*piVar4" identifier = (cast_expression "(__locale_struct *)*piVar4" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) }))) (return_statement "return p_Var7;" return identifier ;) }))
(translation_unit (ERROR (binary_expression (binary_expression (binary_expression IDENT * IDENT) (ERROR IDENT : : IDENT : : IDENT : : IDENT ( IDENT) * IDENT) (ERROR , IDENT) * IDENT) )) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (binary_expression (binary_expression IDENT < IDENT) > (ERROR : :) (call_expression IDENT (argument_list ( (parenthesized_expression ( (comma_expression (binary_expression (binary_expression IDENT < IDENT) > (pointer_expression * (ERROR )) IDENT)) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (ERROR :) (expression_statement (binary_expression (binary_expression IDENT < IDENT) > (parenthesized_expression ( (comma_expression LIT , (comma_expression IDENT , IDENT)) ))) ;)) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 ( ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (comma_expression (binary_expression IDENT < IDENT) , (binary_expression BOOL > (ERROR : :) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < IDENT) , (binary_expression BOOL > (parenthesized_expression ( (comma_expression LIT , (comma_expression IDENT , IDENT)) )))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( LIT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (binary_expression (binary_expression IDENT < IDENT) > (ERROR : :) (call_expression IDENT (argument_list ( (parenthesized_expression ( (comma_expression (binary_expression (binary_expression IDENT < IDENT) > (pointer_expression * (ERROR )) IDENT)) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (ERROR :) (expression_statement (binary_expression (binary_expression IDENT < IDENT) > (parenthesized_expression ( (comma_expression LIT , (comma_expression IDENT , IDENT)) ))) ;)) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 ( ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (comma_expression (binary_expression IDENT < IDENT) , (binary_expression BOOL > (ERROR : :) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < IDENT) , (binary_expression BOOL > (parenthesized_expression ( (comma_expression LIT , (comma_expression IDENT , IDENT)) )))) ;)) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (comma_expression (binary_expression IDENT < IDENT) , (binary_expression BOOL > (ERROR : :) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < IDENT) , (binary_expression BOOL > (parenthesized_expression ( (comma_expression LIT , (comma_expression IDENT , IDENT)) )))) ;)) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (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 ( LIT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (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 ( IDENT ))))) ;) (return_statement return IDENT ;) })) (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 ( 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (comma_expression (binary_expression IDENT < IDENT) , (binary_expression BOOL > (ERROR : :) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < IDENT) , (binary_expression BOOL > (parenthesized_expression ( (comma_expression LIT , (comma_expression IDENT , IDENT)) )))) ;)) }))) (return_statement return IDENT ;) })) (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) (return_statement return IDENT ;) }))
(ERROR "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1)" (binary_expression "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this,id *param_1" (binary_expression "__locale_struct * __thiscall std::locale::facet::_M_sso_shim(facet *this" (binary_expression "__locale_struct * __thiscall" (identifier "__locale_struct") (* "*") (identifier "__thiscall")) (ERROR "std::locale::facet::_M_sso_shim(facet" (identifier "std") (: ":") (: ":") (identifier "locale") (: ":") (: ":") (identifier "facet") (: ":") (: ":") (identifier "_M_sso_shim") (( "(") (identifier "facet")) (* "*") (identifier "this")) (ERROR ",id" (, ",") (identifier "id")) (* "*") (identifier "param_1")) () ")")) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int *piVar4;\n  __locale_data *p_Var5;\n  char *pcVar6;\n  __locale_struct *p_Var7;\n  \n  piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);\n  if (piVar4 == (int *)0x0) {\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }\n  else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }\n  return p_Var7;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "__locale_data *p_Var5;" (type_identifier "__locale_data") (pointer_declarator "*p_Var5" (* "*") (identifier "p_Var5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "__locale_struct *p_Var7;" (type_identifier "__locale_struct") (pointer_declarator "*p_Var7" (* "*") (identifier "p_Var7")) (; ";")) (expression_statement "piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);" (assignment_expression "piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" (identifier "piVar4") (= "=") (cast_expression "(int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" (identifier "__dynamic_cast") (argument_list "(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe)" (( "(") (identifier "this") (, ",") (identifier "PTR_PTR_004c1364") (, ",") (identifier "PTR_PTR_004c1360") (, ",") (number_literal "0xfffffffe") () ")"))))) (; ";")) (if_statement "if (piVar4 == (int *)0x0) {\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }\n  else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }\n    if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }\n  }" ({ "{") (if_statement "if (param_1 == (id *)PTR_id_004c32f8) {\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c32f8)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c32f8" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c32f8" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c32f8"))) () ")")) (compound_statement "{\n      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n      *(undefined4 *)(p_Var5 + 4) = 0;\n      *(undefined4 *)(p_Var5 + 8) = 0;\n      *(undefined4 *)(p_Var5 + 0xc) = 0;\n      puVar3 = PTR_vtable_004c13b0;\n      puVar2 = PTR_operator_new_004c13a8;\n      p_Var5[0x10] = (__locale_data)0x0;\n      *(undefined4 *)(p_Var5 + 0x14) = 0;\n      *(undefined4 *)(p_Var5 + 0x18) = 0;\n      *(undefined **)p_Var5 = puVar3 + 8;\n      *(undefined4 *)(p_Var5 + 0x1c) = 0;\n      *(undefined4 *)(p_Var5 + 0x20) = 0;\n      *(undefined2 *)(p_Var5 + 0x24) = 0;\n      p_Var5[100] = (__locale_data)0x0;\n      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);\n      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      puVar2 = PTR_PTR_004c1268;\n      p_Var7->__locales[4] = p_Var5;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);\n      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);\n      return p_Var7;\n    }" ({ "{") (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68)" (identifier "p_Var5") (= "=") (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x68)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x68)" (( "(") (number_literal "0x68") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 4)" (( "(") (binary_expression "p_Var5 + 4" (identifier "p_Var5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 8)" (( "(") (binary_expression "p_Var5 + 8" (identifier "p_Var5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0xc)" (( "(") (binary_expression "p_Var5 + 0xc" (identifier "p_Var5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = PTR_vtable_004c13b0;" (assignment_expression "puVar3 = PTR_vtable_004c13b0" (identifier "puVar3") (= "=") (identifier "PTR_vtable_004c13b0")) (; ";")) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" (identifier "puVar2") (= "=") (identifier "PTR_operator_new_004c13a8")) (; ";")) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" (identifier "p_Var5") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x14)" (( "(") (binary_expression "p_Var5 + 0x14" (identifier "p_Var5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x18)" (( "(") (binary_expression "p_Var5 + 0x18" (identifier "p_Var5") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" (* "*") (cast_expression "(undefined **)p_Var5" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "p_Var5"))) (= "=") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x1c)" (( "(") (binary_expression "p_Var5 + 0x1c" (identifier "p_Var5") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x20)" (( "(") (binary_expression "p_Var5 + 0x20" (identifier "p_Var5") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x24)" (* "*") (cast_expression "(undefined2 *)(p_Var5 + 0x24)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x24)" (( "(") (binary_expression "p_Var5 + 0x24" (identifier "p_Var5") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "p_Var5[100] = (__locale_data)0x0;" (assignment_expression "p_Var5[100] = (__locale_data)0x0" (subscript_expression "p_Var5[100]" (identifier "p_Var5") ([ "[") (number_literal "100") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c32e0 + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c32e0 + 8)" (( "(") (binary_expression "PTR_vtable_004c32e0 + 8" (identifier "PTR_vtable_004c32e0") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);" (binary_expression "numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" (binary_expression "numpunct<char" (identifier "numpunct") (< "<") (identifier "char")) (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" (identifier "_M_initialize_numpunct") (argument_list "((numpunct<char> *)p_Var7,(__locale_struct *)0x0)" (( "(") (parenthesized_expression "(numpunct<char> *)p_Var7,(__locale_struct *)0x0)" (( "(") (comma_expression "numpunct<char> *)p_Var7,(__locale_struct *)0x0" (binary_expression "numpunct<char> *)p_Var7" (binary_expression "numpunct<char" (identifier "numpunct") (< "<") (identifier "char")) (> ">") (pointer_expression "*)p_Var7" (* "*") (ERROR ")" () ")")) (identifier "p_Var7"))) (, ",") (cast_expression "(__locale_struct *)0x0" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) () "")))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" (else "else") (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" (identifier "puVar2") (= "=") (identifier "PTR_PTR_004c1268")) (; ";")) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(puVar2 + -0xa98)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0xa98)" (( "(") (binary_expression "puVar2 + -0xa98" (identifier "puVar2") (+ "+") (number_literal "-0xa98")) () ")")))) (; ";")) (labeled_statement "__facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);" (statement_identifier "__facet_shims") (: ":") (ERROR ":" (: ":")) (expression_statement "__numpunct_fill_cache<char>(0,this,p_Var5);" (binary_expression "__numpunct_fill_cache<char>(0,this,p_Var5)" (binary_expression "__numpunct_fill_cache<char" (identifier "__numpunct_fill_cache") (< "<") (identifier "char")) (> ">") (parenthesized_expression "(0,this,p_Var5)" (( "(") (comma_expression "0,this,p_Var5" (number_literal "0") (, ",") (comma_expression "this,p_Var5" (identifier "this") (, ",") (identifier "p_Var5"))) () ")"))) (; ";"))) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (if_statement "if (param_1 == (id *)PTR_id_004c3314) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }\n    else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c3314)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c3314" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c3314" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c3314"))) () ")")) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);\n      p_Var5 = (__locale_data *)(*(code *)puVar2)();\n      p_Var7->__locales[2] = p_Var5;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[3] = (__locale_data *)this;\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);\n    }" ({ "{") (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar2 = PTR__S_get_c_locale_004c13c0;" (assignment_expression "puVar2 = PTR__S_get_c_locale_004c13c0" (identifier "puVar2") (= "=") (identifier "PTR__S_get_c_locale_004c13c0")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c3254 + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c3254 + 8)" (( "(") (binary_expression "PTR_vtable_004c3254 + 8" (identifier "PTR_vtable_004c3254") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "p_Var5 = (__locale_data *)(*(code *)puVar2)();" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)puVar2)()" (identifier "p_Var5") (= "=") (cast_expression "(__locale_data *)(*(code *)puVar2)()" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar2)()" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" (else "else") (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0xa74)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_PTR_004c1268 + -0xa74)" (( "(") (binary_expression "PTR_PTR_004c1268 + -0xa74" (identifier "PTR_PTR_004c1268") (+ "+") (number_literal "-0xa74")) () ")")))) (; ";")) (} "}")) (else_clause "else if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" (else "else") (if_statement "if (param_1 == (id *)PTR_id_004c3338) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }\n    else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c3338)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c3338" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c3338" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c3338"))) () ")")) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);\n    }" ({ "{") (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c3250 + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c3250 + 8)" (( "(") (binary_expression "PTR_vtable_004c3250 + 8" (identifier "PTR_vtable_004c3250") (+ "+") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" (else "else") (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x948)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_PTR_004c1268 + -0x948)" (( "(") (binary_expression "PTR_PTR_004c1268 + -0x948" (identifier "PTR_PTR_004c1268") (+ "+") (number_literal "-0x948")) () ")")))) (; ";")) (} "}")) (else_clause "else if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" (else "else") (if_statement "if (param_1 == (id *)PTR_id_004c3330) {\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }\n    else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c3330)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c3330" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c3330" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c3330"))) () ")")) (compound_statement "{\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);\n    }" ({ "{") (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c3248 + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c3248 + 8)" (( "(") (binary_expression "PTR_vtable_004c3248 + 8" (identifier "PTR_vtable_004c3248") (+ "+") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" (else "else") (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x7588)" (( "(") (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x7588" (identifier "PTR_uleb128_004affff_1_004c1274") (+ "+") (number_literal "0x7588")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" (else "else") (compound_statement "{\n      if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }\n      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n      p_Var7->__locales[1] = (__locale_data *)0x0;\n      p_Var7->__locales[2] = (__locale_data *)this;\n      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);\n      if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }\n      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);\n    }" ({ "{") (if_statement "if (param_1 != (id *)PTR_id_004c3328) {\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }" (if "if") (parenthesized_expression "(param_1 != (id *)PTR_id_004c3328)" (( "(") (binary_expression "param_1 != (id *)PTR_id_004c3328" (identifier "param_1") (!= "!=") (cast_expression "(id *)PTR_id_004c3328" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c3328"))) () ")")) (compound_statement "{\n        if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }\n        return p_Var7;\n      }" ({ "{") (if_statement "if (param_1 == (id *)PTR_id_004c32c4) {\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }\n        else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c32c4)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c32c4" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c32c4" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c32c4"))) () ")")) (compound_statement "{\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13c4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);\n          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);\n          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);\n        }" ({ "{") (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" (identifier "p_Var5") (= "=") (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x44)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x44)" (( "(") (number_literal "0x44") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 4)" (( "(") (binary_expression "p_Var5 + 4" (identifier "p_Var5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 8)" (( "(") (binary_expression "p_Var5 + 8" (identifier "p_Var5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0xc)" (( "(") (binary_expression "p_Var5 + 0xc" (identifier "p_Var5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = PTR_vtable_004c13c4;" (assignment_expression "puVar3 = PTR_vtable_004c13c4" (identifier "puVar3") (= "=") (identifier "PTR_vtable_004c13c4")) (; ";")) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" (identifier "puVar2") (= "=") (identifier "PTR_operator_new_004c13a8")) (; ";")) (expression_statement "*(undefined2 *)(p_Var5 + 0x10) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x10) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x10)" (* "*") (cast_expression "(undefined2 *)(p_Var5 + 0x10)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x10)" (( "(") (binary_expression "p_Var5 + 0x10" (identifier "p_Var5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "p_Var5[0x12] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x12] = (__locale_data)0x0" (subscript_expression "p_Var5[0x12]" (identifier "p_Var5") ([ "[") (number_literal "0x12") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x14)" (( "(") (binary_expression "p_Var5 + 0x14" (identifier "p_Var5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" (* "*") (cast_expression "(undefined **)p_Var5" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "p_Var5"))) (= "=") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x18)" (( "(") (binary_expression "p_Var5 + 0x18" (identifier "p_Var5") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x1c)" (( "(") (binary_expression "p_Var5 + 0x1c" (identifier "p_Var5") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x20)" (( "(") (binary_expression "p_Var5 + 0x20" (identifier "p_Var5") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x24)" (( "(") (binary_expression "p_Var5 + 0x24" (identifier "p_Var5") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x28)" (( "(") (binary_expression "p_Var5 + 0x28" (identifier "p_Var5") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x2c)" (( "(") (binary_expression "p_Var5 + 0x2c" (identifier "p_Var5") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x30)" (( "(") (binary_expression "p_Var5 + 0x30" (identifier "p_Var5") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x34)" (( "(") (binary_expression "p_Var5 + 0x34" (identifier "p_Var5") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "p_Var5[0x43] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x43] = (__locale_data)0x0" (subscript_expression "p_Var5[0x43]" (identifier "p_Var5") ([ "[") (number_literal "0x43") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c3298 + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c3298 + 8)" (( "(") (binary_expression "PTR_vtable_004c3298 + 8" (identifier "PTR_vtable_004c3298") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<char" (identifier "moneypunct") (< "<") (identifier "char")) (, ",") (binary_expression "true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (true "true") (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" (identifier "_M_initialize_moneypunct") (argument_list "(p_Var7,(char *)0x0)" (( "(") (identifier "p_Var7") (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (if_statement "if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" (else "else") (compound_statement "{\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" (identifier "puVar2") (= "=") (identifier "PTR_PTR_004c1268")) (; ";")) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(puVar2 + -0xa58)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0xa58)" (( "(") (binary_expression "puVar2 + -0xa58" (identifier "puVar2") (+ "+") (number_literal "-0xa58")) () ")")))) (; ";")) (labeled_statement "__facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);" (statement_identifier "__facet_shims") (: ":") (ERROR ":" (: ":")) (expression_statement "__moneypunct_fill_cache<char,true>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<char,true>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<char" (identifier "__moneypunct_fill_cache") (< "<") (identifier "char")) (, ",") (binary_expression "true>(0,this,p_Var5)" (true "true") (> ">") (parenthesized_expression "(0,this,p_Var5)" (( "(") (comma_expression "0,this,p_Var5" (number_literal "0") (, ",") (comma_expression "this,p_Var5" (identifier "this") (, ",") (identifier "p_Var5"))) () ")")))) (; ";"))) (} "}")) (else_clause "else {\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" (else "else") (compound_statement "{\n          if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }\n          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);\n          *(undefined4 *)(p_Var5 + 4) = 0;\n          *(undefined4 *)(p_Var5 + 8) = 0;\n          *(undefined4 *)(p_Var5 + 0xc) = 0;\n          puVar3 = PTR_vtable_004c13d4;\n          puVar2 = PTR_operator_new_004c13a8;\n          *(undefined2 *)(p_Var5 + 0x10) = 0;\n          p_Var5[0x12] = (__locale_data)0x0;\n          *(undefined4 *)(p_Var5 + 0x14) = 0;\n          *(undefined **)p_Var5 = puVar3 + 8;\n          *(undefined4 *)(p_Var5 + 0x18) = 0;\n          *(undefined4 *)(p_Var5 + 0x1c) = 0;\n          *(undefined4 *)(p_Var5 + 0x20) = 0;\n          *(undefined4 *)(p_Var5 + 0x24) = 0;\n          *(undefined4 *)(p_Var5 + 0x28) = 0;\n          *(undefined4 *)(p_Var5 + 0x2c) = 0;\n          *(undefined4 *)(p_Var5 + 0x30) = 0;\n          *(undefined4 *)(p_Var5 + 0x34) = 0;\n          p_Var5[0x43] = (__locale_data)0x0;\n          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n          p_Var7->__locales[1] = (__locale_data *)0x0;\n          p_Var7->__locales[2] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);\n          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n          p_Var7->__locales[3] = (__locale_data *)this;\n          if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }\n          puVar2 = PTR_PTR_004c1268;\n          p_Var7->__locales[4] = p_Var5;\n                    \n          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);\n          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);\n        }" ({ "{") (if_statement "if (param_1 != (id *)PTR_id_004c32cc) {\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }" (if "if") (parenthesized_expression "(param_1 != (id *)PTR_id_004c32cc)" (( "(") (binary_expression "param_1 != (id *)PTR_id_004c32cc" (identifier "param_1") (!= "!=") (cast_expression "(id *)PTR_id_004c32cc" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c32cc"))) () ")")) (compound_statement "{\n            if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }\n            if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }\n            pcVar6 = PTR_UINT_004c12dc + -0x2e54;\n            __throw_logic_error(pcVar6);\n                    \n            (*(code *)PTR__facet_004c12f8)(param_1);\n            (*(code *)PTR_operator_delete_004c12fc)(param_1);\n            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);\n            return p_Var7;\n          }" ({ "{") (if_statement "if (param_1 == (id *)PTR_id_004c3340) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c3340)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c3340" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c3340" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c3340"))) () ")")) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c3308)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);\n              return p_Var7;\n            }" ({ "{") (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_messages_004c3308)(p_Var7,0);" (call_expression "(*(code *)PTR_messages_004c3308)(p_Var7,0)" (parenthesized_expression "(*(code *)PTR_messages_004c3308)" (( "(") (pointer_expression "*(code *)PTR_messages_004c3308" (* "*") (cast_expression "(code *)PTR_messages_004c3308" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_messages_004c3308"))) () ")")) (argument_list "(p_Var7,0)" (( "(") (identifier "p_Var7") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[4] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[4] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (else "else") (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75b8)" (( "(") (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75b8" (identifier "PTR_uleb128_004affff_1_004c1274") (+ "+") (number_literal "0x75b8")) () ")")))) (; ";")) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (if_statement "if (param_1 == (id *)PTR_id_004c3194) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c3194)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c3194" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c3194" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c3194"))) () ")")) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13e8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              p_Var5[0x124] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);\n              numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);\n              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);\n              return p_Var7;\n            }" ({ "{") (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128)" (identifier "p_Var5") (= "=") (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x128)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x128)" (( "(") (number_literal "0x128") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 4)" (( "(") (binary_expression "p_Var5 + 4" (identifier "p_Var5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 8)" (( "(") (binary_expression "p_Var5 + 8" (identifier "p_Var5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0xc)" (( "(") (binary_expression "p_Var5 + 0xc" (identifier "p_Var5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = PTR_vtable_004c13e8;" (assignment_expression "puVar3 = PTR_vtable_004c13e8" (identifier "puVar3") (= "=") (identifier "PTR_vtable_004c13e8")) (; ";")) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" (identifier "puVar2") (= "=") (identifier "PTR_operator_new_004c13a8")) (; ";")) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" (identifier "p_Var5") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x14)" (( "(") (binary_expression "p_Var5 + 0x14" (identifier "p_Var5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x18)" (( "(") (binary_expression "p_Var5 + 0x18" (identifier "p_Var5") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" (* "*") (cast_expression "(undefined **)p_Var5" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "p_Var5"))) (= "=") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x1c)" (( "(") (binary_expression "p_Var5 + 0x1c" (identifier "p_Var5") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x20)" (( "(") (binary_expression "p_Var5 + 0x20" (identifier "p_Var5") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x24)" (( "(") (binary_expression "p_Var5 + 0x24" (identifier "p_Var5") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x28)" (( "(") (binary_expression "p_Var5 + 0x28" (identifier "p_Var5") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "p_Var5[0x124] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x124] = (__locale_data)0x0" (subscript_expression "p_Var5[0x124]" (identifier "p_Var5") ([ "[") (number_literal "0x124") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c317c + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c317c + 8)" (( "(") (binary_expression "PTR_vtable_004c317c + 8" (identifier "PTR_vtable_004c317c") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);" (binary_expression "numpunct<wchar_t>::_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" (binary_expression "numpunct<wchar_t" (identifier "numpunct") (< "<") (identifier "wchar_t")) (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "_M_initialize_numpunct\n                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" (identifier "_M_initialize_numpunct") (argument_list "((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" (( "(") (parenthesized_expression "(numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0)" (( "(") (comma_expression "numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0" (binary_expression "numpunct<wchar_t> *)p_Var7" (binary_expression "numpunct<wchar_t" (identifier "numpunct") (< "<") (identifier "wchar_t")) (> ">") (pointer_expression "*)p_Var7" (* "*") (ERROR ")" () ")")) (identifier "p_Var7"))) (, ",") (cast_expression "(__locale_struct *)0x0" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) () "")))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (else "else") (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" (identifier "puVar2") (= "=") (identifier "PTR_PTR_004c1268")) (; ";")) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(puVar2 + -0x9f0)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x9f0)" (( "(") (binary_expression "puVar2 + -0x9f0" (identifier "puVar2") (+ "+") (number_literal "-0x9f0")) () ")")))) (; ";")) (labeled_statement "__facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);" (statement_identifier "__facet_shims") (: ":") (ERROR ":" (: ":")) (expression_statement "__numpunct_fill_cache<wchar_t>(0,this,p_Var5);" (binary_expression "__numpunct_fill_cache<wchar_t>(0,this,p_Var5)" (binary_expression "__numpunct_fill_cache<wchar_t" (identifier "__numpunct_fill_cache") (< "<") (identifier "wchar_t")) (> ">") (parenthesized_expression "(0,this,p_Var5)" (( "(") (comma_expression "0,this,p_Var5" (number_literal "0") (, ",") (comma_expression "this,p_Var5" (identifier "this") (, ",") (identifier "p_Var5"))) () ")"))) (; ";"))) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (if_statement "if (param_1 == (id *)PTR_id_004c31b8) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c31b8)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c31b8" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c31b8" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c31b8"))) () ")")) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              puVar2 = PTR__S_get_c_locale_004c13c0;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);\n              p_Var5 = (__locale_data *)(*(code *)puVar2)();\n              p_Var7->__locales[2] = p_Var5;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);\n              return p_Var7;\n            }" ({ "{") (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar2 = PTR__S_get_c_locale_004c13c0;" (assignment_expression "puVar2 = PTR__S_get_c_locale_004c13c0" (identifier "puVar2") (= "=") (identifier "PTR__S_get_c_locale_004c13c0")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c30dc + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c30dc + 8)" (( "(") (binary_expression "PTR_vtable_004c30dc + 8" (identifier "PTR_vtable_004c30dc") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "p_Var5 = (__locale_data *)(*(code *)puVar2)();" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)puVar2)()" (identifier "p_Var5") (= "=") (cast_expression "(__locale_data *)(*(code *)puVar2)()" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar2)()" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (else "else") (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x9cc)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_PTR_004c1268 + -0x9cc)" (( "(") (binary_expression "PTR_PTR_004c1268 + -0x9cc" (identifier "PTR_PTR_004c1268") (+ "+") (number_literal "-0x9cc")) () ")")))) (; ";")) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (if_statement "if (param_1 == (id *)PTR_id_004c31dc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c31dc)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c31dc" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c31dc" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c31dc"))) () ")")) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);\n              return p_Var7;\n            }" ({ "{") (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c30d8 + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c30d8 + 8)" (( "(") (binary_expression "PTR_vtable_004c30d8 + 8" (identifier "PTR_vtable_004c30d8") (+ "+") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (else "else") (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_PTR_004c1268 + -0x91c)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_PTR_004c1268 + -0x91c)" (( "(") (binary_expression "PTR_PTR_004c1268 + -0x91c" (identifier "PTR_PTR_004c1268") (+ "+") (number_literal "-0x91c")) () ")")))) (; ";")) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (if_statement "if (param_1 == (id *)PTR_id_004c31d4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c31d4)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c31d4" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c31d4" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c31d4"))) () ")")) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);\n              return p_Var7;\n            }" ({ "{") (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c30d0 + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c30d0 + 8)" (( "(") (binary_expression "PTR_vtable_004c30d0 + 8" (identifier "PTR_vtable_004c30d0") (+ "+") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (else "else") (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75d4)" (( "(") (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75d4" (identifier "PTR_uleb128_004affff_1_004c1274") (+ "+") (number_literal "0x75d4")) () ")")))) (; ";")) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (if_statement "if (param_1 == (id *)PTR_id_004c31cc) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c31cc)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c31cc" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c31cc" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c31cc"))) () ")")) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = (__locale_data *)this;\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);\n              return p_Var7;\n            }" ({ "{") (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c30d4 + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c30d4 + 8)" (( "(") (binary_expression "PTR_vtable_004c30d4 + 8" (identifier "PTR_vtable_004c30d4") (+ "+") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (else "else") (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75ec)" (( "(") (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75ec" (identifier "PTR_uleb128_004affff_1_004c1274") (+ "+") (number_literal "0x75ec")) () ")")))) (; ";")) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (if_statement "if (param_1 == (id *)PTR_id_004c3158) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c3158)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c3158" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c3158" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c3158"))) () ")")) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c13f8;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);\n              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);\n              return p_Var7;\n            }" ({ "{") (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" (identifier "p_Var5") (= "=") (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x70)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x70)" (( "(") (number_literal "0x70") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 4)" (( "(") (binary_expression "p_Var5 + 4" (identifier "p_Var5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 8)" (( "(") (binary_expression "p_Var5 + 8" (identifier "p_Var5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0xc)" (( "(") (binary_expression "p_Var5 + 0xc" (identifier "p_Var5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = PTR_vtable_004c13f8;" (assignment_expression "puVar3 = PTR_vtable_004c13f8" (identifier "puVar3") (= "=") (identifier "PTR_vtable_004c13f8")) (; ";")) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" (identifier "puVar2") (= "=") (identifier "PTR_operator_new_004c13a8")) (; ";")) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" (identifier "p_Var5") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x14)" (( "(") (binary_expression "p_Var5 + 0x14" (identifier "p_Var5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x18)" (( "(") (binary_expression "p_Var5 + 0x18" (identifier "p_Var5") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" (* "*") (cast_expression "(undefined **)p_Var5" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "p_Var5"))) (= "=") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x1c)" (( "(") (binary_expression "p_Var5 + 0x1c" (identifier "p_Var5") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x20)" (( "(") (binary_expression "p_Var5 + 0x20" (identifier "p_Var5") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x24)" (( "(") (binary_expression "p_Var5 + 0x24" (identifier "p_Var5") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x28)" (( "(") (binary_expression "p_Var5 + 0x28" (identifier "p_Var5") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x2c)" (( "(") (binary_expression "p_Var5 + 0x2c" (identifier "p_Var5") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x30)" (( "(") (binary_expression "p_Var5 + 0x30" (identifier "p_Var5") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x34)" (( "(") (binary_expression "p_Var5 + 0x34" (identifier "p_Var5") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x38) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x38)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x38)" (( "(") (binary_expression "p_Var5 + 0x38" (identifier "p_Var5") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x3c)" (( "(") (binary_expression "p_Var5 + 0x3c" (identifier "p_Var5") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "p_Var5[0x6c] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x6c] = (__locale_data)0x0" (subscript_expression "p_Var5[0x6c]" (identifier "p_Var5") ([ "[") (number_literal "0x6c") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c312c + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c312c + 8)" (( "(") (binary_expression "PTR_vtable_004c312c + 8" (identifier "PTR_vtable_004c312c") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<wchar_t" (identifier "moneypunct") (< "<") (identifier "wchar_t")) (, ",") (binary_expression "true>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (true "true") (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" (identifier "_M_initialize_moneypunct") (argument_list "(p_Var7,(char *)0x0)" (( "(") (identifier "p_Var7") (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (else "else") (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" (identifier "puVar2") (= "=") (identifier "PTR_PTR_004c1268")) (; ";")) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(puVar2 + -0x9b0)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x9b0)" (( "(") (binary_expression "puVar2 + -0x9b0" (identifier "puVar2") (+ "+") (number_literal "-0x9b0")) () ")")))) (; ";")) (labeled_statement "__facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);" (statement_identifier "__facet_shims") (: ":") (ERROR ":" (: ":")) (expression_statement "__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<wchar_t" (identifier "__moneypunct_fill_cache") (< "<") (identifier "wchar_t")) (, ",") (binary_expression "true>(0,this,p_Var5)" (true "true") (> ">") (parenthesized_expression "(0,this,p_Var5)" (( "(") (comma_expression "0,this,p_Var5" (number_literal "0") (, ",") (comma_expression "this,p_Var5" (identifier "this") (, ",") (identifier "p_Var5"))) () ")")))) (; ";"))) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (if_statement "if (param_1 == (id *)PTR_id_004c3168) {\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c3168)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c3168" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c3168" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c3168"))) () ")")) (compound_statement "{\n              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);\n              *(undefined4 *)(p_Var5 + 4) = 0;\n              *(undefined4 *)(p_Var5 + 8) = 0;\n              *(undefined4 *)(p_Var5 + 0xc) = 0;\n              puVar3 = PTR_vtable_004c1408;\n              puVar2 = PTR_operator_new_004c13a8;\n              p_Var5[0x10] = (__locale_data)0x0;\n              *(undefined4 *)(p_Var5 + 0x14) = 0;\n              *(undefined4 *)(p_Var5 + 0x18) = 0;\n              *(undefined **)p_Var5 = puVar3 + 8;\n              *(undefined4 *)(p_Var5 + 0x1c) = 0;\n              *(undefined4 *)(p_Var5 + 0x20) = 0;\n              *(undefined4 *)(p_Var5 + 0x24) = 0;\n              *(undefined4 *)(p_Var5 + 0x28) = 0;\n              *(undefined4 *)(p_Var5 + 0x2c) = 0;\n              *(undefined4 *)(p_Var5 + 0x30) = 0;\n              *(undefined4 *)(p_Var5 + 0x34) = 0;\n              *(undefined4 *)(p_Var5 + 0x38) = 0;\n              *(undefined4 *)(p_Var5 + 0x3c) = 0;\n              p_Var5[0x6c] = (__locale_data)0x0;\n              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);\n              p_Var7->__locales[1] = (__locale_data *)0x0;\n              p_Var7->__locales[2] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);\n              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[3] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              puVar2 = PTR_PTR_004c1268;\n              p_Var7->__locales[4] = p_Var5;\n                    \n              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);\n              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);\n              return p_Var7;\n            }" ({ "{") (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" (identifier "p_Var5") (= "=") (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x70)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x70)" (( "(") (number_literal "0x70") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 4)" (( "(") (binary_expression "p_Var5 + 4" (identifier "p_Var5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 8)" (( "(") (binary_expression "p_Var5 + 8" (identifier "p_Var5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0xc)" (( "(") (binary_expression "p_Var5 + 0xc" (identifier "p_Var5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = PTR_vtable_004c1408;" (assignment_expression "puVar3 = PTR_vtable_004c1408" (identifier "puVar3") (= "=") (identifier "PTR_vtable_004c1408")) (; ";")) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" (identifier "puVar2") (= "=") (identifier "PTR_operator_new_004c13a8")) (; ";")) (expression_statement "p_Var5[0x10] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x10] = (__locale_data)0x0" (subscript_expression "p_Var5[0x10]" (identifier "p_Var5") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x14)" (( "(") (binary_expression "p_Var5 + 0x14" (identifier "p_Var5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x18)" (( "(") (binary_expression "p_Var5 + 0x18" (identifier "p_Var5") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" (* "*") (cast_expression "(undefined **)p_Var5" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "p_Var5"))) (= "=") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x1c)" (( "(") (binary_expression "p_Var5 + 0x1c" (identifier "p_Var5") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x20)" (( "(") (binary_expression "p_Var5 + 0x20" (identifier "p_Var5") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x24)" (( "(") (binary_expression "p_Var5 + 0x24" (identifier "p_Var5") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x28)" (( "(") (binary_expression "p_Var5 + 0x28" (identifier "p_Var5") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x2c)" (( "(") (binary_expression "p_Var5 + 0x2c" (identifier "p_Var5") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x30)" (( "(") (binary_expression "p_Var5 + 0x30" (identifier "p_Var5") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x34)" (( "(") (binary_expression "p_Var5 + 0x34" (identifier "p_Var5") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x38) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x38)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x38)" (( "(") (binary_expression "p_Var5 + 0x38" (identifier "p_Var5") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x3c)" (( "(") (binary_expression "p_Var5 + 0x3c" (identifier "p_Var5") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "p_Var5[0x6c] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x6c] = (__locale_data)0x0" (subscript_expression "p_Var5[0x6c]" (identifier "p_Var5") ([ "[") (number_literal "0x6c") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c3100 + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c3100 + 8)" (( "(") (binary_expression "PTR_vtable_004c3100 + 8" (identifier "PTR_vtable_004c3100") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<wchar_t" (identifier "moneypunct") (< "<") (identifier "wchar_t")) (, ",") (binary_expression "false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (false "false") (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" (identifier "_M_initialize_moneypunct") (argument_list "(p_Var7,(char *)0x0)" (( "(") (identifier "p_Var7") (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (else "else") (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" (identifier "puVar2") (= "=") (identifier "PTR_PTR_004c1268")) (; ";")) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(puVar2 + -0x97c)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x97c)" (( "(") (binary_expression "puVar2 + -0x97c" (identifier "puVar2") (+ "+") (number_literal "-0x97c")) () ")")))) (; ";")) (labeled_statement "__facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);" (statement_identifier "__facet_shims") (: ":") (ERROR ":" (: ":")) (expression_statement "__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<wchar_t" (identifier "__moneypunct_fill_cache") (< "<") (identifier "wchar_t")) (, ",") (binary_expression "false>(0,this,p_Var5)" (false "false") (> ">") (parenthesized_expression "(0,this,p_Var5)" (( "(") (comma_expression "0,this,p_Var5" (number_literal "0") (, ",") (comma_expression "this,p_Var5" (identifier "this") (, ",") (identifier "p_Var5"))) () ")")))) (; ";"))) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (if_statement "if (param_1 == (id *)PTR_id_004c31e4) {\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }" (if "if") (parenthesized_expression "(param_1 == (id *)PTR_id_004c31e4)" (( "(") (binary_expression "param_1 == (id *)PTR_id_004c31e4" (identifier "param_1") (== "==") (cast_expression "(id *)PTR_id_004c31e4" (( "(") (type_descriptor "id *" (type_identifier "id") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_id_004c31e4"))) () ")")) (compound_statement "{\n              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n                    \n              (*(code *)PTR_messages_004c31ac)(p_Var7,0);\n              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;\n              p_Var7->__locales[4] = (__locale_data *)this;\n              if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }\n              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);\n              return p_Var7;\n            }" ({ "{") (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_messages_004c31ac)(p_Var7,0);" (call_expression "(*(code *)PTR_messages_004c31ac)(p_Var7,0)" (parenthesized_expression "(*(code *)PTR_messages_004c31ac)" (( "(") (pointer_expression "*(code *)PTR_messages_004c31ac" (* "*") (cast_expression "(code *)PTR_messages_004c31ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_messages_004c31ac"))) () ")")) (argument_list "(p_Var7,0)" (( "(") (identifier "p_Var7") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[4] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[4] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (if_statement "if (bVar1) {\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }\n              else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n              }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" (else "else") (compound_statement "{\n                SYNC(0);\n                *(int *)(this + 4) = *(int *)(this + 4) + 1;\n                SYNC(0);\n              }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x7604)" (( "(") (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x7604" (identifier "PTR_uleb128_004affff_1_004c1274") (+ "+") (number_literal "0x7604")) () ")")))) (; ";")) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (expression_statement "pcVar6 = PTR_UINT_004c12dc + -0x2e54;" (assignment_expression "pcVar6 = PTR_UINT_004c12dc + -0x2e54" (identifier "pcVar6") (= "=") (binary_expression "PTR_UINT_004c12dc + -0x2e54" (identifier "PTR_UINT_004c12dc") (+ "+") (number_literal "-0x2e54"))) (; ";")) (expression_statement "__throw_logic_error(pcVar6);" (call_expression "__throw_logic_error(pcVar6)" (identifier "__throw_logic_error") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "(*(code *)PTR__facet_004c12f8)(param_1);" (call_expression "(*(code *)PTR__facet_004c12f8)(param_1)" (parenthesized_expression "(*(code *)PTR__facet_004c12f8)" (( "(") (pointer_expression "*(code *)PTR__facet_004c12f8" (* "*") (cast_expression "(code *)PTR__facet_004c12f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__facet_004c12f8"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(param_1);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(param_1)" (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 "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_FUN_004c12c8)(pcVar6)" (parenthesized_expression "(*(code *)PTR_FUN_004c12c8)" (( "(") (pointer_expression "*(code *)PTR_FUN_004c12c8" (* "*") (cast_expression "(code *)PTR_FUN_004c12c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_004c12c8"))) () ")")) (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))))) (; ";")) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (expression_statement "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);" (assignment_expression "p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" (identifier "p_Var5") (= "=") (cast_expression "(__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x44)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x44)" (( "(") (number_literal "0x44") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 4) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 4) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 4)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 4)" (( "(") (binary_expression "p_Var5 + 4" (identifier "p_Var5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 8) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 8) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 8)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 8)" (( "(") (binary_expression "p_Var5 + 8" (identifier "p_Var5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0xc)" (( "(") (binary_expression "p_Var5 + 0xc" (identifier "p_Var5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = PTR_vtable_004c13d4;" (assignment_expression "puVar3 = PTR_vtable_004c13d4" (identifier "puVar3") (= "=") (identifier "PTR_vtable_004c13d4")) (; ";")) (expression_statement "puVar2 = PTR_operator_new_004c13a8;" (assignment_expression "puVar2 = PTR_operator_new_004c13a8" (identifier "puVar2") (= "=") (identifier "PTR_operator_new_004c13a8")) (; ";")) (expression_statement "*(undefined2 *)(p_Var5 + 0x10) = 0;" (assignment_expression "*(undefined2 *)(p_Var5 + 0x10) = 0" (pointer_expression "*(undefined2 *)(p_Var5 + 0x10)" (* "*") (cast_expression "(undefined2 *)(p_Var5 + 0x10)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x10)" (( "(") (binary_expression "p_Var5 + 0x10" (identifier "p_Var5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "p_Var5[0x12] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x12] = (__locale_data)0x0" (subscript_expression "p_Var5[0x12]" (identifier "p_Var5") ([ "[") (number_literal "0x12") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x14)" (( "(") (binary_expression "p_Var5 + 0x14" (identifier "p_Var5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined **)p_Var5 = puVar3 + 8;" (assignment_expression "*(undefined **)p_Var5 = puVar3 + 8" (pointer_expression "*(undefined **)p_Var5" (* "*") (cast_expression "(undefined **)p_Var5" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "p_Var5"))) (= "=") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x18)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x18)" (( "(") (binary_expression "p_Var5 + 0x18" (identifier "p_Var5") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x1c)" (( "(") (binary_expression "p_Var5 + 0x1c" (identifier "p_Var5") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x20)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x20)" (( "(") (binary_expression "p_Var5 + 0x20" (identifier "p_Var5") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x24)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x24)" (( "(") (binary_expression "p_Var5 + 0x24" (identifier "p_Var5") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x28)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x28)" (( "(") (binary_expression "p_Var5 + 0x28" (identifier "p_Var5") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x2c)" (( "(") (binary_expression "p_Var5 + 0x2c" (identifier "p_Var5") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x30)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x30)" (( "(") (binary_expression "p_Var5 + 0x30" (identifier "p_Var5") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(p_Var5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(p_Var5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(p_Var5 + 0x34)" (* "*") (cast_expression "(undefined4 *)(p_Var5 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(p_Var5 + 0x34)" (( "(") (binary_expression "p_Var5 + 0x34" (identifier "p_Var5") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "p_Var5[0x43] = (__locale_data)0x0;" (assignment_expression "p_Var5[0x43] = (__locale_data)0x0" (subscript_expression "p_Var5[0x43]" (identifier "p_Var5") ([ "[") (number_literal "0x43") (] "]")) (= "=") (cast_expression "(__locale_data)0x0" (( "(") (type_descriptor "__locale_data" (type_identifier "__locale_data")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)puVar2)(0x14)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar2)(0x14)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = p_Var5;" (assignment_expression "p_Var7->__locales[2] = p_Var5" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c326c + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c326c + 8)" (( "(") (binary_expression "PTR_vtable_004c326c + 8" (identifier "PTR_vtable_004c326c") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);" (comma_expression "moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (binary_expression "moneypunct<char" (identifier "moneypunct") (< "<") (identifier "char")) (, ",") (binary_expression "false>::_M_initialize_moneypunct(p_Var7,(char *)0x0)" (false "false") (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "_M_initialize_moneypunct(p_Var7,(char *)0x0)" (identifier "_M_initialize_moneypunct") (argument_list "(p_Var7,(char *)0x0)" (( "(") (identifier "p_Var7") (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[3] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[3] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[3]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (if_statement "if (bVar1) {\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }\n          else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n          }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" (else "else") (compound_statement "{\n            SYNC(0);\n            *(int *)(this + 4) = *(int *)(this + 4) + 1;\n            SYNC(0);\n          }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar2 = PTR_PTR_004c1268;" (assignment_expression "puVar2 = PTR_PTR_004c1268" (identifier "puVar2") (= "=") (identifier "PTR_PTR_004c1268")) (; ";")) (expression_statement "p_Var7->__locales[4] = p_Var5;" (assignment_expression "p_Var7->__locales[4] = p_Var5" (subscript_expression "p_Var7->__locales[4]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "p_Var5")) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(puVar2 + -0xa24)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0xa24)" (( "(") (binary_expression "puVar2 + -0xa24" (identifier "puVar2") (+ "+") (number_literal "-0xa24")) () ")")))) (; ";")) (labeled_statement "__facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);" (statement_identifier "__facet_shims") (: ":") (ERROR ":" (: ":")) (expression_statement "__moneypunct_fill_cache<char,false>(0,this,p_Var5);" (comma_expression "__moneypunct_fill_cache<char,false>(0,this,p_Var5)" (binary_expression "__moneypunct_fill_cache<char" (identifier "__moneypunct_fill_cache") (< "<") (identifier "char")) (, ",") (binary_expression "false>(0,this,p_Var5)" (false "false") (> ">") (parenthesized_expression "(0,this,p_Var5)" (( "(") (comma_expression "0,this,p_Var5" (number_literal "0") (, ",") (comma_expression "this,p_Var5" (identifier "this") (, ",") (identifier "p_Var5"))) () ")")))) (; ";"))) (} "}")))) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))) (expression_statement "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "p_Var7->__locales[1] = (__locale_data *)0x0;" (assignment_expression "p_Var7->__locales[1] = (__locale_data *)0x0" (subscript_expression "p_Var7->__locales[1]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(__locale_data *)0x0" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "p_Var7->__locales[2] = (__locale_data *)this;" (assignment_expression "p_Var7->__locales[2] = (__locale_data *)this" (subscript_expression "p_Var7->__locales[2]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(__locale_data *)this" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (; ";")) (expression_statement "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;" (assignment_expression "bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "bVar1") (= "=") (binary_expression "PTR___pthread_key_create_004c5aa0 == (undefined *)0x0" (identifier "PTR___pthread_key_create_004c5aa0") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_vtable_004c324c + 8)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_vtable_004c324c + 8)" (( "(") (binary_expression "PTR_vtable_004c324c + 8" (identifier "PTR_vtable_004c324c") (+ "+") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (bVar1) {\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }\n      else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n      }" ({ "{") (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" (else "else") (compound_statement "{\n        SYNC(0);\n        *(int *)(this + 4) = *(int *)(this + 4) + 1;\n        SYNC(0);\n      }" ({ "{") (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(int *)(this + 4) = *(int *)(this + 4) + 1;" (assignment_expression "*(int *)(this + 4) = *(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 4) + 1" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "SYNC(0);" (call_expression "SYNC(0)" (identifier "SYNC") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);" (assignment_expression "p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" (subscript_expression "p_Var7->__locales[0]" (field_expression "p_Var7->__locales" (identifier "p_Var7") (-> "->") (field_identifier "__locales")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" (( "(") (type_descriptor "__locale_data *" (type_identifier "__locale_data") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_uleb128_004affff_1_004c1274 + 0x75a0)" (( "(") (binary_expression "PTR_uleb128_004affff_1_004c1274 + 0x75a0" (identifier "PTR_uleb128_004affff_1_004c1274") (+ "+") (number_literal "0x75a0")) () ")")))) (; ";")) (} "}")))))))) (} "}")) (else_clause "else {\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" (else "else") (compound_statement "{\n    p_Var7 = (__locale_struct *)*piVar4;\n  }" ({ "{") (expression_statement "p_Var7 = (__locale_struct *)*piVar4;" (assignment_expression "p_Var7 = (__locale_struct *)*piVar4" (identifier "p_Var7") (= "=") (cast_expression "(__locale_struct *)*piVar4" (( "(") (type_descriptor "__locale_struct *" (type_identifier "__locale_struct") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (} "}")))) (return_statement "return p_Var7;" (return "return") (identifier "p_Var7") (; ";")) (} "}"))

/* std::locale::facet::_M_sso_shim(std::locale::id const*) const */

type_3 * __thiscall std::locale::facet::_M_sso_shim(facet *var_11,type_4 *var_3)

{
  bool bVar1;
  type_1 *var_13;
  type_1 *var_5;
  int *var_2;
  type_2 *var_4;
  char *pcVar6;
  type_3 *p_Var7;
  
  var_2 = (int *)var_1(var_11,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);
  if (var_2 == (int *)0x0) {
    if (var_3 == (type_4 *)PTR_id_004c32f8) {
      var_4 = (type_2 *)(*(type_5 *)PTR_operator_new_004c13a8)(0x68);
      *(type_6 *)(var_4 + 4) = 0;
      *(type_6 *)(var_4 + 8) = 0;
      *(type_6 *)(var_4 + 0xc) = 0;
      var_5 = PTR_vtable_004c13b0;
      var_13 = PTR_operator_new_004c13a8;
      var_4[0x10] = (type_2)0x0;
      *(type_6 *)(var_4 + 0x14) = 0;
      *(type_6 *)(var_4 + 0x18) = 0;
      *(type_1 **)var_4 = var_5 + 8;
      *(type_6 *)(var_4 + 0x1c) = 0;
      *(type_6 *)(var_4 + 0x20) = 0;
      *(type_7 *)(var_4 + 0x24) = 0;
      var_4[100] = (type_2)0x0;
      p_Var7 = (type_3 *)(*(type_5 *)var_13)(0x14);
      p_Var7->__locales[1] = (type_2 *)0x0;
      p_Var7->__locales[2] = var_4;
                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */
      p_Var7->__locales[0] = (type_2 *)(var_6 + 8);
      var_7<var_8>::var_9((var_7<var_8> *)p_Var7,(type_3 *)0x0);
      bVar1 = var_10 == (type_1 *)0x0;
      p_Var7->__locales[3] = (type_2 *)var_11;
      if (bVar1) {
        *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
      }
      else {
        var_12(0);
        *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
        var_12(0);
      }
      var_13 = var_16;
      p_Var7->__locales[4] = var_4;
                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */
      p_Var7->__locales[0] = (type_2 *)(var_13 + -0xa98);
      __facet_shims::var_14<var_8>(0,var_11,var_4);
      return p_Var7;
    }
    if (var_3 == (type_4 *)PTR_id_004c3314) {
      p_Var7 = (type_3 *)(*(type_5 *)PTR_operator_new_004c13a8)(0x10);
      p_Var7->__locales[1] = (type_2 *)0x0;
      var_13 = PTR__S_get_c_locale_004c13c0;
                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */
      p_Var7->__locales[0] = (type_2 *)(var_15 + 8);
      var_4 = (type_2 *)(*(type_5 *)var_13)();
      p_Var7->__locales[2] = var_4;
      bVar1 = var_10 == (type_1 *)0x0;
      p_Var7->__locales[3] = (type_2 *)var_11;
      if (bVar1) {
        *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
      }
      else {
        var_12(0);
        *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
        var_12(0);
      }
      p_Var7->__locales[0] = (type_2 *)(var_16 + -0xa74);
    }
    else if (var_3 == (type_4 *)PTR_id_004c3338) {
      p_Var7 = (type_3 *)(*(type_5 *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (type_2 *)0x0;
      p_Var7->__locales[2] = (type_2 *)var_11;
      bVar1 = var_10 == (type_1 *)0x0;
      p_Var7->__locales[0] = (type_2 *)(var_17 + 8);
      if (bVar1) {
        *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
      }
      else {
        var_12(0);
        *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
        var_12(0);
      }
      p_Var7->__locales[0] = (type_2 *)(var_16 + -0x948);
    }
    else if (var_3 == (type_4 *)PTR_id_004c3330) {
      p_Var7 = (type_3 *)(*(type_5 *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (type_2 *)0x0;
      p_Var7->__locales[2] = (type_2 *)var_11;
      bVar1 = var_10 == (type_1 *)0x0;
      p_Var7->__locales[0] = (type_2 *)(var_18 + 8);
      if (bVar1) {
        *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
      }
      else {
        var_12(0);
        *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
        var_12(0);
      }
      p_Var7->__locales[0] = (type_2 *)(var_19 + 0x7588);
    }
    else {
      if (var_3 != (type_4 *)PTR_id_004c3328) {
        if (var_3 == (type_4 *)PTR_id_004c32c4) {
          var_4 = (type_2 *)(*(type_5 *)PTR_operator_new_004c13a8)(0x44);
          *(type_6 *)(var_4 + 4) = 0;
          *(type_6 *)(var_4 + 8) = 0;
          *(type_6 *)(var_4 + 0xc) = 0;
          var_5 = PTR_vtable_004c13c4;
          var_13 = PTR_operator_new_004c13a8;
          *(type_7 *)(var_4 + 0x10) = 0;
          var_4[0x12] = (type_2)0x0;
          *(type_6 *)(var_4 + 0x14) = 0;
          *(type_1 **)var_4 = var_5 + 8;
          *(type_6 *)(var_4 + 0x18) = 0;
          *(type_6 *)(var_4 + 0x1c) = 0;
          *(type_6 *)(var_4 + 0x20) = 0;
          *(type_6 *)(var_4 + 0x24) = 0;
          *(type_6 *)(var_4 + 0x28) = 0;
          *(type_6 *)(var_4 + 0x2c) = 0;
          *(type_6 *)(var_4 + 0x30) = 0;
          *(type_6 *)(var_4 + 0x34) = 0;
          var_4[0x43] = (type_2)0x0;
          p_Var7 = (type_3 *)(*(type_5 *)var_13)(0x14);
          p_Var7->__locales[1] = (type_2 *)0x0;
          p_Var7->__locales[2] = var_4;
                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */
          p_Var7->__locales[0] = (type_2 *)(var_20 + 8);
          var_21<var_8,true>::var_22(p_Var7,(char *)0x0);
          bVar1 = var_10 == (type_1 *)0x0;
          p_Var7->__locales[3] = (type_2 *)var_11;
          if (bVar1) {
            *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
          }
          else {
            var_12(0);
            *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
            var_12(0);
          }
          var_13 = var_16;
          p_Var7->__locales[4] = var_4;
                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */
          p_Var7->__locales[0] = (type_2 *)(var_13 + -0xa58);
          __facet_shims::var_23<var_8,true>(0,var_11,var_4);
        }
        else {
          if (var_3 != (type_4 *)PTR_id_004c32cc) {
            if (var_3 == (type_4 *)PTR_id_004c3340) {
              p_Var7 = (type_3 *)(*(type_5 *)PTR_operator_new_004c13a8)(0x14);
                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */
              (*(type_5 *)PTR_messages_004c3308)(p_Var7,0);
              bVar1 = var_10 == (type_1 *)0x0;
              p_Var7->__locales[4] = (type_2 *)var_11;
              if (bVar1) {
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
              }
              else {
                var_12(0);
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
                var_12(0);
              }
              p_Var7->__locales[0] = (type_2 *)(var_19 + 0x75b8);
              return p_Var7;
            }
            if (var_3 == (type_4 *)PTR_id_004c3194) {
              var_4 = (type_2 *)(*(type_5 *)PTR_operator_new_004c13a8)(0x128);
              *(type_6 *)(var_4 + 4) = 0;
              *(type_6 *)(var_4 + 8) = 0;
              *(type_6 *)(var_4 + 0xc) = 0;
              var_5 = PTR_vtable_004c13e8;
              var_13 = PTR_operator_new_004c13a8;
              var_4[0x10] = (type_2)0x0;
              *(type_6 *)(var_4 + 0x14) = 0;
              *(type_6 *)(var_4 + 0x18) = 0;
              *(type_1 **)var_4 = var_5 + 8;
              *(type_6 *)(var_4 + 0x1c) = 0;
              *(type_6 *)(var_4 + 0x20) = 0;
              *(type_6 *)(var_4 + 0x24) = 0;
              *(type_6 *)(var_4 + 0x28) = 0;
              var_4[0x124] = (type_2)0x0;
              p_Var7 = (type_3 *)(*(type_5 *)var_13)(0x14);
              p_Var7->__locales[1] = (type_2 *)0x0;
              p_Var7->__locales[2] = var_4;
                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */
              p_Var7->__locales[0] = (type_2 *)(var_24 + 8);
              var_7<var_25>::var_9
                        ((var_7<var_25> *)p_Var7,(type_3 *)0x0);
              bVar1 = var_10 == (type_1 *)0x0;
              p_Var7->__locales[3] = (type_2 *)var_11;
              if (bVar1) {
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
              }
              else {
                var_12(0);
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
                var_12(0);
              }
              var_13 = var_16;
              p_Var7->__locales[4] = var_4;
                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */
              p_Var7->__locales[0] = (type_2 *)(var_13 + -0x9f0);
              __facet_shims::var_14<var_25>(0,var_11,var_4);
              return p_Var7;
            }
            if (var_3 == (type_4 *)PTR_id_004c31b8) {
              p_Var7 = (type_3 *)(*(type_5 *)PTR_operator_new_004c13a8)(0x10);
              p_Var7->__locales[1] = (type_2 *)0x0;
              var_13 = PTR__S_get_c_locale_004c13c0;
                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */
              p_Var7->__locales[0] = (type_2 *)(var_26 + 8);
              var_4 = (type_2 *)(*(type_5 *)var_13)();
              p_Var7->__locales[2] = var_4;
              bVar1 = var_10 == (type_1 *)0x0;
              p_Var7->__locales[3] = (type_2 *)var_11;
              if (bVar1) {
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
              }
              else {
                var_12(0);
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
                var_12(0);
              }
              p_Var7->__locales[0] = (type_2 *)(var_16 + -0x9cc);
              return p_Var7;
            }
            if (var_3 == (type_4 *)PTR_id_004c31dc) {
              p_Var7 = (type_3 *)(*(type_5 *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (type_2 *)0x0;
              p_Var7->__locales[2] = (type_2 *)var_11;
              bVar1 = var_10 == (type_1 *)0x0;
              p_Var7->__locales[0] = (type_2 *)(var_27 + 8);
              if (bVar1) {
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
              }
              else {
                var_12(0);
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
                var_12(0);
              }
              p_Var7->__locales[0] = (type_2 *)(var_16 + -0x91c);
              return p_Var7;
            }
            if (var_3 == (type_4 *)PTR_id_004c31d4) {
              p_Var7 = (type_3 *)(*(type_5 *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (type_2 *)0x0;
              p_Var7->__locales[2] = (type_2 *)var_11;
              bVar1 = var_10 == (type_1 *)0x0;
              p_Var7->__locales[0] = (type_2 *)(var_28 + 8);
              if (bVar1) {
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
              }
              else {
                var_12(0);
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
                var_12(0);
              }
              p_Var7->__locales[0] = (type_2 *)(var_19 + 0x75d4);
              return p_Var7;
            }
            if (var_3 == (type_4 *)PTR_id_004c31cc) {
              p_Var7 = (type_3 *)(*(type_5 *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (type_2 *)0x0;
              p_Var7->__locales[2] = (type_2 *)var_11;
              bVar1 = var_10 == (type_1 *)0x0;
              p_Var7->__locales[0] = (type_2 *)(var_29 + 8);
              if (bVar1) {
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
              }
              else {
                var_12(0);
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
                var_12(0);
              }
              p_Var7->__locales[0] = (type_2 *)(var_19 + 0x75ec);
              return p_Var7;
            }
            if (var_3 == (type_4 *)PTR_id_004c3158) {
              var_4 = (type_2 *)(*(type_5 *)PTR_operator_new_004c13a8)(0x70);
              *(type_6 *)(var_4 + 4) = 0;
              *(type_6 *)(var_4 + 8) = 0;
              *(type_6 *)(var_4 + 0xc) = 0;
              var_5 = PTR_vtable_004c13f8;
              var_13 = PTR_operator_new_004c13a8;
              var_4[0x10] = (type_2)0x0;
              *(type_6 *)(var_4 + 0x14) = 0;
              *(type_6 *)(var_4 + 0x18) = 0;
              *(type_1 **)var_4 = var_5 + 8;
              *(type_6 *)(var_4 + 0x1c) = 0;
              *(type_6 *)(var_4 + 0x20) = 0;
              *(type_6 *)(var_4 + 0x24) = 0;
              *(type_6 *)(var_4 + 0x28) = 0;
              *(type_6 *)(var_4 + 0x2c) = 0;
              *(type_6 *)(var_4 + 0x30) = 0;
              *(type_6 *)(var_4 + 0x34) = 0;
              *(type_6 *)(var_4 + 0x38) = 0;
              *(type_6 *)(var_4 + 0x3c) = 0;
              var_4[0x6c] = (type_2)0x0;
              p_Var7 = (type_3 *)(*(type_5 *)var_13)(0x14);
              p_Var7->__locales[1] = (type_2 *)0x0;
              p_Var7->__locales[2] = var_4;
                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */
              p_Var7->__locales[0] = (type_2 *)(var_30 + 8);
              var_21<var_25,true>::var_22(p_Var7,(char *)0x0);
              bVar1 = var_10 == (type_1 *)0x0;
              p_Var7->__locales[3] = (type_2 *)var_11;
              if (bVar1) {
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
              }
              else {
                var_12(0);
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
                var_12(0);
              }
              var_13 = var_16;
              p_Var7->__locales[4] = var_4;
                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */
              p_Var7->__locales[0] = (type_2 *)(var_13 + -0x9b0);
              __facet_shims::var_23<var_25,true>(0,var_11,var_4);
              return p_Var7;
            }
            if (var_3 == (type_4 *)PTR_id_004c3168) {
              var_4 = (type_2 *)(*(type_5 *)PTR_operator_new_004c13a8)(0x70);
              *(type_6 *)(var_4 + 4) = 0;
              *(type_6 *)(var_4 + 8) = 0;
              *(type_6 *)(var_4 + 0xc) = 0;
              var_5 = PTR_vtable_004c1408;
              var_13 = PTR_operator_new_004c13a8;
              var_4[0x10] = (type_2)0x0;
              *(type_6 *)(var_4 + 0x14) = 0;
              *(type_6 *)(var_4 + 0x18) = 0;
              *(type_1 **)var_4 = var_5 + 8;
              *(type_6 *)(var_4 + 0x1c) = 0;
              *(type_6 *)(var_4 + 0x20) = 0;
              *(type_6 *)(var_4 + 0x24) = 0;
              *(type_6 *)(var_4 + 0x28) = 0;
              *(type_6 *)(var_4 + 0x2c) = 0;
              *(type_6 *)(var_4 + 0x30) = 0;
              *(type_6 *)(var_4 + 0x34) = 0;
              *(type_6 *)(var_4 + 0x38) = 0;
              *(type_6 *)(var_4 + 0x3c) = 0;
              var_4[0x6c] = (type_2)0x0;
              p_Var7 = (type_3 *)(*(type_5 *)var_13)(0x14);
              p_Var7->__locales[1] = (type_2 *)0x0;
              p_Var7->__locales[2] = var_4;
                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */
              p_Var7->__locales[0] = (type_2 *)(var_31 + 8);
              var_21<var_25,false>::var_22(p_Var7,(char *)0x0);
              bVar1 = var_10 == (type_1 *)0x0;
              p_Var7->__locales[3] = (type_2 *)var_11;
              if (bVar1) {
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
              }
              else {
                var_12(0);
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
                var_12(0);
              }
              var_13 = var_16;
              p_Var7->__locales[4] = var_4;
                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */
              p_Var7->__locales[0] = (type_2 *)(var_13 + -0x97c);
              __facet_shims::var_23<var_25,false>(0,var_11,var_4);
              return p_Var7;
            }
            if (var_3 == (type_4 *)PTR_id_004c31e4) {
              p_Var7 = (type_3 *)(*(type_5 *)PTR_operator_new_004c13a8)(0x14);
                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */
              (*(type_5 *)PTR_messages_004c31ac)(p_Var7,0);
              bVar1 = var_10 == (type_1 *)0x0;
              p_Var7->__locales[4] = (type_2 *)var_11;
              if (bVar1) {
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
              }
              else {
                var_12(0);
                *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
                var_12(0);
              }
              p_Var7->__locales[0] = (type_2 *)(var_19 + 0x7604);
              return p_Var7;
            }
            pcVar6 = var_32 + -0x2e54;
            var_33(pcVar6);
                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */
            (*(type_5 *)PTR__facet_004c12f8)(var_3);
            (*(type_5 *)PTR_operator_delete_004c12fc)(var_3);
            p_Var7 = (type_3 *)(*(type_5 *)PTR__Unwind_Resume_004c12c8)(pcVar6);
            return p_Var7;
          }
          var_4 = (type_2 *)(*(type_5 *)PTR_operator_new_004c13a8)(0x44);
          *(type_6 *)(var_4 + 4) = 0;
          *(type_6 *)(var_4 + 8) = 0;
          *(type_6 *)(var_4 + 0xc) = 0;
          var_5 = PTR_vtable_004c13d4;
          var_13 = PTR_operator_new_004c13a8;
          *(type_7 *)(var_4 + 0x10) = 0;
          var_4[0x12] = (type_2)0x0;
          *(type_6 *)(var_4 + 0x14) = 0;
          *(type_1 **)var_4 = var_5 + 8;
          *(type_6 *)(var_4 + 0x18) = 0;
          *(type_6 *)(var_4 + 0x1c) = 0;
          *(type_6 *)(var_4 + 0x20) = 0;
          *(type_6 *)(var_4 + 0x24) = 0;
          *(type_6 *)(var_4 + 0x28) = 0;
          *(type_6 *)(var_4 + 0x2c) = 0;
          *(type_6 *)(var_4 + 0x30) = 0;
          *(type_6 *)(var_4 + 0x34) = 0;
          var_4[0x43] = (type_2)0x0;
          p_Var7 = (type_3 *)(*(type_5 *)var_13)(0x14);
          p_Var7->__locales[1] = (type_2 *)0x0;
          p_Var7->__locales[2] = var_4;
                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */
          p_Var7->__locales[0] = (type_2 *)(var_34 + 8);
          var_21<var_8,false>::var_22(p_Var7,(char *)0x0);
          bVar1 = var_10 == (type_1 *)0x0;
          p_Var7->__locales[3] = (type_2 *)var_11;
          if (bVar1) {
            *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
          }
          else {
            var_12(0);
            *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
            var_12(0);
          }
          var_13 = var_16;
          p_Var7->__locales[4] = var_4;
                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */
          p_Var7->__locales[0] = (type_2 *)(var_13 + -0xa24);
          __facet_shims::var_23<var_8,false>(0,var_11,var_4);
        }
        return p_Var7;
      }
      p_Var7 = (type_3 *)(*(type_5 *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (type_2 *)0x0;
      p_Var7->__locales[2] = (type_2 *)var_11;
      bVar1 = var_10 == (type_1 *)0x0;
      p_Var7->__locales[0] = (type_2 *)(var_35 + 8);
      if (bVar1) {
        *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
      }
      else {
        var_12(0);
        *(int *)(var_11 + 4) = *(int *)(var_11 + 4) + 1;
        var_12(0);
      }
      p_Var7->__locales[0] = (type_2 *)(var_19 + 0x75a0);
    }
  }
  else {
    p_Var7 = (type_3 *)*var_2;
  }
  return p_Var7;
}


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

/* std::locale::facet::MASKED(std::locale::id const*) const */

__locale_struct * __thiscall std::locale::facet::MASKED(facet *this,id *param_1)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  int *piVar4;
  __locale_data *p_Var5;
  char *pcVar6;
  __locale_struct *p_Var7;
  
  piVar4 = (int *)__dynamic_cast(this,PTR_PTR_004c1364,PTR_PTR_004c1360,0xfffffffe);
  if (piVar4 == (int *)0x0) {
    if (param_1 == (id *)PTR_id_004c32f8) {
      p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x68);
      *(undefined4 *)(p_Var5 + 4) = 0;
      *(undefined4 *)(p_Var5 + 8) = 0;
      *(undefined4 *)(p_Var5 + 0xc) = 0;
      puVar3 = PTR_vtable_004c13b0;
      puVar2 = PTR_operator_new_004c13a8;
      p_Var5[0x10] = (__locale_data)0x0;
      *(undefined4 *)(p_Var5 + 0x14) = 0;
      *(undefined4 *)(p_Var5 + 0x18) = 0;
      *(undefined **)p_Var5 = puVar3 + 8;
      *(undefined4 *)(p_Var5 + 0x1c) = 0;
      *(undefined4 *)(p_Var5 + 0x20) = 0;
      *(undefined2 *)(p_Var5 + 0x24) = 0;
      p_Var5[100] = (__locale_data)0x0;
      p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 0037ff68 to 0037ff6f has its CatchHandler @ 00380ae0 */
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c32e0 + 8);
      numpunct<char>::_M_initialize_numpunct((numpunct<char> *)p_Var7,(__locale_struct *)0x0);
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[3] = (__locale_data *)this;
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      puVar2 = PTR_PTR_004c1268;
      p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 0037ffbc to 0037ffc3 has its CatchHandler @ 00380aac */
      p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa98);
      __facet_shims::__numpunct_fill_cache<char>(0,this,p_Var5);
      return p_Var7;
    }
    if (param_1 == (id *)PTR_id_004c3314) {
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      puVar2 = PTR__S_get_c_locale_004c13c0;
                    /* try { // try from 003800dc to 003800e3 has its CatchHandler @ 00380aa4 */
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3254 + 8);
      p_Var5 = (__locale_data *)(*(code *)puVar2)();
      p_Var7->__locales[2] = p_Var5;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[3] = (__locale_data *)this;
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0xa74);
    }
    else if (param_1 == (id *)PTR_id_004c3338) {
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = (__locale_data *)this;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3250 + 8);
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x948);
    }
    else if (param_1 == (id *)PTR_id_004c3330) {
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = (__locale_data *)this;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3248 + 8);
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7588);
    }
    else {
      if (param_1 != (id *)PTR_id_004c3328) {
        if (param_1 == (id *)PTR_id_004c32c4) {
          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);
          *(undefined4 *)(p_Var5 + 4) = 0;
          *(undefined4 *)(p_Var5 + 8) = 0;
          *(undefined4 *)(p_Var5 + 0xc) = 0;
          puVar3 = PTR_vtable_004c13c4;
          puVar2 = PTR_operator_new_004c13a8;
          *(undefined2 *)(p_Var5 + 0x10) = 0;
          p_Var5[0x12] = (__locale_data)0x0;
          *(undefined4 *)(p_Var5 + 0x14) = 0;
          *(undefined **)p_Var5 = puVar3 + 8;
          *(undefined4 *)(p_Var5 + 0x18) = 0;
          *(undefined4 *)(p_Var5 + 0x1c) = 0;
          *(undefined4 *)(p_Var5 + 0x20) = 0;
          *(undefined4 *)(p_Var5 + 0x24) = 0;
          *(undefined4 *)(p_Var5 + 0x28) = 0;
          *(undefined4 *)(p_Var5 + 0x2c) = 0;
          *(undefined4 *)(p_Var5 + 0x30) = 0;
          *(undefined4 *)(p_Var5 + 0x34) = 0;
          p_Var5[0x43] = (__locale_data)0x0;
          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
          p_Var7->__locales[1] = (__locale_data *)0x0;
          p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 0038027c to 00380283 has its CatchHandler @ 003809f8 */
          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3298 + 8);
          moneypunct<char,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
          p_Var7->__locales[3] = (__locale_data *)this;
          if (bVar1) {
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
          }
          else {
            SYNC(0);
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
            SYNC(0);
          }
          puVar2 = PTR_PTR_004c1268;
          p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 003802d0 to 003802d7 has its CatchHandler @ 00380948 */
          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa58);
          __facet_shims::__moneypunct_fill_cache<char,true>(0,this,p_Var5);
        }
        else {
          if (param_1 != (id *)PTR_id_004c32cc) {
            if (param_1 == (id *)PTR_id_004c3340) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);
                    /* try { // try from 00380410 to 00380417 has its CatchHandler @ 00380a34 */
              (*(code *)PTR_messages_004c3308)(p_Var7,0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[4] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75b8);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c3194) {
              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x128);
              *(undefined4 *)(p_Var5 + 4) = 0;
              *(undefined4 *)(p_Var5 + 8) = 0;
              *(undefined4 *)(p_Var5 + 0xc) = 0;
              puVar3 = PTR_vtable_004c13e8;
              puVar2 = PTR_operator_new_004c13a8;
              p_Var5[0x10] = (__locale_data)0x0;
              *(undefined4 *)(p_Var5 + 0x14) = 0;
              *(undefined4 *)(p_Var5 + 0x18) = 0;
              *(undefined **)p_Var5 = puVar3 + 8;
              *(undefined4 *)(p_Var5 + 0x1c) = 0;
              *(undefined4 *)(p_Var5 + 0x20) = 0;
              *(undefined4 *)(p_Var5 + 0x24) = 0;
              *(undefined4 *)(p_Var5 + 0x28) = 0;
              p_Var5[0x124] = (__locale_data)0x0;
              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 003804e0 to 003804e7 has its CatchHandler @ 00380990 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c317c + 8);
              numpunct<wchar_t>::_M_initialize_numpunct
                        ((numpunct<wchar_t> *)p_Var7,(__locale_struct *)0x0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              puVar2 = PTR_PTR_004c1268;
              p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 00380534 to 0038053b has its CatchHandler @ 00380a00 */
              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9f0);
              __facet_shims::__numpunct_fill_cache<wchar_t>(0,this,p_Var5);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31b8) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x10);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              puVar2 = PTR__S_get_c_locale_004c13c0;
                    /* try { // try from 00380070 to 00380077 has its CatchHandler @ 003809a0 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30dc + 8);
              p_Var5 = (__locale_data *)(*(code *)puVar2)();
              p_Var7->__locales[2] = p_Var5;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x9cc);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31dc) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = (__locale_data *)this;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d8 + 8);
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_PTR_004c1268 + -0x91c);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31d4) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = (__locale_data *)this;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d0 + 8);
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75d4);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31cc) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = (__locale_data *)this;
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c30d4 + 8);
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75ec);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c3158) {
              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);
              *(undefined4 *)(p_Var5 + 4) = 0;
              *(undefined4 *)(p_Var5 + 8) = 0;
              *(undefined4 *)(p_Var5 + 0xc) = 0;
              puVar3 = PTR_vtable_004c13f8;
              puVar2 = PTR_operator_new_004c13a8;
              p_Var5[0x10] = (__locale_data)0x0;
              *(undefined4 *)(p_Var5 + 0x14) = 0;
              *(undefined4 *)(p_Var5 + 0x18) = 0;
              *(undefined **)p_Var5 = puVar3 + 8;
              *(undefined4 *)(p_Var5 + 0x1c) = 0;
              *(undefined4 *)(p_Var5 + 0x20) = 0;
              *(undefined4 *)(p_Var5 + 0x24) = 0;
              *(undefined4 *)(p_Var5 + 0x28) = 0;
              *(undefined4 *)(p_Var5 + 0x2c) = 0;
              *(undefined4 *)(p_Var5 + 0x30) = 0;
              *(undefined4 *)(p_Var5 + 0x34) = 0;
              *(undefined4 *)(p_Var5 + 0x38) = 0;
              *(undefined4 *)(p_Var5 + 0x3c) = 0;
              p_Var5[0x6c] = (__locale_data)0x0;
              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 0038073c to 00380743 has its CatchHandler @ 00380998 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c312c + 8);
              moneypunct<wchar_t,true>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              puVar2 = PTR_PTR_004c1268;
              p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 00380790 to 00380797 has its CatchHandler @ 003809c4 */
              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x9b0);
              __facet_shims::__moneypunct_fill_cache<wchar_t,true>(0,this,p_Var5);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c3168) {
              p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x70);
              *(undefined4 *)(p_Var5 + 4) = 0;
              *(undefined4 *)(p_Var5 + 8) = 0;
              *(undefined4 *)(p_Var5 + 0xc) = 0;
              puVar3 = PTR_vtable_004c1408;
              puVar2 = PTR_operator_new_004c13a8;
              p_Var5[0x10] = (__locale_data)0x0;
              *(undefined4 *)(p_Var5 + 0x14) = 0;
              *(undefined4 *)(p_Var5 + 0x18) = 0;
              *(undefined **)p_Var5 = puVar3 + 8;
              *(undefined4 *)(p_Var5 + 0x1c) = 0;
              *(undefined4 *)(p_Var5 + 0x20) = 0;
              *(undefined4 *)(p_Var5 + 0x24) = 0;
              *(undefined4 *)(p_Var5 + 0x28) = 0;
              *(undefined4 *)(p_Var5 + 0x2c) = 0;
              *(undefined4 *)(p_Var5 + 0x30) = 0;
              *(undefined4 *)(p_Var5 + 0x34) = 0;
              *(undefined4 *)(p_Var5 + 0x38) = 0;
              *(undefined4 *)(p_Var5 + 0x3c) = 0;
              p_Var5[0x6c] = (__locale_data)0x0;
              p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
              p_Var7->__locales[1] = (__locale_data *)0x0;
              p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 00380854 to 0038085b has its CatchHandler @ 00380908 */
              p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c3100 + 8);
              moneypunct<wchar_t,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[3] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              puVar2 = PTR_PTR_004c1268;
              p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 003808a8 to 003808af has its CatchHandler @ 00380a3c */
              p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0x97c);
              __facet_shims::__moneypunct_fill_cache<wchar_t,false>(0,this,p_Var5);
              return p_Var7;
            }
            if (param_1 == (id *)PTR_id_004c31e4) {
              p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0x14);
                    /* try { // try from 0037feac to 0037feb3 has its CatchHandler @ 0038097c */
              (*(code *)PTR_messages_004c31ac)(p_Var7,0);
              bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
              p_Var7->__locales[4] = (__locale_data *)this;
              if (bVar1) {
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
              }
              else {
                SYNC(0);
                *(int *)(this + 4) = *(int *)(this + 4) + 1;
                SYNC(0);
              }
              p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x7604);
              return p_Var7;
            }
            pcVar6 = PTR_UINT_004c12dc + -0x2e54;
            __throw_logic_error(pcVar6);
                    /* catch() { ... } // from try @ 00380854 with catch @ 00380908 */
            (*(code *)PTR__facet_004c12f8)(param_1);
            (*(code *)PTR_operator_delete_004c12fc)(param_1);
            p_Var7 = (__locale_struct *)(*(code *)PTR_FUN_004c12c8)(pcVar6);
            return p_Var7;
          }
          p_Var5 = (__locale_data *)(*(code *)PTR_operator_new_004c13a8)(0x44);
          *(undefined4 *)(p_Var5 + 4) = 0;
          *(undefined4 *)(p_Var5 + 8) = 0;
          *(undefined4 *)(p_Var5 + 0xc) = 0;
          puVar3 = PTR_vtable_004c13d4;
          puVar2 = PTR_operator_new_004c13a8;
          *(undefined2 *)(p_Var5 + 0x10) = 0;
          p_Var5[0x12] = (__locale_data)0x0;
          *(undefined4 *)(p_Var5 + 0x14) = 0;
          *(undefined **)p_Var5 = puVar3 + 8;
          *(undefined4 *)(p_Var5 + 0x18) = 0;
          *(undefined4 *)(p_Var5 + 0x1c) = 0;
          *(undefined4 *)(p_Var5 + 0x20) = 0;
          *(undefined4 *)(p_Var5 + 0x24) = 0;
          *(undefined4 *)(p_Var5 + 0x28) = 0;
          *(undefined4 *)(p_Var5 + 0x2c) = 0;
          *(undefined4 *)(p_Var5 + 0x30) = 0;
          *(undefined4 *)(p_Var5 + 0x34) = 0;
          p_Var5[0x43] = (__locale_data)0x0;
          p_Var7 = (__locale_struct *)(*(code *)puVar2)(0x14);
          p_Var7->__locales[1] = (__locale_data *)0x0;
          p_Var7->__locales[2] = p_Var5;
                    /* try { // try from 00380380 to 00380387 has its CatchHandler @ 00380940 */
          p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c326c + 8);
          moneypunct<char,false>::_M_initialize_moneypunct(p_Var7,(char *)0x0);
          bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
          p_Var7->__locales[3] = (__locale_data *)this;
          if (bVar1) {
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
          }
          else {
            SYNC(0);
            *(int *)(this + 4) = *(int *)(this + 4) + 1;
            SYNC(0);
          }
          puVar2 = PTR_PTR_004c1268;
          p_Var7->__locales[4] = p_Var5;
                    /* try { // try from 003803d4 to 003803db has its CatchHandler @ 00380a70 */
          p_Var7->__locales[0] = (__locale_data *)(puVar2 + -0xa24);
          __facet_shims::__moneypunct_fill_cache<char,false>(0,this,p_Var5);
        }
        return p_Var7;
      }
      p_Var7 = (__locale_struct *)(*(code *)PTR_operator_new_004c13a8)(0xc);
      p_Var7->__locales[1] = (__locale_data *)0x0;
      p_Var7->__locales[2] = (__locale_data *)this;
      bVar1 = PTR___pthread_key_create_004c5aa0 == (undefined *)0x0;
      p_Var7->__locales[0] = (__locale_data *)(PTR_vtable_004c324c + 8);
      if (bVar1) {
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
      }
      else {
        SYNC(0);
        *(int *)(this + 4) = *(int *)(this + 4) + 1;
        SYNC(0);
      }
      p_Var7->__locales[0] = (__locale_data *)(PTR_uleb128_004affff_1_004c1274 + 0x75a0);
    }
  }
  else {
    p_Var7 = (__locale_struct *)*piVar4;
  }
  return p_Var7;
}

