
/* std::locale::_Impl::_M_init_extra(std::locale::facet**) */

void __thiscall std::locale::_Impl::_M_init_extra(_Impl *this,facet **param_1)

{
  facet *pfVar1;
  facet *pfVar2;
  facet *pfVar3;
  facet *pfVar4;
  facet *pfVar5;
  facet *pfVar6;
  undefined *puVar7;
  long lVar8;
  long lVar9;
  long lVar10;
  
  pfVar1 = *param_1;
  pfVar2 = param_1[1];
  pfVar3 = param_1[2];
  (anonymous_namespace)::numpunct_c._8_4_ = 1;
  (anonymous_namespace)::numpunct_c._0_8_ = &PTR__numpunct_00438ca0;
  (anonymous_namespace)::numpunct_c._16_8_ = pfVar1;
                    /* try { // try from 00357b4b to 00357b4f has its CatchHandler @ 003582ac */
  numpunct<char>::_M_initialize_numpunct
            ((numpunct<char> *)(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0);
  puVar7 = PTR___pthread_key_create_0043dee8;
  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::numpunct_c._8_4_ = (anonymous_namespace)::numpunct_c._8_4_ + 1;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&numpunct<char>::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::numpunct_c;
  (anonymous_namespace)::collate_c._8_4_ = 1;
  (anonymous_namespace)::collate_c._0_8_ = &PTR__collate_00438c30;
                    /* try { // try from 00357ba9 to 00357bad has its CatchHandler @ 00358284 */
  (anonymous_namespace)::collate_c._16_8_ = facet::_S_get_c_locale();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::collate_c._8_4_ = (anonymous_namespace)::collate_c._8_4_ + 1;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&collate<char>::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::collate_c;
  (anonymous_namespace)::moneypunct_cf._8_4_ = 1;
  (anonymous_namespace)::moneypunct_cf._0_8_ = &PTR__moneypunct_00438eb0;
  (anonymous_namespace)::moneypunct_cf._16_8_ = pfVar2;
                    /* try { // try from 00357c19 to 00357c1d has its CatchHandler @ 0035827c */
  moneypunct<char,false>::_M_initialize_moneypunct
            ((__locale_struct *)(anonymous_namespace)::moneypunct_cf,(char *)0x0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::moneypunct_cf._8_4_ = (anonymous_namespace)::moneypunct_cf._8_4_ + 1;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_cf;
  (anonymous_namespace)::moneypunct_ct._8_4_ = 1;
  (anonymous_namespace)::moneypunct_ct._0_8_ = &PTR__moneypunct_00438e48;
  (anonymous_namespace)::moneypunct_ct._16_8_ = pfVar3;
                    /* try { // try from 00357c82 to 00357c86 has its CatchHandler @ 00358294 */
  moneypunct<char,true>::_M_initialize_moneypunct
            ((__locale_struct *)(anonymous_namespace)::moneypunct_ct,(char *)0x0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::moneypunct_ct._8_4_ = (anonymous_namespace)::moneypunct_ct._8_4_ + 1;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_ct;
  (anonymous_namespace)::money_get_c._0_8_ = &PTR__money_get_004390d0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::money_get_c._8_4_ = 2;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>
                                   ::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_get_c;
  (anonymous_namespace)::money_put_c._0_8_ = &PTR__money_put_00439100;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::money_put_c._8_4_ = 2;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>
                                   ::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_put_c;
  (anonymous_namespace)::time_get_c._0_8_ = &PTR__time_get_00439180;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::time_get_c._8_4_ = 2;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>
                                   ::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::time_get_c;
  messages<char>::messages((messages<char> *)(anonymous_namespace)::messages_c,1);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::messages_c._8_4_ = (anonymous_namespace)::messages_c._8_4_ + 1;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&messages<char>::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::messages_c;
  pfVar4 = param_1[4];
  (anonymous_namespace)::numpunct_w._8_4_ = 1;
  pfVar5 = param_1[3];
  pfVar6 = param_1[5];
  (anonymous_namespace)::numpunct_w._0_8_ = &PTR__numpunct_0043bd80;
  (anonymous_namespace)::numpunct_w._16_8_ = pfVar5;
                    /* try { // try from 00357e3f to 00357e43 has its CatchHandler @ 0035828c */
  numpunct<wchar_t>::_M_initialize_numpunct
            ((numpunct<wchar_t> *)(anonymous_namespace)::numpunct_w,(__locale_struct *)0x0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::numpunct_w._8_4_ = (anonymous_namespace)::numpunct_w._8_4_ + 1;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::numpunct_w;
  (anonymous_namespace)::collate_w._8_4_ = 1;
  (anonymous_namespace)::collate_w._0_8_ = &PTR__collate_0043bc90;
                    /* try { // try from 00357e96 to 00357e9a has its CatchHandler @ 003582a4 */
  (anonymous_namespace)::collate_w._16_8_ = facet::_S_get_c_locale();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::collate_w._8_4_ = (anonymous_namespace)::collate_w._8_4_ + 1;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&collate<wchar_t>::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::collate_w;
  (anonymous_namespace)::moneypunct_wf._8_4_ = 1;
  (anonymous_namespace)::moneypunct_wf._0_8_ = &PTR__moneypunct_0043bf90;
  (anonymous_namespace)::moneypunct_wf._16_8_ = pfVar4;
                    /* try { // try from 00357f0b to 00357f0f has its CatchHandler @ 0035829c */
  moneypunct<wchar_t,false>::_M_initialize_moneypunct
            ((__locale_struct *)(anonymous_namespace)::moneypunct_wf,(char *)0x0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::moneypunct_wf._8_4_ = (anonymous_namespace)::moneypunct_wf._8_4_ + 1;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_wf;
  (anonymous_namespace)::moneypunct_wt._8_4_ = 1;
  (anonymous_namespace)::moneypunct_wt._0_8_ = &PTR__moneypunct_0043bf28;
  (anonymous_namespace)::moneypunct_wt._16_8_ = pfVar6;
                    /* try { // try from 00357f74 to 00357f78 has its CatchHandler @ 003582b4 */
  moneypunct<wchar_t,true>::_M_initialize_moneypunct
            ((__locale_struct *)(anonymous_namespace)::moneypunct_wt,(char *)0x0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::moneypunct_wt._8_4_ = (anonymous_namespace)::moneypunct_wt._8_4_ + 1;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_wt;
  (anonymous_namespace)::money_get_w._0_8_ = &PTR__money_get_0043c1b0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::money_get_w._8_4_ = 2;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>
                                   ::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_get_w;
  (anonymous_namespace)::money_put_w._0_8_ = &PTR__money_put_0043c1e0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::money_put_w._8_4_ = 2;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&money_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>
                                   ::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_put_w;
  (anonymous_namespace)::time_get_w._0_8_ = &PTR__time_get_0043c260;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::time_get_w._8_4_ = 2;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>
                                   ::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::time_get_w;
  messages<wchar_t>::messages((messages<wchar_t> *)(anonymous_namespace)::messages_w,1);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  (anonymous_namespace)::messages_w._8_4_ = (anonymous_namespace)::messages_w._8_4_ + 1;
  lVar10 = *(long *)(this + 8);
  lVar8 = locale::id::_M_id((id *)&messages<wchar_t>::id);
  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::messages_w;
  lVar10 = *(long *)(this + 0x18);
  lVar8 = locale::id::_M_id((id *)&numpunct<char>::id);
  *(facet **)(lVar10 + lVar8 * 8) = pfVar1;
  lVar10 = *(long *)(this + 0x18);
  lVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);
  *(facet **)(lVar10 + lVar8 * 8) = pfVar2;
  lVar10 = *(long *)(this + 0x18);
  lVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);
  *(facet **)(lVar10 + lVar8 * 8) = pfVar3;
  lVar10 = *(long *)(this + 0x18);
  lVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);
  *(facet **)(lVar10 + lVar8 * 8) = pfVar5;
  lVar10 = *(long *)(this + 0x18);
  lVar9 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);
  lVar8 = *(long *)(this + 0x18);
  *(facet **)(lVar10 + lVar9 * 8) = pfVar4;
  lVar10 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);
  *(facet **)(lVar8 + lVar10 * 8) = pfVar6;
  return;
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_00357b00(long param_1,undefined8 *param_2)

{
  undefined8 uVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined *puVar7;
  long lVar8;
  long lVar9;
  long lVar10;
  
  uVar1 = *param_2;
  uVar2 = param_2[1];
  uVar3 = param_2[2];
  _DAT_0044bf58 = 1;
  _DAT_0044bf50 = &PTR_FUN_00438ca0;
  _DAT_0044bf60 = uVar1;
                    /* try { // try from 00357b4b to 00357b4f has its CatchHandler @ 003582ac */
  FUN_0031f430(&DAT_0044bf50,0);
  puVar7 = PTR___pthread_key_create_0043dee8;
  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bf58 = _DAT_0044bf58 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a510);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;
  _DAT_0044bf78 = 1;
  _DAT_0044bf70 = &PTR_FUN_00438c30;
                    /* try { // try from 00357ba9 to 00357bad has its CatchHandler @ 00358284 */
  _DAT_0044bf80 = FUN_002dcf60();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bf78 = _DAT_0044bf78 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a4d8);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;
  _DAT_0044bf18 = 1;
  _DAT_0044bf10 = &PTR_FUN_00438eb0;
  _DAT_0044bf20 = uVar2;
                    /* try { // try from 00357c19 to 00357c1d has its CatchHandler @ 0035827c */
  FUN_00320170(&DAT_0044bf10,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bf18 = _DAT_0044bf18 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a530);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;
  _DAT_0044bf38 = 1;
  _DAT_0044bf30 = &PTR_FUN_00438e48;
  _DAT_0044bf40 = uVar3;
                    /* try { // try from 00357c82 to 00357c86 has its CatchHandler @ 00358294 */
  FUN_0031fc50(&DAT_0044bf30,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bf38 = _DAT_0044bf38 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a528);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;
  _DAT_0044bf00 = &PTR_FUN_004390d0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bf08 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a520);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;
  _DAT_0044bef0 = &PTR_FUN_00439100;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bef8 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a518);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;
  _DAT_0044bee0 = &PTR_FUN_00439180;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bee8 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a4e8);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;
  FUN_002ec000(&DAT_0044bec0,1);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bec8 = _DAT_0044bec8 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a4e0);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;
  uVar4 = param_2[4];
  _DAT_0044be78 = 1;
  uVar5 = param_2[3];
  uVar6 = param_2[5];
  _DAT_0044be70 = &PTR_FUN_0043bd80;
  _DAT_0044be80 = uVar5;
                    /* try { // try from 00357e3f to 00357e43 has its CatchHandler @ 0035828c */
  FUN_0031f700(&DAT_0044be70,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be78 = _DAT_0044be78 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bc90);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;
  _DAT_0044be98 = 1;
  _DAT_0044be90 = &PTR_FUN_0043bc90;
                    /* try { // try from 00357e96 to 00357e9a has its CatchHandler @ 003582a4 */
  _DAT_0044bea0 = FUN_002dcf60();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be98 = _DAT_0044be98 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bc58);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;
  _DAT_0044be38 = 1;
  _DAT_0044be30 = &PTR_FUN_0043bf90;
  _DAT_0044be40 = uVar4;
                    /* try { // try from 00357f0b to 00357f0f has its CatchHandler @ 0035829c */
  FUN_00320e40(&DAT_0044be30,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be38 = _DAT_0044be38 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bcb0);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;
  _DAT_0044be58 = 1;
  _DAT_0044be50 = &PTR_FUN_0043bf28;
  _DAT_0044be60 = uVar6;
                    /* try { // try from 00357f74 to 00357f78 has its CatchHandler @ 003582b4 */
  FUN_00320890(&DAT_0044be50,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be58 = _DAT_0044be58 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bca8);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;
  _DAT_0044be20 = &PTR_FUN_0043c1b0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be28 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bca0);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;
  _DAT_0044be10 = &PTR_FUN_0043c1e0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be18 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bc98);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;
  _DAT_0044be00 = &PTR_FUN_0043c260;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be08 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bc68);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;
  FUN_00326fc0(&DAT_0044bde0,1);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bde8 = _DAT_0044bde8 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bc60);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;
  lVar10 = *(long *)(param_1 + 0x18);
  lVar8 = FUN_002dd3a0(&DAT_0044a510);
  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;
  lVar10 = *(long *)(param_1 + 0x18);
  lVar8 = FUN_002dd3a0(&DAT_0044a530);
  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;
  lVar10 = *(long *)(param_1 + 0x18);
  lVar8 = FUN_002dd3a0(&DAT_0044a528);
  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;
  lVar10 = *(long *)(param_1 + 0x18);
  lVar8 = FUN_002dd3a0(&DAT_0044bc90);
  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;
  lVar10 = *(long *)(param_1 + 0x18);
  lVar9 = FUN_002dd3a0(&DAT_0044bcb0);
  lVar8 = *(long *)(param_1 + 0x18);
  *(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;
  lVar10 = FUN_002dd3a0(&DAT_0044bca8);
  *(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
MOV R12,RSI
PUSH RBP
PUSH RBX
MOV RBX,RDI
LEA RDI,[0x44bf50]
SUB RSP,0x28
LEA RAX,[0x438c90]
MOV R15,qword ptr [RSI]
MOV R14,qword ptr [RSI + 0x8]
MOV R13,qword ptr [RSI + 0x10]
XOR ESI,ESI
MOV dword ptr [0x0044bf58],0x1
ADD RAX,0x10
MOV qword ptr [0x0044bf60],R15
MOV qword ptr [0x0044bf50],RAX
CALL 0x0031f430
MOV RBP,qword ptr [0x0043dee8]
TEST RBP,RBP
JZ 0x00358180
ADD.LOCK dword ptr [0x0044bf58],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44a510]
MOV qword ptr [RSP + 0x8],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x8]
LEA RCX,[0x44bf50]
MOV qword ptr [RDX + RAX*0x8],RCX
LEA RAX,[0x438c20]
MOV dword ptr [0x0044bf78],0x1
ADD RAX,0x10
MOV qword ptr [0x0044bf70],RAX
CALL 0x002dcf60
MOV qword ptr [0x0044bf80],RAX
TEST RBP,RBP
JZ 0x00358270
ADD.LOCK dword ptr [0x0044bf78],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44a4d8]
MOV qword ptr [RSP + 0x8],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
LEA RCX,[0x44bf70]
LEA RDI,[0x44bf10]
MOV qword ptr [RDX + RAX*0x8],RCX
LEA RAX,[0x438ea0]
XOR EDX,EDX
MOV dword ptr [0x0044bf18],0x1
ADD RAX,0x10
MOV qword ptr [0x0044bf20],R14
MOV qword ptr [0x0044bf10],RAX
CALL 0x00320170
TEST RBP,RBP
JZ 0x00358260
ADD.LOCK dword ptr [0x0044bf18],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44a530]
MOV qword ptr [RSP + 0x8],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x8]
LEA RSI,[0x44bf10]
LEA RDI,[0x44bf30]
MOV qword ptr [RDX + RAX*0x8],RSI
LEA RAX,[0x438e38]
XOR EDX,EDX
XOR ESI,ESI
MOV dword ptr [0x0044bf38],0x1
ADD RAX,0x10
MOV qword ptr [0x0044bf40],R13
MOV qword ptr [0x0044bf30],RAX
CALL 0x0031fc50
TEST RBP,RBP
JZ 0x00358250
ADD.LOCK dword ptr [0x0044bf38],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44a528]
MOV qword ptr [RSP + 0x8],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x8]
LEA RCX,[0x44bf30]
MOV qword ptr [RDX + RAX*0x8],RCX
LEA RAX,[0x4390c0]
MOV dword ptr [0x0044bf08],0x1
ADD RAX,0x10
MOV qword ptr [0x0044bf00],RAX
TEST RBP,RBP
JZ 0x00358240
ADD.LOCK dword ptr [0x0044bf08],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44a520]
MOV qword ptr [RSP + 0x8],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x8]
LEA RSI,[0x44bf00]
MOV qword ptr [RDX + RAX*0x8],RSI
LEA RAX,[0x4390f0]
MOV dword ptr [0x0044bef8],0x1
ADD RAX,0x10
MOV qword ptr [0x0044bef0],RAX
TEST RBP,RBP
JZ 0x00358230
ADD.LOCK dword ptr [0x0044bef8],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44a518]
MOV qword ptr [RSP + 0x8],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x8]
LEA RCX,[0x44bef0]
MOV qword ptr [RDX + RAX*0x8],RCX
LEA RAX,[0x439170]
MOV dword ptr [0x0044bee8],0x1
ADD RAX,0x10
MOV qword ptr [0x0044bee0],RAX
TEST RBP,RBP
JZ 0x00358220
ADD.LOCK dword ptr [0x0044bee8],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44a4e8]
MOV qword ptr [RSP + 0x8],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x8]
LEA RSI,[0x44bee0]
LEA RDI,[0x44bec0]
MOV qword ptr [RDX + RAX*0x8],RSI
MOV ESI,0x1
CALL 0x002ec000
TEST RBP,RBP
JZ 0x00358210
ADD.LOCK dword ptr [0x0044bec8],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44a4e0]
MOV qword ptr [RSP + 0x8],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
LEA RCX,[0x44bec0]
LEA RDI,[0x44be70]
MOV qword ptr [RDX + RAX*0x8],RCX
MOV RAX,qword ptr [R12 + 0x20]
MOV dword ptr [0x0044be78],0x1
MOV RCX,qword ptr [R12 + 0x18]
MOV qword ptr [RSP + 0x8],RAX
LEA RAX,[0x43bd70]
MOV qword ptr [RSP + 0x10],RCX
MOV R12,qword ptr [R12 + 0x28]
ADD RAX,0x10
MOV qword ptr [0x0044be80],RCX
MOV qword ptr [0x0044be70],RAX
CALL 0x0031f700
TEST RBP,RBP
JZ 0x00358200
ADD.LOCK dword ptr [0x0044be78],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44bc90]
MOV qword ptr [RSP + 0x18],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x18]
LEA RSI,[0x44be70]
MOV qword ptr [RDX + RAX*0x8],RSI
LEA RAX,[0x43bc80]
MOV dword ptr [0x0044be98],0x1
ADD RAX,0x10
MOV qword ptr [0x0044be90],RAX
CALL 0x002dcf60
MOV qword ptr [0x0044bea0],RAX
TEST RBP,RBP
JZ 0x003581f0
ADD.LOCK dword ptr [0x0044be98],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44bc58]
MOV qword ptr [RSP + 0x18],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x18]
XOR ESI,ESI
LEA RCX,[0x44be90]
LEA RDI,[0x44be30]
MOV qword ptr [RDX + RAX*0x8],RCX
LEA RAX,[0x43bf80]
XOR EDX,EDX
MOV dword ptr [0x0044be38],0x1
ADD RAX,0x10
MOV qword ptr [0x0044be30],RAX
MOV RAX,qword ptr [RSP + 0x8]
MOV qword ptr [0x0044be40],RAX
CALL 0x00320e40
TEST RBP,RBP
JZ 0x003581e0
ADD.LOCK dword ptr [0x0044be38],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44bcb0]
MOV qword ptr [RSP + 0x18],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x18]
LEA RSI,[0x44be30]
LEA RDI,[0x44be50]
MOV qword ptr [RDX + RAX*0x8],RSI
LEA RAX,[0x43bf18]
XOR EDX,EDX
XOR ESI,ESI
MOV dword ptr [0x0044be58],0x1
ADD RAX,0x10
MOV qword ptr [0x0044be60],R12
MOV qword ptr [0x0044be50],RAX
CALL 0x00320890
TEST RBP,RBP
JZ 0x003581d0
ADD.LOCK dword ptr [0x0044be58],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44bca8]
MOV qword ptr [RSP + 0x18],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x18]
LEA RCX,[0x44be50]
MOV qword ptr [RDX + RAX*0x8],RCX
LEA RAX,[0x43c1a0]
MOV dword ptr [0x0044be28],0x1
ADD RAX,0x10
MOV qword ptr [0x0044be20],RAX
TEST RBP,RBP
JZ 0x003581c0
ADD.LOCK dword ptr [0x0044be28],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44bca0]
MOV qword ptr [RSP + 0x18],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x18]
LEA RSI,[0x44be20]
MOV qword ptr [RDX + RAX*0x8],RSI
LEA RAX,[0x43c1d0]
MOV dword ptr [0x0044be18],0x1
ADD RAX,0x10
MOV qword ptr [0x0044be10],RAX
TEST RBP,RBP
JZ 0x003581b0
ADD.LOCK dword ptr [0x0044be18],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44bc98]
MOV qword ptr [RSP + 0x18],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x18]
LEA RCX,[0x44be10]
MOV qword ptr [RDX + RAX*0x8],RCX
LEA RAX,[0x43c250]
MOV dword ptr [0x0044be08],0x1
ADD RAX,0x10
MOV qword ptr [0x0044be00],RAX
TEST RBP,RBP
JZ 0x003581a0
ADD.LOCK dword ptr [0x0044be08],0x1
MOV RDX,qword ptr [RBX + 0x8]
LEA RDI,[0x44bc68]
MOV qword ptr [RSP + 0x18],RDX
CALL 0x002dd3a0
MOV RDX,qword ptr [RSP + 0x18]
LEA RSI,[0x44be00]
LEA RDI,[0x44bde0]
MOV qword ptr [RDX + RAX*0x8],RSI
MOV ESI,0x1
CALL 0x00326fc0
TEST RBP,RBP
JZ 0x00358190
ADD.LOCK dword ptr [0x0044bde8],0x1
LEA RDI,[0x44bc60]
MOV RBP,qword ptr [RBX + 0x8]
CALL 0x002dd3a0
LEA RCX,[0x44bde0]
LEA RDI,[0x44a510]
MOV qword ptr [RBP + RAX*0x8],RCX
MOV RBP,qword ptr [RBX + 0x18]
CALL 0x002dd3a0
LEA RDI,[0x44a530]
MOV qword ptr [RBP + RAX*0x8],R15
MOV RBP,qword ptr [RBX + 0x18]
CALL 0x002dd3a0
LEA RDI,[0x44a528]
MOV qword ptr [RBP + RAX*0x8],R14
MOV RBP,qword ptr [RBX + 0x18]
CALL 0x002dd3a0
LEA RDI,[0x44bc90]
MOV qword ptr [RBP + RAX*0x8],R13
MOV RBP,qword ptr [RBX + 0x18]
CALL 0x002dd3a0
MOV RSI,qword ptr [RSP + 0x10]
LEA RDI,[0x44bcb0]
MOV qword ptr [RBP + RAX*0x8],RSI
MOV RBP,qword ptr [RBX + 0x18]
CALL 0x002dd3a0
MOV RCX,qword ptr [RSP + 0x8]
LEA RDI,[0x44bca8]
MOV RBX,qword ptr [RBX + 0x18]
MOV qword ptr [RBP + RAX*0x8],RCX
CALL 0x002dd3a0
MOV qword ptr [RBX + RAX*0x8],R12
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
ADD dword ptr [0x0044bf58],0x1
JMP 0x00357b68
ADD dword ptr [0x0044bde8],0x1
JMP 0x003580c7
MOV dword ptr [0x0044be08],0x2
JMP 0x00358080
MOV dword ptr [0x0044be18],0x2
JMP 0x0035802e
MOV dword ptr [0x0044be28],0x2
JMP 0x00357fdc
ADD dword ptr [0x0044be58],0x1
JMP 0x00357f8a
ADD dword ptr [0x0044be38],0x1
JMP 0x00357f21
ADD dword ptr [0x0044be98],0x1
JMP 0x00357eb3
ADD dword ptr [0x0044be78],0x1
JMP 0x00357e55
ADD dword ptr [0x0044bec8],0x1
JMP 0x00357dd5
MOV dword ptr [0x0044bee8],0x2
JMP 0x00357d8e
MOV dword ptr [0x0044bef8],0x2
JMP 0x00357d3c
MOV dword ptr [0x0044bf08],0x2
JMP 0x00357cea
ADD dword ptr [0x0044bf38],0x1
JMP 0x00357c98
ADD dword ptr [0x0044bf18],0x1
JMP 0x00357c2f
ADD dword ptr [0x0044bf78],0x1
JMP 0x00357bc6
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_00357b00(long param_1,undefined8 *param_2)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined *puVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  uVar3 = param_2[2];\n  _DAT_0044bf58 = 1;\n  _DAT_0044bf50 = &PTR_FUN_00438ca0;\n  _DAT_0044bf60 = uVar1;\n                    /* try { // try from 00357b4b to 00357b4f has its CatchHandler @ 003582ac */\n  FUN_0031f430(&DAT_0044bf50,0);\n  puVar7 = PTR___pthread_key_create_0043dee8;\n  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf58 = _DAT_0044bf58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;\n  _DAT_0044bf78 = 1;\n  _DAT_0044bf70 = &PTR_FUN_00438c30;\n                    /* try { // try from 00357ba9 to 00357bad has its CatchHandler @ 00358284 */\n  _DAT_0044bf80 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf78 = _DAT_0044bf78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4d8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;\n  _DAT_0044bf18 = 1;\n  _DAT_0044bf10 = &PTR_FUN_00438eb0;\n  _DAT_0044bf20 = uVar2;\n                    /* try { // try from 00357c19 to 00357c1d has its CatchHandler @ 0035827c */\n  FUN_00320170(&DAT_0044bf10,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf18 = _DAT_0044bf18 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;\n  _DAT_0044bf38 = 1;\n  _DAT_0044bf30 = &PTR_FUN_00438e48;\n  _DAT_0044bf40 = uVar3;\n                    /* try { // try from 00357c82 to 00357c86 has its CatchHandler @ 00358294 */\n  FUN_0031fc50(&DAT_0044bf30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf38 = _DAT_0044bf38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;\n  _DAT_0044bf00 = &PTR_FUN_004390d0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a520);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;\n  _DAT_0044bef0 = &PTR_FUN_00439100;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bef8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a518);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;\n  _DAT_0044bee0 = &PTR_FUN_00439180;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bee8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;\n  FUN_002ec000(&DAT_0044bec0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bec8 = _DAT_0044bec8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;\n  uVar4 = param_2[4];\n  _DAT_0044be78 = 1;\n  uVar5 = param_2[3];\n  uVar6 = param_2[5];\n  _DAT_0044be70 = &PTR_FUN_0043bd80;\n  _DAT_0044be80 = uVar5;\n                    /* try { // try from 00357e3f to 00357e43 has its CatchHandler @ 0035828c */\n  FUN_0031f700(&DAT_0044be70,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be78 = _DAT_0044be78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;\n  _DAT_0044be98 = 1;\n  _DAT_0044be90 = &PTR_FUN_0043bc90;\n                    /* try { // try from 00357e96 to 00357e9a has its CatchHandler @ 003582a4 */\n  _DAT_0044bea0 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be98 = _DAT_0044be98 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc58);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;\n  _DAT_0044be38 = 1;\n  _DAT_0044be30 = &PTR_FUN_0043bf90;\n  _DAT_0044be40 = uVar4;\n                    /* try { // try from 00357f0b to 00357f0f has its CatchHandler @ 0035829c */\n  FUN_00320e40(&DAT_0044be30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be38 = _DAT_0044be38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bcb0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;\n  _DAT_0044be58 = 1;\n  _DAT_0044be50 = &PTR_FUN_0043bf28;\n  _DAT_0044be60 = uVar6;\n                    /* try { // try from 00357f74 to 00357f78 has its CatchHandler @ 003582b4 */\n  FUN_00320890(&DAT_0044be50,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be58 = _DAT_0044be58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;\n  _DAT_0044be20 = &PTR_FUN_0043c1b0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be28 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;\n  _DAT_0044be10 = &PTR_FUN_0043c1e0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be18 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc98);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;\n  _DAT_0044be00 = &PTR_FUN_0043c260;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc68);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;\n  FUN_00326fc0(&DAT_0044bde0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bde8 = _DAT_0044bde8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc60);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar9 = FUN_002dd3a0(&DAT_0044bcb0);\n  lVar8 = *(long *)(param_1 + 0x18);\n  *(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;\n  lVar10 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;\n  return;\n}\n\n" comment (function_definition "void FUN_00357b00(long param_1,undefined8 *param_2)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined *puVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  uVar3 = param_2[2];\n  _DAT_0044bf58 = 1;\n  _DAT_0044bf50 = &PTR_FUN_00438ca0;\n  _DAT_0044bf60 = uVar1;\n                    /* try { // try from 00357b4b to 00357b4f has its CatchHandler @ 003582ac */\n  FUN_0031f430(&DAT_0044bf50,0);\n  puVar7 = PTR___pthread_key_create_0043dee8;\n  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf58 = _DAT_0044bf58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;\n  _DAT_0044bf78 = 1;\n  _DAT_0044bf70 = &PTR_FUN_00438c30;\n                    /* try { // try from 00357ba9 to 00357bad has its CatchHandler @ 00358284 */\n  _DAT_0044bf80 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf78 = _DAT_0044bf78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4d8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;\n  _DAT_0044bf18 = 1;\n  _DAT_0044bf10 = &PTR_FUN_00438eb0;\n  _DAT_0044bf20 = uVar2;\n                    /* try { // try from 00357c19 to 00357c1d has its CatchHandler @ 0035827c */\n  FUN_00320170(&DAT_0044bf10,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf18 = _DAT_0044bf18 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;\n  _DAT_0044bf38 = 1;\n  _DAT_0044bf30 = &PTR_FUN_00438e48;\n  _DAT_0044bf40 = uVar3;\n                    /* try { // try from 00357c82 to 00357c86 has its CatchHandler @ 00358294 */\n  FUN_0031fc50(&DAT_0044bf30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf38 = _DAT_0044bf38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;\n  _DAT_0044bf00 = &PTR_FUN_004390d0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a520);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;\n  _DAT_0044bef0 = &PTR_FUN_00439100;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bef8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a518);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;\n  _DAT_0044bee0 = &PTR_FUN_00439180;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bee8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;\n  FUN_002ec000(&DAT_0044bec0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bec8 = _DAT_0044bec8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;\n  uVar4 = param_2[4];\n  _DAT_0044be78 = 1;\n  uVar5 = param_2[3];\n  uVar6 = param_2[5];\n  _DAT_0044be70 = &PTR_FUN_0043bd80;\n  _DAT_0044be80 = uVar5;\n                    /* try { // try from 00357e3f to 00357e43 has its CatchHandler @ 0035828c */\n  FUN_0031f700(&DAT_0044be70,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be78 = _DAT_0044be78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;\n  _DAT_0044be98 = 1;\n  _DAT_0044be90 = &PTR_FUN_0043bc90;\n                    /* try { // try from 00357e96 to 00357e9a has its CatchHandler @ 003582a4 */\n  _DAT_0044bea0 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be98 = _DAT_0044be98 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc58);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;\n  _DAT_0044be38 = 1;\n  _DAT_0044be30 = &PTR_FUN_0043bf90;\n  _DAT_0044be40 = uVar4;\n                    /* try { // try from 00357f0b to 00357f0f has its CatchHandler @ 0035829c */\n  FUN_00320e40(&DAT_0044be30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be38 = _DAT_0044be38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bcb0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;\n  _DAT_0044be58 = 1;\n  _DAT_0044be50 = &PTR_FUN_0043bf28;\n  _DAT_0044be60 = uVar6;\n                    /* try { // try from 00357f74 to 00357f78 has its CatchHandler @ 003582b4 */\n  FUN_00320890(&DAT_0044be50,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be58 = _DAT_0044be58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;\n  _DAT_0044be20 = &PTR_FUN_0043c1b0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be28 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;\n  _DAT_0044be10 = &PTR_FUN_0043c1e0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be18 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc98);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;\n  _DAT_0044be00 = &PTR_FUN_0043c260;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc68);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;\n  FUN_00326fc0(&DAT_0044bde0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bde8 = _DAT_0044bde8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc60);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar9 = FUN_002dd3a0(&DAT_0044bcb0);\n  lVar8 = *(long *)(param_1 + 0x18);\n  *(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;\n  lVar10 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;\n  return;\n}" primitive_type (function_declarator "FUN_00357b00(long param_1,undefined8 *param_2)" identifier (parameter_list "(long param_1,undefined8 *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined *puVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  uVar3 = param_2[2];\n  _DAT_0044bf58 = 1;\n  _DAT_0044bf50 = &PTR_FUN_00438ca0;\n  _DAT_0044bf60 = uVar1;\n                    /* try { // try from 00357b4b to 00357b4f has its CatchHandler @ 003582ac */\n  FUN_0031f430(&DAT_0044bf50,0);\n  puVar7 = PTR___pthread_key_create_0043dee8;\n  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf58 = _DAT_0044bf58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;\n  _DAT_0044bf78 = 1;\n  _DAT_0044bf70 = &PTR_FUN_00438c30;\n                    /* try { // try from 00357ba9 to 00357bad has its CatchHandler @ 00358284 */\n  _DAT_0044bf80 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf78 = _DAT_0044bf78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4d8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;\n  _DAT_0044bf18 = 1;\n  _DAT_0044bf10 = &PTR_FUN_00438eb0;\n  _DAT_0044bf20 = uVar2;\n                    /* try { // try from 00357c19 to 00357c1d has its CatchHandler @ 0035827c */\n  FUN_00320170(&DAT_0044bf10,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf18 = _DAT_0044bf18 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;\n  _DAT_0044bf38 = 1;\n  _DAT_0044bf30 = &PTR_FUN_00438e48;\n  _DAT_0044bf40 = uVar3;\n                    /* try { // try from 00357c82 to 00357c86 has its CatchHandler @ 00358294 */\n  FUN_0031fc50(&DAT_0044bf30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf38 = _DAT_0044bf38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;\n  _DAT_0044bf00 = &PTR_FUN_004390d0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a520);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;\n  _DAT_0044bef0 = &PTR_FUN_00439100;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bef8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a518);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;\n  _DAT_0044bee0 = &PTR_FUN_00439180;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bee8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;\n  FUN_002ec000(&DAT_0044bec0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bec8 = _DAT_0044bec8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;\n  uVar4 = param_2[4];\n  _DAT_0044be78 = 1;\n  uVar5 = param_2[3];\n  uVar6 = param_2[5];\n  _DAT_0044be70 = &PTR_FUN_0043bd80;\n  _DAT_0044be80 = uVar5;\n                    /* try { // try from 00357e3f to 00357e43 has its CatchHandler @ 0035828c */\n  FUN_0031f700(&DAT_0044be70,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be78 = _DAT_0044be78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;\n  _DAT_0044be98 = 1;\n  _DAT_0044be90 = &PTR_FUN_0043bc90;\n                    /* try { // try from 00357e96 to 00357e9a has its CatchHandler @ 003582a4 */\n  _DAT_0044bea0 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be98 = _DAT_0044be98 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc58);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;\n  _DAT_0044be38 = 1;\n  _DAT_0044be30 = &PTR_FUN_0043bf90;\n  _DAT_0044be40 = uVar4;\n                    /* try { // try from 00357f0b to 00357f0f has its CatchHandler @ 0035829c */\n  FUN_00320e40(&DAT_0044be30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be38 = _DAT_0044be38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bcb0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;\n  _DAT_0044be58 = 1;\n  _DAT_0044be50 = &PTR_FUN_0043bf28;\n  _DAT_0044be60 = uVar6;\n                    /* try { // try from 00357f74 to 00357f78 has its CatchHandler @ 003582b4 */\n  FUN_00320890(&DAT_0044be50,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be58 = _DAT_0044be58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;\n  _DAT_0044be20 = &PTR_FUN_0043c1b0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be28 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;\n  _DAT_0044be10 = &PTR_FUN_0043c1e0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be18 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc98);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;\n  _DAT_0044be00 = &PTR_FUN_0043c260;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc68);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;\n  FUN_00326fc0(&DAT_0044bde0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bde8 = _DAT_0044bde8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc60);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar9 = FUN_002dd3a0(&DAT_0044bcb0);\n  lVar8 = *(long *)(param_1 + 0x18);\n  *(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;\n  lVar10 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar2 = param_2[1];" (assignment_expression "uVar2 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_2[2];" (assignment_expression "uVar3 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0044bf58 = 1;" (assignment_expression "_DAT_0044bf58 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044bf50 = &PTR_FUN_00438ca0;" (assignment_expression "_DAT_0044bf50 = &PTR_FUN_00438ca0" identifier = (pointer_expression "&PTR_FUN_00438ca0" & identifier)) ;) (expression_statement "_DAT_0044bf60 = uVar1;" (assignment_expression "_DAT_0044bf60 = uVar1" identifier = identifier) ;) comment (expression_statement "FUN_0031f430(&DAT_0044bf50,0);" (call_expression "FUN_0031f430(&DAT_0044bf50,0)" identifier (argument_list "(&DAT_0044bf50,0)" ( (pointer_expression "&DAT_0044bf50" & identifier) , number_literal ))) ;) (expression_statement "puVar7 = PTR___pthread_key_create_0043dee8;" (assignment_expression "puVar7 = PTR___pthread_key_create_0043dee8" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_0043dee8 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_0043dee8 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bf58 = _DAT_0044bf58 + 1;" (assignment_expression "_DAT_0044bf58 = _DAT_0044bf58 + 1" identifier = (binary_expression "_DAT_0044bf58 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a510);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a510)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a510)" identifier (argument_list "(&DAT_0044a510)" ( (pointer_expression "&DAT_0044a510" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bf50" & identifier)) ;) (expression_statement "_DAT_0044bf78 = 1;" (assignment_expression "_DAT_0044bf78 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044bf70 = &PTR_FUN_00438c30;" (assignment_expression "_DAT_0044bf70 = &PTR_FUN_00438c30" identifier = (pointer_expression "&PTR_FUN_00438c30" & identifier)) ;) comment (expression_statement "_DAT_0044bf80 = FUN_002dcf60();" (assignment_expression "_DAT_0044bf80 = FUN_002dcf60()" identifier = (call_expression "FUN_002dcf60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bf78 = _DAT_0044bf78 + 1;" (assignment_expression "_DAT_0044bf78 = _DAT_0044bf78 + 1" identifier = (binary_expression "_DAT_0044bf78 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a4d8);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a4d8)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a4d8)" identifier (argument_list "(&DAT_0044a4d8)" ( (pointer_expression "&DAT_0044a4d8" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bf70" & identifier)) ;) (expression_statement "_DAT_0044bf18 = 1;" (assignment_expression "_DAT_0044bf18 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044bf10 = &PTR_FUN_00438eb0;" (assignment_expression "_DAT_0044bf10 = &PTR_FUN_00438eb0" identifier = (pointer_expression "&PTR_FUN_00438eb0" & identifier)) ;) (expression_statement "_DAT_0044bf20 = uVar2;" (assignment_expression "_DAT_0044bf20 = uVar2" identifier = identifier) ;) comment (expression_statement "FUN_00320170(&DAT_0044bf10,0,0);" (call_expression "FUN_00320170(&DAT_0044bf10,0,0)" identifier (argument_list "(&DAT_0044bf10,0,0)" ( (pointer_expression "&DAT_0044bf10" & identifier) , number_literal , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bf18 = _DAT_0044bf18 + 1;" (assignment_expression "_DAT_0044bf18 = _DAT_0044bf18 + 1" identifier = (binary_expression "_DAT_0044bf18 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a530);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a530)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a530)" identifier (argument_list "(&DAT_0044a530)" ( (pointer_expression "&DAT_0044a530" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bf10" & identifier)) ;) (expression_statement "_DAT_0044bf38 = 1;" (assignment_expression "_DAT_0044bf38 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044bf30 = &PTR_FUN_00438e48;" (assignment_expression "_DAT_0044bf30 = &PTR_FUN_00438e48" identifier = (pointer_expression "&PTR_FUN_00438e48" & identifier)) ;) (expression_statement "_DAT_0044bf40 = uVar3;" (assignment_expression "_DAT_0044bf40 = uVar3" identifier = identifier) ;) comment (expression_statement "FUN_0031fc50(&DAT_0044bf30,0,0);" (call_expression "FUN_0031fc50(&DAT_0044bf30,0,0)" identifier (argument_list "(&DAT_0044bf30,0,0)" ( (pointer_expression "&DAT_0044bf30" & identifier) , number_literal , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bf38 = _DAT_0044bf38 + 1;" (assignment_expression "_DAT_0044bf38 = _DAT_0044bf38 + 1" identifier = (binary_expression "_DAT_0044bf38 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a528);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a528)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a528)" identifier (argument_list "(&DAT_0044a528)" ( (pointer_expression "&DAT_0044a528" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bf30" & identifier)) ;) (expression_statement "_DAT_0044bf00 = &PTR_FUN_004390d0;" (assignment_expression "_DAT_0044bf00 = &PTR_FUN_004390d0" identifier = (pointer_expression "&PTR_FUN_004390d0" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bf08 = 2;" (assignment_expression "_DAT_0044bf08 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a520);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a520)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a520)" identifier (argument_list "(&DAT_0044a520)" ( (pointer_expression "&DAT_0044a520" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bf00" & identifier)) ;) (expression_statement "_DAT_0044bef0 = &PTR_FUN_00439100;" (assignment_expression "_DAT_0044bef0 = &PTR_FUN_00439100" identifier = (pointer_expression "&PTR_FUN_00439100" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bef8 = 2;" (assignment_expression "_DAT_0044bef8 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a518);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a518)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a518)" identifier (argument_list "(&DAT_0044a518)" ( (pointer_expression "&DAT_0044a518" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bef0" & identifier)) ;) (expression_statement "_DAT_0044bee0 = &PTR_FUN_00439180;" (assignment_expression "_DAT_0044bee0 = &PTR_FUN_00439180" identifier = (pointer_expression "&PTR_FUN_00439180" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bee8 = 2;" (assignment_expression "_DAT_0044bee8 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a4e8);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a4e8)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a4e8)" identifier (argument_list "(&DAT_0044a4e8)" ( (pointer_expression "&DAT_0044a4e8" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bee0" & identifier)) ;) (expression_statement "FUN_002ec000(&DAT_0044bec0,1);" (call_expression "FUN_002ec000(&DAT_0044bec0,1)" identifier (argument_list "(&DAT_0044bec0,1)" ( (pointer_expression "&DAT_0044bec0" & identifier) , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bec8 = _DAT_0044bec8 + 1;" (assignment_expression "_DAT_0044bec8 = _DAT_0044bec8 + 1" identifier = (binary_expression "_DAT_0044bec8 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a4e0);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a4e0)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a4e0)" identifier (argument_list "(&DAT_0044a4e0)" ( (pointer_expression "&DAT_0044a4e0" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bec0" & identifier)) ;) (expression_statement "uVar4 = param_2[4];" (assignment_expression "uVar4 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0044be78 = 1;" (assignment_expression "_DAT_0044be78 = 1" identifier = number_literal) ;) (expression_statement "uVar5 = param_2[3];" (assignment_expression "uVar5 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_2[5];" (assignment_expression "uVar6 = param_2[5]" identifier = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0044be70 = &PTR_FUN_0043bd80;" (assignment_expression "_DAT_0044be70 = &PTR_FUN_0043bd80" identifier = (pointer_expression "&PTR_FUN_0043bd80" & identifier)) ;) (expression_statement "_DAT_0044be80 = uVar5;" (assignment_expression "_DAT_0044be80 = uVar5" identifier = identifier) ;) comment (expression_statement "FUN_0031f700(&DAT_0044be70,0);" (call_expression "FUN_0031f700(&DAT_0044be70,0)" identifier (argument_list "(&DAT_0044be70,0)" ( (pointer_expression "&DAT_0044be70" & identifier) , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be78 = _DAT_0044be78 + 1;" (assignment_expression "_DAT_0044be78 = _DAT_0044be78 + 1" identifier = (binary_expression "_DAT_0044be78 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc90);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc90)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc90)" identifier (argument_list "(&DAT_0044bc90)" ( (pointer_expression "&DAT_0044bc90" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be70" & identifier)) ;) (expression_statement "_DAT_0044be98 = 1;" (assignment_expression "_DAT_0044be98 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044be90 = &PTR_FUN_0043bc90;" (assignment_expression "_DAT_0044be90 = &PTR_FUN_0043bc90" identifier = (pointer_expression "&PTR_FUN_0043bc90" & identifier)) ;) comment (expression_statement "_DAT_0044bea0 = FUN_002dcf60();" (assignment_expression "_DAT_0044bea0 = FUN_002dcf60()" identifier = (call_expression "FUN_002dcf60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be98 = _DAT_0044be98 + 1;" (assignment_expression "_DAT_0044be98 = _DAT_0044be98 + 1" identifier = (binary_expression "_DAT_0044be98 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc58);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc58)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc58)" identifier (argument_list "(&DAT_0044bc58)" ( (pointer_expression "&DAT_0044bc58" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be90" & identifier)) ;) (expression_statement "_DAT_0044be38 = 1;" (assignment_expression "_DAT_0044be38 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044be30 = &PTR_FUN_0043bf90;" (assignment_expression "_DAT_0044be30 = &PTR_FUN_0043bf90" identifier = (pointer_expression "&PTR_FUN_0043bf90" & identifier)) ;) (expression_statement "_DAT_0044be40 = uVar4;" (assignment_expression "_DAT_0044be40 = uVar4" identifier = identifier) ;) comment (expression_statement "FUN_00320e40(&DAT_0044be30,0,0);" (call_expression "FUN_00320e40(&DAT_0044be30,0,0)" identifier (argument_list "(&DAT_0044be30,0,0)" ( (pointer_expression "&DAT_0044be30" & identifier) , number_literal , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be38 = _DAT_0044be38 + 1;" (assignment_expression "_DAT_0044be38 = _DAT_0044be38 + 1" identifier = (binary_expression "_DAT_0044be38 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bcb0);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bcb0)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bcb0)" identifier (argument_list "(&DAT_0044bcb0)" ( (pointer_expression "&DAT_0044bcb0" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be30" & identifier)) ;) (expression_statement "_DAT_0044be58 = 1;" (assignment_expression "_DAT_0044be58 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044be50 = &PTR_FUN_0043bf28;" (assignment_expression "_DAT_0044be50 = &PTR_FUN_0043bf28" identifier = (pointer_expression "&PTR_FUN_0043bf28" & identifier)) ;) (expression_statement "_DAT_0044be60 = uVar6;" (assignment_expression "_DAT_0044be60 = uVar6" identifier = identifier) ;) comment (expression_statement "FUN_00320890(&DAT_0044be50,0,0);" (call_expression "FUN_00320890(&DAT_0044be50,0,0)" identifier (argument_list "(&DAT_0044be50,0,0)" ( (pointer_expression "&DAT_0044be50" & identifier) , number_literal , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be58 = _DAT_0044be58 + 1;" (assignment_expression "_DAT_0044be58 = _DAT_0044be58 + 1" identifier = (binary_expression "_DAT_0044be58 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bca8);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bca8)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bca8)" identifier (argument_list "(&DAT_0044bca8)" ( (pointer_expression "&DAT_0044bca8" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be50" & identifier)) ;) (expression_statement "_DAT_0044be20 = &PTR_FUN_0043c1b0;" (assignment_expression "_DAT_0044be20 = &PTR_FUN_0043c1b0" identifier = (pointer_expression "&PTR_FUN_0043c1b0" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be28 = 2;" (assignment_expression "_DAT_0044be28 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bca0);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bca0)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bca0)" identifier (argument_list "(&DAT_0044bca0)" ( (pointer_expression "&DAT_0044bca0" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be20" & identifier)) ;) (expression_statement "_DAT_0044be10 = &PTR_FUN_0043c1e0;" (assignment_expression "_DAT_0044be10 = &PTR_FUN_0043c1e0" identifier = (pointer_expression "&PTR_FUN_0043c1e0" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be18 = 2;" (assignment_expression "_DAT_0044be18 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc98);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc98)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc98)" identifier (argument_list "(&DAT_0044bc98)" ( (pointer_expression "&DAT_0044bc98" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be10" & identifier)) ;) (expression_statement "_DAT_0044be00 = &PTR_FUN_0043c260;" (assignment_expression "_DAT_0044be00 = &PTR_FUN_0043c260" identifier = (pointer_expression "&PTR_FUN_0043c260" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be08 = 2;" (assignment_expression "_DAT_0044be08 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc68);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc68)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc68)" identifier (argument_list "(&DAT_0044bc68)" ( (pointer_expression "&DAT_0044bc68" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be00" & identifier)) ;) (expression_statement "FUN_00326fc0(&DAT_0044bde0,1);" (call_expression "FUN_00326fc0(&DAT_0044bde0,1)" identifier (argument_list "(&DAT_0044bde0,1)" ( (pointer_expression "&DAT_0044bde0" & identifier) , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bde8 = _DAT_0044bde8 + 1;" (assignment_expression "_DAT_0044bde8 = _DAT_0044bde8 + 1" identifier = (binary_expression "_DAT_0044bde8 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc60);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc60)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc60)" identifier (argument_list "(&DAT_0044bc60)" ( (pointer_expression "&DAT_0044bc60" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bde0" & identifier)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a510);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a510)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a510)" identifier (argument_list "(&DAT_0044a510)" ( (pointer_expression "&DAT_0044a510" & identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar1" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a530);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a530)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a530)" identifier (argument_list "(&DAT_0044a530)" ( (pointer_expression "&DAT_0044a530" & identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar2" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a528);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a528)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a528)" identifier (argument_list "(&DAT_0044a528)" ( (pointer_expression "&DAT_0044a528" & identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar3" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc90);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc90)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc90)" identifier (argument_list "(&DAT_0044bc90)" ( (pointer_expression "&DAT_0044bc90" & identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar5" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar9 = FUN_002dd3a0(&DAT_0044bcb0);" (assignment_expression "lVar9 = FUN_002dd3a0(&DAT_0044bcb0)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bcb0)" identifier (argument_list "(&DAT_0044bcb0)" ( (pointer_expression "&DAT_0044bcb0" & identifier) )))) ;) (expression_statement "lVar8 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar8 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;" (assignment_expression "*(undefined8 *)(lVar10 + lVar9 * 8) = uVar4" (pointer_expression "*(undefined8 *)(lVar10 + lVar9 * 8)" * (cast_expression "(undefined8 *)(lVar10 + lVar9 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar9 * 8)" ( (binary_expression "lVar10 + lVar9 * 8" identifier + (binary_expression "lVar9 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = FUN_002dd3a0(&DAT_0044bca8);" (assignment_expression "lVar10 = FUN_002dd3a0(&DAT_0044bca8)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bca8)" identifier (argument_list "(&DAT_0044bca8)" ( (pointer_expression "&DAT_0044bca8" & identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;" (assignment_expression "*(undefined8 *)(lVar8 + lVar10 * 8) = uVar6" (pointer_expression "*(undefined8 *)(lVar8 + lVar10 * 8)" * (cast_expression "(undefined8 *)(lVar8 + lVar10 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + lVar10 * 8)" ( (binary_expression "lVar8 + lVar10 * 8" identifier + (binary_expression "lVar10 * 8" identifier * number_literal)) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* std::locale::_Impl::_M_init_extra(std::locale::facet**) */\n\nvoid __thiscall std::locale::_Impl::_M_init_extra(_Impl *this,facet **param_1)\n\n{\n  facet *pfVar1;\n  facet *pfVar2;\n  facet *pfVar3;\n  facet *pfVar4;\n  facet *pfVar5;\n  facet *pfVar6;\n  undefined *puVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  \n  pfVar1 = *param_1;\n  pfVar2 = param_1[1];\n  pfVar3 = param_1[2];\n  (anonymous_namespace)::numpunct_c._8_4_ = 1;\n  (anonymous_namespace)::numpunct_c._0_8_ = &PTR__numpunct_00438ca0;\n  (anonymous_namespace)::numpunct_c._16_8_ = pfVar1;\n                    /* try { // try from 00357b4b to 00357b4f has its CatchHandler @ 003582ac */\n  numpunct<char>::_M_initialize_numpunct\n            ((numpunct<char> *)(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0);\n  puVar7 = PTR___pthread_key_create_0043dee8;\n  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::numpunct_c._8_4_ = (anonymous_namespace)::numpunct_c._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::numpunct_c;\n  (anonymous_namespace)::collate_c._8_4_ = 1;\n  (anonymous_namespace)::collate_c._0_8_ = &PTR__collate_00438c30;\n                    /* try { // try from 00357ba9 to 00357bad has its CatchHandler @ 00358284 */\n  (anonymous_namespace)::collate_c._16_8_ = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::collate_c._8_4_ = (anonymous_namespace)::collate_c._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&collate<char>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::collate_c;\n  (anonymous_namespace)::moneypunct_cf._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_cf._0_8_ = &PTR__moneypunct_00438eb0;\n  (anonymous_namespace)::moneypunct_cf._16_8_ = pfVar2;\n                    /* try { // try from 00357c19 to 00357c1d has its CatchHandler @ 0035827c */\n  moneypunct<char,false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_cf,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_cf._8_4_ = (anonymous_namespace)::moneypunct_cf._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_cf;\n  (anonymous_namespace)::moneypunct_ct._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_ct._0_8_ = &PTR__moneypunct_00438e48;\n  (anonymous_namespace)::moneypunct_ct._16_8_ = pfVar3;\n                    /* try { // try from 00357c82 to 00357c86 has its CatchHandler @ 00358294 */\n  moneypunct<char,true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_ct,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_ct._8_4_ = (anonymous_namespace)::moneypunct_ct._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_ct;\n  (anonymous_namespace)::money_get_c._0_8_ = &PTR__money_get_004390d0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_get_c._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_get_c;\n  (anonymous_namespace)::money_put_c._0_8_ = &PTR__money_put_00439100;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_put_c._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_put_c;\n  (anonymous_namespace)::time_get_c._0_8_ = &PTR__time_get_00439180;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::time_get_c._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::time_get_c;\n  messages<char>::messages((messages<char> *)(anonymous_namespace)::messages_c,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::messages_c._8_4_ = (anonymous_namespace)::messages_c._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&messages<char>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::messages_c;\n  pfVar4 = param_1[4];\n  (anonymous_namespace)::numpunct_w._8_4_ = 1;\n  pfVar5 = param_1[3];\n  pfVar6 = param_1[5];\n  (anonymous_namespace)::numpunct_w._0_8_ = &PTR__numpunct_0043bd80;\n  (anonymous_namespace)::numpunct_w._16_8_ = pfVar5;\n                    /* try { // try from 00357e3f to 00357e43 has its CatchHandler @ 0035828c */\n  numpunct<wchar_t>::_M_initialize_numpunct\n            ((numpunct<wchar_t> *)(anonymous_namespace)::numpunct_w,(__locale_struct *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::numpunct_w._8_4_ = (anonymous_namespace)::numpunct_w._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::numpunct_w;\n  (anonymous_namespace)::collate_w._8_4_ = 1;\n  (anonymous_namespace)::collate_w._0_8_ = &PTR__collate_0043bc90;\n                    /* try { // try from 00357e96 to 00357e9a has its CatchHandler @ 003582a4 */\n  (anonymous_namespace)::collate_w._16_8_ = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::collate_w._8_4_ = (anonymous_namespace)::collate_w._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&collate<wchar_t>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::collate_w;\n  (anonymous_namespace)::moneypunct_wf._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_wf._0_8_ = &PTR__moneypunct_0043bf90;\n  (anonymous_namespace)::moneypunct_wf._16_8_ = pfVar4;\n                    /* try { // try from 00357f0b to 00357f0f has its CatchHandler @ 0035829c */\n  moneypunct<wchar_t,false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wf,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_wf._8_4_ = (anonymous_namespace)::moneypunct_wf._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_wf;\n  (anonymous_namespace)::moneypunct_wt._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_wt._0_8_ = &PTR__moneypunct_0043bf28;\n  (anonymous_namespace)::moneypunct_wt._16_8_ = pfVar6;\n                    /* try { // try from 00357f74 to 00357f78 has its CatchHandler @ 003582b4 */\n  moneypunct<wchar_t,true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wt,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_wt._8_4_ = (anonymous_namespace)::moneypunct_wt._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_wt;\n  (anonymous_namespace)::money_get_w._0_8_ = &PTR__money_get_0043c1b0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_get_w._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_get_w;\n  (anonymous_namespace)::money_put_w._0_8_ = &PTR__money_put_0043c1e0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_put_w._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_put_w;\n  (anonymous_namespace)::time_get_w._0_8_ = &PTR__time_get_0043c260;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::time_get_w._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::time_get_w;\n  messages<wchar_t>::messages((messages<wchar_t> *)(anonymous_namespace)::messages_w,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::messages_w._8_4_ = (anonymous_namespace)::messages_w._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&messages<wchar_t>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::messages_w;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar1;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar2;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar3;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar5;\n  lVar10 = *(long *)(this + 0x18);\n  lVar9 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  lVar8 = *(long *)(this + 0x18);\n  *(facet **)(lVar10 + lVar9 * 8) = pfVar4;\n  lVar10 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(facet **)(lVar8 + lVar10 * 8) = pfVar6;\n  return;\n}\n\n" comment (function_definition "void __thiscall std::locale::_Impl::_M_init_extra(_Impl *this,facet **param_1)\n\n{\n  facet *pfVar1;\n  facet *pfVar2;\n  facet *pfVar3;\n  facet *pfVar4;\n  facet *pfVar5;\n  facet *pfVar6;\n  undefined *puVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  \n  pfVar1 = *param_1;\n  pfVar2 = param_1[1];\n  pfVar3 = param_1[2];\n  (anonymous_namespace)::numpunct_c._8_4_ = 1;\n  (anonymous_namespace)::numpunct_c._0_8_ = &PTR__numpunct_00438ca0;\n  (anonymous_namespace)::numpunct_c._16_8_ = pfVar1;\n                    /* try { // try from 00357b4b to 00357b4f has its CatchHandler @ 003582ac */\n  numpunct<char>::_M_initialize_numpunct\n            ((numpunct<char> *)(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0);\n  puVar7 = PTR___pthread_key_create_0043dee8;\n  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::numpunct_c._8_4_ = (anonymous_namespace)::numpunct_c._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::numpunct_c;\n  (anonymous_namespace)::collate_c._8_4_ = 1;\n  (anonymous_namespace)::collate_c._0_8_ = &PTR__collate_00438c30;\n                    /* try { // try from 00357ba9 to 00357bad has its CatchHandler @ 00358284 */\n  (anonymous_namespace)::collate_c._16_8_ = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::collate_c._8_4_ = (anonymous_namespace)::collate_c._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&collate<char>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::collate_c;\n  (anonymous_namespace)::moneypunct_cf._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_cf._0_8_ = &PTR__moneypunct_00438eb0;\n  (anonymous_namespace)::moneypunct_cf._16_8_ = pfVar2;\n                    /* try { // try from 00357c19 to 00357c1d has its CatchHandler @ 0035827c */\n  moneypunct<char,false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_cf,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_cf._8_4_ = (anonymous_namespace)::moneypunct_cf._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_cf;\n  (anonymous_namespace)::moneypunct_ct._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_ct._0_8_ = &PTR__moneypunct_00438e48;\n  (anonymous_namespace)::moneypunct_ct._16_8_ = pfVar3;\n                    /* try { // try from 00357c82 to 00357c86 has its CatchHandler @ 00358294 */\n  moneypunct<char,true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_ct,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_ct._8_4_ = (anonymous_namespace)::moneypunct_ct._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_ct;\n  (anonymous_namespace)::money_get_c._0_8_ = &PTR__money_get_004390d0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_get_c._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_get_c;\n  (anonymous_namespace)::money_put_c._0_8_ = &PTR__money_put_00439100;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_put_c._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_put_c;\n  (anonymous_namespace)::time_get_c._0_8_ = &PTR__time_get_00439180;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::time_get_c._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::time_get_c;\n  messages<char>::messages((messages<char> *)(anonymous_namespace)::messages_c,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::messages_c._8_4_ = (anonymous_namespace)::messages_c._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&messages<char>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::messages_c;\n  pfVar4 = param_1[4];\n  (anonymous_namespace)::numpunct_w._8_4_ = 1;\n  pfVar5 = param_1[3];\n  pfVar6 = param_1[5];\n  (anonymous_namespace)::numpunct_w._0_8_ = &PTR__numpunct_0043bd80;\n  (anonymous_namespace)::numpunct_w._16_8_ = pfVar5;\n                    /* try { // try from 00357e3f to 00357e43 has its CatchHandler @ 0035828c */\n  numpunct<wchar_t>::_M_initialize_numpunct\n            ((numpunct<wchar_t> *)(anonymous_namespace)::numpunct_w,(__locale_struct *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::numpunct_w._8_4_ = (anonymous_namespace)::numpunct_w._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::numpunct_w;\n  (anonymous_namespace)::collate_w._8_4_ = 1;\n  (anonymous_namespace)::collate_w._0_8_ = &PTR__collate_0043bc90;\n                    /* try { // try from 00357e96 to 00357e9a has its CatchHandler @ 003582a4 */\n  (anonymous_namespace)::collate_w._16_8_ = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::collate_w._8_4_ = (anonymous_namespace)::collate_w._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&collate<wchar_t>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::collate_w;\n  (anonymous_namespace)::moneypunct_wf._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_wf._0_8_ = &PTR__moneypunct_0043bf90;\n  (anonymous_namespace)::moneypunct_wf._16_8_ = pfVar4;\n                    /* try { // try from 00357f0b to 00357f0f has its CatchHandler @ 0035829c */\n  moneypunct<wchar_t,false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wf,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_wf._8_4_ = (anonymous_namespace)::moneypunct_wf._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_wf;\n  (anonymous_namespace)::moneypunct_wt._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_wt._0_8_ = &PTR__moneypunct_0043bf28;\n  (anonymous_namespace)::moneypunct_wt._16_8_ = pfVar6;\n                    /* try { // try from 00357f74 to 00357f78 has its CatchHandler @ 003582b4 */\n  moneypunct<wchar_t,true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wt,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_wt._8_4_ = (anonymous_namespace)::moneypunct_wt._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_wt;\n  (anonymous_namespace)::money_get_w._0_8_ = &PTR__money_get_0043c1b0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_get_w._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_get_w;\n  (anonymous_namespace)::money_put_w._0_8_ = &PTR__money_put_0043c1e0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_put_w._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_put_w;\n  (anonymous_namespace)::time_get_w._0_8_ = &PTR__time_get_0043c260;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::time_get_w._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::time_get_w;\n  messages<wchar_t>::messages((messages<wchar_t> *)(anonymous_namespace)::messages_w,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::messages_w._8_4_ = (anonymous_namespace)::messages_w._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&messages<wchar_t>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::messages_w;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar1;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar2;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar3;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar5;\n  lVar10 = *(long *)(this + 0x18);\n  lVar9 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  lVar8 = *(long *)(this + 0x18);\n  *(facet **)(lVar10 + lVar9 * 8) = pfVar4;\n  lVar10 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(facet **)(lVar8 + lVar10 * 8) = pfVar6;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::locale::_Impl::" identifier : : identifier : : identifier : :) (function_declarator "_M_init_extra(_Impl *this,facet **param_1)" identifier (parameter_list "(_Impl *this,facet **param_1)" ( (parameter_declaration "_Impl *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "facet **param_1" type_identifier (pointer_declarator "**param_1" * (pointer_declarator "*param_1" * identifier))) ))) (compound_statement "{\n  facet *pfVar1;\n  facet *pfVar2;\n  facet *pfVar3;\n  facet *pfVar4;\n  facet *pfVar5;\n  facet *pfVar6;\n  undefined *puVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  \n  pfVar1 = *param_1;\n  pfVar2 = param_1[1];\n  pfVar3 = param_1[2];\n  (anonymous_namespace)::numpunct_c._8_4_ = 1;\n  (anonymous_namespace)::numpunct_c._0_8_ = &PTR__numpunct_00438ca0;\n  (anonymous_namespace)::numpunct_c._16_8_ = pfVar1;\n                    /* try { // try from 00357b4b to 00357b4f has its CatchHandler @ 003582ac */\n  numpunct<char>::_M_initialize_numpunct\n            ((numpunct<char> *)(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0);\n  puVar7 = PTR___pthread_key_create_0043dee8;\n  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::numpunct_c._8_4_ = (anonymous_namespace)::numpunct_c._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::numpunct_c;\n  (anonymous_namespace)::collate_c._8_4_ = 1;\n  (anonymous_namespace)::collate_c._0_8_ = &PTR__collate_00438c30;\n                    /* try { // try from 00357ba9 to 00357bad has its CatchHandler @ 00358284 */\n  (anonymous_namespace)::collate_c._16_8_ = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::collate_c._8_4_ = (anonymous_namespace)::collate_c._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&collate<char>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::collate_c;\n  (anonymous_namespace)::moneypunct_cf._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_cf._0_8_ = &PTR__moneypunct_00438eb0;\n  (anonymous_namespace)::moneypunct_cf._16_8_ = pfVar2;\n                    /* try { // try from 00357c19 to 00357c1d has its CatchHandler @ 0035827c */\n  moneypunct<char,false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_cf,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_cf._8_4_ = (anonymous_namespace)::moneypunct_cf._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_cf;\n  (anonymous_namespace)::moneypunct_ct._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_ct._0_8_ = &PTR__moneypunct_00438e48;\n  (anonymous_namespace)::moneypunct_ct._16_8_ = pfVar3;\n                    /* try { // try from 00357c82 to 00357c86 has its CatchHandler @ 00358294 */\n  moneypunct<char,true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_ct,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_ct._8_4_ = (anonymous_namespace)::moneypunct_ct._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_ct;\n  (anonymous_namespace)::money_get_c._0_8_ = &PTR__money_get_004390d0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_get_c._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_get_c;\n  (anonymous_namespace)::money_put_c._0_8_ = &PTR__money_put_00439100;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_put_c._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_put_c;\n  (anonymous_namespace)::time_get_c._0_8_ = &PTR__time_get_00439180;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::time_get_c._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::time_get_c;\n  messages<char>::messages((messages<char> *)(anonymous_namespace)::messages_c,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::messages_c._8_4_ = (anonymous_namespace)::messages_c._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&messages<char>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::messages_c;\n  pfVar4 = param_1[4];\n  (anonymous_namespace)::numpunct_w._8_4_ = 1;\n  pfVar5 = param_1[3];\n  pfVar6 = param_1[5];\n  (anonymous_namespace)::numpunct_w._0_8_ = &PTR__numpunct_0043bd80;\n  (anonymous_namespace)::numpunct_w._16_8_ = pfVar5;\n                    /* try { // try from 00357e3f to 00357e43 has its CatchHandler @ 0035828c */\n  numpunct<wchar_t>::_M_initialize_numpunct\n            ((numpunct<wchar_t> *)(anonymous_namespace)::numpunct_w,(__locale_struct *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::numpunct_w._8_4_ = (anonymous_namespace)::numpunct_w._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::numpunct_w;\n  (anonymous_namespace)::collate_w._8_4_ = 1;\n  (anonymous_namespace)::collate_w._0_8_ = &PTR__collate_0043bc90;\n                    /* try { // try from 00357e96 to 00357e9a has its CatchHandler @ 003582a4 */\n  (anonymous_namespace)::collate_w._16_8_ = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::collate_w._8_4_ = (anonymous_namespace)::collate_w._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&collate<wchar_t>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::collate_w;\n  (anonymous_namespace)::moneypunct_wf._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_wf._0_8_ = &PTR__moneypunct_0043bf90;\n  (anonymous_namespace)::moneypunct_wf._16_8_ = pfVar4;\n                    /* try { // try from 00357f0b to 00357f0f has its CatchHandler @ 0035829c */\n  moneypunct<wchar_t,false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wf,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_wf._8_4_ = (anonymous_namespace)::moneypunct_wf._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_wf;\n  (anonymous_namespace)::moneypunct_wt._8_4_ = 1;\n  (anonymous_namespace)::moneypunct_wt._0_8_ = &PTR__moneypunct_0043bf28;\n  (anonymous_namespace)::moneypunct_wt._16_8_ = pfVar6;\n                    /* try { // try from 00357f74 to 00357f78 has its CatchHandler @ 003582b4 */\n  moneypunct<wchar_t,true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wt,(char *)0x0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::moneypunct_wt._8_4_ = (anonymous_namespace)::moneypunct_wt._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_wt;\n  (anonymous_namespace)::money_get_w._0_8_ = &PTR__money_get_0043c1b0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_get_w._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_get_w;\n  (anonymous_namespace)::money_put_w._0_8_ = &PTR__money_put_0043c1e0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::money_put_w._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&money_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_put_w;\n  (anonymous_namespace)::time_get_w._0_8_ = &PTR__time_get_0043c260;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::time_get_w._8_4_ = 2;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::time_get_w;\n  messages<wchar_t>::messages((messages<wchar_t> *)(anonymous_namespace)::messages_w,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  (anonymous_namespace)::messages_w._8_4_ = (anonymous_namespace)::messages_w._8_4_ + 1;\n  lVar10 = *(long *)(this + 8);\n  lVar8 = locale::id::_M_id((id *)&messages<wchar_t>::id);\n  *(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::messages_w;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar1;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar2;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar3;\n  lVar10 = *(long *)(this + 0x18);\n  lVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  *(facet **)(lVar10 + lVar8 * 8) = pfVar5;\n  lVar10 = *(long *)(this + 0x18);\n  lVar9 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  lVar8 = *(long *)(this + 0x18);\n  *(facet **)(lVar10 + lVar9 * 8) = pfVar4;\n  lVar10 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(facet **)(lVar8 + lVar10 * 8) = pfVar6;\n  return;\n}" { (declaration "facet *pfVar1;" type_identifier (pointer_declarator "*pfVar1" * identifier) ;) (declaration "facet *pfVar2;" type_identifier (pointer_declarator "*pfVar2" * identifier) ;) (declaration "facet *pfVar3;" type_identifier (pointer_declarator "*pfVar3" * identifier) ;) (declaration "facet *pfVar4;" type_identifier (pointer_declarator "*pfVar4" * identifier) ;) (declaration "facet *pfVar5;" type_identifier (pointer_declarator "*pfVar5" * identifier) ;) (declaration "facet *pfVar6;" type_identifier (pointer_declarator "*pfVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "pfVar1 = *param_1;" (assignment_expression "pfVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pfVar2 = param_1[1];" (assignment_expression "pfVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "pfVar3 = param_1[2];" (assignment_expression "pfVar3 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "(anonymous_namespace)::numpunct_c._8_4_ = 1;" (assignment_expression "(anonymous_namespace)::numpunct_c._8_4_ = 1" (field_expression "(anonymous_namespace)::numpunct_c._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::numpunct_c" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "(anonymous_namespace)::numpunct_c._0_8_ = &PTR__numpunct_00438ca0;" (assignment_expression "(anonymous_namespace)::numpunct_c._0_8_ = &PTR__numpunct_00438ca0" (field_expression "(anonymous_namespace)::numpunct_c._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::numpunct_c" : : identifier) . field_identifier) = (pointer_expression "&PTR__numpunct_00438ca0" & identifier)) ;) (expression_statement "(anonymous_namespace)::numpunct_c._16_8_ = pfVar1;" (assignment_expression "(anonymous_namespace)::numpunct_c._16_8_ = pfVar1" (field_expression "(anonymous_namespace)::numpunct_c._16_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::numpunct_c" : : identifier) . field_identifier) = identifier) ;) comment (expression_statement "numpunct<char>::_M_initialize_numpunct\n            ((numpunct<char> *)(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0);" (binary_expression "numpunct<char>::_M_initialize_numpunct\n            ((numpunct<char> *)(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0)" (binary_expression "numpunct<char" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_initialize_numpunct\n            ((numpunct<char> *)(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0)" identifier (argument_list "((numpunct<char> *)(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0)" ( (call_expression "(numpunct<char> *)(anonymous_namespace)" (parenthesized_expression "(numpunct<char> *)" ( (binary_expression "numpunct<char> *" (binary_expression "numpunct<char" identifier < identifier) > (pointer_expression "*" * identifier)) )) (argument_list "(anonymous_namespace)" ( identifier ))) (ERROR "::numpunct_c" : : identifier) , (cast_expression "(__locale_struct *)0x0" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "puVar7 = PTR___pthread_key_create_0043dee8;" (assignment_expression "puVar7 = PTR___pthread_key_create_0043dee8" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_0043dee8 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_0043dee8 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::numpunct_c._8_4_ = (anonymous_namespace)::numpunct_c._8_4_ + 1;" (binary_expression "(anonymous_namespace)::numpunct_c._8_4_ = (anonymous_namespace)::numpunct_c._8_4_ + 1" (field_expression "(anonymous_namespace)::numpunct_c._8_4_ = (anonymous_namespace)::numpunct_c._8_4_" (assignment_expression "(anonymous_namespace)::numpunct_c._8_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::numpunct_c._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::numpunct_c" : : identifier) . field_identifier) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::numpunct_c" : : identifier) . field_identifier) + number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&numpunct<char>::id);" statement_identifier (ERROR "::_M_id((id *)&numpunct<char>:" : : identifier ( (binary_expression "(id *)&numpunct<char" (cast_expression "(id *)&numpunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&numpunct" & identifier)) < identifier) > :) : (expression_statement "id);" identifier (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::numpunct_c;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::numpunct_c" : : identifier) ;) (expression_statement "(anonymous_namespace)::collate_c._8_4_ = 1;" (assignment_expression "(anonymous_namespace)::collate_c._8_4_ = 1" (field_expression "(anonymous_namespace)::collate_c._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::collate_c" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "(anonymous_namespace)::collate_c._0_8_ = &PTR__collate_00438c30;" (assignment_expression "(anonymous_namespace)::collate_c._0_8_ = &PTR__collate_00438c30" (field_expression "(anonymous_namespace)::collate_c._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::collate_c" : : identifier) . field_identifier) = (pointer_expression "&PTR__collate_00438c30" & identifier)) ;) comment (ERROR "(anonymous_namespace)::collate_c._16_8_ = facet::" (assignment_expression "(anonymous_namespace)::collate_c._16_8_ = facet" (field_expression "(anonymous_namespace)::collate_c._16_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::collate_c" : : identifier) . field_identifier) = identifier) : :) (expression_statement "_S_get_c_locale();" (call_expression "_S_get_c_locale()" identifier (argument_list "()" ( ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::collate_c._8_4_ = (anonymous_namespace)::collate_c._8_4_ + 1;" (binary_expression "(anonymous_namespace)::collate_c._8_4_ = (anonymous_namespace)::collate_c._8_4_ + 1" (field_expression "(anonymous_namespace)::collate_c._8_4_ = (anonymous_namespace)::collate_c._8_4_" (assignment_expression "(anonymous_namespace)::collate_c._8_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::collate_c._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::collate_c" : : identifier) . field_identifier) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::collate_c" : : identifier) . field_identifier) + number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&collate<char>::id);" statement_identifier (ERROR "::_M_id((id *)&collate<char>:" : : identifier ( (binary_expression "(id *)&collate<char" (cast_expression "(id *)&collate" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&collate" & identifier)) < identifier) > :) : (expression_statement "id);" identifier (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::collate_c;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::collate_c" : : identifier) ;) (expression_statement "(anonymous_namespace)::moneypunct_cf._8_4_ = 1;" (assignment_expression "(anonymous_namespace)::moneypunct_cf._8_4_ = 1" (field_expression "(anonymous_namespace)::moneypunct_cf._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_cf" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "(anonymous_namespace)::moneypunct_cf._0_8_ = &PTR__moneypunct_00438eb0;" (assignment_expression "(anonymous_namespace)::moneypunct_cf._0_8_ = &PTR__moneypunct_00438eb0" (field_expression "(anonymous_namespace)::moneypunct_cf._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_cf" : : identifier) . field_identifier) = (pointer_expression "&PTR__moneypunct_00438eb0" & identifier)) ;) (expression_statement "(anonymous_namespace)::moneypunct_cf._16_8_ = pfVar2;" (assignment_expression "(anonymous_namespace)::moneypunct_cf._16_8_ = pfVar2" (field_expression "(anonymous_namespace)::moneypunct_cf._16_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_cf" : : identifier) . field_identifier) = identifier) ;) comment (expression_statement "moneypunct<char,false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_cf,(char *)0x0);" (comma_expression "moneypunct<char,false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_cf,(char *)0x0)" (binary_expression "moneypunct<char" identifier < identifier) , (binary_expression "false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_cf,(char *)0x0)" false > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_cf,(char *)0x0)" identifier (argument_list "((__locale_struct *)(anonymous_namespace)::moneypunct_cf,(char *)0x0)" ( (cast_expression "(__locale_struct *)(anonymous_namespace)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_cf" : : identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::moneypunct_cf._8_4_ = (anonymous_namespace)::moneypunct_cf._8_4_ + 1;" (binary_expression "(anonymous_namespace)::moneypunct_cf._8_4_ = (anonymous_namespace)::moneypunct_cf._8_4_ + 1" (field_expression "(anonymous_namespace)::moneypunct_cf._8_4_ = (anonymous_namespace)::moneypunct_cf._8_4_" (assignment_expression "(anonymous_namespace)::moneypunct_cf._8_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::moneypunct_cf._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_cf" : : identifier) . field_identifier) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_cf" : : identifier) . field_identifier) + number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&moneypunct<char,false>::id);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)&moneypunct<char,false>::id);" (call_expression "_M_id((id *)&moneypunct<char,false>::id)" identifier (argument_list "((id *)&moneypunct<char,false>::id)" ( (binary_expression "(id *)&moneypunct<char" (cast_expression "(id *)&moneypunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&moneypunct" & identifier)) < identifier) , (binary_expression "false>::id" false > (ERROR "::" : :) identifier) ))) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_cf;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_cf" : : identifier) ;) (expression_statement "(anonymous_namespace)::moneypunct_ct._8_4_ = 1;" (assignment_expression "(anonymous_namespace)::moneypunct_ct._8_4_ = 1" (field_expression "(anonymous_namespace)::moneypunct_ct._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_ct" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "(anonymous_namespace)::moneypunct_ct._0_8_ = &PTR__moneypunct_00438e48;" (assignment_expression "(anonymous_namespace)::moneypunct_ct._0_8_ = &PTR__moneypunct_00438e48" (field_expression "(anonymous_namespace)::moneypunct_ct._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_ct" : : identifier) . field_identifier) = (pointer_expression "&PTR__moneypunct_00438e48" & identifier)) ;) (expression_statement "(anonymous_namespace)::moneypunct_ct._16_8_ = pfVar3;" (assignment_expression "(anonymous_namespace)::moneypunct_ct._16_8_ = pfVar3" (field_expression "(anonymous_namespace)::moneypunct_ct._16_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_ct" : : identifier) . field_identifier) = identifier) ;) comment (expression_statement "moneypunct<char,true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_ct,(char *)0x0);" (comma_expression "moneypunct<char,true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_ct,(char *)0x0)" (binary_expression "moneypunct<char" identifier < identifier) , (binary_expression "true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_ct,(char *)0x0)" true > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_ct,(char *)0x0)" identifier (argument_list "((__locale_struct *)(anonymous_namespace)::moneypunct_ct,(char *)0x0)" ( (cast_expression "(__locale_struct *)(anonymous_namespace)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_ct" : : identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::moneypunct_ct._8_4_ = (anonymous_namespace)::moneypunct_ct._8_4_ + 1;" (binary_expression "(anonymous_namespace)::moneypunct_ct._8_4_ = (anonymous_namespace)::moneypunct_ct._8_4_ + 1" (field_expression "(anonymous_namespace)::moneypunct_ct._8_4_ = (anonymous_namespace)::moneypunct_ct._8_4_" (assignment_expression "(anonymous_namespace)::moneypunct_ct._8_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::moneypunct_ct._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_ct" : : identifier) . field_identifier) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_ct" : : identifier) . field_identifier) + number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&moneypunct<char,true>::id);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)&moneypunct<char,true>::id);" (call_expression "_M_id((id *)&moneypunct<char,true>::id)" identifier (argument_list "((id *)&moneypunct<char,true>::id)" ( (binary_expression "(id *)&moneypunct<char" (cast_expression "(id *)&moneypunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&moneypunct" & identifier)) < identifier) , (binary_expression "true>::id" true > (ERROR "::" : :) identifier) ))) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_ct;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_ct" : : identifier) ;) (expression_statement "(anonymous_namespace)::money_get_c._0_8_ = &PTR__money_get_004390d0;" (assignment_expression "(anonymous_namespace)::money_get_c._0_8_ = &PTR__money_get_004390d0" (field_expression "(anonymous_namespace)::money_get_c._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::money_get_c" : : identifier) . field_identifier) = (pointer_expression "&PTR__money_get_004390d0" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::money_get_c._8_4_ = 2;" (assignment_expression "(anonymous_namespace)::money_get_c._8_4_ = 2" (field_expression "(anonymous_namespace)::money_get_c._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::money_get_c" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);" statement_identifier (ERROR "::_M_id((id *)&money_get<char,std::istreambuf_iterator<char,std:" : : identifier ( (binary_expression "(id *)&money_get<char" (cast_expression "(id *)&money_get" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&money_get" & identifier)) < identifier) , identifier : : (comma_expression "istreambuf_iterator<char,std" (binary_expression "istreambuf_iterator<char" identifier < identifier) , identifier) :) : (expression_statement "char_traits<char>>>\n                                   ::id);" (binary_expression "char_traits<char>>>\n                                   ::id" identifier < (binary_expression "char>>>\n                                   ::id" identifier >> (ERROR ">\n                                   ::" > : :) identifier)) (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_get_c;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::money_get_c" : : identifier) ;) (expression_statement "(anonymous_namespace)::money_put_c._0_8_ = &PTR__money_put_00439100;" (assignment_expression "(anonymous_namespace)::money_put_c._0_8_ = &PTR__money_put_00439100" (field_expression "(anonymous_namespace)::money_put_c._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::money_put_c" : : identifier) . field_identifier) = (pointer_expression "&PTR__money_put_00439100" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::money_put_c._8_4_ = 2;" (assignment_expression "(anonymous_namespace)::money_put_c._8_4_ = 2" (field_expression "(anonymous_namespace)::money_put_c._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::money_put_c" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);" statement_identifier (ERROR "::_M_id((id *)&money_put<char,std::ostreambuf_iterator<char,std:" : : identifier ( (binary_expression "(id *)&money_put<char" (cast_expression "(id *)&money_put" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&money_put" & identifier)) < identifier) , identifier : : (comma_expression "ostreambuf_iterator<char,std" (binary_expression "ostreambuf_iterator<char" identifier < identifier) , identifier) :) : (expression_statement "char_traits<char>>>\n                                   ::id);" (binary_expression "char_traits<char>>>\n                                   ::id" identifier < (binary_expression "char>>>\n                                   ::id" identifier >> (ERROR ">\n                                   ::" > : :) identifier)) (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_put_c;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::money_put_c" : : identifier) ;) (expression_statement "(anonymous_namespace)::time_get_c._0_8_ = &PTR__time_get_00439180;" (assignment_expression "(anonymous_namespace)::time_get_c._0_8_ = &PTR__time_get_00439180" (field_expression "(anonymous_namespace)::time_get_c._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::time_get_c" : : identifier) . field_identifier) = (pointer_expression "&PTR__time_get_00439180" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::time_get_c._8_4_ = 2;" (assignment_expression "(anonymous_namespace)::time_get_c._8_4_ = 2" (field_expression "(anonymous_namespace)::time_get_c._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::time_get_c" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>\n                                   ::id);" statement_identifier (ERROR "::_M_id((id *)&time_get<char,std::istreambuf_iterator<char,std:" : : identifier ( (binary_expression "(id *)&time_get<char" (cast_expression "(id *)&time_get" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&time_get" & identifier)) < identifier) , identifier : : (comma_expression "istreambuf_iterator<char,std" (binary_expression "istreambuf_iterator<char" identifier < identifier) , identifier) :) : (expression_statement "char_traits<char>>>\n                                   ::id);" (binary_expression "char_traits<char>>>\n                                   ::id" identifier < (binary_expression "char>>>\n                                   ::id" identifier >> (ERROR ">\n                                   ::" > : :) identifier)) (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::time_get_c;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::time_get_c" : : identifier) ;) (expression_statement "messages<char>::messages((messages<char> *)(anonymous_namespace)::messages_c,1);" (binary_expression "messages<char>::messages((messages<char> *)(anonymous_namespace)::messages_c,1)" (binary_expression "messages<char" identifier < identifier) > (ERROR "::" : :) (call_expression "messages((messages<char> *)(anonymous_namespace)::messages_c,1)" identifier (argument_list "((messages<char> *)(anonymous_namespace)::messages_c,1)" ( (call_expression "(messages<char> *)(anonymous_namespace)" (parenthesized_expression "(messages<char> *)" ( (binary_expression "messages<char> *" (binary_expression "messages<char" identifier < identifier) > (pointer_expression "*" * identifier)) )) (argument_list "(anonymous_namespace)" ( identifier ))) (ERROR "::messages_c" : : identifier) , number_literal )))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::messages_c._8_4_ = (anonymous_namespace)::messages_c._8_4_ + 1;" (binary_expression "(anonymous_namespace)::messages_c._8_4_ = (anonymous_namespace)::messages_c._8_4_ + 1" (field_expression "(anonymous_namespace)::messages_c._8_4_ = (anonymous_namespace)::messages_c._8_4_" (assignment_expression "(anonymous_namespace)::messages_c._8_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::messages_c._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::messages_c" : : identifier) . field_identifier) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::messages_c" : : identifier) . field_identifier) + number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&messages<char>::id);" statement_identifier (ERROR "::_M_id((id *)&messages<char>:" : : identifier ( (binary_expression "(id *)&messages<char" (cast_expression "(id *)&messages" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&messages" & identifier)) < identifier) > :) : (expression_statement "id);" identifier (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::messages_c;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::messages_c" : : identifier) ;) (expression_statement "pfVar4 = param_1[4];" (assignment_expression "pfVar4 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "(anonymous_namespace)::numpunct_w._8_4_ = 1;" (assignment_expression "(anonymous_namespace)::numpunct_w._8_4_ = 1" (field_expression "(anonymous_namespace)::numpunct_w._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::numpunct_w" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "pfVar5 = param_1[3];" (assignment_expression "pfVar5 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "pfVar6 = param_1[5];" (assignment_expression "pfVar6 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "(anonymous_namespace)::numpunct_w._0_8_ = &PTR__numpunct_0043bd80;" (assignment_expression "(anonymous_namespace)::numpunct_w._0_8_ = &PTR__numpunct_0043bd80" (field_expression "(anonymous_namespace)::numpunct_w._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::numpunct_w" : : identifier) . field_identifier) = (pointer_expression "&PTR__numpunct_0043bd80" & identifier)) ;) (expression_statement "(anonymous_namespace)::numpunct_w._16_8_ = pfVar5;" (assignment_expression "(anonymous_namespace)::numpunct_w._16_8_ = pfVar5" (field_expression "(anonymous_namespace)::numpunct_w._16_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::numpunct_w" : : identifier) . field_identifier) = identifier) ;) comment (expression_statement "numpunct<wchar_t>::_M_initialize_numpunct\n            ((numpunct<wchar_t> *)(anonymous_namespace)::numpunct_w,(__locale_struct *)0x0);" (binary_expression "numpunct<wchar_t>::_M_initialize_numpunct\n            ((numpunct<wchar_t> *)(anonymous_namespace)::numpunct_w,(__locale_struct *)0x0)" (binary_expression "numpunct<wchar_t" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_initialize_numpunct\n            ((numpunct<wchar_t> *)(anonymous_namespace)::numpunct_w,(__locale_struct *)0x0)" identifier (argument_list "((numpunct<wchar_t> *)(anonymous_namespace)::numpunct_w,(__locale_struct *)0x0)" ( (call_expression "(numpunct<wchar_t> *)(anonymous_namespace)" (parenthesized_expression "(numpunct<wchar_t> *)" ( (binary_expression "numpunct<wchar_t> *" (binary_expression "numpunct<wchar_t" identifier < identifier) > (pointer_expression "*" * identifier)) )) (argument_list "(anonymous_namespace)" ( identifier ))) (ERROR "::numpunct_w" : : identifier) , (cast_expression "(__locale_struct *)0x0" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::numpunct_w._8_4_ = (anonymous_namespace)::numpunct_w._8_4_ + 1;" (binary_expression "(anonymous_namespace)::numpunct_w._8_4_ = (anonymous_namespace)::numpunct_w._8_4_ + 1" (field_expression "(anonymous_namespace)::numpunct_w._8_4_ = (anonymous_namespace)::numpunct_w._8_4_" (assignment_expression "(anonymous_namespace)::numpunct_w._8_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::numpunct_w._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::numpunct_w" : : identifier) . field_identifier) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::numpunct_w" : : identifier) . field_identifier) + number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&numpunct<wchar_t>::id);" statement_identifier (ERROR "::_M_id((id *)&numpunct<wchar_t>:" : : identifier ( (binary_expression "(id *)&numpunct<wchar_t" (cast_expression "(id *)&numpunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&numpunct" & identifier)) < identifier) > :) : (expression_statement "id);" identifier (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::numpunct_w;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::numpunct_w" : : identifier) ;) (expression_statement "(anonymous_namespace)::collate_w._8_4_ = 1;" (assignment_expression "(anonymous_namespace)::collate_w._8_4_ = 1" (field_expression "(anonymous_namespace)::collate_w._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::collate_w" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "(anonymous_namespace)::collate_w._0_8_ = &PTR__collate_0043bc90;" (assignment_expression "(anonymous_namespace)::collate_w._0_8_ = &PTR__collate_0043bc90" (field_expression "(anonymous_namespace)::collate_w._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::collate_w" : : identifier) . field_identifier) = (pointer_expression "&PTR__collate_0043bc90" & identifier)) ;) comment (ERROR "(anonymous_namespace)::collate_w._16_8_ = facet::" (assignment_expression "(anonymous_namespace)::collate_w._16_8_ = facet" (field_expression "(anonymous_namespace)::collate_w._16_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::collate_w" : : identifier) . field_identifier) = identifier) : :) (expression_statement "_S_get_c_locale();" (call_expression "_S_get_c_locale()" identifier (argument_list "()" ( ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::collate_w._8_4_ = (anonymous_namespace)::collate_w._8_4_ + 1;" (binary_expression "(anonymous_namespace)::collate_w._8_4_ = (anonymous_namespace)::collate_w._8_4_ + 1" (field_expression "(anonymous_namespace)::collate_w._8_4_ = (anonymous_namespace)::collate_w._8_4_" (assignment_expression "(anonymous_namespace)::collate_w._8_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::collate_w._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::collate_w" : : identifier) . field_identifier) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::collate_w" : : identifier) . field_identifier) + number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&collate<wchar_t>::id);" statement_identifier (ERROR "::_M_id((id *)&collate<wchar_t>:" : : identifier ( (binary_expression "(id *)&collate<wchar_t" (cast_expression "(id *)&collate" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&collate" & identifier)) < identifier) > :) : (expression_statement "id);" identifier (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::collate_w;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::collate_w" : : identifier) ;) (expression_statement "(anonymous_namespace)::moneypunct_wf._8_4_ = 1;" (assignment_expression "(anonymous_namespace)::moneypunct_wf._8_4_ = 1" (field_expression "(anonymous_namespace)::moneypunct_wf._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_wf" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "(anonymous_namespace)::moneypunct_wf._0_8_ = &PTR__moneypunct_0043bf90;" (assignment_expression "(anonymous_namespace)::moneypunct_wf._0_8_ = &PTR__moneypunct_0043bf90" (field_expression "(anonymous_namespace)::moneypunct_wf._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_wf" : : identifier) . field_identifier) = (pointer_expression "&PTR__moneypunct_0043bf90" & identifier)) ;) (expression_statement "(anonymous_namespace)::moneypunct_wf._16_8_ = pfVar4;" (assignment_expression "(anonymous_namespace)::moneypunct_wf._16_8_ = pfVar4" (field_expression "(anonymous_namespace)::moneypunct_wf._16_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_wf" : : identifier) . field_identifier) = identifier) ;) comment (expression_statement "moneypunct<wchar_t,false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wf,(char *)0x0);" (comma_expression "moneypunct<wchar_t,false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wf,(char *)0x0)" (binary_expression "moneypunct<wchar_t" identifier < identifier) , (binary_expression "false>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wf,(char *)0x0)" false > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wf,(char *)0x0)" identifier (argument_list "((__locale_struct *)(anonymous_namespace)::moneypunct_wf,(char *)0x0)" ( (cast_expression "(__locale_struct *)(anonymous_namespace)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_wf" : : identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::moneypunct_wf._8_4_ = (anonymous_namespace)::moneypunct_wf._8_4_ + 1;" (binary_expression "(anonymous_namespace)::moneypunct_wf._8_4_ = (anonymous_namespace)::moneypunct_wf._8_4_ + 1" (field_expression "(anonymous_namespace)::moneypunct_wf._8_4_ = (anonymous_namespace)::moneypunct_wf._8_4_" (assignment_expression "(anonymous_namespace)::moneypunct_wf._8_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::moneypunct_wf._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_wf" : : identifier) . field_identifier) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_wf" : : identifier) . field_identifier) + number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&moneypunct<wchar_t,false>::id);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)&moneypunct<wchar_t,false>::id);" (call_expression "_M_id((id *)&moneypunct<wchar_t,false>::id)" identifier (argument_list "((id *)&moneypunct<wchar_t,false>::id)" ( (binary_expression "(id *)&moneypunct<wchar_t" (cast_expression "(id *)&moneypunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&moneypunct" & identifier)) < identifier) , (binary_expression "false>::id" false > (ERROR "::" : :) identifier) ))) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_wf;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_wf" : : identifier) ;) (expression_statement "(anonymous_namespace)::moneypunct_wt._8_4_ = 1;" (assignment_expression "(anonymous_namespace)::moneypunct_wt._8_4_ = 1" (field_expression "(anonymous_namespace)::moneypunct_wt._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_wt" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "(anonymous_namespace)::moneypunct_wt._0_8_ = &PTR__moneypunct_0043bf28;" (assignment_expression "(anonymous_namespace)::moneypunct_wt._0_8_ = &PTR__moneypunct_0043bf28" (field_expression "(anonymous_namespace)::moneypunct_wt._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_wt" : : identifier) . field_identifier) = (pointer_expression "&PTR__moneypunct_0043bf28" & identifier)) ;) (expression_statement "(anonymous_namespace)::moneypunct_wt._16_8_ = pfVar6;" (assignment_expression "(anonymous_namespace)::moneypunct_wt._16_8_ = pfVar6" (field_expression "(anonymous_namespace)::moneypunct_wt._16_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_wt" : : identifier) . field_identifier) = identifier) ;) comment (expression_statement "moneypunct<wchar_t,true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wt,(char *)0x0);" (comma_expression "moneypunct<wchar_t,true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wt,(char *)0x0)" (binary_expression "moneypunct<wchar_t" identifier < identifier) , (binary_expression "true>::_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wt,(char *)0x0)" true > (ERROR "::" : :) (call_expression "_M_initialize_moneypunct\n            ((__locale_struct *)(anonymous_namespace)::moneypunct_wt,(char *)0x0)" identifier (argument_list "((__locale_struct *)(anonymous_namespace)::moneypunct_wt,(char *)0x0)" ( (cast_expression "(__locale_struct *)(anonymous_namespace)" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_wt" : : identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::moneypunct_wt._8_4_ = (anonymous_namespace)::moneypunct_wt._8_4_ + 1;" (binary_expression "(anonymous_namespace)::moneypunct_wt._8_4_ = (anonymous_namespace)::moneypunct_wt._8_4_ + 1" (field_expression "(anonymous_namespace)::moneypunct_wt._8_4_ = (anonymous_namespace)::moneypunct_wt._8_4_" (assignment_expression "(anonymous_namespace)::moneypunct_wt._8_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::moneypunct_wt._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::moneypunct_wt" : : identifier) . field_identifier) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_wt" : : identifier) . field_identifier) + number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&moneypunct<wchar_t,true>::id);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)&moneypunct<wchar_t,true>::id);" (call_expression "_M_id((id *)&moneypunct<wchar_t,true>::id)" identifier (argument_list "((id *)&moneypunct<wchar_t,true>::id)" ( (binary_expression "(id *)&moneypunct<wchar_t" (cast_expression "(id *)&moneypunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&moneypunct" & identifier)) < identifier) , (binary_expression "true>::id" true > (ERROR "::" : :) identifier) ))) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::moneypunct_wt;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::moneypunct_wt" : : identifier) ;) (expression_statement "(anonymous_namespace)::money_get_w._0_8_ = &PTR__money_get_0043c1b0;" (assignment_expression "(anonymous_namespace)::money_get_w._0_8_ = &PTR__money_get_0043c1b0" (field_expression "(anonymous_namespace)::money_get_w._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::money_get_w" : : identifier) . field_identifier) = (pointer_expression "&PTR__money_get_0043c1b0" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::money_get_w._8_4_ = 2;" (assignment_expression "(anonymous_namespace)::money_get_w._8_4_ = 2" (field_expression "(anonymous_namespace)::money_get_w._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::money_get_w" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);" statement_identifier (ERROR "::_M_id((id *)&money_get<wchar_t,std::istreambuf_iterator<wchar_t,std:" : : identifier ( (binary_expression "(id *)&money_get<wchar_t" (cast_expression "(id *)&money_get" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&money_get" & identifier)) < identifier) , identifier : : (comma_expression "istreambuf_iterator<wchar_t,std" (binary_expression "istreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>\n                                   ::id);" (binary_expression "char_traits<wchar_t>>>\n                                   ::id" identifier < (binary_expression "wchar_t>>>\n                                   ::id" identifier >> (ERROR ">\n                                   ::" > : :) identifier)) (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_get_w;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::money_get_w" : : identifier) ;) (expression_statement "(anonymous_namespace)::money_put_w._0_8_ = &PTR__money_put_0043c1e0;" (assignment_expression "(anonymous_namespace)::money_put_w._0_8_ = &PTR__money_put_0043c1e0" (field_expression "(anonymous_namespace)::money_put_w._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::money_put_w" : : identifier) . field_identifier) = (pointer_expression "&PTR__money_put_0043c1e0" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::money_put_w._8_4_ = 2;" (assignment_expression "(anonymous_namespace)::money_put_w._8_4_ = 2" (field_expression "(anonymous_namespace)::money_put_w._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::money_put_w" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&money_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);" statement_identifier (ERROR "::_M_id((id *)&money_put<wchar_t,std::ostreambuf_iterator<wchar_t,std:" : : identifier ( (binary_expression "(id *)&money_put<wchar_t" (cast_expression "(id *)&money_put" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&money_put" & identifier)) < identifier) , identifier : : (comma_expression "ostreambuf_iterator<wchar_t,std" (binary_expression "ostreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>\n                                   ::id);" (binary_expression "char_traits<wchar_t>>>\n                                   ::id" identifier < (binary_expression "wchar_t>>>\n                                   ::id" identifier >> (ERROR ">\n                                   ::" > : :) identifier)) (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::money_put_w;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::money_put_w" : : identifier) ;) (expression_statement "(anonymous_namespace)::time_get_w._0_8_ = &PTR__time_get_0043c260;" (assignment_expression "(anonymous_namespace)::time_get_w._0_8_ = &PTR__time_get_0043c260" (field_expression "(anonymous_namespace)::time_get_w._0_8_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::time_get_w" : : identifier) . field_identifier) = (pointer_expression "&PTR__time_get_0043c260" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::time_get_w._8_4_ = 2;" (assignment_expression "(anonymous_namespace)::time_get_w._8_4_ = 2" (field_expression "(anonymous_namespace)::time_get_w._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::time_get_w" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>\n                                   ::id);" statement_identifier (ERROR "::_M_id((id *)&time_get<wchar_t,std::istreambuf_iterator<wchar_t,std:" : : identifier ( (binary_expression "(id *)&time_get<wchar_t" (cast_expression "(id *)&time_get" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&time_get" & identifier)) < identifier) , identifier : : (comma_expression "istreambuf_iterator<wchar_t,std" (binary_expression "istreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>\n                                   ::id);" (binary_expression "char_traits<wchar_t>>>\n                                   ::id" identifier < (binary_expression "wchar_t>>>\n                                   ::id" identifier >> (ERROR ">\n                                   ::" > : :) identifier)) (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::time_get_w;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::time_get_w" : : identifier) ;) (expression_statement "messages<wchar_t>::messages((messages<wchar_t> *)(anonymous_namespace)::messages_w,1);" (binary_expression "messages<wchar_t>::messages((messages<wchar_t> *)(anonymous_namespace)::messages_w,1)" (binary_expression "messages<wchar_t" identifier < identifier) > (ERROR "::" : :) (call_expression "messages((messages<wchar_t> *)(anonymous_namespace)::messages_w,1)" identifier (argument_list "((messages<wchar_t> *)(anonymous_namespace)::messages_w,1)" ( (call_expression "(messages<wchar_t> *)(anonymous_namespace)" (parenthesized_expression "(messages<wchar_t> *)" ( (binary_expression "messages<wchar_t> *" (binary_expression "messages<wchar_t" identifier < identifier) > (pointer_expression "*" * identifier)) )) (argument_list "(anonymous_namespace)" ( identifier ))) (ERROR "::messages_w" : : identifier) , number_literal )))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(anonymous_namespace)::messages_w._8_4_ = (anonymous_namespace)::messages_w._8_4_ + 1;" (binary_expression "(anonymous_namespace)::messages_w._8_4_ = (anonymous_namespace)::messages_w._8_4_ + 1" (field_expression "(anonymous_namespace)::messages_w._8_4_ = (anonymous_namespace)::messages_w._8_4_" (assignment_expression "(anonymous_namespace)::messages_w._8_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::messages_w._8_4_" (parenthesized_expression "(anonymous_namespace)" ( identifier )) (ERROR "::messages_w" : : identifier) . field_identifier) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::messages_w" : : identifier) . field_identifier) + number_literal) ;) (expression_statement "lVar10 = *(long *)(this + 8);" (assignment_expression "lVar10 = *(long *)(this + 8)" identifier = (pointer_expression "*(long *)(this + 8)" * (cast_expression "(long *)(this + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&messages<wchar_t>::id);" statement_identifier (ERROR "::_M_id((id *)&messages<wchar_t>:" : : identifier ( (binary_expression "(id *)&messages<wchar_t" (cast_expression "(id *)&messages" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&messages" & identifier)) < identifier) > :) : (expression_statement "id);" identifier (ERROR ")" )) ;)) (expression_statement "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)::messages_w;" (assignment_expression "*(undefined1 **)(lVar10 + lVar8 * 8) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined1 **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::messages_w" : : identifier) ;) (expression_statement "lVar10 = *(long *)(this + 0x18);" (assignment_expression "lVar10 = *(long *)(this + 0x18)" identifier = (pointer_expression "*(long *)(this + 0x18)" * (cast_expression "(long *)(this + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&numpunct<char>::id);" statement_identifier (ERROR "::_M_id((id *)&numpunct<char>:" : : identifier ( (binary_expression "(id *)&numpunct<char" (cast_expression "(id *)&numpunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&numpunct" & identifier)) < identifier) > :) : (expression_statement "id);" identifier (ERROR ")" )) ;)) (expression_statement "*(facet **)(lVar10 + lVar8 * 8) = pfVar1;" (assignment_expression "*(facet **)(lVar10 + lVar8 * 8) = pfVar1" (pointer_expression "*(facet **)(lVar10 + lVar8 * 8)" * (cast_expression "(facet **)(lVar10 + lVar8 * 8)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(this + 0x18);" (assignment_expression "lVar10 = *(long *)(this + 0x18)" identifier = (pointer_expression "*(long *)(this + 0x18)" * (cast_expression "(long *)(this + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&moneypunct<char,false>::id);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)&moneypunct<char,false>::id);" (call_expression "_M_id((id *)&moneypunct<char,false>::id)" identifier (argument_list "((id *)&moneypunct<char,false>::id)" ( (binary_expression "(id *)&moneypunct<char" (cast_expression "(id *)&moneypunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&moneypunct" & identifier)) < identifier) , (binary_expression "false>::id" false > (ERROR "::" : :) identifier) ))) ;)) (expression_statement "*(facet **)(lVar10 + lVar8 * 8) = pfVar2;" (assignment_expression "*(facet **)(lVar10 + lVar8 * 8) = pfVar2" (pointer_expression "*(facet **)(lVar10 + lVar8 * 8)" * (cast_expression "(facet **)(lVar10 + lVar8 * 8)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(this + 0x18);" (assignment_expression "lVar10 = *(long *)(this + 0x18)" identifier = (pointer_expression "*(long *)(this + 0x18)" * (cast_expression "(long *)(this + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&moneypunct<char,true>::id);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)&moneypunct<char,true>::id);" (call_expression "_M_id((id *)&moneypunct<char,true>::id)" identifier (argument_list "((id *)&moneypunct<char,true>::id)" ( (binary_expression "(id *)&moneypunct<char" (cast_expression "(id *)&moneypunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&moneypunct" & identifier)) < identifier) , (binary_expression "true>::id" true > (ERROR "::" : :) identifier) ))) ;)) (expression_statement "*(facet **)(lVar10 + lVar8 * 8) = pfVar3;" (assignment_expression "*(facet **)(lVar10 + lVar8 * 8) = pfVar3" (pointer_expression "*(facet **)(lVar10 + lVar8 * 8)" * (cast_expression "(facet **)(lVar10 + lVar8 * 8)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(this + 0x18);" (assignment_expression "lVar10 = *(long *)(this + 0x18)" identifier = (pointer_expression "*(long *)(this + 0x18)" * (cast_expression "(long *)(this + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) ;) (ERROR "lVar8 = locale::" (assignment_expression "lVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&numpunct<wchar_t>::id);" statement_identifier (ERROR "::_M_id((id *)&numpunct<wchar_t>:" : : identifier ( (binary_expression "(id *)&numpunct<wchar_t" (cast_expression "(id *)&numpunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&numpunct" & identifier)) < identifier) > :) : (expression_statement "id);" identifier (ERROR ")" )) ;)) (expression_statement "*(facet **)(lVar10 + lVar8 * 8) = pfVar5;" (assignment_expression "*(facet **)(lVar10 + lVar8 * 8) = pfVar5" (pointer_expression "*(facet **)(lVar10 + lVar8 * 8)" * (cast_expression "(facet **)(lVar10 + lVar8 * 8)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(this + 0x18);" (assignment_expression "lVar10 = *(long *)(this + 0x18)" identifier = (pointer_expression "*(long *)(this + 0x18)" * (cast_expression "(long *)(this + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) ;) (ERROR "lVar9 = locale::" (assignment_expression "lVar9 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&moneypunct<wchar_t,false>::id);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)&moneypunct<wchar_t,false>::id);" (call_expression "_M_id((id *)&moneypunct<wchar_t,false>::id)" identifier (argument_list "((id *)&moneypunct<wchar_t,false>::id)" ( (binary_expression "(id *)&moneypunct<wchar_t" (cast_expression "(id *)&moneypunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&moneypunct" & identifier)) < identifier) , (binary_expression "false>::id" false > (ERROR "::" : :) identifier) ))) ;)) (expression_statement "lVar8 = *(long *)(this + 0x18);" (assignment_expression "lVar8 = *(long *)(this + 0x18)" identifier = (pointer_expression "*(long *)(this + 0x18)" * (cast_expression "(long *)(this + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(facet **)(lVar10 + lVar9 * 8) = pfVar4;" (assignment_expression "*(facet **)(lVar10 + lVar9 * 8) = pfVar4" (pointer_expression "*(facet **)(lVar10 + lVar9 * 8)" * (cast_expression "(facet **)(lVar10 + lVar9 * 8)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar9 * 8)" ( (binary_expression "lVar10 + lVar9 * 8" identifier + (binary_expression "lVar9 * 8" identifier * number_literal)) )))) = identifier) ;) (ERROR "lVar10 = locale::" (assignment_expression "lVar10 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)&moneypunct<wchar_t,true>::id);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)&moneypunct<wchar_t,true>::id);" (call_expression "_M_id((id *)&moneypunct<wchar_t,true>::id)" identifier (argument_list "((id *)&moneypunct<wchar_t,true>::id)" ( (binary_expression "(id *)&moneypunct<wchar_t" (cast_expression "(id *)&moneypunct" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&moneypunct" & identifier)) < identifier) , (binary_expression "true>::id" true > (ERROR "::" : :) identifier) ))) ;)) (expression_statement "*(facet **)(lVar8 + lVar10 * 8) = pfVar6;" (assignment_expression "*(facet **)(lVar8 + lVar10 * 8) = pfVar6" (pointer_expression "*(facet **)(lVar8 + lVar10 * 8)" * (cast_expression "(facet **)(lVar8 + lVar10 * 8)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar8 + lVar10 * 8)" ( (binary_expression "lVar8 + lVar10 * 8" identifier + (binary_expression "lVar10 * 8" identifier * number_literal)) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00357b00(long param_1,undefined8 *param_2)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined *puVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  uVar3 = param_2[2];\n  _DAT_0044bf58 = 1;\n  _DAT_0044bf50 = &PTR_FUN_00438ca0;\n  _DAT_0044bf60 = uVar1;\n                    \n  FUN_0031f430(&DAT_0044bf50,0);\n  puVar7 = PTR___pthread_key_create_0043dee8;\n  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf58 = _DAT_0044bf58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;\n  _DAT_0044bf78 = 1;\n  _DAT_0044bf70 = &PTR_FUN_00438c30;\n                    \n  _DAT_0044bf80 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf78 = _DAT_0044bf78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4d8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;\n  _DAT_0044bf18 = 1;\n  _DAT_0044bf10 = &PTR_FUN_00438eb0;\n  _DAT_0044bf20 = uVar2;\n                    \n  FUN_00320170(&DAT_0044bf10,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf18 = _DAT_0044bf18 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;\n  _DAT_0044bf38 = 1;\n  _DAT_0044bf30 = &PTR_FUN_00438e48;\n  _DAT_0044bf40 = uVar3;\n                    \n  FUN_0031fc50(&DAT_0044bf30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf38 = _DAT_0044bf38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;\n  _DAT_0044bf00 = &PTR_FUN_004390d0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a520);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;\n  _DAT_0044bef0 = &PTR_FUN_00439100;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bef8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a518);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;\n  _DAT_0044bee0 = &PTR_FUN_00439180;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bee8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;\n  FUN_002ec000(&DAT_0044bec0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bec8 = _DAT_0044bec8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;\n  uVar4 = param_2[4];\n  _DAT_0044be78 = 1;\n  uVar5 = param_2[3];\n  uVar6 = param_2[5];\n  _DAT_0044be70 = &PTR_FUN_0043bd80;\n  _DAT_0044be80 = uVar5;\n                    \n  FUN_0031f700(&DAT_0044be70,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be78 = _DAT_0044be78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;\n  _DAT_0044be98 = 1;\n  _DAT_0044be90 = &PTR_FUN_0043bc90;\n                    \n  _DAT_0044bea0 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be98 = _DAT_0044be98 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc58);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;\n  _DAT_0044be38 = 1;\n  _DAT_0044be30 = &PTR_FUN_0043bf90;\n  _DAT_0044be40 = uVar4;\n                    \n  FUN_00320e40(&DAT_0044be30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be38 = _DAT_0044be38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bcb0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;\n  _DAT_0044be58 = 1;\n  _DAT_0044be50 = &PTR_FUN_0043bf28;\n  _DAT_0044be60 = uVar6;\n                    \n  FUN_00320890(&DAT_0044be50,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be58 = _DAT_0044be58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;\n  _DAT_0044be20 = &PTR_FUN_0043c1b0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be28 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;\n  _DAT_0044be10 = &PTR_FUN_0043c1e0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be18 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc98);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;\n  _DAT_0044be00 = &PTR_FUN_0043c260;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc68);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;\n  FUN_00326fc0(&DAT_0044bde0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bde8 = _DAT_0044bde8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc60);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar9 = FUN_002dd3a0(&DAT_0044bcb0);\n  lVar8 = *(long *)(param_1 + 0x18);\n  *(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;\n  lVar10 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;\n  return;\n}\n\n" (function_definition "void FUN_00357b00(long param_1,undefined8 *param_2)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined *puVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  uVar3 = param_2[2];\n  _DAT_0044bf58 = 1;\n  _DAT_0044bf50 = &PTR_FUN_00438ca0;\n  _DAT_0044bf60 = uVar1;\n                    \n  FUN_0031f430(&DAT_0044bf50,0);\n  puVar7 = PTR___pthread_key_create_0043dee8;\n  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf58 = _DAT_0044bf58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;\n  _DAT_0044bf78 = 1;\n  _DAT_0044bf70 = &PTR_FUN_00438c30;\n                    \n  _DAT_0044bf80 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf78 = _DAT_0044bf78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4d8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;\n  _DAT_0044bf18 = 1;\n  _DAT_0044bf10 = &PTR_FUN_00438eb0;\n  _DAT_0044bf20 = uVar2;\n                    \n  FUN_00320170(&DAT_0044bf10,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf18 = _DAT_0044bf18 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;\n  _DAT_0044bf38 = 1;\n  _DAT_0044bf30 = &PTR_FUN_00438e48;\n  _DAT_0044bf40 = uVar3;\n                    \n  FUN_0031fc50(&DAT_0044bf30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf38 = _DAT_0044bf38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;\n  _DAT_0044bf00 = &PTR_FUN_004390d0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a520);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;\n  _DAT_0044bef0 = &PTR_FUN_00439100;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bef8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a518);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;\n  _DAT_0044bee0 = &PTR_FUN_00439180;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bee8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;\n  FUN_002ec000(&DAT_0044bec0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bec8 = _DAT_0044bec8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;\n  uVar4 = param_2[4];\n  _DAT_0044be78 = 1;\n  uVar5 = param_2[3];\n  uVar6 = param_2[5];\n  _DAT_0044be70 = &PTR_FUN_0043bd80;\n  _DAT_0044be80 = uVar5;\n                    \n  FUN_0031f700(&DAT_0044be70,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be78 = _DAT_0044be78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;\n  _DAT_0044be98 = 1;\n  _DAT_0044be90 = &PTR_FUN_0043bc90;\n                    \n  _DAT_0044bea0 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be98 = _DAT_0044be98 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc58);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;\n  _DAT_0044be38 = 1;\n  _DAT_0044be30 = &PTR_FUN_0043bf90;\n  _DAT_0044be40 = uVar4;\n                    \n  FUN_00320e40(&DAT_0044be30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be38 = _DAT_0044be38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bcb0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;\n  _DAT_0044be58 = 1;\n  _DAT_0044be50 = &PTR_FUN_0043bf28;\n  _DAT_0044be60 = uVar6;\n                    \n  FUN_00320890(&DAT_0044be50,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be58 = _DAT_0044be58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;\n  _DAT_0044be20 = &PTR_FUN_0043c1b0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be28 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;\n  _DAT_0044be10 = &PTR_FUN_0043c1e0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be18 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc98);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;\n  _DAT_0044be00 = &PTR_FUN_0043c260;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc68);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;\n  FUN_00326fc0(&DAT_0044bde0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bde8 = _DAT_0044bde8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc60);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar9 = FUN_002dd3a0(&DAT_0044bcb0);\n  lVar8 = *(long *)(param_1 + 0x18);\n  *(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;\n  lVar10 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;\n  return;\n}" primitive_type (function_declarator "FUN_00357b00(long param_1,undefined8 *param_2)" identifier (parameter_list "(long param_1,undefined8 *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined *puVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  uVar3 = param_2[2];\n  _DAT_0044bf58 = 1;\n  _DAT_0044bf50 = &PTR_FUN_00438ca0;\n  _DAT_0044bf60 = uVar1;\n                    \n  FUN_0031f430(&DAT_0044bf50,0);\n  puVar7 = PTR___pthread_key_create_0043dee8;\n  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf58 = _DAT_0044bf58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;\n  _DAT_0044bf78 = 1;\n  _DAT_0044bf70 = &PTR_FUN_00438c30;\n                    \n  _DAT_0044bf80 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf78 = _DAT_0044bf78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4d8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;\n  _DAT_0044bf18 = 1;\n  _DAT_0044bf10 = &PTR_FUN_00438eb0;\n  _DAT_0044bf20 = uVar2;\n                    \n  FUN_00320170(&DAT_0044bf10,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf18 = _DAT_0044bf18 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;\n  _DAT_0044bf38 = 1;\n  _DAT_0044bf30 = &PTR_FUN_00438e48;\n  _DAT_0044bf40 = uVar3;\n                    \n  FUN_0031fc50(&DAT_0044bf30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf38 = _DAT_0044bf38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;\n  _DAT_0044bf00 = &PTR_FUN_004390d0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a520);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;\n  _DAT_0044bef0 = &PTR_FUN_00439100;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bef8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a518);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;\n  _DAT_0044bee0 = &PTR_FUN_00439180;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bee8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;\n  FUN_002ec000(&DAT_0044bec0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bec8 = _DAT_0044bec8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;\n  uVar4 = param_2[4];\n  _DAT_0044be78 = 1;\n  uVar5 = param_2[3];\n  uVar6 = param_2[5];\n  _DAT_0044be70 = &PTR_FUN_0043bd80;\n  _DAT_0044be80 = uVar5;\n                    \n  FUN_0031f700(&DAT_0044be70,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be78 = _DAT_0044be78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;\n  _DAT_0044be98 = 1;\n  _DAT_0044be90 = &PTR_FUN_0043bc90;\n                    \n  _DAT_0044bea0 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be98 = _DAT_0044be98 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc58);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;\n  _DAT_0044be38 = 1;\n  _DAT_0044be30 = &PTR_FUN_0043bf90;\n  _DAT_0044be40 = uVar4;\n                    \n  FUN_00320e40(&DAT_0044be30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be38 = _DAT_0044be38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bcb0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;\n  _DAT_0044be58 = 1;\n  _DAT_0044be50 = &PTR_FUN_0043bf28;\n  _DAT_0044be60 = uVar6;\n                    \n  FUN_00320890(&DAT_0044be50,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be58 = _DAT_0044be58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;\n  _DAT_0044be20 = &PTR_FUN_0043c1b0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be28 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;\n  _DAT_0044be10 = &PTR_FUN_0043c1e0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be18 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc98);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;\n  _DAT_0044be00 = &PTR_FUN_0043c260;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc68);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;\n  FUN_00326fc0(&DAT_0044bde0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bde8 = _DAT_0044bde8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc60);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar9 = FUN_002dd3a0(&DAT_0044bcb0);\n  lVar8 = *(long *)(param_1 + 0x18);\n  *(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;\n  lVar10 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar2 = param_2[1];" (assignment_expression "uVar2 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_2[2];" (assignment_expression "uVar3 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0044bf58 = 1;" (assignment_expression "_DAT_0044bf58 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044bf50 = &PTR_FUN_00438ca0;" (assignment_expression "_DAT_0044bf50 = &PTR_FUN_00438ca0" identifier = (pointer_expression "&PTR_FUN_00438ca0" & identifier)) ;) (expression_statement "_DAT_0044bf60 = uVar1;" (assignment_expression "_DAT_0044bf60 = uVar1" identifier = identifier) ;) (expression_statement "FUN_0031f430(&DAT_0044bf50,0);" (call_expression "FUN_0031f430(&DAT_0044bf50,0)" identifier (argument_list "(&DAT_0044bf50,0)" ( (pointer_expression "&DAT_0044bf50" & identifier) , number_literal ))) ;) (expression_statement "puVar7 = PTR___pthread_key_create_0043dee8;" (assignment_expression "puVar7 = PTR___pthread_key_create_0043dee8" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_0043dee8 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_0043dee8 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bf58 = _DAT_0044bf58 + 1;" (assignment_expression "_DAT_0044bf58 = _DAT_0044bf58 + 1" identifier = (binary_expression "_DAT_0044bf58 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a510);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a510)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a510)" identifier (argument_list "(&DAT_0044a510)" ( (pointer_expression "&DAT_0044a510" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bf50" & identifier)) ;) (expression_statement "_DAT_0044bf78 = 1;" (assignment_expression "_DAT_0044bf78 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044bf70 = &PTR_FUN_00438c30;" (assignment_expression "_DAT_0044bf70 = &PTR_FUN_00438c30" identifier = (pointer_expression "&PTR_FUN_00438c30" & identifier)) ;) (expression_statement "_DAT_0044bf80 = FUN_002dcf60();" (assignment_expression "_DAT_0044bf80 = FUN_002dcf60()" identifier = (call_expression "FUN_002dcf60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bf78 = _DAT_0044bf78 + 1;" (assignment_expression "_DAT_0044bf78 = _DAT_0044bf78 + 1" identifier = (binary_expression "_DAT_0044bf78 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a4d8);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a4d8)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a4d8)" identifier (argument_list "(&DAT_0044a4d8)" ( (pointer_expression "&DAT_0044a4d8" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bf70" & identifier)) ;) (expression_statement "_DAT_0044bf18 = 1;" (assignment_expression "_DAT_0044bf18 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044bf10 = &PTR_FUN_00438eb0;" (assignment_expression "_DAT_0044bf10 = &PTR_FUN_00438eb0" identifier = (pointer_expression "&PTR_FUN_00438eb0" & identifier)) ;) (expression_statement "_DAT_0044bf20 = uVar2;" (assignment_expression "_DAT_0044bf20 = uVar2" identifier = identifier) ;) (expression_statement "FUN_00320170(&DAT_0044bf10,0,0);" (call_expression "FUN_00320170(&DAT_0044bf10,0,0)" identifier (argument_list "(&DAT_0044bf10,0,0)" ( (pointer_expression "&DAT_0044bf10" & identifier) , number_literal , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bf18 = _DAT_0044bf18 + 1;" (assignment_expression "_DAT_0044bf18 = _DAT_0044bf18 + 1" identifier = (binary_expression "_DAT_0044bf18 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a530);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a530)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a530)" identifier (argument_list "(&DAT_0044a530)" ( (pointer_expression "&DAT_0044a530" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bf10" & identifier)) ;) (expression_statement "_DAT_0044bf38 = 1;" (assignment_expression "_DAT_0044bf38 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044bf30 = &PTR_FUN_00438e48;" (assignment_expression "_DAT_0044bf30 = &PTR_FUN_00438e48" identifier = (pointer_expression "&PTR_FUN_00438e48" & identifier)) ;) (expression_statement "_DAT_0044bf40 = uVar3;" (assignment_expression "_DAT_0044bf40 = uVar3" identifier = identifier) ;) (expression_statement "FUN_0031fc50(&DAT_0044bf30,0,0);" (call_expression "FUN_0031fc50(&DAT_0044bf30,0,0)" identifier (argument_list "(&DAT_0044bf30,0,0)" ( (pointer_expression "&DAT_0044bf30" & identifier) , number_literal , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bf38 = _DAT_0044bf38 + 1;" (assignment_expression "_DAT_0044bf38 = _DAT_0044bf38 + 1" identifier = (binary_expression "_DAT_0044bf38 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a528);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a528)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a528)" identifier (argument_list "(&DAT_0044a528)" ( (pointer_expression "&DAT_0044a528" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bf30" & identifier)) ;) (expression_statement "_DAT_0044bf00 = &PTR_FUN_004390d0;" (assignment_expression "_DAT_0044bf00 = &PTR_FUN_004390d0" identifier = (pointer_expression "&PTR_FUN_004390d0" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bf08 = 2;" (assignment_expression "_DAT_0044bf08 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a520);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a520)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a520)" identifier (argument_list "(&DAT_0044a520)" ( (pointer_expression "&DAT_0044a520" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bf00" & identifier)) ;) (expression_statement "_DAT_0044bef0 = &PTR_FUN_00439100;" (assignment_expression "_DAT_0044bef0 = &PTR_FUN_00439100" identifier = (pointer_expression "&PTR_FUN_00439100" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bef8 = 2;" (assignment_expression "_DAT_0044bef8 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a518);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a518)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a518)" identifier (argument_list "(&DAT_0044a518)" ( (pointer_expression "&DAT_0044a518" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bef0" & identifier)) ;) (expression_statement "_DAT_0044bee0 = &PTR_FUN_00439180;" (assignment_expression "_DAT_0044bee0 = &PTR_FUN_00439180" identifier = (pointer_expression "&PTR_FUN_00439180" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bee8 = 2;" (assignment_expression "_DAT_0044bee8 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a4e8);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a4e8)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a4e8)" identifier (argument_list "(&DAT_0044a4e8)" ( (pointer_expression "&DAT_0044a4e8" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bee0" & identifier)) ;) (expression_statement "FUN_002ec000(&DAT_0044bec0,1);" (call_expression "FUN_002ec000(&DAT_0044bec0,1)" identifier (argument_list "(&DAT_0044bec0,1)" ( (pointer_expression "&DAT_0044bec0" & identifier) , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bec8 = _DAT_0044bec8 + 1;" (assignment_expression "_DAT_0044bec8 = _DAT_0044bec8 + 1" identifier = (binary_expression "_DAT_0044bec8 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a4e0);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a4e0)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a4e0)" identifier (argument_list "(&DAT_0044a4e0)" ( (pointer_expression "&DAT_0044a4e0" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bec0" & identifier)) ;) (expression_statement "uVar4 = param_2[4];" (assignment_expression "uVar4 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0044be78 = 1;" (assignment_expression "_DAT_0044be78 = 1" identifier = number_literal) ;) (expression_statement "uVar5 = param_2[3];" (assignment_expression "uVar5 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_2[5];" (assignment_expression "uVar6 = param_2[5]" identifier = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0044be70 = &PTR_FUN_0043bd80;" (assignment_expression "_DAT_0044be70 = &PTR_FUN_0043bd80" identifier = (pointer_expression "&PTR_FUN_0043bd80" & identifier)) ;) (expression_statement "_DAT_0044be80 = uVar5;" (assignment_expression "_DAT_0044be80 = uVar5" identifier = identifier) ;) (expression_statement "FUN_0031f700(&DAT_0044be70,0);" (call_expression "FUN_0031f700(&DAT_0044be70,0)" identifier (argument_list "(&DAT_0044be70,0)" ( (pointer_expression "&DAT_0044be70" & identifier) , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be78 = _DAT_0044be78 + 1;" (assignment_expression "_DAT_0044be78 = _DAT_0044be78 + 1" identifier = (binary_expression "_DAT_0044be78 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc90);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc90)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc90)" identifier (argument_list "(&DAT_0044bc90)" ( (pointer_expression "&DAT_0044bc90" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be70" & identifier)) ;) (expression_statement "_DAT_0044be98 = 1;" (assignment_expression "_DAT_0044be98 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044be90 = &PTR_FUN_0043bc90;" (assignment_expression "_DAT_0044be90 = &PTR_FUN_0043bc90" identifier = (pointer_expression "&PTR_FUN_0043bc90" & identifier)) ;) (expression_statement "_DAT_0044bea0 = FUN_002dcf60();" (assignment_expression "_DAT_0044bea0 = FUN_002dcf60()" identifier = (call_expression "FUN_002dcf60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be98 = _DAT_0044be98 + 1;" (assignment_expression "_DAT_0044be98 = _DAT_0044be98 + 1" identifier = (binary_expression "_DAT_0044be98 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc58);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc58)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc58)" identifier (argument_list "(&DAT_0044bc58)" ( (pointer_expression "&DAT_0044bc58" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be90" & identifier)) ;) (expression_statement "_DAT_0044be38 = 1;" (assignment_expression "_DAT_0044be38 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044be30 = &PTR_FUN_0043bf90;" (assignment_expression "_DAT_0044be30 = &PTR_FUN_0043bf90" identifier = (pointer_expression "&PTR_FUN_0043bf90" & identifier)) ;) (expression_statement "_DAT_0044be40 = uVar4;" (assignment_expression "_DAT_0044be40 = uVar4" identifier = identifier) ;) (expression_statement "FUN_00320e40(&DAT_0044be30,0,0);" (call_expression "FUN_00320e40(&DAT_0044be30,0,0)" identifier (argument_list "(&DAT_0044be30,0,0)" ( (pointer_expression "&DAT_0044be30" & identifier) , number_literal , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be38 = _DAT_0044be38 + 1;" (assignment_expression "_DAT_0044be38 = _DAT_0044be38 + 1" identifier = (binary_expression "_DAT_0044be38 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bcb0);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bcb0)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bcb0)" identifier (argument_list "(&DAT_0044bcb0)" ( (pointer_expression "&DAT_0044bcb0" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be30" & identifier)) ;) (expression_statement "_DAT_0044be58 = 1;" (assignment_expression "_DAT_0044be58 = 1" identifier = number_literal) ;) (expression_statement "_DAT_0044be50 = &PTR_FUN_0043bf28;" (assignment_expression "_DAT_0044be50 = &PTR_FUN_0043bf28" identifier = (pointer_expression "&PTR_FUN_0043bf28" & identifier)) ;) (expression_statement "_DAT_0044be60 = uVar6;" (assignment_expression "_DAT_0044be60 = uVar6" identifier = identifier) ;) (expression_statement "FUN_00320890(&DAT_0044be50,0,0);" (call_expression "FUN_00320890(&DAT_0044be50,0,0)" identifier (argument_list "(&DAT_0044be50,0,0)" ( (pointer_expression "&DAT_0044be50" & identifier) , number_literal , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be58 = _DAT_0044be58 + 1;" (assignment_expression "_DAT_0044be58 = _DAT_0044be58 + 1" identifier = (binary_expression "_DAT_0044be58 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bca8);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bca8)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bca8)" identifier (argument_list "(&DAT_0044bca8)" ( (pointer_expression "&DAT_0044bca8" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be50" & identifier)) ;) (expression_statement "_DAT_0044be20 = &PTR_FUN_0043c1b0;" (assignment_expression "_DAT_0044be20 = &PTR_FUN_0043c1b0" identifier = (pointer_expression "&PTR_FUN_0043c1b0" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be28 = 2;" (assignment_expression "_DAT_0044be28 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bca0);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bca0)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bca0)" identifier (argument_list "(&DAT_0044bca0)" ( (pointer_expression "&DAT_0044bca0" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be20" & identifier)) ;) (expression_statement "_DAT_0044be10 = &PTR_FUN_0043c1e0;" (assignment_expression "_DAT_0044be10 = &PTR_FUN_0043c1e0" identifier = (pointer_expression "&PTR_FUN_0043c1e0" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be18 = 2;" (assignment_expression "_DAT_0044be18 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc98);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc98)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc98)" identifier (argument_list "(&DAT_0044bc98)" ( (pointer_expression "&DAT_0044bc98" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be10" & identifier)) ;) (expression_statement "_DAT_0044be00 = &PTR_FUN_0043c260;" (assignment_expression "_DAT_0044be00 = &PTR_FUN_0043c260" identifier = (pointer_expression "&PTR_FUN_0043c260" & identifier)) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044be08 = 2;" (assignment_expression "_DAT_0044be08 = 2" identifier = number_literal) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc68);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc68)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc68)" identifier (argument_list "(&DAT_0044bc68)" ( (pointer_expression "&DAT_0044bc68" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044be00" & identifier)) ;) (expression_statement "FUN_00326fc0(&DAT_0044bde0,1);" (call_expression "FUN_00326fc0(&DAT_0044bde0,1)" identifier (argument_list "(&DAT_0044bde0,1)" ( (pointer_expression "&DAT_0044bde0" & identifier) , number_literal ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_DAT_0044bde8 = _DAT_0044bde8 + 1;" (assignment_expression "_DAT_0044bde8 = _DAT_0044bde8 + 1" identifier = (binary_expression "_DAT_0044bde8 + 1" identifier + number_literal)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc60);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc60)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc60)" identifier (argument_list "(&DAT_0044bc60)" ( (pointer_expression "&DAT_0044bc60" & identifier) )))) ;) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = (pointer_expression "&DAT_0044bde0" & identifier)) ;) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a510);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a510)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a510)" identifier (argument_list "(&DAT_0044a510)" ( (pointer_expression "&DAT_0044a510" & identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar1" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a530);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a530)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a530)" identifier (argument_list "(&DAT_0044a530)" ( (pointer_expression "&DAT_0044a530" & identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar2" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a528);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a528)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044a528)" identifier (argument_list "(&DAT_0044a528)" ( (pointer_expression "&DAT_0044a528" & identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar3" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc90);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc90)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bc90)" identifier (argument_list "(&DAT_0044bc90)" ( (pointer_expression "&DAT_0044bc90" & identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar5" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" * (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar8 * 8)" ( (binary_expression "lVar10 + lVar8 * 8" identifier + (binary_expression "lVar8 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar9 = FUN_002dd3a0(&DAT_0044bcb0);" (assignment_expression "lVar9 = FUN_002dd3a0(&DAT_0044bcb0)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bcb0)" identifier (argument_list "(&DAT_0044bcb0)" ( (pointer_expression "&DAT_0044bcb0" & identifier) )))) ;) (expression_statement "lVar8 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar8 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;" (assignment_expression "*(undefined8 *)(lVar10 + lVar9 * 8) = uVar4" (pointer_expression "*(undefined8 *)(lVar10 + lVar9 * 8)" * (cast_expression "(undefined8 *)(lVar10 + lVar9 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + lVar9 * 8)" ( (binary_expression "lVar10 + lVar9 * 8" identifier + (binary_expression "lVar9 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = FUN_002dd3a0(&DAT_0044bca8);" (assignment_expression "lVar10 = FUN_002dd3a0(&DAT_0044bca8)" identifier = (call_expression "FUN_002dd3a0(&DAT_0044bca8)" identifier (argument_list "(&DAT_0044bca8)" ( (pointer_expression "&DAT_0044bca8" & identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;" (assignment_expression "*(undefined8 *)(lVar8 + lVar10 * 8) = uVar6" (pointer_expression "*(undefined8 *)(lVar8 + lVar10 * 8)" * (cast_expression "(undefined8 *)(lVar8 + lVar10 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + lVar10 * 8)" ( (binary_expression "lVar8 + lVar10 * 8" identifier + (binary_expression "lVar10 * 8" identifier * number_literal)) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_00357b00(long param_1,undefined8 *param_2)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined *puVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  uVar3 = param_2[2];\n  _DAT_0044bf58 = 1;\n  _DAT_0044bf50 = &PTR_FUN_00438ca0;\n  _DAT_0044bf60 = uVar1;\n                    \n  FUN_0031f430(&DAT_0044bf50,0);\n  puVar7 = PTR___pthread_key_create_0043dee8;\n  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf58 = _DAT_0044bf58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;\n  _DAT_0044bf78 = 1;\n  _DAT_0044bf70 = &PTR_FUN_00438c30;\n                    \n  _DAT_0044bf80 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf78 = _DAT_0044bf78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4d8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;\n  _DAT_0044bf18 = 1;\n  _DAT_0044bf10 = &PTR_FUN_00438eb0;\n  _DAT_0044bf20 = uVar2;\n                    \n  FUN_00320170(&DAT_0044bf10,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf18 = _DAT_0044bf18 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;\n  _DAT_0044bf38 = 1;\n  _DAT_0044bf30 = &PTR_FUN_00438e48;\n  _DAT_0044bf40 = uVar3;\n                    \n  FUN_0031fc50(&DAT_0044bf30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf38 = _DAT_0044bf38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;\n  _DAT_0044bf00 = &PTR_FUN_004390d0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a520);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;\n  _DAT_0044bef0 = &PTR_FUN_00439100;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bef8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a518);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;\n  _DAT_0044bee0 = &PTR_FUN_00439180;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bee8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;\n  FUN_002ec000(&DAT_0044bec0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bec8 = _DAT_0044bec8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;\n  uVar4 = param_2[4];\n  _DAT_0044be78 = 1;\n  uVar5 = param_2[3];\n  uVar6 = param_2[5];\n  _DAT_0044be70 = &PTR_FUN_0043bd80;\n  _DAT_0044be80 = uVar5;\n                    \n  FUN_0031f700(&DAT_0044be70,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be78 = _DAT_0044be78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;\n  _DAT_0044be98 = 1;\n  _DAT_0044be90 = &PTR_FUN_0043bc90;\n                    \n  _DAT_0044bea0 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be98 = _DAT_0044be98 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc58);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;\n  _DAT_0044be38 = 1;\n  _DAT_0044be30 = &PTR_FUN_0043bf90;\n  _DAT_0044be40 = uVar4;\n                    \n  FUN_00320e40(&DAT_0044be30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be38 = _DAT_0044be38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bcb0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;\n  _DAT_0044be58 = 1;\n  _DAT_0044be50 = &PTR_FUN_0043bf28;\n  _DAT_0044be60 = uVar6;\n                    \n  FUN_00320890(&DAT_0044be50,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be58 = _DAT_0044be58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;\n  _DAT_0044be20 = &PTR_FUN_0043c1b0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be28 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;\n  _DAT_0044be10 = &PTR_FUN_0043c1e0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be18 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc98);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;\n  _DAT_0044be00 = &PTR_FUN_0043c260;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc68);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;\n  FUN_00326fc0(&DAT_0044bde0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bde8 = _DAT_0044bde8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc60);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar9 = FUN_002dd3a0(&DAT_0044bcb0);\n  lVar8 = *(long *)(param_1 + 0x18);\n  *(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;\n  lVar10 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00357b00(long param_1,undefined8 *param_2)" (identifier "FUN_00357b00") (parameter_list "(long param_1,undefined8 *param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 *param_2" (type_identifier "undefined8") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined *puVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  uVar3 = param_2[2];\n  _DAT_0044bf58 = 1;\n  _DAT_0044bf50 = &PTR_FUN_00438ca0;\n  _DAT_0044bf60 = uVar1;\n                    \n  FUN_0031f430(&DAT_0044bf50,0);\n  puVar7 = PTR___pthread_key_create_0043dee8;\n  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf58 = _DAT_0044bf58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;\n  _DAT_0044bf78 = 1;\n  _DAT_0044bf70 = &PTR_FUN_00438c30;\n                    \n  _DAT_0044bf80 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf78 = _DAT_0044bf78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4d8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;\n  _DAT_0044bf18 = 1;\n  _DAT_0044bf10 = &PTR_FUN_00438eb0;\n  _DAT_0044bf20 = uVar2;\n                    \n  FUN_00320170(&DAT_0044bf10,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf18 = _DAT_0044bf18 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;\n  _DAT_0044bf38 = 1;\n  _DAT_0044bf30 = &PTR_FUN_00438e48;\n  _DAT_0044bf40 = uVar3;\n                    \n  FUN_0031fc50(&DAT_0044bf30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf38 = _DAT_0044bf38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;\n  _DAT_0044bf00 = &PTR_FUN_004390d0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bf08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a520);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;\n  _DAT_0044bef0 = &PTR_FUN_00439100;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bef8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a518);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;\n  _DAT_0044bee0 = &PTR_FUN_00439180;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bee8 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;\n  FUN_002ec000(&DAT_0044bec0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bec8 = _DAT_0044bec8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044a4e0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;\n  uVar4 = param_2[4];\n  _DAT_0044be78 = 1;\n  uVar5 = param_2[3];\n  uVar6 = param_2[5];\n  _DAT_0044be70 = &PTR_FUN_0043bd80;\n  _DAT_0044be80 = uVar5;\n                    \n  FUN_0031f700(&DAT_0044be70,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be78 = _DAT_0044be78 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;\n  _DAT_0044be98 = 1;\n  _DAT_0044be90 = &PTR_FUN_0043bc90;\n                    \n  _DAT_0044bea0 = FUN_002dcf60();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be98 = _DAT_0044be98 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc58);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;\n  _DAT_0044be38 = 1;\n  _DAT_0044be30 = &PTR_FUN_0043bf90;\n  _DAT_0044be40 = uVar4;\n                    \n  FUN_00320e40(&DAT_0044be30,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be38 = _DAT_0044be38 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bcb0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;\n  _DAT_0044be58 = 1;\n  _DAT_0044be50 = &PTR_FUN_0043bf28;\n  _DAT_0044be60 = uVar6;\n                    \n  FUN_00320890(&DAT_0044be50,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be58 = _DAT_0044be58 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;\n  _DAT_0044be20 = &PTR_FUN_0043c1b0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be28 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bca0);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;\n  _DAT_0044be10 = &PTR_FUN_0043c1e0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be18 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc98);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;\n  _DAT_0044be00 = &PTR_FUN_0043c260;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044be08 = 2;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc68);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;\n  FUN_00326fc0(&DAT_0044bde0,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _DAT_0044bde8 = _DAT_0044bde8 + 1;\n  lVar10 = *(long *)(param_1 + 8);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc60);\n  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a510);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a530);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044a528);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar8 = FUN_002dd3a0(&DAT_0044bc90);\n  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;\n  lVar10 = *(long *)(param_1 + 0x18);\n  lVar9 = FUN_002dd3a0(&DAT_0044bcb0);\n  lVar8 = *(long *)(param_1 + 0x18);\n  *(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;\n  lVar10 = FUN_002dd3a0(&DAT_0044bca8);\n  *(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;\n  return;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" (identifier "uVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar2 = param_2[1];" (assignment_expression "uVar2 = param_2[1]" (identifier "uVar2") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar3 = param_2[2];" (assignment_expression "uVar3 = param_2[2]" (identifier "uVar3") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "_DAT_0044bf58 = 1;" (assignment_expression "_DAT_0044bf58 = 1" (identifier "_DAT_0044bf58") (= "=") (number_literal "1")) (; ";")) (expression_statement "_DAT_0044bf50 = &PTR_FUN_00438ca0;" (assignment_expression "_DAT_0044bf50 = &PTR_FUN_00438ca0" (identifier "_DAT_0044bf50") (= "=") (pointer_expression "&PTR_FUN_00438ca0" (& "&") (identifier "PTR_FUN_00438ca0"))) (; ";")) (expression_statement "_DAT_0044bf60 = uVar1;" (assignment_expression "_DAT_0044bf60 = uVar1" (identifier "_DAT_0044bf60") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "FUN_0031f430(&DAT_0044bf50,0);" (call_expression "FUN_0031f430(&DAT_0044bf50,0)" (identifier "FUN_0031f430") (argument_list "(&DAT_0044bf50,0)" (( "(") (pointer_expression "&DAT_0044bf50" (& "&") (identifier "DAT_0044bf50")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar7 = PTR___pthread_key_create_0043dee8;" (assignment_expression "puVar7 = PTR___pthread_key_create_0043dee8" (identifier "puVar7") (= "=") (identifier "PTR___pthread_key_create_0043dee8")) (; ";")) (if_statement "if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(PTR___pthread_key_create_0043dee8 != (undefined *)0x0)" (( "(") (binary_expression "PTR___pthread_key_create_0043dee8 != (undefined *)0x0" (identifier "PTR___pthread_key_create_0043dee8") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044bf58 = _DAT_0044bf58 + 1;" (assignment_expression "_DAT_0044bf58 = _DAT_0044bf58 + 1" (identifier "_DAT_0044bf58") (= "=") (binary_expression "_DAT_0044bf58 + 1" (identifier "_DAT_0044bf58") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a510);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a510)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044a510)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044a510)" (( "(") (pointer_expression "&DAT_0044a510" (& "&") (identifier "DAT_0044a510")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044bf50" (& "&") (identifier "DAT_0044bf50"))) (; ";")) (expression_statement "_DAT_0044bf78 = 1;" (assignment_expression "_DAT_0044bf78 = 1" (identifier "_DAT_0044bf78") (= "=") (number_literal "1")) (; ";")) (expression_statement "_DAT_0044bf70 = &PTR_FUN_00438c30;" (assignment_expression "_DAT_0044bf70 = &PTR_FUN_00438c30" (identifier "_DAT_0044bf70") (= "=") (pointer_expression "&PTR_FUN_00438c30" (& "&") (identifier "PTR_FUN_00438c30"))) (; ";")) (expression_statement "_DAT_0044bf80 = FUN_002dcf60();" (assignment_expression "_DAT_0044bf80 = FUN_002dcf60()" (identifier "_DAT_0044bf80") (= "=") (call_expression "FUN_002dcf60()" (identifier "FUN_002dcf60") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044bf78 = _DAT_0044bf78 + 1;" (assignment_expression "_DAT_0044bf78 = _DAT_0044bf78 + 1" (identifier "_DAT_0044bf78") (= "=") (binary_expression "_DAT_0044bf78 + 1" (identifier "_DAT_0044bf78") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a4d8);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a4d8)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044a4d8)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044a4d8)" (( "(") (pointer_expression "&DAT_0044a4d8" (& "&") (identifier "DAT_0044a4d8")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044bf70" (& "&") (identifier "DAT_0044bf70"))) (; ";")) (expression_statement "_DAT_0044bf18 = 1;" (assignment_expression "_DAT_0044bf18 = 1" (identifier "_DAT_0044bf18") (= "=") (number_literal "1")) (; ";")) (expression_statement "_DAT_0044bf10 = &PTR_FUN_00438eb0;" (assignment_expression "_DAT_0044bf10 = &PTR_FUN_00438eb0" (identifier "_DAT_0044bf10") (= "=") (pointer_expression "&PTR_FUN_00438eb0" (& "&") (identifier "PTR_FUN_00438eb0"))) (; ";")) (expression_statement "_DAT_0044bf20 = uVar2;" (assignment_expression "_DAT_0044bf20 = uVar2" (identifier "_DAT_0044bf20") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_00320170(&DAT_0044bf10,0,0);" (call_expression "FUN_00320170(&DAT_0044bf10,0,0)" (identifier "FUN_00320170") (argument_list "(&DAT_0044bf10,0,0)" (( "(") (pointer_expression "&DAT_0044bf10" (& "&") (identifier "DAT_0044bf10")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044bf18 = _DAT_0044bf18 + 1;" (assignment_expression "_DAT_0044bf18 = _DAT_0044bf18 + 1" (identifier "_DAT_0044bf18") (= "=") (binary_expression "_DAT_0044bf18 + 1" (identifier "_DAT_0044bf18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a530);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a530)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044a530)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044a530)" (( "(") (pointer_expression "&DAT_0044a530" (& "&") (identifier "DAT_0044a530")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044bf10" (& "&") (identifier "DAT_0044bf10"))) (; ";")) (expression_statement "_DAT_0044bf38 = 1;" (assignment_expression "_DAT_0044bf38 = 1" (identifier "_DAT_0044bf38") (= "=") (number_literal "1")) (; ";")) (expression_statement "_DAT_0044bf30 = &PTR_FUN_00438e48;" (assignment_expression "_DAT_0044bf30 = &PTR_FUN_00438e48" (identifier "_DAT_0044bf30") (= "=") (pointer_expression "&PTR_FUN_00438e48" (& "&") (identifier "PTR_FUN_00438e48"))) (; ";")) (expression_statement "_DAT_0044bf40 = uVar3;" (assignment_expression "_DAT_0044bf40 = uVar3" (identifier "_DAT_0044bf40") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "FUN_0031fc50(&DAT_0044bf30,0,0);" (call_expression "FUN_0031fc50(&DAT_0044bf30,0,0)" (identifier "FUN_0031fc50") (argument_list "(&DAT_0044bf30,0,0)" (( "(") (pointer_expression "&DAT_0044bf30" (& "&") (identifier "DAT_0044bf30")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044bf38 = _DAT_0044bf38 + 1;" (assignment_expression "_DAT_0044bf38 = _DAT_0044bf38 + 1" (identifier "_DAT_0044bf38") (= "=") (binary_expression "_DAT_0044bf38 + 1" (identifier "_DAT_0044bf38") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a528);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a528)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044a528)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044a528)" (( "(") (pointer_expression "&DAT_0044a528" (& "&") (identifier "DAT_0044a528")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044bf30" (& "&") (identifier "DAT_0044bf30"))) (; ";")) (expression_statement "_DAT_0044bf00 = &PTR_FUN_004390d0;" (assignment_expression "_DAT_0044bf00 = &PTR_FUN_004390d0" (identifier "_DAT_0044bf00") (= "=") (pointer_expression "&PTR_FUN_004390d0" (& "&") (identifier "PTR_FUN_004390d0"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044bf08 = 2;" (assignment_expression "_DAT_0044bf08 = 2" (identifier "_DAT_0044bf08") (= "=") (number_literal "2")) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a520);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a520)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044a520)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044a520)" (( "(") (pointer_expression "&DAT_0044a520" (& "&") (identifier "DAT_0044a520")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044bf00" (& "&") (identifier "DAT_0044bf00"))) (; ";")) (expression_statement "_DAT_0044bef0 = &PTR_FUN_00439100;" (assignment_expression "_DAT_0044bef0 = &PTR_FUN_00439100" (identifier "_DAT_0044bef0") (= "=") (pointer_expression "&PTR_FUN_00439100" (& "&") (identifier "PTR_FUN_00439100"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044bef8 = 2;" (assignment_expression "_DAT_0044bef8 = 2" (identifier "_DAT_0044bef8") (= "=") (number_literal "2")) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a518);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a518)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044a518)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044a518)" (( "(") (pointer_expression "&DAT_0044a518" (& "&") (identifier "DAT_0044a518")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044bef0" (& "&") (identifier "DAT_0044bef0"))) (; ";")) (expression_statement "_DAT_0044bee0 = &PTR_FUN_00439180;" (assignment_expression "_DAT_0044bee0 = &PTR_FUN_00439180" (identifier "_DAT_0044bee0") (= "=") (pointer_expression "&PTR_FUN_00439180" (& "&") (identifier "PTR_FUN_00439180"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044bee8 = 2;" (assignment_expression "_DAT_0044bee8 = 2" (identifier "_DAT_0044bee8") (= "=") (number_literal "2")) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a4e8);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a4e8)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044a4e8)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044a4e8)" (( "(") (pointer_expression "&DAT_0044a4e8" (& "&") (identifier "DAT_0044a4e8")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044bee0" (& "&") (identifier "DAT_0044bee0"))) (; ";")) (expression_statement "FUN_002ec000(&DAT_0044bec0,1);" (call_expression "FUN_002ec000(&DAT_0044bec0,1)" (identifier "FUN_002ec000") (argument_list "(&DAT_0044bec0,1)" (( "(") (pointer_expression "&DAT_0044bec0" (& "&") (identifier "DAT_0044bec0")) (, ",") (number_literal "1") () ")"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044bec8 = _DAT_0044bec8 + 1;" (assignment_expression "_DAT_0044bec8 = _DAT_0044bec8 + 1" (identifier "_DAT_0044bec8") (= "=") (binary_expression "_DAT_0044bec8 + 1" (identifier "_DAT_0044bec8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a4e0);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a4e0)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044a4e0)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044a4e0)" (( "(") (pointer_expression "&DAT_0044a4e0" (& "&") (identifier "DAT_0044a4e0")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044bec0" (& "&") (identifier "DAT_0044bec0"))) (; ";")) (expression_statement "uVar4 = param_2[4];" (assignment_expression "uVar4 = param_2[4]" (identifier "uVar4") (= "=") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "_DAT_0044be78 = 1;" (assignment_expression "_DAT_0044be78 = 1" (identifier "_DAT_0044be78") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar5 = param_2[3];" (assignment_expression "uVar5 = param_2[3]" (identifier "uVar5") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar6 = param_2[5];" (assignment_expression "uVar6 = param_2[5]" (identifier "uVar6") (= "=") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "_DAT_0044be70 = &PTR_FUN_0043bd80;" (assignment_expression "_DAT_0044be70 = &PTR_FUN_0043bd80" (identifier "_DAT_0044be70") (= "=") (pointer_expression "&PTR_FUN_0043bd80" (& "&") (identifier "PTR_FUN_0043bd80"))) (; ";")) (expression_statement "_DAT_0044be80 = uVar5;" (assignment_expression "_DAT_0044be80 = uVar5" (identifier "_DAT_0044be80") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "FUN_0031f700(&DAT_0044be70,0);" (call_expression "FUN_0031f700(&DAT_0044be70,0)" (identifier "FUN_0031f700") (argument_list "(&DAT_0044be70,0)" (( "(") (pointer_expression "&DAT_0044be70" (& "&") (identifier "DAT_0044be70")) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044be78 = _DAT_0044be78 + 1;" (assignment_expression "_DAT_0044be78 = _DAT_0044be78 + 1" (identifier "_DAT_0044be78") (= "=") (binary_expression "_DAT_0044be78 + 1" (identifier "_DAT_0044be78") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc90);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc90)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044bc90)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044bc90)" (( "(") (pointer_expression "&DAT_0044bc90" (& "&") (identifier "DAT_0044bc90")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044be70" (& "&") (identifier "DAT_0044be70"))) (; ";")) (expression_statement "_DAT_0044be98 = 1;" (assignment_expression "_DAT_0044be98 = 1" (identifier "_DAT_0044be98") (= "=") (number_literal "1")) (; ";")) (expression_statement "_DAT_0044be90 = &PTR_FUN_0043bc90;" (assignment_expression "_DAT_0044be90 = &PTR_FUN_0043bc90" (identifier "_DAT_0044be90") (= "=") (pointer_expression "&PTR_FUN_0043bc90" (& "&") (identifier "PTR_FUN_0043bc90"))) (; ";")) (expression_statement "_DAT_0044bea0 = FUN_002dcf60();" (assignment_expression "_DAT_0044bea0 = FUN_002dcf60()" (identifier "_DAT_0044bea0") (= "=") (call_expression "FUN_002dcf60()" (identifier "FUN_002dcf60") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044be98 = _DAT_0044be98 + 1;" (assignment_expression "_DAT_0044be98 = _DAT_0044be98 + 1" (identifier "_DAT_0044be98") (= "=") (binary_expression "_DAT_0044be98 + 1" (identifier "_DAT_0044be98") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc58);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc58)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044bc58)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044bc58)" (( "(") (pointer_expression "&DAT_0044bc58" (& "&") (identifier "DAT_0044bc58")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044be90" (& "&") (identifier "DAT_0044be90"))) (; ";")) (expression_statement "_DAT_0044be38 = 1;" (assignment_expression "_DAT_0044be38 = 1" (identifier "_DAT_0044be38") (= "=") (number_literal "1")) (; ";")) (expression_statement "_DAT_0044be30 = &PTR_FUN_0043bf90;" (assignment_expression "_DAT_0044be30 = &PTR_FUN_0043bf90" (identifier "_DAT_0044be30") (= "=") (pointer_expression "&PTR_FUN_0043bf90" (& "&") (identifier "PTR_FUN_0043bf90"))) (; ";")) (expression_statement "_DAT_0044be40 = uVar4;" (assignment_expression "_DAT_0044be40 = uVar4" (identifier "_DAT_0044be40") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00320e40(&DAT_0044be30,0,0);" (call_expression "FUN_00320e40(&DAT_0044be30,0,0)" (identifier "FUN_00320e40") (argument_list "(&DAT_0044be30,0,0)" (( "(") (pointer_expression "&DAT_0044be30" (& "&") (identifier "DAT_0044be30")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044be38 = _DAT_0044be38 + 1;" (assignment_expression "_DAT_0044be38 = _DAT_0044be38 + 1" (identifier "_DAT_0044be38") (= "=") (binary_expression "_DAT_0044be38 + 1" (identifier "_DAT_0044be38") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bcb0);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bcb0)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044bcb0)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044bcb0)" (( "(") (pointer_expression "&DAT_0044bcb0" (& "&") (identifier "DAT_0044bcb0")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044be30" (& "&") (identifier "DAT_0044be30"))) (; ";")) (expression_statement "_DAT_0044be58 = 1;" (assignment_expression "_DAT_0044be58 = 1" (identifier "_DAT_0044be58") (= "=") (number_literal "1")) (; ";")) (expression_statement "_DAT_0044be50 = &PTR_FUN_0043bf28;" (assignment_expression "_DAT_0044be50 = &PTR_FUN_0043bf28" (identifier "_DAT_0044be50") (= "=") (pointer_expression "&PTR_FUN_0043bf28" (& "&") (identifier "PTR_FUN_0043bf28"))) (; ";")) (expression_statement "_DAT_0044be60 = uVar6;" (assignment_expression "_DAT_0044be60 = uVar6" (identifier "_DAT_0044be60") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "FUN_00320890(&DAT_0044be50,0,0);" (call_expression "FUN_00320890(&DAT_0044be50,0,0)" (identifier "FUN_00320890") (argument_list "(&DAT_0044be50,0,0)" (( "(") (pointer_expression "&DAT_0044be50" (& "&") (identifier "DAT_0044be50")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044be58 = _DAT_0044be58 + 1;" (assignment_expression "_DAT_0044be58 = _DAT_0044be58 + 1" (identifier "_DAT_0044be58") (= "=") (binary_expression "_DAT_0044be58 + 1" (identifier "_DAT_0044be58") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bca8);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bca8)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044bca8)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044bca8)" (( "(") (pointer_expression "&DAT_0044bca8" (& "&") (identifier "DAT_0044bca8")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044be50" (& "&") (identifier "DAT_0044be50"))) (; ";")) (expression_statement "_DAT_0044be20 = &PTR_FUN_0043c1b0;" (assignment_expression "_DAT_0044be20 = &PTR_FUN_0043c1b0" (identifier "_DAT_0044be20") (= "=") (pointer_expression "&PTR_FUN_0043c1b0" (& "&") (identifier "PTR_FUN_0043c1b0"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044be28 = 2;" (assignment_expression "_DAT_0044be28 = 2" (identifier "_DAT_0044be28") (= "=") (number_literal "2")) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bca0);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bca0)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044bca0)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044bca0)" (( "(") (pointer_expression "&DAT_0044bca0" (& "&") (identifier "DAT_0044bca0")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044be20" (& "&") (identifier "DAT_0044be20"))) (; ";")) (expression_statement "_DAT_0044be10 = &PTR_FUN_0043c1e0;" (assignment_expression "_DAT_0044be10 = &PTR_FUN_0043c1e0" (identifier "_DAT_0044be10") (= "=") (pointer_expression "&PTR_FUN_0043c1e0" (& "&") (identifier "PTR_FUN_0043c1e0"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044be18 = 2;" (assignment_expression "_DAT_0044be18 = 2" (identifier "_DAT_0044be18") (= "=") (number_literal "2")) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc98);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc98)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044bc98)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044bc98)" (( "(") (pointer_expression "&DAT_0044bc98" (& "&") (identifier "DAT_0044bc98")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044be10" (& "&") (identifier "DAT_0044be10"))) (; ";")) (expression_statement "_DAT_0044be00 = &PTR_FUN_0043c260;" (assignment_expression "_DAT_0044be00 = &PTR_FUN_0043c260" (identifier "_DAT_0044be00") (= "=") (pointer_expression "&PTR_FUN_0043c260" (& "&") (identifier "PTR_FUN_0043c260"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044be08 = 2;" (assignment_expression "_DAT_0044be08 = 2" (identifier "_DAT_0044be08") (= "=") (number_literal "2")) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc68);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc68)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044bc68)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044bc68)" (( "(") (pointer_expression "&DAT_0044bc68" (& "&") (identifier "DAT_0044bc68")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044be00" (& "&") (identifier "DAT_0044be00"))) (; ";")) (expression_statement "FUN_00326fc0(&DAT_0044bde0,1);" (call_expression "FUN_00326fc0(&DAT_0044bde0,1)" (identifier "FUN_00326fc0") (argument_list "(&DAT_0044bde0,1)" (( "(") (pointer_expression "&DAT_0044bde0" (& "&") (identifier "DAT_0044bde0")) (, ",") (number_literal "1") () ")"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0044bde8 = _DAT_0044bde8 + 1;" (assignment_expression "_DAT_0044bde8 = _DAT_0044bde8 + 1" (identifier "_DAT_0044bde8") (= "=") (binary_expression "_DAT_0044bde8 + 1" (identifier "_DAT_0044bde8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 8);" (assignment_expression "lVar10 = *(long *)(param_1 + 8)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc60);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc60)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044bc60)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044bc60)" (( "(") (pointer_expression "&DAT_0044bc60" (& "&") (identifier "DAT_0044bc60")) () ")")))) (; ";")) (expression_statement "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;" (assignment_expression "*(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0" (pointer_expression "*(undefined **)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined **)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "&DAT_0044bde0" (& "&") (identifier "DAT_0044bde0"))) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 0x18)" (* "*") (cast_expression "(long *)(param_1 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a510);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a510)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044a510)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044a510)" (( "(") (pointer_expression "&DAT_0044a510" (& "&") (identifier "DAT_0044a510")) () ")")))) (; ";")) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar1" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 0x18)" (* "*") (cast_expression "(long *)(param_1 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a530);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a530)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044a530)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044a530)" (( "(") (pointer_expression "&DAT_0044a530" (& "&") (identifier "DAT_0044a530")) () ")")))) (; ";")) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar2" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 0x18)" (* "*") (cast_expression "(long *)(param_1 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044a528);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044a528)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044a528)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044a528)" (( "(") (pointer_expression "&DAT_0044a528" (& "&") (identifier "DAT_0044a528")) () ")")))) (; ";")) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar3" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 0x18)" (* "*") (cast_expression "(long *)(param_1 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_002dd3a0(&DAT_0044bc90);" (assignment_expression "lVar8 = FUN_002dd3a0(&DAT_0044bc90)" (identifier "lVar8") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044bc90)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044bc90)" (( "(") (pointer_expression "&DAT_0044bc90" (& "&") (identifier "DAT_0044bc90")) () ")")))) (; ";")) (expression_statement "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;" (assignment_expression "*(undefined8 *)(lVar10 + lVar8 * 8) = uVar5" (pointer_expression "*(undefined8 *)(lVar10 + lVar8 * 8)" (* "*") (cast_expression "(undefined8 *)(lVar10 + lVar8 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + lVar8 * 8)" (( "(") (binary_expression "lVar10 + lVar8 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar8 * 8" (identifier "lVar8") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "lVar10 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar10 = *(long *)(param_1 + 0x18)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(param_1 + 0x18)" (* "*") (cast_expression "(long *)(param_1 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "lVar9 = FUN_002dd3a0(&DAT_0044bcb0);" (assignment_expression "lVar9 = FUN_002dd3a0(&DAT_0044bcb0)" (identifier "lVar9") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044bcb0)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044bcb0)" (( "(") (pointer_expression "&DAT_0044bcb0" (& "&") (identifier "DAT_0044bcb0")) () ")")))) (; ";")) (expression_statement "lVar8 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar8 = *(long *)(param_1 + 0x18)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(param_1 + 0x18)" (* "*") (cast_expression "(long *)(param_1 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;" (assignment_expression "*(undefined8 *)(lVar10 + lVar9 * 8) = uVar4" (pointer_expression "*(undefined8 *)(lVar10 + lVar9 * 8)" (* "*") (cast_expression "(undefined8 *)(lVar10 + lVar9 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + lVar9 * 8)" (( "(") (binary_expression "lVar10 + lVar9 * 8" (identifier "lVar10") (+ "+") (binary_expression "lVar9 * 8" (identifier "lVar9") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "lVar10 = FUN_002dd3a0(&DAT_0044bca8);" (assignment_expression "lVar10 = FUN_002dd3a0(&DAT_0044bca8)" (identifier "lVar10") (= "=") (call_expression "FUN_002dd3a0(&DAT_0044bca8)" (identifier "FUN_002dd3a0") (argument_list "(&DAT_0044bca8)" (( "(") (pointer_expression "&DAT_0044bca8" (& "&") (identifier "DAT_0044bca8")) () ")")))) (; ";")) (expression_statement "*(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;" (assignment_expression "*(undefined8 *)(lVar8 + lVar10 * 8) = uVar6" (pointer_expression "*(undefined8 *)(lVar8 + lVar10 * 8)" (* "*") (cast_expression "(undefined8 *)(lVar8 + lVar10 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + lVar10 * 8)" (( "(") (binary_expression "lVar8 + lVar10 * 8" (identifier "lVar8") (+ "+") (binary_expression "lVar10 * 8" (identifier "lVar10") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* std::locale::_Impl::_M_init_extra(std::locale::facet**) */

void __thiscall std::locale::type_1::function_1(type_1 *var_7,type_2 **param_1)

{
  type_2 *pfVar1;
  type_2 *pfVar2;
  type_2 *pfVar3;
  type_2 *pfVar4;
  type_2 *pfVar5;
  type_2 *pfVar6;
  type_3 *var_11;
  long var_9;
  long var_18;
  long var_8;
  
  pfVar1 = *param_1;
  pfVar2 = param_1[1];
  pfVar3 = param_1[2];
  (anonymous_namespace)::numpunct_c._8_4_ = 1;
  (anonymous_namespace)::numpunct_c._0_8_ = &PTR__numpunct_00438ca0;
  (anonymous_namespace)::numpunct_c._16_8_ = pfVar1;
                    /* try { // try from 00357b4b to 00357b4f has its CatchHandler @ 003582ac */
  var_1<var_2>::var_3
            ((var_1<var_2> *)(anonymous_namespace)::numpunct_c,(type_4 *)0x0);
  var_11 = var_4;
  if (var_4 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::numpunct_c._8_4_ = (anonymous_namespace)::numpunct_c._8_4_ + 1;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&var_1<var_2>::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::numpunct_c;
  (anonymous_namespace)::collate_c._8_4_ = 1;
  (anonymous_namespace)::collate_c._0_8_ = &PTR__collate_00438c30;
                    /* try { // try from 00357ba9 to 00357bad has its CatchHandler @ 00358284 */
  (anonymous_namespace)::collate_c._16_8_ = type_2::var_10();
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::collate_c._8_4_ = (anonymous_namespace)::collate_c._8_4_ + 1;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&collate<var_2>::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::collate_c;
  (anonymous_namespace)::moneypunct_cf._8_4_ = 1;
  (anonymous_namespace)::moneypunct_cf._0_8_ = &PTR__moneypunct_00438eb0;
  (anonymous_namespace)::moneypunct_cf._16_8_ = pfVar2;
                    /* try { // try from 00357c19 to 00357c1d has its CatchHandler @ 0035827c */
  var_12<var_2,false>::var_13
            ((type_4 *)(anonymous_namespace)::moneypunct_cf,(char *)0x0);
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::moneypunct_cf._8_4_ = (anonymous_namespace)::moneypunct_cf._8_4_ + 1;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&var_12<var_2,false>::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::moneypunct_cf;
  (anonymous_namespace)::moneypunct_ct._8_4_ = 1;
  (anonymous_namespace)::moneypunct_ct._0_8_ = &PTR__moneypunct_00438e48;
  (anonymous_namespace)::moneypunct_ct._16_8_ = pfVar3;
                    /* try { // try from 00357c82 to 00357c86 has its CatchHandler @ 00358294 */
  var_12<var_2,true>::var_13
            ((type_4 *)(anonymous_namespace)::moneypunct_ct,(char *)0x0);
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::moneypunct_ct._8_4_ = (anonymous_namespace)::moneypunct_ct._8_4_ + 1;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&var_12<var_2,true>::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::moneypunct_ct;
  (anonymous_namespace)::money_get_c._0_8_ = &PTR__money_get_004390d0;
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::money_get_c._8_4_ = 2;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&money_get<var_2,std::istreambuf_iterator<var_2,std::var_15<var_2>>>
                                   ::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::money_get_c;
  (anonymous_namespace)::money_put_c._0_8_ = &PTR__money_put_00439100;
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::money_put_c._8_4_ = 2;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&money_put<var_2,std::ostreambuf_iterator<var_2,std::var_15<var_2>>>
                                   ::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::money_put_c;
  (anonymous_namespace)::time_get_c._0_8_ = &PTR__time_get_00439180;
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::time_get_c._8_4_ = 2;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&time_get<var_2,std::istreambuf_iterator<var_2,std::var_15<var_2>>>
                                   ::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::time_get_c;
  var_16<var_2>::var_16((var_16<var_2> *)(anonymous_namespace)::messages_c,1);
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::messages_c._8_4_ = (anonymous_namespace)::messages_c._8_4_ + 1;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&var_16<var_2>::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::messages_c;
  pfVar4 = param_1[4];
  (anonymous_namespace)::numpunct_w._8_4_ = 1;
  pfVar5 = param_1[3];
  pfVar6 = param_1[5];
  (anonymous_namespace)::numpunct_w._0_8_ = &PTR__numpunct_0043bd80;
  (anonymous_namespace)::numpunct_w._16_8_ = pfVar5;
                    /* try { // try from 00357e3f to 00357e43 has its CatchHandler @ 0035828c */
  var_1<var_17>::var_3
            ((var_1<var_17> *)(anonymous_namespace)::numpunct_w,(type_4 *)0x0);
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::numpunct_w._8_4_ = (anonymous_namespace)::numpunct_w._8_4_ + 1;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&var_1<var_17>::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::numpunct_w;
  (anonymous_namespace)::collate_w._8_4_ = 1;
  (anonymous_namespace)::collate_w._0_8_ = &PTR__collate_0043bc90;
                    /* try { // try from 00357e96 to 00357e9a has its CatchHandler @ 003582a4 */
  (anonymous_namespace)::collate_w._16_8_ = type_2::var_10();
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::collate_w._8_4_ = (anonymous_namespace)::collate_w._8_4_ + 1;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&collate<var_17>::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::collate_w;
  (anonymous_namespace)::moneypunct_wf._8_4_ = 1;
  (anonymous_namespace)::moneypunct_wf._0_8_ = &PTR__moneypunct_0043bf90;
  (anonymous_namespace)::moneypunct_wf._16_8_ = pfVar4;
                    /* try { // try from 00357f0b to 00357f0f has its CatchHandler @ 0035829c */
  var_12<var_17,false>::var_13
            ((type_4 *)(anonymous_namespace)::moneypunct_wf,(char *)0x0);
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::moneypunct_wf._8_4_ = (anonymous_namespace)::moneypunct_wf._8_4_ + 1;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&var_12<var_17,false>::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::moneypunct_wf;
  (anonymous_namespace)::moneypunct_wt._8_4_ = 1;
  (anonymous_namespace)::moneypunct_wt._0_8_ = &PTR__moneypunct_0043bf28;
  (anonymous_namespace)::moneypunct_wt._16_8_ = pfVar6;
                    /* try { // try from 00357f74 to 00357f78 has its CatchHandler @ 003582b4 */
  var_12<var_17,true>::var_13
            ((type_4 *)(anonymous_namespace)::moneypunct_wt,(char *)0x0);
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::moneypunct_wt._8_4_ = (anonymous_namespace)::moneypunct_wt._8_4_ + 1;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&var_12<var_17,true>::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::moneypunct_wt;
  (anonymous_namespace)::money_get_w._0_8_ = &PTR__money_get_0043c1b0;
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::money_get_w._8_4_ = 2;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&money_get<var_17,std::istreambuf_iterator<var_17,std::var_15<var_17>>>
                                   ::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::money_get_w;
  (anonymous_namespace)::money_put_w._0_8_ = &PTR__money_put_0043c1e0;
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::money_put_w._8_4_ = 2;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&money_put<var_17,std::ostreambuf_iterator<var_17,std::var_15<var_17>>>
                                   ::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::money_put_w;
  (anonymous_namespace)::time_get_w._0_8_ = &PTR__time_get_0043c260;
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::time_get_w._8_4_ = 2;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&time_get<var_17,std::istreambuf_iterator<var_17,std::var_15<var_17>>>
                                   ::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::time_get_w;
  var_16<var_17>::var_16((var_16<var_17> *)(anonymous_namespace)::messages_w,1);
  if (var_11 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::messages_w._8_4_ = (anonymous_namespace)::messages_w._8_4_ + 1;
  var_8 = *(long *)(var_7 + 8);
  var_9 = locale::id::var_14((type_6 *)&var_16<var_17>::type_6);
  *(type_5 **)(var_8 + var_9 * 8) = (anonymous_namespace)::messages_w;
  var_8 = *(long *)(var_7 + 0x18);
  var_9 = locale::id::var_14((type_6 *)&var_1<var_2>::type_6);
  *(type_2 **)(var_8 + var_9 * 8) = pfVar1;
  var_8 = *(long *)(var_7 + 0x18);
  var_9 = locale::id::var_14((type_6 *)&var_12<var_2,false>::type_6);
  *(type_2 **)(var_8 + var_9 * 8) = pfVar2;
  var_8 = *(long *)(var_7 + 0x18);
  var_9 = locale::id::var_14((type_6 *)&var_12<var_2,true>::type_6);
  *(type_2 **)(var_8 + var_9 * 8) = pfVar3;
  var_8 = *(long *)(var_7 + 0x18);
  var_9 = locale::id::var_14((type_6 *)&var_1<var_17>::type_6);
  *(type_2 **)(var_8 + var_9 * 8) = pfVar5;
  var_8 = *(long *)(var_7 + 0x18);
  var_18 = locale::id::var_14((type_6 *)&var_12<var_17,false>::type_6);
  var_9 = *(long *)(var_7 + 0x18);
  *(type_2 **)(var_8 + var_18 * 8) = pfVar4;
  var_8 = locale::id::var_14((type_6 *)&var_12<var_17,true>::type_6);
  *(type_2 **)(var_9 + var_8 * 8) = pfVar6;
  return;
}


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

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void MASKED(long param_1,undefined8 *param_2)

{
  undefined8 uVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined *puVar7;
  long lVar8;
  long lVar9;
  long lVar10;
  
  uVar1 = *param_2;
  uVar2 = param_2[1];
  uVar3 = param_2[2];
  _DAT_0044bf58 = 1;
  _DAT_0044bf50 = &PTR_FUN_00438ca0;
  _DAT_0044bf60 = uVar1;
                    /* try { // try from 00357b4b to 00357b4f has its CatchHandler @ 003582ac */
  FUN_0031f430(&DAT_0044bf50,0);
  puVar7 = PTR___pthread_key_create_0043dee8;
  if (PTR___pthread_key_create_0043dee8 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bf58 = _DAT_0044bf58 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a510);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf50;
  _DAT_0044bf78 = 1;
  _DAT_0044bf70 = &PTR_FUN_00438c30;
                    /* try { // try from 00357ba9 to 00357bad has its CatchHandler @ 00358284 */
  _DAT_0044bf80 = FUN_002dcf60();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bf78 = _DAT_0044bf78 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a4d8);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf70;
  _DAT_0044bf18 = 1;
  _DAT_0044bf10 = &PTR_FUN_00438eb0;
  _DAT_0044bf20 = uVar2;
                    /* try { // try from 00357c19 to 00357c1d has its CatchHandler @ 0035827c */
  FUN_00320170(&DAT_0044bf10,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bf18 = _DAT_0044bf18 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a530);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf10;
  _DAT_0044bf38 = 1;
  _DAT_0044bf30 = &PTR_FUN_00438e48;
  _DAT_0044bf40 = uVar3;
                    /* try { // try from 00357c82 to 00357c86 has its CatchHandler @ 00358294 */
  FUN_0031fc50(&DAT_0044bf30,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bf38 = _DAT_0044bf38 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a528);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf30;
  _DAT_0044bf00 = &PTR_FUN_004390d0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bf08 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a520);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bf00;
  _DAT_0044bef0 = &PTR_FUN_00439100;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bef8 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a518);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bef0;
  _DAT_0044bee0 = &PTR_FUN_00439180;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bee8 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a4e8);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bee0;
  FUN_002ec000(&DAT_0044bec0,1);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bec8 = _DAT_0044bec8 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044a4e0);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bec0;
  uVar4 = param_2[4];
  _DAT_0044be78 = 1;
  uVar5 = param_2[3];
  uVar6 = param_2[5];
  _DAT_0044be70 = &PTR_FUN_0043bd80;
  _DAT_0044be80 = uVar5;
                    /* try { // try from 00357e3f to 00357e43 has its CatchHandler @ 0035828c */
  FUN_0031f700(&DAT_0044be70,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be78 = _DAT_0044be78 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bc90);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be70;
  _DAT_0044be98 = 1;
  _DAT_0044be90 = &PTR_FUN_0043bc90;
                    /* try { // try from 00357e96 to 00357e9a has its CatchHandler @ 003582a4 */
  _DAT_0044bea0 = FUN_002dcf60();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be98 = _DAT_0044be98 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bc58);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be90;
  _DAT_0044be38 = 1;
  _DAT_0044be30 = &PTR_FUN_0043bf90;
  _DAT_0044be40 = uVar4;
                    /* try { // try from 00357f0b to 00357f0f has its CatchHandler @ 0035829c */
  FUN_00320e40(&DAT_0044be30,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be38 = _DAT_0044be38 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bcb0);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be30;
  _DAT_0044be58 = 1;
  _DAT_0044be50 = &PTR_FUN_0043bf28;
  _DAT_0044be60 = uVar6;
                    /* try { // try from 00357f74 to 00357f78 has its CatchHandler @ 003582b4 */
  FUN_00320890(&DAT_0044be50,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be58 = _DAT_0044be58 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bca8);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be50;
  _DAT_0044be20 = &PTR_FUN_0043c1b0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be28 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bca0);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be20;
  _DAT_0044be10 = &PTR_FUN_0043c1e0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be18 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bc98);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be10;
  _DAT_0044be00 = &PTR_FUN_0043c260;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044be08 = 2;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bc68);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044be00;
  FUN_00326fc0(&DAT_0044bde0,1);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _DAT_0044bde8 = _DAT_0044bde8 + 1;
  lVar10 = *(long *)(param_1 + 8);
  lVar8 = FUN_002dd3a0(&DAT_0044bc60);
  *(undefined **)(lVar10 + lVar8 * 8) = &DAT_0044bde0;
  lVar10 = *(long *)(param_1 + 0x18);
  lVar8 = FUN_002dd3a0(&DAT_0044a510);
  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar1;
  lVar10 = *(long *)(param_1 + 0x18);
  lVar8 = FUN_002dd3a0(&DAT_0044a530);
  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar2;
  lVar10 = *(long *)(param_1 + 0x18);
  lVar8 = FUN_002dd3a0(&DAT_0044a528);
  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar3;
  lVar10 = *(long *)(param_1 + 0x18);
  lVar8 = FUN_002dd3a0(&DAT_0044bc90);
  *(undefined8 *)(lVar10 + lVar8 * 8) = uVar5;
  lVar10 = *(long *)(param_1 + 0x18);
  lVar9 = FUN_002dd3a0(&DAT_0044bcb0);
  lVar8 = *(long *)(param_1 + 0x18);
  *(undefined8 *)(lVar10 + lVar9 * 8) = uVar4;
  lVar10 = FUN_002dd3a0(&DAT_0044bca8);
  *(undefined8 *)(lVar8 + lVar10 * 8) = uVar6;
  return;
}

