
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* 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;
  int iVar8;
  int iVar9;
  int iVar10;
  
  pfVar1 = *param_1;
  pfVar2 = param_1[1];
  DAT_0039800c = 1;
  pfVar3 = param_1[2];
  (anonymous_namespace)::numpunct_c = &PTR__numpunct_0038c3c4;
  _DAT_00398010 = pfVar1;
                    /* try { // try from 0026c46b to 0026c46f has its CatchHandler @ 0026cbf6 */
  numpunct<char>::_M_initialize_numpunct
            ((numpunct<char> *)&(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0);
  puVar7 = PTR___pthread_key_create_0038ef24;
  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_0039800c = DAT_0039800c + 1;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)&numpunct<char>::id);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::numpunct_c;
  DAT_00398018 = 1;
  (anonymous_namespace)::collate_c = &PTR__collate_0038c38c;
                    /* try { // try from 0026c4cb to 0026c4cf has its CatchHandler @ 0026cbd3 */
  DAT_0039801c = facet::_S_get_c_locale();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00398018 = DAT_00398018 + 1;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)PTR_id_0038ee60);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::collate_c;
  (anonymous_namespace)::moneypunct_cf = &PTR__moneypunct_0038c4cc;
  DAT_00397ff4 = 1;
  DAT_00397ff8 = pfVar2;
                    /* try { // try from 0026c53e to 0026c542 has its CatchHandler @ 0026cbcc */
  moneypunct<char,false>::_M_initialize_moneypunct
            ((__locale_struct *)&(anonymous_namespace)::moneypunct_cf,(char *)0x0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397ff4 = DAT_00397ff4 + 1;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_cf;
  (anonymous_namespace)::moneypunct_ct = &PTR__moneypunct_0038c498;
  DAT_00398000 = 1;
  DAT_00398004 = pfVar3;
                    /* try { // try from 0026c5af to 0026c5b3 has its CatchHandler @ 0026cbe1 */
  moneypunct<char,true>::_M_initialize_moneypunct
            ((__locale_struct *)&(anonymous_namespace)::moneypunct_ct,(char *)0x0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00398000 = DAT_00398000 + 1;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_ct;
  (anonymous_namespace)::money_get_c = &PTR__money_get_0038c5dc;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fec = 2;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)PTR_id_0038efa4);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_get_c;
  (anonymous_namespace)::money_put_c = &PTR__money_put_0038c5f4;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fe4 = 2;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)PTR_id_0038ecec);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_put_c;
  (anonymous_namespace)::time_get_c = &PTR__time_get_0038c634;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fdc = 2;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)PTR_id_0038ee00);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(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._4_4_ = (anonymous_namespace)::messages_c._4_4_ + 1;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)PTR_id_0038ede4);
  *(undefined1 **)(iVar10 + iVar8 * 4) = (anonymous_namespace)::messages_c;
  DAT_00397fb4 = 1;
  pfVar4 = param_1[3];
  pfVar5 = param_1[4];
  pfVar6 = param_1[5];
  (anonymous_namespace)::numpunct_w = &PTR__numpunct_0038dcc0;
  _DAT_00397fb8 = pfVar4;
                    /* try { // try from 0026c76d to 0026c771 has its CatchHandler @ 0026cbda */
  numpunct<wchar_t>::_M_initialize_numpunct
            ((numpunct<wchar_t> *)&(anonymous_namespace)::numpunct_w,(__locale_struct *)0x0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fb4 = DAT_00397fb4 + 1;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::numpunct_w;
  DAT_00397fc0 = 1;
  (anonymous_namespace)::collate_w = &PTR__collate_0038dc48;
                    /* try { // try from 0026c7c7 to 0026c7cb has its CatchHandler @ 0026cbef */
  DAT_00397fc4 = facet::_S_get_c_locale();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fc0 = DAT_00397fc0 + 1;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)PTR_id_0038ebb8);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::collate_w;
  (anonymous_namespace)::moneypunct_wf = &PTR__moneypunct_0038ddc8;
  DAT_00397f9c = 1;
  DAT_00397fa0 = pfVar5;
                    /* try { // try from 0026c83a to 0026c83e has its CatchHandler @ 0026cbe8 */
  moneypunct<wchar_t,false>::_M_initialize_moneypunct
            ((__locale_struct *)&(anonymous_namespace)::moneypunct_wf,(char *)0x0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f9c = DAT_00397f9c + 1;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_wf;
  (anonymous_namespace)::moneypunct_wt = &PTR__moneypunct_0038dd94;
  DAT_00397fa8 = 1;
  DAT_00397fac = pfVar6;
                    /* try { // try from 0026c8ad to 0026c8b1 has its CatchHandler @ 0026cbfd */
  moneypunct<wchar_t,true>::_M_initialize_moneypunct
            ((__locale_struct *)&(anonymous_namespace)::moneypunct_wt,(char *)0x0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fa8 = DAT_00397fa8 + 1;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_wt;
  (anonymous_namespace)::money_get_w = &PTR__money_get_0038ded8;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f94 = 2;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)PTR_id_0038ef00);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_get_w;
  (anonymous_namespace)::money_put_w = &PTR__money_put_0038def0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f8c = 2;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)PTR_id_0038efac);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_put_w;
  (anonymous_namespace)::time_get_w = &PTR__time_get_0038df30;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f84 = 2;
  iVar10 = *(int *)(this + 4);
  iVar8 = locale::id::_M_id((id *)PTR_id_0038efb0);
  *(undefined ****)(iVar10 + iVar8 * 4) = &(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._4_4_ = (anonymous_namespace)::messages_w._4_4_ + 1;
  iVar10 = *(int *)(this + 4);
  iVar9 = locale::id::_M_id((id *)PTR_id_0038eb90);
  iVar8 = *(int *)(this + 0xc);
  *(undefined1 **)(iVar10 + iVar9 * 4) = (anonymous_namespace)::messages_w;
  iVar10 = locale::id::_M_id((id *)&numpunct<char>::id);
  *(facet **)(iVar8 + iVar10 * 4) = pfVar1;
  iVar10 = *(int *)(this + 0xc);
  iVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);
  *(facet **)(iVar10 + iVar8 * 4) = pfVar2;
  iVar10 = *(int *)(this + 0xc);
  iVar9 = locale::id::_M_id((id *)&moneypunct<char,true>::id);
  iVar8 = *(int *)(this + 0xc);
  *(facet **)(iVar10 + iVar9 * 4) = pfVar3;
  iVar9 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);
  iVar10 = *(int *)(this + 0xc);
  *(facet **)(iVar8 + iVar9 * 4) = pfVar4;
  iVar9 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);
  iVar8 = *(int *)(this + 0xc);
  *(facet **)(iVar10 + iVar9 * 4) = pfVar5;
  iVar10 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);
  *(facet **)(iVar8 + iVar10 * 4) = pfVar6;
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void FUN_0026c410(int param_1,undefined4 *param_2)

{
  undefined4 uVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined *puVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  
  uVar1 = *param_2;
  uVar2 = param_2[1];
  DAT_0039800c = 1;
  uVar3 = param_2[2];
  DAT_00398008 = &PTR_FUN_0038c3c4;
  DAT_00398010 = uVar1;
                    /* try { // try from 0026c46b to 0026c46f has its CatchHandler @ 0026cbf6 */
  FUN_00232c30(&DAT_00398008,0);
  puVar7 = PTR___pthread_key_create_0038ef24;
  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_0039800c = DAT_0039800c + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00396dec);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;
  DAT_00398018 = 1;
  DAT_00398014 = &PTR_FUN_0038c38c;
                    /* try { // try from 0026c4cb to 0026c4cf has its CatchHandler @ 0026cbd3 */
  DAT_0039801c = FUN_001e9290();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00398018 = DAT_00398018 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ee60);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;
  DAT_00397ff0 = &PTR_FUN_0038c4cc;
  DAT_00397ff4 = 1;
  DAT_00397ff8 = uVar2;
                    /* try { // try from 0026c53e to 0026c542 has its CatchHandler @ 0026cbcc */
  FUN_00233ab0(&DAT_00397ff0,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397ff4 = DAT_00397ff4 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00396dfc);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;
  DAT_00397ffc = &PTR_FUN_0038c498;
  DAT_00398000 = 1;
  DAT_00398004 = uVar3;
                    /* try { // try from 0026c5af to 0026c5b3 has its CatchHandler @ 0026cbe1 */
  FUN_00233570(&DAT_00397ffc,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00398000 = DAT_00398000 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00396df8);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;
  DAT_00397fe8 = &PTR_FUN_0038c5dc;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fec = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038efa4);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;
  DAT_00397fe0 = &PTR_FUN_0038c5f4;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fe4 = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ecec);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;
  DAT_00397fd8 = &PTR_FUN_0038c634;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fdc = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ee00);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;
  FUN_001fb5a0(&DAT_00397fc8,1);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fcc = DAT_00397fcc + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ede4);
  *(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;
  DAT_00397fb4 = 1;
  uVar4 = param_2[3];
  uVar5 = param_2[4];
  uVar6 = param_2[5];
  DAT_00397fb0 = &PTR_FUN_0038dcc0;
  DAT_00397fb8 = uVar4;
                    /* try { // try from 0026c76d to 0026c771 has its CatchHandler @ 0026cbda */
  FUN_00232f40(&DAT_00397fb0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fb4 = DAT_00397fb4 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00397e8c);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;
  DAT_00397fc0 = 1;
  DAT_00397fbc = &PTR_FUN_0038dc48;
                    /* try { // try from 0026c7c7 to 0026c7cb has its CatchHandler @ 0026cbef */
  DAT_00397fc4 = FUN_001e9290();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fc0 = DAT_00397fc0 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;
  DAT_00397f98 = &PTR_FUN_0038ddc8;
  DAT_00397f9c = 1;
  DAT_00397fa0 = uVar5;
                    /* try { // try from 0026c83a to 0026c83e has its CatchHandler @ 0026cbe8 */
  FUN_00234860(&DAT_00397f98,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f9c = DAT_00397f9c + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00397e9c);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;
  DAT_00397fa4 = &PTR_FUN_0038dd94;
  DAT_00397fa8 = 1;
  DAT_00397fac = uVar6;
                    /* try { // try from 0026c8ad to 0026c8b1 has its CatchHandler @ 0026cbfd */
  FUN_00234290(&DAT_00397fa4,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fa8 = DAT_00397fa8 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00397e98);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;
  DAT_00397f90 = &PTR_FUN_0038ded8;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f94 = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ef00);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;
  DAT_00397f88 = &PTR_FUN_0038def0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f8c = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038efac);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;
  DAT_00397f80 = &PTR_FUN_0038df30;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f84 = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038efb0);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;
  FUN_0023b990(&DAT_00397f70,1);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f74 = DAT_00397f74 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar9 = FUN_001e9740(PTR_DAT_0038eb90);
  iVar8 = *(int *)(param_1 + 0xc);
  *(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;
  iVar10 = FUN_001e9740(&DAT_00396dec);
  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;
  iVar10 = *(int *)(param_1 + 0xc);
  iVar8 = FUN_001e9740(&DAT_00396dfc);
  *(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;
  iVar10 = *(int *)(param_1 + 0xc);
  iVar9 = FUN_001e9740(&DAT_00396df8);
  iVar8 = *(int *)(param_1 + 0xc);
  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;
  iVar9 = FUN_001e9740(&DAT_00397e8c);
  iVar10 = *(int *)(param_1 + 0xc);
  *(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;
  iVar9 = FUN_001e9740(&DAT_00397e9c);
  iVar8 = *(int *)(param_1 + 0xc);
  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;
  iVar10 = FUN_001e9740(&DAT_00397e98);
  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
CALL 0x000559ea
ADD ESI,0x122be6
PUSH EBX
SUB ESP,0x54
MOV EAX,dword ptr [EBP + 0xc]
MOV EDI,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESI + 0x900c],0x1
MOV EBX,ESI
MOV dword ptr [EBP + -0x20],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + -0x34],ECX
MOV EAX,dword ptr [EAX + 0x8]
PUSH 0x0
MOV dword ptr [ESI + 0x9010],ECX
MOV dword ptr [EBP + -0x24],EAX
LEA EAX,[ESI + 0xffffd3bc]
ADD EAX,0x8
MOV dword ptr [ESI + 0x9008],EAX
LEA EAX,[ESI + 0x9008]
PUSH EAX
MOV dword ptr [EBP + -0x28],EAX
CALL 0x00232c30
MOV EAX,dword ptr [ESI + 0xffffff24]
ADD ESP,0x10
MOV dword ptr [EBP + -0x1c],EAX
TEST EAX,EAX
JZ 0x0026cad0
ADD.LOCK dword ptr [ESI + 0x900c],0x1
LEA EAX,[ESI + 0x7dec]
SUB ESP,0xc
MOV EDX,dword ptr [EDI + 0x4]
MOV EBX,ESI
PUSH EAX
MOV dword ptr [EBP + -0x2c],EDX
MOV dword ptr [EBP + -0x50],EAX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x28]
MOV EDX,dword ptr [EBP + -0x2c]
ADD ESP,0x10
MOV dword ptr [EDX + EAX*0x4],ECX
LEA EAX,[ESI + 0xffffd384]
MOV dword ptr [ESI + 0x9018],0x1
ADD EAX,0x8
MOV dword ptr [ESI + 0x9014],EAX
CALL 0x001e9290
MOV dword ptr [ESI + 0x901c],EAX
MOV EAX,dword ptr [EBP + -0x1c]
TEST EAX,EAX
JZ 0x0026cbc0
ADD.LOCK dword ptr [ESI + 0x9018],0x1
MOV EAX,dword ptr [EDI + 0x4]
SUB ESP,0xc
PUSH dword ptr [ESI + 0xfffffe60]
MOV EBX,ESI
MOV dword ptr [EBP + -0x28],EAX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x28]
LEA EDX,[ESI + 0x9014]
ADD ESP,0xc
MOV dword ptr [ECX + EAX*0x4],EDX
LEA EAX,[ESI + 0xffffd4c4]
PUSH 0x0
ADD EAX,0x8
PUSH 0x0
MOV dword ptr [ESI + 0x8ff0],EAX
MOV EAX,dword ptr [EBP + -0x20]
MOV dword ptr [ESI + 0x8ff4],0x1
MOV dword ptr [ESI + 0x8ff8],EAX
LEA EAX,[ESI + 0x8ff0]
PUSH EAX
MOV dword ptr [EBP + -0x28],EAX
CALL 0x00233ab0
MOV EAX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0026cbb0
ADD.LOCK dword ptr [ESI + 0x8ff4],0x1
LEA EAX,[ESI + 0x7dfc]
SUB ESP,0xc
MOV EDX,dword ptr [EDI + 0x4]
MOV EBX,ESI
PUSH EAX
MOV dword ptr [EBP + -0x2c],EDX
MOV dword ptr [EBP + -0x44],EAX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x28]
MOV EDX,dword ptr [EBP + -0x2c]
ADD ESP,0xc
MOV dword ptr [EDX + EAX*0x4],ECX
LEA EAX,[ESI + 0xffffd490]
PUSH 0x0
ADD EAX,0x8
PUSH 0x0
MOV dword ptr [ESI + 0x8ffc],EAX
MOV EAX,dword ptr [EBP + -0x24]
MOV dword ptr [ESI + 0x9000],0x1
MOV dword ptr [ESI + 0x9004],EAX
LEA EAX,[ESI + 0x8ffc]
PUSH EAX
MOV dword ptr [EBP + -0x28],EAX
CALL 0x00233570
MOV EAX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0026cba0
ADD.LOCK dword ptr [ESI + 0x9000],0x1
LEA EAX,[ESI + 0x7df8]
SUB ESP,0xc
MOV EDX,dword ptr [EDI + 0x4]
MOV EBX,ESI
PUSH EAX
MOV dword ptr [EBP + -0x2c],EDX
MOV dword ptr [EBP + -0x3c],EAX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x28]
MOV EDX,dword ptr [EBP + -0x2c]
ADD ESP,0x10
MOV dword ptr [EDX + EAX*0x4],ECX
LEA EAX,[ESI + 0xffffd5d4]
MOV dword ptr [ESI + 0x8fec],0x1
ADD EAX,0x8
MOV dword ptr [ESI + 0x8fe8],EAX
MOV EAX,dword ptr [EBP + -0x1c]
TEST EAX,EAX
JZ 0x0026cb90
ADD.LOCK dword ptr [ESI + 0x8fec],0x1
MOV EAX,dword ptr [EDI + 0x4]
SUB ESP,0xc
PUSH dword ptr [ESI + 0xffffffa4]
MOV EBX,ESI
MOV dword ptr [EBP + -0x28],EAX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x28]
LEA EDX,[ESI + 0x8fe8]
ADD ESP,0x10
MOV dword ptr [ECX + EAX*0x4],EDX
LEA EAX,[ESI + 0xffffd5ec]
MOV dword ptr [ESI + 0x8fe4],0x1
ADD EAX,0x8
MOV dword ptr [ESI + 0x8fe0],EAX
MOV EAX,dword ptr [EBP + -0x1c]
TEST EAX,EAX
JZ 0x0026cb80
ADD.LOCK dword ptr [ESI + 0x8fe4],0x1
MOV EAX,dword ptr [EDI + 0x4]
SUB ESP,0xc
PUSH dword ptr [ESI + 0xfffffcec]
MOV EBX,ESI
MOV dword ptr [EBP + -0x28],EAX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x28]
MOV EBX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
LEA EDX,[ESI + 0x8fe0]
MOV dword ptr [ECX + EAX*0x4],EDX
LEA EAX,[ESI + 0xffffd62c]
MOV dword ptr [ESI + 0x8fdc],0x1
ADD EAX,0x8
MOV dword ptr [ESI + 0x8fd8],EAX
TEST EBX,EBX
JZ 0x0026cb70
ADD.LOCK dword ptr [ESI + 0x8fdc],0x1
SUB ESP,0xc
MOV EAX,dword ptr [EDI + 0x4]
PUSH dword ptr [ESI + 0xfffffe00]
MOV EBX,ESI
MOV dword ptr [EBP + -0x28],EAX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x28]
LEA EDX,[ESI + 0x8fd8]
MOV dword ptr [ECX + EAX*0x4],EDX
POP EAX
LEA EAX,[ESI + 0x8fc8]
POP EDX
PUSH 0x1
PUSH EAX
MOV dword ptr [EBP + -0x28],EAX
CALL 0x001fb5a0
MOV ECX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
TEST ECX,ECX
JZ 0x0026cb60
ADD.LOCK dword ptr [ESI + 0x8fcc],0x1
SUB ESP,0xc
MOV EDX,dword ptr [EDI + 0x4]
PUSH dword ptr [ESI + 0xfffffde4]
MOV EBX,ESI
MOV dword ptr [EBP + -0x2c],EDX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x28]
MOV EDX,dword ptr [EBP + -0x2c]
MOV dword ptr [EDX + EAX*0x4],ECX
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [ESI + 0x8fb4],0x1
POP EDX
MOV ECX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + -0x38],ECX
MOV EAX,dword ptr [EAX + 0x14]
MOV dword ptr [ESI + 0x8fb8],ECX
POP ECX
PUSH 0x0
MOV dword ptr [EBP + -0x2c],EAX
LEA EAX,[ESI + 0xffffecb8]
ADD EAX,0x8
MOV dword ptr [ESI + 0x8fb0],EAX
LEA EAX,[ESI + 0x8fb0]
PUSH EAX
MOV dword ptr [EBP + -0x30],EAX
CALL 0x00232f40
MOV EAX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0026cb50
ADD.LOCK dword ptr [ESI + 0x8fb4],0x1
LEA EAX,[ESI + 0x8e8c]
SUB ESP,0xc
MOV EDX,dword ptr [EDI + 0x4]
MOV EBX,ESI
PUSH EAX
MOV dword ptr [EBP + -0x48],EDX
MOV dword ptr [EBP + -0x40],EAX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x30]
MOV EDX,dword ptr [EBP + -0x48]
ADD ESP,0x10
MOV dword ptr [EDX + EAX*0x4],ECX
LEA EAX,[ESI + 0xffffec40]
MOV dword ptr [ESI + 0x8fc0],0x1
ADD EAX,0x8
MOV dword ptr [ESI + 0x8fbc],EAX
CALL 0x001e9290
MOV dword ptr [ESI + 0x8fc4],EAX
MOV EAX,dword ptr [EBP + -0x1c]
TEST EAX,EAX
JZ 0x0026cb40
ADD.LOCK dword ptr [ESI + 0x8fc0],0x1
MOV EAX,dword ptr [EDI + 0x4]
SUB ESP,0xc
PUSH dword ptr [ESI + 0xfffffbb8]
MOV EBX,ESI
MOV dword ptr [EBP + -0x30],EAX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x30]
LEA EDX,[ESI + 0x8fbc]
ADD ESP,0xc
MOV dword ptr [ECX + EAX*0x4],EDX
LEA EAX,[ESI + 0xffffedc0]
PUSH 0x0
ADD EAX,0x8
PUSH 0x0
MOV dword ptr [ESI + 0x8f98],EAX
MOV EAX,dword ptr [EBP + -0x28]
MOV dword ptr [ESI + 0x8f9c],0x1
MOV dword ptr [ESI + 0x8fa0],EAX
LEA EAX,[ESI + 0x8f98]
PUSH EAX
MOV dword ptr [EBP + -0x30],EAX
CALL 0x00234860
MOV EAX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0026cb30
ADD.LOCK dword ptr [ESI + 0x8f9c],0x1
LEA EAX,[ESI + 0x8e9c]
SUB ESP,0xc
MOV EDX,dword ptr [EDI + 0x4]
MOV EBX,ESI
PUSH EAX
MOV dword ptr [EBP + -0x48],EDX
MOV dword ptr [EBP + -0x4c],EAX
CALL 0x001e9740
MOV EBX,dword ptr [EBP + -0x30]
MOV EDX,dword ptr [EBP + -0x48]
ADD ESP,0xc
MOV dword ptr [EDX + EAX*0x4],EBX
LEA EAX,[ESI + 0xffffed8c]
MOV EBX,ESI
PUSH 0x0
ADD EAX,0x8
PUSH 0x0
MOV dword ptr [ESI + 0x8fa4],EAX
MOV EAX,dword ptr [EBP + -0x2c]
MOV dword ptr [ESI + 0x8fa8],0x1
MOV dword ptr [ESI + 0x8fac],EAX
LEA EAX,[ESI + 0x8fa4]
PUSH EAX
MOV dword ptr [EBP + -0x30],EAX
CALL 0x00234290
MOV EAX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0026cb20
ADD.LOCK dword ptr [ESI + 0x8fa8],0x1
LEA EAX,[ESI + 0x8e98]
SUB ESP,0xc
MOV EDX,dword ptr [EDI + 0x4]
MOV EBX,ESI
PUSH EAX
MOV dword ptr [EBP + -0x54],EDX
MOV dword ptr [EBP + -0x48],EAX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x30]
MOV EDX,dword ptr [EBP + -0x54]
ADD ESP,0x10
MOV dword ptr [EDX + EAX*0x4],ECX
LEA EAX,[ESI + 0xffffeed0]
MOV dword ptr [ESI + 0x8f94],0x1
ADD EAX,0x8
MOV dword ptr [ESI + 0x8f90],EAX
MOV EAX,dword ptr [EBP + -0x1c]
TEST EAX,EAX
JZ 0x0026cb10
ADD.LOCK dword ptr [ESI + 0x8f94],0x1
MOV EAX,dword ptr [EDI + 0x4]
SUB ESP,0xc
PUSH dword ptr [ESI + 0xffffff00]
MOV EBX,ESI
MOV dword ptr [EBP + -0x30],EAX
CALL 0x001e9740
MOV EBX,dword ptr [EBP + -0x30]
LEA EDX,[ESI + 0x8f90]
ADD ESP,0x10
MOV dword ptr [EBX + EAX*0x4],EDX
LEA EAX,[ESI + 0xffffeee8]
MOV dword ptr [ESI + 0x8f8c],0x1
ADD EAX,0x8
MOV dword ptr [ESI + 0x8f88],EAX
MOV EAX,dword ptr [EBP + -0x1c]
TEST EAX,EAX
JZ 0x0026cb00
ADD.LOCK dword ptr [ESI + 0x8f8c],0x1
MOV EAX,dword ptr [EDI + 0x4]
SUB ESP,0xc
PUSH dword ptr [ESI + 0xffffffac]
MOV EBX,ESI
MOV dword ptr [EBP + -0x30],EAX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
LEA EDX,[ESI + 0x8f88]
MOV dword ptr [ECX + EAX*0x4],EDX
LEA EAX,[ESI + 0xffffef28]
MOV dword ptr [ESI + 0x8f84],0x1
ADD EAX,0x8
MOV dword ptr [ESI + 0x8f80],EAX
TEST EBX,EBX
JZ 0x0026caf0
ADD.LOCK dword ptr [ESI + 0x8f84],0x1
SUB ESP,0xc
MOV EAX,dword ptr [EDI + 0x4]
PUSH dword ptr [ESI + 0xffffffb0]
MOV EBX,ESI
MOV dword ptr [EBP + -0x30],EAX
CALL 0x001e9740
MOV EBX,dword ptr [EBP + -0x30]
LEA EDX,[ESI + 0x8f80]
MOV dword ptr [EBX + EAX*0x4],EDX
POP EAX
LEA EAX,[ESI + 0x8f70]
MOV EBX,ESI
POP EDX
PUSH 0x1
PUSH EAX
MOV dword ptr [EBP + -0x30],EAX
CALL 0x0023b990
MOV ECX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
TEST ECX,ECX
JZ 0x0026cae0
ADD.LOCK dword ptr [ESI + 0x8f74],0x1
SUB ESP,0xc
MOV EDX,dword ptr [EDI + 0x4]
PUSH dword ptr [ESI + 0xfffffb90]
MOV EBX,ESI
MOV dword ptr [EBP + -0x1c],EDX
CALL 0x001e9740
MOV EDX,dword ptr [EBP + -0x1c]
MOV ECX,dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EDI + 0xc]
MOV dword ptr [EDX + EAX*0x4],ECX
POP EAX
PUSH dword ptr [EBP + -0x50]
MOV dword ptr [EBP + -0x1c],EBX
MOV EBX,ESI
CALL 0x001e9740
MOV EBX,dword ptr [EBP + -0x1c]
MOV ECX,dword ptr [EBP + -0x34]
MOV dword ptr [EBX + EAX*0x4],ECX
MOV ECX,dword ptr [EDI + 0xc]
MOV EBX,ESI
POP EDX
PUSH dword ptr [EBP + -0x44]
MOV dword ptr [EBP + -0x1c],ECX
CALL 0x001e9740
MOV ECX,dword ptr [EBP + -0x1c]
MOV EBX,dword ptr [EBP + -0x20]
MOV dword ptr [ECX + EAX*0x4],EBX
MOV EBX,dword ptr [EDI + 0xc]
POP ECX
PUSH dword ptr [EBP + -0x3c]
MOV dword ptr [EBP + -0x1c],EBX
MOV EBX,ESI
CALL 0x001e9740
MOV EBX,dword ptr [EBP + -0x1c]
MOV ECX,dword ptr [EBP + -0x24]
MOV EDX,dword ptr [EDI + 0xc]
MOV dword ptr [EBX + EAX*0x4],ECX
POP EBX
MOV EBX,ESI
PUSH dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x1c],EDX
CALL 0x001e9740
MOV EDX,dword ptr [EBP + -0x1c]
MOV ECX,dword ptr [EBP + -0x38]
MOV EBX,dword ptr [EDI + 0xc]
MOV dword ptr [EDX + EAX*0x4],ECX
POP EAX
PUSH dword ptr [EBP + -0x4c]
MOV dword ptr [EBP + -0x1c],EBX
MOV EBX,ESI
CALL 0x001e9740
MOV EBX,dword ptr [EBP + -0x1c]
MOV ECX,dword ptr [EBP + -0x28]
MOV EDI,dword ptr [EDI + 0xc]
MOV dword ptr [EBX + EAX*0x4],ECX
POP EAX
MOV EBX,ESI
PUSH dword ptr [EBP + -0x48]
CALL 0x001e9740
MOV EDX,dword ptr [EBP + -0x2c]
ADD ESP,0x10
MOV dword ptr [EDI + EAX*0x4],EDX
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD dword ptr [ESI + 0x900c],0x1
JMP 0x0026c48c
ADD dword ptr [ESI + 0x8f74],0x1
JMP 0x0026ca09
MOV dword ptr [ESI + 0x8f84],0x2
JMP 0x0026c9bc
MOV dword ptr [ESI + 0x8f8c],0x2
JMP 0x0026c96b
MOV dword ptr [ESI + 0x8f94],0x2
JMP 0x0026c91a
ADD dword ptr [ESI + 0x8fa8],0x1
JMP 0x0026c8c8
ADD dword ptr [ESI + 0x8f9c],0x1
JMP 0x0026c855
ADD dword ptr [ESI + 0x8fc0],0x1
JMP 0x0026c7e5
ADD dword ptr [ESI + 0x8fb4],0x1
JMP 0x0026c788
ADD dword ptr [ESI + 0x8fcc],0x1
JMP 0x0026c709
MOV dword ptr [ESI + 0x8fdc],0x2
JMP 0x0026c6be
MOV dword ptr [ESI + 0x8fe4],0x2
JMP 0x0026c66d
MOV dword ptr [ESI + 0x8fec],0x2
JMP 0x0026c61c
ADD dword ptr [ESI + 0x9000],0x1
JMP 0x0026c5ca
ADD dword ptr [ESI + 0x8ff4],0x1
JMP 0x0026c559
ADD dword ptr [ESI + 0x9018],0x1
JMP 0x0026c4e9
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nvoid FUN_0026c410(int param_1,undefined4 *param_2)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  DAT_0039800c = 1;\n  uVar3 = param_2[2];\n  DAT_00398008 = &PTR_FUN_0038c3c4;\n  DAT_00398010 = uVar1;\n                    /* try { // try from 0026c46b to 0026c46f has its CatchHandler @ 0026cbf6 */\n  FUN_00232c30(&DAT_00398008,0);\n  puVar7 = PTR___pthread_key_create_0038ef24;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_0039800c = DAT_0039800c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;\n  DAT_00398018 = 1;\n  DAT_00398014 = &PTR_FUN_0038c38c;\n                    /* try { // try from 0026c4cb to 0026c4cf has its CatchHandler @ 0026cbd3 */\n  DAT_0039801c = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398018 = DAT_00398018 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee60);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;\n  DAT_00397ff0 = &PTR_FUN_0038c4cc;\n  DAT_00397ff4 = 1;\n  DAT_00397ff8 = uVar2;\n                    /* try { // try from 0026c53e to 0026c542 has its CatchHandler @ 0026cbcc */\n  FUN_00233ab0(&DAT_00397ff0,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397ff4 = DAT_00397ff4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;\n  DAT_00397ffc = &PTR_FUN_0038c498;\n  DAT_00398000 = 1;\n  DAT_00398004 = uVar3;\n                    /* try { // try from 0026c5af to 0026c5b3 has its CatchHandler @ 0026cbe1 */\n  FUN_00233570(&DAT_00397ffc,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398000 = DAT_00398000 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396df8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;\n  DAT_00397fe8 = &PTR_FUN_0038c5dc;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fec = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efa4);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;\n  DAT_00397fe0 = &PTR_FUN_0038c5f4;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fe4 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ecec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;\n  DAT_00397fd8 = &PTR_FUN_0038c634;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fdc = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;\n  FUN_001fb5a0(&DAT_00397fc8,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fcc = DAT_00397fcc + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ede4);\n  *(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;\n  DAT_00397fb4 = 1;\n  uVar4 = param_2[3];\n  uVar5 = param_2[4];\n  uVar6 = param_2[5];\n  DAT_00397fb0 = &PTR_FUN_0038dcc0;\n  DAT_00397fb8 = uVar4;\n                    /* try { // try from 0026c76d to 0026c771 has its CatchHandler @ 0026cbda */\n  FUN_00232f40(&DAT_00397fb0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fb4 = DAT_00397fb4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e8c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;\n  DAT_00397fc0 = 1;\n  DAT_00397fbc = &PTR_FUN_0038dc48;\n                    /* try { // try from 0026c7c7 to 0026c7cb has its CatchHandler @ 0026cbef */\n  DAT_00397fc4 = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fc0 = DAT_00397fc0 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;\n  DAT_00397f98 = &PTR_FUN_0038ddc8;\n  DAT_00397f9c = 1;\n  DAT_00397fa0 = uVar5;\n                    /* try { // try from 0026c83a to 0026c83e has its CatchHandler @ 0026cbe8 */\n  FUN_00234860(&DAT_00397f98,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f9c = DAT_00397f9c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e9c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;\n  DAT_00397fa4 = &PTR_FUN_0038dd94;\n  DAT_00397fa8 = 1;\n  DAT_00397fac = uVar6;\n                    /* try { // try from 0026c8ad to 0026c8b1 has its CatchHandler @ 0026cbfd */\n  FUN_00234290(&DAT_00397fa4,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fa8 = DAT_00397fa8 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e98);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;\n  DAT_00397f90 = &PTR_FUN_0038ded8;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f94 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ef00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;\n  DAT_00397f88 = &PTR_FUN_0038def0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f8c = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efac);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;\n  DAT_00397f80 = &PTR_FUN_0038df30;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f84 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efb0);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;\n  FUN_0023b990(&DAT_00397f70,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f74 = DAT_00397f74 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar9 = FUN_001e9740(PTR_DAT_0038eb90);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;\n  iVar10 = FUN_001e9740(&DAT_00396dec);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar9 = FUN_001e9740(&DAT_00396df8);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;\n  iVar9 = FUN_001e9740(&DAT_00397e8c);\n  iVar10 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;\n  iVar9 = FUN_001e9740(&DAT_00397e9c);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;\n  iVar10 = FUN_001e9740(&DAT_00397e98);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;\n  return;\n}\n\n" comment (function_definition "void FUN_0026c410(int param_1,undefined4 *param_2)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  DAT_0039800c = 1;\n  uVar3 = param_2[2];\n  DAT_00398008 = &PTR_FUN_0038c3c4;\n  DAT_00398010 = uVar1;\n                    /* try { // try from 0026c46b to 0026c46f has its CatchHandler @ 0026cbf6 */\n  FUN_00232c30(&DAT_00398008,0);\n  puVar7 = PTR___pthread_key_create_0038ef24;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_0039800c = DAT_0039800c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;\n  DAT_00398018 = 1;\n  DAT_00398014 = &PTR_FUN_0038c38c;\n                    /* try { // try from 0026c4cb to 0026c4cf has its CatchHandler @ 0026cbd3 */\n  DAT_0039801c = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398018 = DAT_00398018 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee60);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;\n  DAT_00397ff0 = &PTR_FUN_0038c4cc;\n  DAT_00397ff4 = 1;\n  DAT_00397ff8 = uVar2;\n                    /* try { // try from 0026c53e to 0026c542 has its CatchHandler @ 0026cbcc */\n  FUN_00233ab0(&DAT_00397ff0,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397ff4 = DAT_00397ff4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;\n  DAT_00397ffc = &PTR_FUN_0038c498;\n  DAT_00398000 = 1;\n  DAT_00398004 = uVar3;\n                    /* try { // try from 0026c5af to 0026c5b3 has its CatchHandler @ 0026cbe1 */\n  FUN_00233570(&DAT_00397ffc,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398000 = DAT_00398000 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396df8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;\n  DAT_00397fe8 = &PTR_FUN_0038c5dc;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fec = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efa4);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;\n  DAT_00397fe0 = &PTR_FUN_0038c5f4;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fe4 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ecec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;\n  DAT_00397fd8 = &PTR_FUN_0038c634;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fdc = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;\n  FUN_001fb5a0(&DAT_00397fc8,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fcc = DAT_00397fcc + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ede4);\n  *(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;\n  DAT_00397fb4 = 1;\n  uVar4 = param_2[3];\n  uVar5 = param_2[4];\n  uVar6 = param_2[5];\n  DAT_00397fb0 = &PTR_FUN_0038dcc0;\n  DAT_00397fb8 = uVar4;\n                    /* try { // try from 0026c76d to 0026c771 has its CatchHandler @ 0026cbda */\n  FUN_00232f40(&DAT_00397fb0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fb4 = DAT_00397fb4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e8c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;\n  DAT_00397fc0 = 1;\n  DAT_00397fbc = &PTR_FUN_0038dc48;\n                    /* try { // try from 0026c7c7 to 0026c7cb has its CatchHandler @ 0026cbef */\n  DAT_00397fc4 = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fc0 = DAT_00397fc0 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;\n  DAT_00397f98 = &PTR_FUN_0038ddc8;\n  DAT_00397f9c = 1;\n  DAT_00397fa0 = uVar5;\n                    /* try { // try from 0026c83a to 0026c83e has its CatchHandler @ 0026cbe8 */\n  FUN_00234860(&DAT_00397f98,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f9c = DAT_00397f9c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e9c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;\n  DAT_00397fa4 = &PTR_FUN_0038dd94;\n  DAT_00397fa8 = 1;\n  DAT_00397fac = uVar6;\n                    /* try { // try from 0026c8ad to 0026c8b1 has its CatchHandler @ 0026cbfd */\n  FUN_00234290(&DAT_00397fa4,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fa8 = DAT_00397fa8 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e98);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;\n  DAT_00397f90 = &PTR_FUN_0038ded8;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f94 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ef00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;\n  DAT_00397f88 = &PTR_FUN_0038def0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f8c = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efac);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;\n  DAT_00397f80 = &PTR_FUN_0038df30;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f84 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efb0);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;\n  FUN_0023b990(&DAT_00397f70,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f74 = DAT_00397f74 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar9 = FUN_001e9740(PTR_DAT_0038eb90);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;\n  iVar10 = FUN_001e9740(&DAT_00396dec);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar9 = FUN_001e9740(&DAT_00396df8);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;\n  iVar9 = FUN_001e9740(&DAT_00397e8c);\n  iVar10 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;\n  iVar9 = FUN_001e9740(&DAT_00397e9c);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;\n  iVar10 = FUN_001e9740(&DAT_00397e98);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;\n  return;\n}" primitive_type (function_declarator "FUN_0026c410(int param_1,undefined4 *param_2)" identifier (parameter_list "(int param_1,undefined4 *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  DAT_0039800c = 1;\n  uVar3 = param_2[2];\n  DAT_00398008 = &PTR_FUN_0038c3c4;\n  DAT_00398010 = uVar1;\n                    /* try { // try from 0026c46b to 0026c46f has its CatchHandler @ 0026cbf6 */\n  FUN_00232c30(&DAT_00398008,0);\n  puVar7 = PTR___pthread_key_create_0038ef24;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_0039800c = DAT_0039800c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;\n  DAT_00398018 = 1;\n  DAT_00398014 = &PTR_FUN_0038c38c;\n                    /* try { // try from 0026c4cb to 0026c4cf has its CatchHandler @ 0026cbd3 */\n  DAT_0039801c = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398018 = DAT_00398018 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee60);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;\n  DAT_00397ff0 = &PTR_FUN_0038c4cc;\n  DAT_00397ff4 = 1;\n  DAT_00397ff8 = uVar2;\n                    /* try { // try from 0026c53e to 0026c542 has its CatchHandler @ 0026cbcc */\n  FUN_00233ab0(&DAT_00397ff0,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397ff4 = DAT_00397ff4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;\n  DAT_00397ffc = &PTR_FUN_0038c498;\n  DAT_00398000 = 1;\n  DAT_00398004 = uVar3;\n                    /* try { // try from 0026c5af to 0026c5b3 has its CatchHandler @ 0026cbe1 */\n  FUN_00233570(&DAT_00397ffc,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398000 = DAT_00398000 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396df8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;\n  DAT_00397fe8 = &PTR_FUN_0038c5dc;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fec = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efa4);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;\n  DAT_00397fe0 = &PTR_FUN_0038c5f4;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fe4 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ecec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;\n  DAT_00397fd8 = &PTR_FUN_0038c634;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fdc = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;\n  FUN_001fb5a0(&DAT_00397fc8,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fcc = DAT_00397fcc + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ede4);\n  *(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;\n  DAT_00397fb4 = 1;\n  uVar4 = param_2[3];\n  uVar5 = param_2[4];\n  uVar6 = param_2[5];\n  DAT_00397fb0 = &PTR_FUN_0038dcc0;\n  DAT_00397fb8 = uVar4;\n                    /* try { // try from 0026c76d to 0026c771 has its CatchHandler @ 0026cbda */\n  FUN_00232f40(&DAT_00397fb0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fb4 = DAT_00397fb4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e8c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;\n  DAT_00397fc0 = 1;\n  DAT_00397fbc = &PTR_FUN_0038dc48;\n                    /* try { // try from 0026c7c7 to 0026c7cb has its CatchHandler @ 0026cbef */\n  DAT_00397fc4 = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fc0 = DAT_00397fc0 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;\n  DAT_00397f98 = &PTR_FUN_0038ddc8;\n  DAT_00397f9c = 1;\n  DAT_00397fa0 = uVar5;\n                    /* try { // try from 0026c83a to 0026c83e has its CatchHandler @ 0026cbe8 */\n  FUN_00234860(&DAT_00397f98,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f9c = DAT_00397f9c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e9c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;\n  DAT_00397fa4 = &PTR_FUN_0038dd94;\n  DAT_00397fa8 = 1;\n  DAT_00397fac = uVar6;\n                    /* try { // try from 0026c8ad to 0026c8b1 has its CatchHandler @ 0026cbfd */\n  FUN_00234290(&DAT_00397fa4,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fa8 = DAT_00397fa8 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e98);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;\n  DAT_00397f90 = &PTR_FUN_0038ded8;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f94 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ef00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;\n  DAT_00397f88 = &PTR_FUN_0038def0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f8c = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efac);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;\n  DAT_00397f80 = &PTR_FUN_0038df30;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f84 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efb0);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;\n  FUN_0023b990(&DAT_00397f70,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f74 = DAT_00397f74 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar9 = FUN_001e9740(PTR_DAT_0038eb90);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;\n  iVar10 = FUN_001e9740(&DAT_00396dec);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar9 = FUN_001e9740(&DAT_00396df8);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;\n  iVar9 = FUN_001e9740(&DAT_00397e8c);\n  iVar10 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;\n  iVar9 = FUN_001e9740(&DAT_00397e9c);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;\n  iVar10 = FUN_001e9740(&DAT_00397e98);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type 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 "DAT_0039800c = 1;" (assignment_expression "DAT_0039800c = 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_00398008 = &PTR_FUN_0038c3c4;" (assignment_expression "DAT_00398008 = &PTR_FUN_0038c3c4" identifier = (pointer_expression "&PTR_FUN_0038c3c4" & identifier)) ;) (expression_statement "DAT_00398010 = uVar1;" (assignment_expression "DAT_00398010 = uVar1" identifier = identifier) ;) comment (expression_statement "FUN_00232c30(&DAT_00398008,0);" (call_expression "FUN_00232c30(&DAT_00398008,0)" identifier (argument_list "(&DAT_00398008,0)" ( (pointer_expression "&DAT_00398008" & identifier) , number_literal ))) ;) (expression_statement "puVar7 = PTR___pthread_key_create_0038ef24;" (assignment_expression "puVar7 = PTR___pthread_key_create_0038ef24" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_0038ef24 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_0038ef24 != (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_0039800c = DAT_0039800c + 1;" (assignment_expression "DAT_0039800c = DAT_0039800c + 1" identifier = (binary_expression "DAT_0039800c + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396dec);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396dec)" identifier = (call_expression "FUN_001e9740(&DAT_00396dec)" identifier (argument_list "(&DAT_00396dec)" ( (pointer_expression "&DAT_00396dec" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00398008" & identifier)) ;) (expression_statement "DAT_00398018 = 1;" (assignment_expression "DAT_00398018 = 1" identifier = number_literal) ;) (expression_statement "DAT_00398014 = &PTR_FUN_0038c38c;" (assignment_expression "DAT_00398014 = &PTR_FUN_0038c38c" identifier = (pointer_expression "&PTR_FUN_0038c38c" & identifier)) ;) comment (expression_statement "DAT_0039801c = FUN_001e9290();" (assignment_expression "DAT_0039801c = FUN_001e9290()" identifier = (call_expression "FUN_001e9290()" 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_00398018 = DAT_00398018 + 1;" (assignment_expression "DAT_00398018 = DAT_00398018 + 1" identifier = (binary_expression "DAT_00398018 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ee60);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ee60)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ee60)" identifier (argument_list "(PTR_DAT_0038ee60)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00398014" & identifier)) ;) (expression_statement "DAT_00397ff0 = &PTR_FUN_0038c4cc;" (assignment_expression "DAT_00397ff0 = &PTR_FUN_0038c4cc" identifier = (pointer_expression "&PTR_FUN_0038c4cc" & identifier)) ;) (expression_statement "DAT_00397ff4 = 1;" (assignment_expression "DAT_00397ff4 = 1" identifier = number_literal) ;) (expression_statement "DAT_00397ff8 = uVar2;" (assignment_expression "DAT_00397ff8 = uVar2" identifier = identifier) ;) comment (expression_statement "FUN_00233ab0(&DAT_00397ff0,0,0);" (call_expression "FUN_00233ab0(&DAT_00397ff0,0,0)" identifier (argument_list "(&DAT_00397ff0,0,0)" ( (pointer_expression "&DAT_00397ff0" & 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_00397ff4 = DAT_00397ff4 + 1;" (assignment_expression "DAT_00397ff4 = DAT_00397ff4 + 1" identifier = (binary_expression "DAT_00397ff4 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396dfc);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396dfc)" identifier = (call_expression "FUN_001e9740(&DAT_00396dfc)" identifier (argument_list "(&DAT_00396dfc)" ( (pointer_expression "&DAT_00396dfc" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397ff0" & identifier)) ;) (expression_statement "DAT_00397ffc = &PTR_FUN_0038c498;" (assignment_expression "DAT_00397ffc = &PTR_FUN_0038c498" identifier = (pointer_expression "&PTR_FUN_0038c498" & identifier)) ;) (expression_statement "DAT_00398000 = 1;" (assignment_expression "DAT_00398000 = 1" identifier = number_literal) ;) (expression_statement "DAT_00398004 = uVar3;" (assignment_expression "DAT_00398004 = uVar3" identifier = identifier) ;) comment (expression_statement "FUN_00233570(&DAT_00397ffc,0,0);" (call_expression "FUN_00233570(&DAT_00397ffc,0,0)" identifier (argument_list "(&DAT_00397ffc,0,0)" ( (pointer_expression "&DAT_00397ffc" & 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_00398000 = DAT_00398000 + 1;" (assignment_expression "DAT_00398000 = DAT_00398000 + 1" identifier = (binary_expression "DAT_00398000 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396df8);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396df8)" identifier = (call_expression "FUN_001e9740(&DAT_00396df8)" identifier (argument_list "(&DAT_00396df8)" ( (pointer_expression "&DAT_00396df8" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397ffc" & identifier)) ;) (expression_statement "DAT_00397fe8 = &PTR_FUN_0038c5dc;" (assignment_expression "DAT_00397fe8 = &PTR_FUN_0038c5dc" identifier = (pointer_expression "&PTR_FUN_0038c5dc" & 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_00397fec = 2;" (assignment_expression "DAT_00397fec = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038efa4);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038efa4)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038efa4)" identifier (argument_list "(PTR_DAT_0038efa4)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fe8" & identifier)) ;) (expression_statement "DAT_00397fe0 = &PTR_FUN_0038c5f4;" (assignment_expression "DAT_00397fe0 = &PTR_FUN_0038c5f4" identifier = (pointer_expression "&PTR_FUN_0038c5f4" & 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_00397fe4 = 2;" (assignment_expression "DAT_00397fe4 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ecec);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ecec)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ecec)" identifier (argument_list "(PTR_DAT_0038ecec)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fe0" & identifier)) ;) (expression_statement "DAT_00397fd8 = &PTR_FUN_0038c634;" (assignment_expression "DAT_00397fd8 = &PTR_FUN_0038c634" identifier = (pointer_expression "&PTR_FUN_0038c634" & 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_00397fdc = 2;" (assignment_expression "DAT_00397fdc = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ee00);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ee00)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ee00)" identifier (argument_list "(PTR_DAT_0038ee00)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fd8" & identifier)) ;) (expression_statement "FUN_001fb5a0(&DAT_00397fc8,1);" (call_expression "FUN_001fb5a0(&DAT_00397fc8,1)" identifier (argument_list "(&DAT_00397fc8,1)" ( (pointer_expression "&DAT_00397fc8" & 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_00397fcc = DAT_00397fcc + 1;" (assignment_expression "DAT_00397fcc = DAT_00397fcc + 1" identifier = (binary_expression "DAT_00397fcc + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ede4);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ede4)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ede4)" identifier (argument_list "(PTR_DAT_0038ede4)" ( identifier )))) ;) (expression_statement "*(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;" (assignment_expression "*(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8" (pointer_expression "*(undefined **)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined **)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fc8" & identifier)) ;) (expression_statement "DAT_00397fb4 = 1;" (assignment_expression "DAT_00397fb4 = 1" identifier = number_literal) ;) (expression_statement "uVar4 = param_2[3];" (assignment_expression "uVar4 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = param_2[4];" (assignment_expression "uVar5 = param_2[4]" identifier = (subscript_expression "param_2[4]" 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_00397fb0 = &PTR_FUN_0038dcc0;" (assignment_expression "DAT_00397fb0 = &PTR_FUN_0038dcc0" identifier = (pointer_expression "&PTR_FUN_0038dcc0" & identifier)) ;) (expression_statement "DAT_00397fb8 = uVar4;" (assignment_expression "DAT_00397fb8 = uVar4" identifier = identifier) ;) comment (expression_statement "FUN_00232f40(&DAT_00397fb0,0);" (call_expression "FUN_00232f40(&DAT_00397fb0,0)" identifier (argument_list "(&DAT_00397fb0,0)" ( (pointer_expression "&DAT_00397fb0" & 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_00397fb4 = DAT_00397fb4 + 1;" (assignment_expression "DAT_00397fb4 = DAT_00397fb4 + 1" identifier = (binary_expression "DAT_00397fb4 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00397e8c);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00397e8c)" identifier = (call_expression "FUN_001e9740(&DAT_00397e8c)" identifier (argument_list "(&DAT_00397e8c)" ( (pointer_expression "&DAT_00397e8c" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fb0" & identifier)) ;) (expression_statement "DAT_00397fc0 = 1;" (assignment_expression "DAT_00397fc0 = 1" identifier = number_literal) ;) (expression_statement "DAT_00397fbc = &PTR_FUN_0038dc48;" (assignment_expression "DAT_00397fbc = &PTR_FUN_0038dc48" identifier = (pointer_expression "&PTR_FUN_0038dc48" & identifier)) ;) comment (expression_statement "DAT_00397fc4 = FUN_001e9290();" (assignment_expression "DAT_00397fc4 = FUN_001e9290()" identifier = (call_expression "FUN_001e9290()" 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_00397fc0 = DAT_00397fc0 + 1;" (assignment_expression "DAT_00397fc0 = DAT_00397fc0 + 1" identifier = (binary_expression "DAT_00397fc0 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ebb8)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ebb8)" identifier (argument_list "(PTR_DAT_0038ebb8)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fbc" & identifier)) ;) (expression_statement "DAT_00397f98 = &PTR_FUN_0038ddc8;" (assignment_expression "DAT_00397f98 = &PTR_FUN_0038ddc8" identifier = (pointer_expression "&PTR_FUN_0038ddc8" & identifier)) ;) (expression_statement "DAT_00397f9c = 1;" (assignment_expression "DAT_00397f9c = 1" identifier = number_literal) ;) (expression_statement "DAT_00397fa0 = uVar5;" (assignment_expression "DAT_00397fa0 = uVar5" identifier = identifier) ;) comment (expression_statement "FUN_00234860(&DAT_00397f98,0,0);" (call_expression "FUN_00234860(&DAT_00397f98,0,0)" identifier (argument_list "(&DAT_00397f98,0,0)" ( (pointer_expression "&DAT_00397f98" & 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_00397f9c = DAT_00397f9c + 1;" (assignment_expression "DAT_00397f9c = DAT_00397f9c + 1" identifier = (binary_expression "DAT_00397f9c + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00397e9c);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00397e9c)" identifier = (call_expression "FUN_001e9740(&DAT_00397e9c)" identifier (argument_list "(&DAT_00397e9c)" ( (pointer_expression "&DAT_00397e9c" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397f98" & identifier)) ;) (expression_statement "DAT_00397fa4 = &PTR_FUN_0038dd94;" (assignment_expression "DAT_00397fa4 = &PTR_FUN_0038dd94" identifier = (pointer_expression "&PTR_FUN_0038dd94" & identifier)) ;) (expression_statement "DAT_00397fa8 = 1;" (assignment_expression "DAT_00397fa8 = 1" identifier = number_literal) ;) (expression_statement "DAT_00397fac = uVar6;" (assignment_expression "DAT_00397fac = uVar6" identifier = identifier) ;) comment (expression_statement "FUN_00234290(&DAT_00397fa4,0,0);" (call_expression "FUN_00234290(&DAT_00397fa4,0,0)" identifier (argument_list "(&DAT_00397fa4,0,0)" ( (pointer_expression "&DAT_00397fa4" & 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_00397fa8 = DAT_00397fa8 + 1;" (assignment_expression "DAT_00397fa8 = DAT_00397fa8 + 1" identifier = (binary_expression "DAT_00397fa8 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00397e98);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00397e98)" identifier = (call_expression "FUN_001e9740(&DAT_00397e98)" identifier (argument_list "(&DAT_00397e98)" ( (pointer_expression "&DAT_00397e98" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fa4" & identifier)) ;) (expression_statement "DAT_00397f90 = &PTR_FUN_0038ded8;" (assignment_expression "DAT_00397f90 = &PTR_FUN_0038ded8" identifier = (pointer_expression "&PTR_FUN_0038ded8" & 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_00397f94 = 2;" (assignment_expression "DAT_00397f94 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ef00);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ef00)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ef00)" identifier (argument_list "(PTR_DAT_0038ef00)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397f90" & identifier)) ;) (expression_statement "DAT_00397f88 = &PTR_FUN_0038def0;" (assignment_expression "DAT_00397f88 = &PTR_FUN_0038def0" identifier = (pointer_expression "&PTR_FUN_0038def0" & 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_00397f8c = 2;" (assignment_expression "DAT_00397f8c = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038efac);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038efac)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038efac)" identifier (argument_list "(PTR_DAT_0038efac)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397f88" & identifier)) ;) (expression_statement "DAT_00397f80 = &PTR_FUN_0038df30;" (assignment_expression "DAT_00397f80 = &PTR_FUN_0038df30" identifier = (pointer_expression "&PTR_FUN_0038df30" & 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_00397f84 = 2;" (assignment_expression "DAT_00397f84 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038efb0);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038efb0)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038efb0)" identifier (argument_list "(PTR_DAT_0038efb0)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397f80" & identifier)) ;) (expression_statement "FUN_0023b990(&DAT_00397f70,1);" (call_expression "FUN_0023b990(&DAT_00397f70,1)" identifier (argument_list "(&DAT_00397f70,1)" ( (pointer_expression "&DAT_00397f70" & 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_00397f74 = DAT_00397f74 + 1;" (assignment_expression "DAT_00397f74 = DAT_00397f74 + 1" identifier = (binary_expression "DAT_00397f74 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = FUN_001e9740(PTR_DAT_0038eb90);" (assignment_expression "iVar9 = FUN_001e9740(PTR_DAT_0038eb90)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038eb90)" identifier (argument_list "(PTR_DAT_0038eb90)" ( identifier )))) ;) (expression_statement "iVar8 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;" (assignment_expression "*(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70" (pointer_expression "*(undefined **)(iVar10 + iVar9 * 4)" * (cast_expression "(undefined **)(iVar10 + iVar9 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + iVar9 * 4)" ( (binary_expression "iVar10 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397f70" & identifier)) ;) (expression_statement "iVar10 = FUN_001e9740(&DAT_00396dec);" (assignment_expression "iVar10 = FUN_001e9740(&DAT_00396dec)" identifier = (call_expression "FUN_001e9740(&DAT_00396dec)" identifier (argument_list "(&DAT_00396dec)" ( (pointer_expression "&DAT_00396dec" & identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;" (assignment_expression "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar1" (pointer_expression "*(undefined4 *)(iVar8 + iVar10 * 4)" * (cast_expression "(undefined4 *)(iVar8 + iVar10 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar10 * 4)" ( (binary_expression "iVar8 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar10 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396dfc);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396dfc)" identifier = (call_expression "FUN_001e9740(&DAT_00396dfc)" identifier (argument_list "(&DAT_00396dfc)" ( (pointer_expression "&DAT_00396dfc" & identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;" (assignment_expression "*(undefined4 *)(iVar10 + iVar8 * 4) = uVar2" (pointer_expression "*(undefined4 *)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined4 *)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar10 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = FUN_001e9740(&DAT_00396df8);" (assignment_expression "iVar9 = FUN_001e9740(&DAT_00396df8)" identifier = (call_expression "FUN_001e9740(&DAT_00396df8)" identifier (argument_list "(&DAT_00396df8)" ( (pointer_expression "&DAT_00396df8" & identifier) )))) ;) (expression_statement "iVar8 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;" (assignment_expression "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar3" (pointer_expression "*(undefined4 *)(iVar10 + iVar9 * 4)" * (cast_expression "(undefined4 *)(iVar10 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar9 * 4)" ( (binary_expression "iVar10 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar9 = FUN_001e9740(&DAT_00397e8c);" (assignment_expression "iVar9 = FUN_001e9740(&DAT_00397e8c)" identifier = (call_expression "FUN_001e9740(&DAT_00397e8c)" identifier (argument_list "(&DAT_00397e8c)" ( (pointer_expression "&DAT_00397e8c" & identifier) )))) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar10 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;" (assignment_expression "*(undefined4 *)(iVar8 + iVar9 * 4) = uVar4" (pointer_expression "*(undefined4 *)(iVar8 + iVar9 * 4)" * (cast_expression "(undefined4 *)(iVar8 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar9 * 4)" ( (binary_expression "iVar8 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar9 = FUN_001e9740(&DAT_00397e9c);" (assignment_expression "iVar9 = FUN_001e9740(&DAT_00397e9c)" identifier = (call_expression "FUN_001e9740(&DAT_00397e9c)" identifier (argument_list "(&DAT_00397e9c)" ( (pointer_expression "&DAT_00397e9c" & identifier) )))) ;) (expression_statement "iVar8 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;" (assignment_expression "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar5" (pointer_expression "*(undefined4 *)(iVar10 + iVar9 * 4)" * (cast_expression "(undefined4 *)(iVar10 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar9 * 4)" ( (binary_expression "iVar10 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar10 = FUN_001e9740(&DAT_00397e98);" (assignment_expression "iVar10 = FUN_001e9740(&DAT_00397e98)" identifier = (call_expression "FUN_001e9740(&DAT_00397e98)" identifier (argument_list "(&DAT_00397e98)" ( (pointer_expression "&DAT_00397e98" & identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;" (assignment_expression "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar6" (pointer_expression "*(undefined4 *)(iVar8 + iVar10 * 4)" * (cast_expression "(undefined4 *)(iVar8 + iVar10 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar10 * 4)" ( (binary_expression "iVar8 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal)) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* 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  int iVar8;\n  int iVar9;\n  int iVar10;\n  \n  pfVar1 = *param_1;\n  pfVar2 = param_1[1];\n  DAT_0039800c = 1;\n  pfVar3 = param_1[2];\n  (anonymous_namespace)::numpunct_c = &PTR__numpunct_0038c3c4;\n  _DAT_00398010 = pfVar1;\n                    /* try { // try from 0026c46b to 0026c46f has its CatchHandler @ 0026cbf6 */\n  numpunct<char>::_M_initialize_numpunct\n            ((numpunct<char> *)&(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0);\n  puVar7 = PTR___pthread_key_create_0038ef24;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_0039800c = DAT_0039800c + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::numpunct_c;\n  DAT_00398018 = 1;\n  (anonymous_namespace)::collate_c = &PTR__collate_0038c38c;\n                    /* try { // try from 0026c4cb to 0026c4cf has its CatchHandler @ 0026cbd3 */\n  DAT_0039801c = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398018 = DAT_00398018 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ee60);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::collate_c;\n  (anonymous_namespace)::moneypunct_cf = &PTR__moneypunct_0038c4cc;\n  DAT_00397ff4 = 1;\n  DAT_00397ff8 = pfVar2;\n                    /* try { // try from 0026c53e to 0026c542 has its CatchHandler @ 0026cbcc */\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  DAT_00397ff4 = DAT_00397ff4 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_cf;\n  (anonymous_namespace)::moneypunct_ct = &PTR__moneypunct_0038c498;\n  DAT_00398000 = 1;\n  DAT_00398004 = pfVar3;\n                    /* try { // try from 0026c5af to 0026c5b3 has its CatchHandler @ 0026cbe1 */\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  DAT_00398000 = DAT_00398000 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_ct;\n  (anonymous_namespace)::money_get_c = &PTR__money_get_0038c5dc;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fec = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038efa4);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_get_c;\n  (anonymous_namespace)::money_put_c = &PTR__money_put_0038c5f4;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fe4 = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ecec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_put_c;\n  (anonymous_namespace)::time_get_c = &PTR__time_get_0038c634;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fdc = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ee00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(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._4_4_ = (anonymous_namespace)::messages_c._4_4_ + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ede4);\n  *(undefined1 **)(iVar10 + iVar8 * 4) = (anonymous_namespace)::messages_c;\n  DAT_00397fb4 = 1;\n  pfVar4 = param_1[3];\n  pfVar5 = param_1[4];\n  pfVar6 = param_1[5];\n  (anonymous_namespace)::numpunct_w = &PTR__numpunct_0038dcc0;\n  _DAT_00397fb8 = pfVar4;\n                    /* try { // try from 0026c76d to 0026c771 has its CatchHandler @ 0026cbda */\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  DAT_00397fb4 = DAT_00397fb4 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::numpunct_w;\n  DAT_00397fc0 = 1;\n  (anonymous_namespace)::collate_w = &PTR__collate_0038dc48;\n                    /* try { // try from 0026c7c7 to 0026c7cb has its CatchHandler @ 0026cbef */\n  DAT_00397fc4 = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fc0 = DAT_00397fc0 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ebb8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::collate_w;\n  (anonymous_namespace)::moneypunct_wf = &PTR__moneypunct_0038ddc8;\n  DAT_00397f9c = 1;\n  DAT_00397fa0 = pfVar5;\n                    /* try { // try from 0026c83a to 0026c83e has its CatchHandler @ 0026cbe8 */\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  DAT_00397f9c = DAT_00397f9c + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_wf;\n  (anonymous_namespace)::moneypunct_wt = &PTR__moneypunct_0038dd94;\n  DAT_00397fa8 = 1;\n  DAT_00397fac = pfVar6;\n                    /* try { // try from 0026c8ad to 0026c8b1 has its CatchHandler @ 0026cbfd */\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  DAT_00397fa8 = DAT_00397fa8 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_wt;\n  (anonymous_namespace)::money_get_w = &PTR__money_get_0038ded8;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f94 = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ef00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_get_w;\n  (anonymous_namespace)::money_put_w = &PTR__money_put_0038def0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f8c = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038efac);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_put_w;\n  (anonymous_namespace)::time_get_w = &PTR__time_get_0038df30;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f84 = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038efb0);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(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._4_4_ = (anonymous_namespace)::messages_w._4_4_ + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar9 = locale::id::_M_id((id *)PTR_id_0038eb90);\n  iVar8 = *(int *)(this + 0xc);\n  *(undefined1 **)(iVar10 + iVar9 * 4) = (anonymous_namespace)::messages_w;\n  iVar10 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(facet **)(iVar8 + iVar10 * 4) = pfVar1;\n  iVar10 = *(int *)(this + 0xc);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(facet **)(iVar10 + iVar8 * 4) = pfVar2;\n  iVar10 = *(int *)(this + 0xc);\n  iVar9 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  iVar8 = *(int *)(this + 0xc);\n  *(facet **)(iVar10 + iVar9 * 4) = pfVar3;\n  iVar9 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  iVar10 = *(int *)(this + 0xc);\n  *(facet **)(iVar8 + iVar9 * 4) = pfVar4;\n  iVar9 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  iVar8 = *(int *)(this + 0xc);\n  *(facet **)(iVar10 + iVar9 * 4) = pfVar5;\n  iVar10 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(facet **)(iVar8 + iVar10 * 4) = pfVar6;\n  return;\n}\n\n" comment comment 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  int iVar8;\n  int iVar9;\n  int iVar10;\n  \n  pfVar1 = *param_1;\n  pfVar2 = param_1[1];\n  DAT_0039800c = 1;\n  pfVar3 = param_1[2];\n  (anonymous_namespace)::numpunct_c = &PTR__numpunct_0038c3c4;\n  _DAT_00398010 = pfVar1;\n                    /* try { // try from 0026c46b to 0026c46f has its CatchHandler @ 0026cbf6 */\n  numpunct<char>::_M_initialize_numpunct\n            ((numpunct<char> *)&(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0);\n  puVar7 = PTR___pthread_key_create_0038ef24;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_0039800c = DAT_0039800c + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::numpunct_c;\n  DAT_00398018 = 1;\n  (anonymous_namespace)::collate_c = &PTR__collate_0038c38c;\n                    /* try { // try from 0026c4cb to 0026c4cf has its CatchHandler @ 0026cbd3 */\n  DAT_0039801c = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398018 = DAT_00398018 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ee60);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::collate_c;\n  (anonymous_namespace)::moneypunct_cf = &PTR__moneypunct_0038c4cc;\n  DAT_00397ff4 = 1;\n  DAT_00397ff8 = pfVar2;\n                    /* try { // try from 0026c53e to 0026c542 has its CatchHandler @ 0026cbcc */\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  DAT_00397ff4 = DAT_00397ff4 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_cf;\n  (anonymous_namespace)::moneypunct_ct = &PTR__moneypunct_0038c498;\n  DAT_00398000 = 1;\n  DAT_00398004 = pfVar3;\n                    /* try { // try from 0026c5af to 0026c5b3 has its CatchHandler @ 0026cbe1 */\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  DAT_00398000 = DAT_00398000 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_ct;\n  (anonymous_namespace)::money_get_c = &PTR__money_get_0038c5dc;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fec = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038efa4);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_get_c;\n  (anonymous_namespace)::money_put_c = &PTR__money_put_0038c5f4;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fe4 = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ecec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_put_c;\n  (anonymous_namespace)::time_get_c = &PTR__time_get_0038c634;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fdc = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ee00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(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._4_4_ = (anonymous_namespace)::messages_c._4_4_ + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ede4);\n  *(undefined1 **)(iVar10 + iVar8 * 4) = (anonymous_namespace)::messages_c;\n  DAT_00397fb4 = 1;\n  pfVar4 = param_1[3];\n  pfVar5 = param_1[4];\n  pfVar6 = param_1[5];\n  (anonymous_namespace)::numpunct_w = &PTR__numpunct_0038dcc0;\n  _DAT_00397fb8 = pfVar4;\n                    /* try { // try from 0026c76d to 0026c771 has its CatchHandler @ 0026cbda */\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  DAT_00397fb4 = DAT_00397fb4 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::numpunct_w;\n  DAT_00397fc0 = 1;\n  (anonymous_namespace)::collate_w = &PTR__collate_0038dc48;\n                    /* try { // try from 0026c7c7 to 0026c7cb has its CatchHandler @ 0026cbef */\n  DAT_00397fc4 = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fc0 = DAT_00397fc0 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ebb8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::collate_w;\n  (anonymous_namespace)::moneypunct_wf = &PTR__moneypunct_0038ddc8;\n  DAT_00397f9c = 1;\n  DAT_00397fa0 = pfVar5;\n                    /* try { // try from 0026c83a to 0026c83e has its CatchHandler @ 0026cbe8 */\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  DAT_00397f9c = DAT_00397f9c + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_wf;\n  (anonymous_namespace)::moneypunct_wt = &PTR__moneypunct_0038dd94;\n  DAT_00397fa8 = 1;\n  DAT_00397fac = pfVar6;\n                    /* try { // try from 0026c8ad to 0026c8b1 has its CatchHandler @ 0026cbfd */\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  DAT_00397fa8 = DAT_00397fa8 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_wt;\n  (anonymous_namespace)::money_get_w = &PTR__money_get_0038ded8;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f94 = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ef00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_get_w;\n  (anonymous_namespace)::money_put_w = &PTR__money_put_0038def0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f8c = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038efac);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_put_w;\n  (anonymous_namespace)::time_get_w = &PTR__time_get_0038df30;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f84 = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038efb0);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(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._4_4_ = (anonymous_namespace)::messages_w._4_4_ + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar9 = locale::id::_M_id((id *)PTR_id_0038eb90);\n  iVar8 = *(int *)(this + 0xc);\n  *(undefined1 **)(iVar10 + iVar9 * 4) = (anonymous_namespace)::messages_w;\n  iVar10 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(facet **)(iVar8 + iVar10 * 4) = pfVar1;\n  iVar10 = *(int *)(this + 0xc);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(facet **)(iVar10 + iVar8 * 4) = pfVar2;\n  iVar10 = *(int *)(this + 0xc);\n  iVar9 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  iVar8 = *(int *)(this + 0xc);\n  *(facet **)(iVar10 + iVar9 * 4) = pfVar3;\n  iVar9 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  iVar10 = *(int *)(this + 0xc);\n  *(facet **)(iVar8 + iVar9 * 4) = pfVar4;\n  iVar9 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  iVar8 = *(int *)(this + 0xc);\n  *(facet **)(iVar10 + iVar9 * 4) = pfVar5;\n  iVar10 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(facet **)(iVar8 + iVar10 * 4) = 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  int iVar8;\n  int iVar9;\n  int iVar10;\n  \n  pfVar1 = *param_1;\n  pfVar2 = param_1[1];\n  DAT_0039800c = 1;\n  pfVar3 = param_1[2];\n  (anonymous_namespace)::numpunct_c = &PTR__numpunct_0038c3c4;\n  _DAT_00398010 = pfVar1;\n                    /* try { // try from 0026c46b to 0026c46f has its CatchHandler @ 0026cbf6 */\n  numpunct<char>::_M_initialize_numpunct\n            ((numpunct<char> *)&(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0);\n  puVar7 = PTR___pthread_key_create_0038ef24;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_0039800c = DAT_0039800c + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::numpunct_c;\n  DAT_00398018 = 1;\n  (anonymous_namespace)::collate_c = &PTR__collate_0038c38c;\n                    /* try { // try from 0026c4cb to 0026c4cf has its CatchHandler @ 0026cbd3 */\n  DAT_0039801c = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398018 = DAT_00398018 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ee60);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::collate_c;\n  (anonymous_namespace)::moneypunct_cf = &PTR__moneypunct_0038c4cc;\n  DAT_00397ff4 = 1;\n  DAT_00397ff8 = pfVar2;\n                    /* try { // try from 0026c53e to 0026c542 has its CatchHandler @ 0026cbcc */\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  DAT_00397ff4 = DAT_00397ff4 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_cf;\n  (anonymous_namespace)::moneypunct_ct = &PTR__moneypunct_0038c498;\n  DAT_00398000 = 1;\n  DAT_00398004 = pfVar3;\n                    /* try { // try from 0026c5af to 0026c5b3 has its CatchHandler @ 0026cbe1 */\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  DAT_00398000 = DAT_00398000 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_ct;\n  (anonymous_namespace)::money_get_c = &PTR__money_get_0038c5dc;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fec = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038efa4);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_get_c;\n  (anonymous_namespace)::money_put_c = &PTR__money_put_0038c5f4;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fe4 = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ecec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_put_c;\n  (anonymous_namespace)::time_get_c = &PTR__time_get_0038c634;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fdc = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ee00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(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._4_4_ = (anonymous_namespace)::messages_c._4_4_ + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ede4);\n  *(undefined1 **)(iVar10 + iVar8 * 4) = (anonymous_namespace)::messages_c;\n  DAT_00397fb4 = 1;\n  pfVar4 = param_1[3];\n  pfVar5 = param_1[4];\n  pfVar6 = param_1[5];\n  (anonymous_namespace)::numpunct_w = &PTR__numpunct_0038dcc0;\n  _DAT_00397fb8 = pfVar4;\n                    /* try { // try from 0026c76d to 0026c771 has its CatchHandler @ 0026cbda */\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  DAT_00397fb4 = DAT_00397fb4 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::numpunct_w;\n  DAT_00397fc0 = 1;\n  (anonymous_namespace)::collate_w = &PTR__collate_0038dc48;\n                    /* try { // try from 0026c7c7 to 0026c7cb has its CatchHandler @ 0026cbef */\n  DAT_00397fc4 = facet::_S_get_c_locale();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fc0 = DAT_00397fc0 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ebb8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::collate_w;\n  (anonymous_namespace)::moneypunct_wf = &PTR__moneypunct_0038ddc8;\n  DAT_00397f9c = 1;\n  DAT_00397fa0 = pfVar5;\n                    /* try { // try from 0026c83a to 0026c83e has its CatchHandler @ 0026cbe8 */\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  DAT_00397f9c = DAT_00397f9c + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_wf;\n  (anonymous_namespace)::moneypunct_wt = &PTR__moneypunct_0038dd94;\n  DAT_00397fa8 = 1;\n  DAT_00397fac = pfVar6;\n                    /* try { // try from 0026c8ad to 0026c8b1 has its CatchHandler @ 0026cbfd */\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  DAT_00397fa8 = DAT_00397fa8 + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_wt;\n  (anonymous_namespace)::money_get_w = &PTR__money_get_0038ded8;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f94 = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038ef00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_get_w;\n  (anonymous_namespace)::money_put_w = &PTR__money_put_0038def0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f8c = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038efac);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_put_w;\n  (anonymous_namespace)::time_get_w = &PTR__time_get_0038df30;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f84 = 2;\n  iVar10 = *(int *)(this + 4);\n  iVar8 = locale::id::_M_id((id *)PTR_id_0038efb0);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &(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._4_4_ = (anonymous_namespace)::messages_w._4_4_ + 1;\n  iVar10 = *(int *)(this + 4);\n  iVar9 = locale::id::_M_id((id *)PTR_id_0038eb90);\n  iVar8 = *(int *)(this + 0xc);\n  *(undefined1 **)(iVar10 + iVar9 * 4) = (anonymous_namespace)::messages_w;\n  iVar10 = locale::id::_M_id((id *)&numpunct<char>::id);\n  *(facet **)(iVar8 + iVar10 * 4) = pfVar1;\n  iVar10 = *(int *)(this + 0xc);\n  iVar8 = locale::id::_M_id((id *)&moneypunct<char,false>::id);\n  *(facet **)(iVar10 + iVar8 * 4) = pfVar2;\n  iVar10 = *(int *)(this + 0xc);\n  iVar9 = locale::id::_M_id((id *)&moneypunct<char,true>::id);\n  iVar8 = *(int *)(this + 0xc);\n  *(facet **)(iVar10 + iVar9 * 4) = pfVar3;\n  iVar9 = locale::id::_M_id((id *)&numpunct<wchar_t>::id);\n  iVar10 = *(int *)(this + 0xc);\n  *(facet **)(iVar8 + iVar9 * 4) = pfVar4;\n  iVar9 = locale::id::_M_id((id *)&moneypunct<wchar_t,false>::id);\n  iVar8 = *(int *)(this + 0xc);\n  *(facet **)(iVar10 + iVar9 * 4) = pfVar5;\n  iVar10 = locale::id::_M_id((id *)&moneypunct<wchar_t,true>::id);\n  *(facet **)(iVar8 + iVar10 * 4) = 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 "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type 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 "DAT_0039800c = 1;" (assignment_expression "DAT_0039800c = 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 ])) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "numpunct_c = &PTR__numpunct_0038c3c4;" (assignment_expression "numpunct_c = &PTR__numpunct_0038c3c4" identifier = (pointer_expression "&PTR__numpunct_0038c3c4" & identifier)) ;) (expression_statement "_DAT_00398010 = pfVar1;" (assignment_expression "_DAT_00398010 = pfVar1" 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)" ( (parenthesized_expression "(numpunct<char> *)&(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0)" ( (comma_expression "numpunct<char> *)&(anonymous_namespace)::numpunct_c,(__locale_struct *)0x0" (binary_expression "numpunct<char> *)&(anonymous_namespace)" (binary_expression "numpunct<char" identifier < identifier) > (pointer_expression "*)&(anonymous_namespace)" * (ERROR ")" )) (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(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_0038ef24;" (assignment_expression "puVar7 = PTR___pthread_key_create_0038ef24" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_0038ef24 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_0038ef24 != (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_0039800c = DAT_0039800c + 1;" (assignment_expression "DAT_0039800c = DAT_0039800c + 1" identifier = (binary_expression "DAT_0039800c + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = 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 "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::numpunct_c;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::numpunct_c" : : identifier) ;) (expression_statement "DAT_00398018 = 1;" (assignment_expression "DAT_00398018 = 1" identifier = number_literal) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "collate_c = &PTR__collate_0038c38c;" (assignment_expression "collate_c = &PTR__collate_0038c38c" identifier = (pointer_expression "&PTR__collate_0038c38c" & identifier)) ;) comment (ERROR "DAT_0039801c = facet::" (assignment_expression "DAT_0039801c = facet" 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 "DAT_00398018 = DAT_00398018 + 1;" (assignment_expression "DAT_00398018 = DAT_00398018 + 1" identifier = (binary_expression "DAT_00398018 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)PTR_id_0038ee60);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)PTR_id_0038ee60);" (call_expression "_M_id((id *)PTR_id_0038ee60)" identifier (argument_list "((id *)PTR_id_0038ee60)" ( (cast_expression "(id *)PTR_id_0038ee60" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::collate_c;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::collate_c" : : identifier) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "moneypunct_cf = &PTR__moneypunct_0038c4cc;" (assignment_expression "moneypunct_cf = &PTR__moneypunct_0038c4cc" identifier = (pointer_expression "&PTR__moneypunct_0038c4cc" & identifier)) ;) (expression_statement "DAT_00397ff4 = 1;" (assignment_expression "DAT_00397ff4 = 1" identifier = number_literal) ;) (expression_statement "DAT_00397ff8 = pfVar2;" (assignment_expression "DAT_00397ff8 = pfVar2" 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 "*" *)) ) (pointer_expression "&(anonymous_namespace)" & (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 "DAT_00397ff4 = DAT_00397ff4 + 1;" (assignment_expression "DAT_00397ff4 = DAT_00397ff4 + 1" identifier = (binary_expression "DAT_00397ff4 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = 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 "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_cf;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::moneypunct_cf" : : identifier) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "moneypunct_ct = &PTR__moneypunct_0038c498;" (assignment_expression "moneypunct_ct = &PTR__moneypunct_0038c498" identifier = (pointer_expression "&PTR__moneypunct_0038c498" & identifier)) ;) (expression_statement "DAT_00398000 = 1;" (assignment_expression "DAT_00398000 = 1" identifier = number_literal) ;) (expression_statement "DAT_00398004 = pfVar3;" (assignment_expression "DAT_00398004 = pfVar3" 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 "*" *)) ) (pointer_expression "&(anonymous_namespace)" & (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 "DAT_00398000 = DAT_00398000 + 1;" (assignment_expression "DAT_00398000 = DAT_00398000 + 1" identifier = (binary_expression "DAT_00398000 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = 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 "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_ct;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::moneypunct_ct" : : identifier) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "money_get_c = &PTR__money_get_0038c5dc;" (assignment_expression "money_get_c = &PTR__money_get_0038c5dc" identifier = (pointer_expression "&PTR__money_get_0038c5dc" & 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_00397fec = 2;" (assignment_expression "DAT_00397fec = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)PTR_id_0038efa4);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)PTR_id_0038efa4);" (call_expression "_M_id((id *)PTR_id_0038efa4)" identifier (argument_list "((id *)PTR_id_0038efa4)" ( (cast_expression "(id *)PTR_id_0038efa4" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_get_c;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::money_get_c" : : identifier) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "money_put_c = &PTR__money_put_0038c5f4;" (assignment_expression "money_put_c = &PTR__money_put_0038c5f4" identifier = (pointer_expression "&PTR__money_put_0038c5f4" & 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_00397fe4 = 2;" (assignment_expression "DAT_00397fe4 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)PTR_id_0038ecec);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)PTR_id_0038ecec);" (call_expression "_M_id((id *)PTR_id_0038ecec)" identifier (argument_list "((id *)PTR_id_0038ecec)" ( (cast_expression "(id *)PTR_id_0038ecec" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_put_c;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::money_put_c" : : identifier) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "time_get_c = &PTR__time_get_0038c634;" (assignment_expression "time_get_c = &PTR__time_get_0038c634" identifier = (pointer_expression "&PTR__time_get_0038c634" & 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_00397fdc = 2;" (assignment_expression "DAT_00397fdc = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)PTR_id_0038ee00);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)PTR_id_0038ee00);" (call_expression "_M_id((id *)PTR_id_0038ee00)" identifier (argument_list "((id *)PTR_id_0038ee00)" ( (cast_expression "(id *)PTR_id_0038ee00" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::time_get_c;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (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._4_4_ = (anonymous_namespace)::messages_c._4_4_ + 1;" (binary_expression "(anonymous_namespace)::messages_c._4_4_ = (anonymous_namespace)::messages_c._4_4_ + 1" (field_expression "(anonymous_namespace)::messages_c._4_4_ = (anonymous_namespace)::messages_c._4_4_" (assignment_expression "(anonymous_namespace)::messages_c._4_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::messages_c._4_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 "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)PTR_id_0038ede4);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)PTR_id_0038ede4);" (call_expression "_M_id((id *)PTR_id_0038ede4)" identifier (argument_list "((id *)PTR_id_0038ede4)" ( (cast_expression "(id *)PTR_id_0038ede4" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "*(undefined1 **)(iVar10 + iVar8 * 4) = (anonymous_namespace)::messages_c;" (assignment_expression "*(undefined1 **)(iVar10 + iVar8 * 4) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined1 **)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::messages_c" : : identifier) ;) (expression_statement "DAT_00397fb4 = 1;" (assignment_expression "DAT_00397fb4 = 1" identifier = number_literal) ;) (expression_statement "pfVar4 = param_1[3];" (assignment_expression "pfVar4 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "pfVar5 = param_1[4];" (assignment_expression "pfVar5 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "pfVar6 = param_1[5];" (assignment_expression "pfVar6 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "numpunct_w = &PTR__numpunct_0038dcc0;" (assignment_expression "numpunct_w = &PTR__numpunct_0038dcc0" identifier = (pointer_expression "&PTR__numpunct_0038dcc0" & identifier)) ;) (expression_statement "_DAT_00397fb8 = pfVar4;" (assignment_expression "_DAT_00397fb8 = pfVar4" 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)" ( (parenthesized_expression "(numpunct<wchar_t> *)&(anonymous_namespace)::numpunct_w,(__locale_struct *)0x0)" ( (comma_expression "numpunct<wchar_t> *)&(anonymous_namespace)::numpunct_w,(__locale_struct *)0x0" (binary_expression "numpunct<wchar_t> *)&(anonymous_namespace)" (binary_expression "numpunct<wchar_t" identifier < identifier) > (pointer_expression "*)&(anonymous_namespace)" * (ERROR ")" )) (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(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 "DAT_00397fb4 = DAT_00397fb4 + 1;" (assignment_expression "DAT_00397fb4 = DAT_00397fb4 + 1" identifier = (binary_expression "DAT_00397fb4 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = 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 "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::numpunct_w;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::numpunct_w" : : identifier) ;) (expression_statement "DAT_00397fc0 = 1;" (assignment_expression "DAT_00397fc0 = 1" identifier = number_literal) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "collate_w = &PTR__collate_0038dc48;" (assignment_expression "collate_w = &PTR__collate_0038dc48" identifier = (pointer_expression "&PTR__collate_0038dc48" & identifier)) ;) comment (ERROR "DAT_00397fc4 = facet::" (assignment_expression "DAT_00397fc4 = facet" 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 "DAT_00397fc0 = DAT_00397fc0 + 1;" (assignment_expression "DAT_00397fc0 = DAT_00397fc0 + 1" identifier = (binary_expression "DAT_00397fc0 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)PTR_id_0038ebb8);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)PTR_id_0038ebb8);" (call_expression "_M_id((id *)PTR_id_0038ebb8)" identifier (argument_list "((id *)PTR_id_0038ebb8)" ( (cast_expression "(id *)PTR_id_0038ebb8" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::collate_w;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::collate_w" : : identifier) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "moneypunct_wf = &PTR__moneypunct_0038ddc8;" (assignment_expression "moneypunct_wf = &PTR__moneypunct_0038ddc8" identifier = (pointer_expression "&PTR__moneypunct_0038ddc8" & identifier)) ;) (expression_statement "DAT_00397f9c = 1;" (assignment_expression "DAT_00397f9c = 1" identifier = number_literal) ;) (expression_statement "DAT_00397fa0 = pfVar5;" (assignment_expression "DAT_00397fa0 = pfVar5" 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 "*" *)) ) (pointer_expression "&(anonymous_namespace)" & (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 "DAT_00397f9c = DAT_00397f9c + 1;" (assignment_expression "DAT_00397f9c = DAT_00397f9c + 1" identifier = (binary_expression "DAT_00397f9c + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = 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 "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_wf;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::moneypunct_wf" : : identifier) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "moneypunct_wt = &PTR__moneypunct_0038dd94;" (assignment_expression "moneypunct_wt = &PTR__moneypunct_0038dd94" identifier = (pointer_expression "&PTR__moneypunct_0038dd94" & identifier)) ;) (expression_statement "DAT_00397fa8 = 1;" (assignment_expression "DAT_00397fa8 = 1" identifier = number_literal) ;) (expression_statement "DAT_00397fac = pfVar6;" (assignment_expression "DAT_00397fac = pfVar6" 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 "*" *)) ) (pointer_expression "&(anonymous_namespace)" & (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 "DAT_00397fa8 = DAT_00397fa8 + 1;" (assignment_expression "DAT_00397fa8 = DAT_00397fa8 + 1" identifier = (binary_expression "DAT_00397fa8 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = 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 "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::moneypunct_wt;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::moneypunct_wt" : : identifier) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "money_get_w = &PTR__money_get_0038ded8;" (assignment_expression "money_get_w = &PTR__money_get_0038ded8" identifier = (pointer_expression "&PTR__money_get_0038ded8" & 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_00397f94 = 2;" (assignment_expression "DAT_00397f94 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)PTR_id_0038ef00);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)PTR_id_0038ef00);" (call_expression "_M_id((id *)PTR_id_0038ef00)" identifier (argument_list "((id *)PTR_id_0038ef00)" ( (cast_expression "(id *)PTR_id_0038ef00" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_get_w;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::money_get_w" : : identifier) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "money_put_w = &PTR__money_put_0038def0;" (assignment_expression "money_put_w = &PTR__money_put_0038def0" identifier = (pointer_expression "&PTR__money_put_0038def0" & 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_00397f8c = 2;" (assignment_expression "DAT_00397f8c = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)PTR_id_0038efac);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)PTR_id_0038efac);" (call_expression "_M_id((id *)PTR_id_0038efac)" identifier (argument_list "((id *)PTR_id_0038efac)" ( (cast_expression "(id *)PTR_id_0038efac" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::money_put_w;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::money_put_w" : : identifier) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "time_get_w = &PTR__time_get_0038df30;" (assignment_expression "time_get_w = &PTR__time_get_0038df30" identifier = (pointer_expression "&PTR__time_get_0038df30" & 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_00397f84 = 2;" (assignment_expression "DAT_00397f84 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)PTR_id_0038efb0);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)PTR_id_0038efb0);" (call_expression "_M_id((id *)PTR_id_0038efb0)" identifier (argument_list "((id *)PTR_id_0038efb0)" ( (cast_expression "(id *)PTR_id_0038efb0" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)::time_get_w;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &(anonymous_namespace)" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&(anonymous_namespace)" & (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._4_4_ = (anonymous_namespace)::messages_w._4_4_ + 1;" (binary_expression "(anonymous_namespace)::messages_w._4_4_ = (anonymous_namespace)::messages_w._4_4_ + 1" (field_expression "(anonymous_namespace)::messages_w._4_4_ = (anonymous_namespace)::messages_w._4_4_" (assignment_expression "(anonymous_namespace)::messages_w._4_4_ = (anonymous_namespace)" (field_expression "(anonymous_namespace)::messages_w._4_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 "iVar10 = *(int *)(this + 4);" (assignment_expression "iVar10 = *(int *)(this + 4)" identifier = (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (ERROR "iVar9 = locale::" (assignment_expression "iVar9 = locale" identifier = identifier) : :) (labeled_statement "id::_M_id((id *)PTR_id_0038eb90);" statement_identifier : (ERROR ":" :) (expression_statement "_M_id((id *)PTR_id_0038eb90);" (call_expression "_M_id((id *)PTR_id_0038eb90)" identifier (argument_list "((id *)PTR_id_0038eb90)" ( (cast_expression "(id *)PTR_id_0038eb90" ( (type_descriptor "id *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "iVar8 = *(int *)(this + 0xc);" (assignment_expression "iVar8 = *(int *)(this + 0xc)" identifier = (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(iVar10 + iVar9 * 4) = (anonymous_namespace)::messages_w;" (assignment_expression "*(undefined1 **)(iVar10 + iVar9 * 4) = (anonymous_namespace)" (pointer_expression "*(undefined1 **)(iVar10 + iVar9 * 4)" * (cast_expression "(undefined1 **)(iVar10 + iVar9 * 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + iVar9 * 4)" ( (binary_expression "iVar10 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::messages_w" : : identifier) ;) (ERROR "iVar10 = locale::" (assignment_expression "iVar10 = 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 **)(iVar8 + iVar10 * 4) = pfVar1;" (assignment_expression "*(facet **)(iVar8 + iVar10 * 4) = pfVar1" (pointer_expression "*(facet **)(iVar8 + iVar10 * 4)" * (cast_expression "(facet **)(iVar8 + iVar10 * 4)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + iVar10 * 4)" ( (binary_expression "iVar8 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar10 = *(int *)(this + 0xc);" (assignment_expression "iVar10 = *(int *)(this + 0xc)" identifier = (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))))) ;) (ERROR "iVar8 = locale::" (assignment_expression "iVar8 = 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 **)(iVar10 + iVar8 * 4) = pfVar2;" (assignment_expression "*(facet **)(iVar10 + iVar8 * 4) = pfVar2" (pointer_expression "*(facet **)(iVar10 + iVar8 * 4)" * (cast_expression "(facet **)(iVar10 + iVar8 * 4)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar10 = *(int *)(this + 0xc);" (assignment_expression "iVar10 = *(int *)(this + 0xc)" identifier = (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))))) ;) (ERROR "iVar9 = locale::" (assignment_expression "iVar9 = 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 "iVar8 = *(int *)(this + 0xc);" (assignment_expression "iVar8 = *(int *)(this + 0xc)" identifier = (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(facet **)(iVar10 + iVar9 * 4) = pfVar3;" (assignment_expression "*(facet **)(iVar10 + iVar9 * 4) = pfVar3" (pointer_expression "*(facet **)(iVar10 + iVar9 * 4)" * (cast_expression "(facet **)(iVar10 + iVar9 * 4)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + iVar9 * 4)" ( (binary_expression "iVar10 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = identifier) ;) (ERROR "iVar9 = locale::" (assignment_expression "iVar9 = 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 "iVar10 = *(int *)(this + 0xc);" (assignment_expression "iVar10 = *(int *)(this + 0xc)" identifier = (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(facet **)(iVar8 + iVar9 * 4) = pfVar4;" (assignment_expression "*(facet **)(iVar8 + iVar9 * 4) = pfVar4" (pointer_expression "*(facet **)(iVar8 + iVar9 * 4)" * (cast_expression "(facet **)(iVar8 + iVar9 * 4)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + iVar9 * 4)" ( (binary_expression "iVar8 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = identifier) ;) (ERROR "iVar9 = locale::" (assignment_expression "iVar9 = 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 "iVar8 = *(int *)(this + 0xc);" (assignment_expression "iVar8 = *(int *)(this + 0xc)" identifier = (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(facet **)(iVar10 + iVar9 * 4) = pfVar5;" (assignment_expression "*(facet **)(iVar10 + iVar9 * 4) = pfVar5" (pointer_expression "*(facet **)(iVar10 + iVar9 * 4)" * (cast_expression "(facet **)(iVar10 + iVar9 * 4)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + iVar9 * 4)" ( (binary_expression "iVar10 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = identifier) ;) (ERROR "iVar10 = locale::" (assignment_expression "iVar10 = 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 **)(iVar8 + iVar10 * 4) = pfVar6;" (assignment_expression "*(facet **)(iVar8 + iVar10 * 4) = pfVar6" (pointer_expression "*(facet **)(iVar8 + iVar10 * 4)" * (cast_expression "(facet **)(iVar8 + iVar10 * 4)" ( (type_descriptor "facet **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + iVar10 * 4)" ( (binary_expression "iVar8 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal)) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0026c410(int param_1,undefined4 *param_2)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  DAT_0039800c = 1;\n  uVar3 = param_2[2];\n  DAT_00398008 = &PTR_FUN_0038c3c4;\n  DAT_00398010 = uVar1;\n                    \n  FUN_00232c30(&DAT_00398008,0);\n  puVar7 = PTR___pthread_key_create_0038ef24;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_0039800c = DAT_0039800c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;\n  DAT_00398018 = 1;\n  DAT_00398014 = &PTR_FUN_0038c38c;\n                    \n  DAT_0039801c = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398018 = DAT_00398018 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee60);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;\n  DAT_00397ff0 = &PTR_FUN_0038c4cc;\n  DAT_00397ff4 = 1;\n  DAT_00397ff8 = uVar2;\n                    \n  FUN_00233ab0(&DAT_00397ff0,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397ff4 = DAT_00397ff4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;\n  DAT_00397ffc = &PTR_FUN_0038c498;\n  DAT_00398000 = 1;\n  DAT_00398004 = uVar3;\n                    \n  FUN_00233570(&DAT_00397ffc,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398000 = DAT_00398000 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396df8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;\n  DAT_00397fe8 = &PTR_FUN_0038c5dc;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fec = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efa4);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;\n  DAT_00397fe0 = &PTR_FUN_0038c5f4;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fe4 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ecec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;\n  DAT_00397fd8 = &PTR_FUN_0038c634;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fdc = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;\n  FUN_001fb5a0(&DAT_00397fc8,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fcc = DAT_00397fcc + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ede4);\n  *(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;\n  DAT_00397fb4 = 1;\n  uVar4 = param_2[3];\n  uVar5 = param_2[4];\n  uVar6 = param_2[5];\n  DAT_00397fb0 = &PTR_FUN_0038dcc0;\n  DAT_00397fb8 = uVar4;\n                    \n  FUN_00232f40(&DAT_00397fb0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fb4 = DAT_00397fb4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e8c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;\n  DAT_00397fc0 = 1;\n  DAT_00397fbc = &PTR_FUN_0038dc48;\n                    \n  DAT_00397fc4 = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fc0 = DAT_00397fc0 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;\n  DAT_00397f98 = &PTR_FUN_0038ddc8;\n  DAT_00397f9c = 1;\n  DAT_00397fa0 = uVar5;\n                    \n  FUN_00234860(&DAT_00397f98,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f9c = DAT_00397f9c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e9c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;\n  DAT_00397fa4 = &PTR_FUN_0038dd94;\n  DAT_00397fa8 = 1;\n  DAT_00397fac = uVar6;\n                    \n  FUN_00234290(&DAT_00397fa4,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fa8 = DAT_00397fa8 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e98);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;\n  DAT_00397f90 = &PTR_FUN_0038ded8;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f94 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ef00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;\n  DAT_00397f88 = &PTR_FUN_0038def0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f8c = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efac);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;\n  DAT_00397f80 = &PTR_FUN_0038df30;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f84 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efb0);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;\n  FUN_0023b990(&DAT_00397f70,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f74 = DAT_00397f74 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar9 = FUN_001e9740(PTR_DAT_0038eb90);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;\n  iVar10 = FUN_001e9740(&DAT_00396dec);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar9 = FUN_001e9740(&DAT_00396df8);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;\n  iVar9 = FUN_001e9740(&DAT_00397e8c);\n  iVar10 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;\n  iVar9 = FUN_001e9740(&DAT_00397e9c);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;\n  iVar10 = FUN_001e9740(&DAT_00397e98);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;\n  return;\n}\n\n" (function_definition "void FUN_0026c410(int param_1,undefined4 *param_2)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  DAT_0039800c = 1;\n  uVar3 = param_2[2];\n  DAT_00398008 = &PTR_FUN_0038c3c4;\n  DAT_00398010 = uVar1;\n                    \n  FUN_00232c30(&DAT_00398008,0);\n  puVar7 = PTR___pthread_key_create_0038ef24;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_0039800c = DAT_0039800c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;\n  DAT_00398018 = 1;\n  DAT_00398014 = &PTR_FUN_0038c38c;\n                    \n  DAT_0039801c = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398018 = DAT_00398018 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee60);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;\n  DAT_00397ff0 = &PTR_FUN_0038c4cc;\n  DAT_00397ff4 = 1;\n  DAT_00397ff8 = uVar2;\n                    \n  FUN_00233ab0(&DAT_00397ff0,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397ff4 = DAT_00397ff4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;\n  DAT_00397ffc = &PTR_FUN_0038c498;\n  DAT_00398000 = 1;\n  DAT_00398004 = uVar3;\n                    \n  FUN_00233570(&DAT_00397ffc,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398000 = DAT_00398000 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396df8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;\n  DAT_00397fe8 = &PTR_FUN_0038c5dc;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fec = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efa4);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;\n  DAT_00397fe0 = &PTR_FUN_0038c5f4;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fe4 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ecec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;\n  DAT_00397fd8 = &PTR_FUN_0038c634;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fdc = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;\n  FUN_001fb5a0(&DAT_00397fc8,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fcc = DAT_00397fcc + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ede4);\n  *(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;\n  DAT_00397fb4 = 1;\n  uVar4 = param_2[3];\n  uVar5 = param_2[4];\n  uVar6 = param_2[5];\n  DAT_00397fb0 = &PTR_FUN_0038dcc0;\n  DAT_00397fb8 = uVar4;\n                    \n  FUN_00232f40(&DAT_00397fb0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fb4 = DAT_00397fb4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e8c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;\n  DAT_00397fc0 = 1;\n  DAT_00397fbc = &PTR_FUN_0038dc48;\n                    \n  DAT_00397fc4 = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fc0 = DAT_00397fc0 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;\n  DAT_00397f98 = &PTR_FUN_0038ddc8;\n  DAT_00397f9c = 1;\n  DAT_00397fa0 = uVar5;\n                    \n  FUN_00234860(&DAT_00397f98,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f9c = DAT_00397f9c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e9c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;\n  DAT_00397fa4 = &PTR_FUN_0038dd94;\n  DAT_00397fa8 = 1;\n  DAT_00397fac = uVar6;\n                    \n  FUN_00234290(&DAT_00397fa4,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fa8 = DAT_00397fa8 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e98);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;\n  DAT_00397f90 = &PTR_FUN_0038ded8;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f94 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ef00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;\n  DAT_00397f88 = &PTR_FUN_0038def0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f8c = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efac);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;\n  DAT_00397f80 = &PTR_FUN_0038df30;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f84 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efb0);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;\n  FUN_0023b990(&DAT_00397f70,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f74 = DAT_00397f74 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar9 = FUN_001e9740(PTR_DAT_0038eb90);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;\n  iVar10 = FUN_001e9740(&DAT_00396dec);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar9 = FUN_001e9740(&DAT_00396df8);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;\n  iVar9 = FUN_001e9740(&DAT_00397e8c);\n  iVar10 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;\n  iVar9 = FUN_001e9740(&DAT_00397e9c);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;\n  iVar10 = FUN_001e9740(&DAT_00397e98);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;\n  return;\n}" primitive_type (function_declarator "FUN_0026c410(int param_1,undefined4 *param_2)" identifier (parameter_list "(int param_1,undefined4 *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  DAT_0039800c = 1;\n  uVar3 = param_2[2];\n  DAT_00398008 = &PTR_FUN_0038c3c4;\n  DAT_00398010 = uVar1;\n                    \n  FUN_00232c30(&DAT_00398008,0);\n  puVar7 = PTR___pthread_key_create_0038ef24;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_0039800c = DAT_0039800c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;\n  DAT_00398018 = 1;\n  DAT_00398014 = &PTR_FUN_0038c38c;\n                    \n  DAT_0039801c = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398018 = DAT_00398018 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee60);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;\n  DAT_00397ff0 = &PTR_FUN_0038c4cc;\n  DAT_00397ff4 = 1;\n  DAT_00397ff8 = uVar2;\n                    \n  FUN_00233ab0(&DAT_00397ff0,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397ff4 = DAT_00397ff4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;\n  DAT_00397ffc = &PTR_FUN_0038c498;\n  DAT_00398000 = 1;\n  DAT_00398004 = uVar3;\n                    \n  FUN_00233570(&DAT_00397ffc,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398000 = DAT_00398000 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396df8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;\n  DAT_00397fe8 = &PTR_FUN_0038c5dc;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fec = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efa4);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;\n  DAT_00397fe0 = &PTR_FUN_0038c5f4;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fe4 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ecec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;\n  DAT_00397fd8 = &PTR_FUN_0038c634;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fdc = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;\n  FUN_001fb5a0(&DAT_00397fc8,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fcc = DAT_00397fcc + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ede4);\n  *(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;\n  DAT_00397fb4 = 1;\n  uVar4 = param_2[3];\n  uVar5 = param_2[4];\n  uVar6 = param_2[5];\n  DAT_00397fb0 = &PTR_FUN_0038dcc0;\n  DAT_00397fb8 = uVar4;\n                    \n  FUN_00232f40(&DAT_00397fb0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fb4 = DAT_00397fb4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e8c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;\n  DAT_00397fc0 = 1;\n  DAT_00397fbc = &PTR_FUN_0038dc48;\n                    \n  DAT_00397fc4 = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fc0 = DAT_00397fc0 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;\n  DAT_00397f98 = &PTR_FUN_0038ddc8;\n  DAT_00397f9c = 1;\n  DAT_00397fa0 = uVar5;\n                    \n  FUN_00234860(&DAT_00397f98,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f9c = DAT_00397f9c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e9c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;\n  DAT_00397fa4 = &PTR_FUN_0038dd94;\n  DAT_00397fa8 = 1;\n  DAT_00397fac = uVar6;\n                    \n  FUN_00234290(&DAT_00397fa4,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fa8 = DAT_00397fa8 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e98);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;\n  DAT_00397f90 = &PTR_FUN_0038ded8;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f94 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ef00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;\n  DAT_00397f88 = &PTR_FUN_0038def0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f8c = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efac);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;\n  DAT_00397f80 = &PTR_FUN_0038df30;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f84 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efb0);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;\n  FUN_0023b990(&DAT_00397f70,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f74 = DAT_00397f74 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar9 = FUN_001e9740(PTR_DAT_0038eb90);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;\n  iVar10 = FUN_001e9740(&DAT_00396dec);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar9 = FUN_001e9740(&DAT_00396df8);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;\n  iVar9 = FUN_001e9740(&DAT_00397e8c);\n  iVar10 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;\n  iVar9 = FUN_001e9740(&DAT_00397e9c);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;\n  iVar10 = FUN_001e9740(&DAT_00397e98);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type 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 "DAT_0039800c = 1;" (assignment_expression "DAT_0039800c = 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_00398008 = &PTR_FUN_0038c3c4;" (assignment_expression "DAT_00398008 = &PTR_FUN_0038c3c4" identifier = (pointer_expression "&PTR_FUN_0038c3c4" & identifier)) ;) (expression_statement "DAT_00398010 = uVar1;" (assignment_expression "DAT_00398010 = uVar1" identifier = identifier) ;) (expression_statement "FUN_00232c30(&DAT_00398008,0);" (call_expression "FUN_00232c30(&DAT_00398008,0)" identifier (argument_list "(&DAT_00398008,0)" ( (pointer_expression "&DAT_00398008" & identifier) , number_literal ))) ;) (expression_statement "puVar7 = PTR___pthread_key_create_0038ef24;" (assignment_expression "puVar7 = PTR___pthread_key_create_0038ef24" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_0038ef24 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_0038ef24 != (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_0039800c = DAT_0039800c + 1;" (assignment_expression "DAT_0039800c = DAT_0039800c + 1" identifier = (binary_expression "DAT_0039800c + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396dec);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396dec)" identifier = (call_expression "FUN_001e9740(&DAT_00396dec)" identifier (argument_list "(&DAT_00396dec)" ( (pointer_expression "&DAT_00396dec" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00398008" & identifier)) ;) (expression_statement "DAT_00398018 = 1;" (assignment_expression "DAT_00398018 = 1" identifier = number_literal) ;) (expression_statement "DAT_00398014 = &PTR_FUN_0038c38c;" (assignment_expression "DAT_00398014 = &PTR_FUN_0038c38c" identifier = (pointer_expression "&PTR_FUN_0038c38c" & identifier)) ;) (expression_statement "DAT_0039801c = FUN_001e9290();" (assignment_expression "DAT_0039801c = FUN_001e9290()" identifier = (call_expression "FUN_001e9290()" 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_00398018 = DAT_00398018 + 1;" (assignment_expression "DAT_00398018 = DAT_00398018 + 1" identifier = (binary_expression "DAT_00398018 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ee60);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ee60)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ee60)" identifier (argument_list "(PTR_DAT_0038ee60)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00398014" & identifier)) ;) (expression_statement "DAT_00397ff0 = &PTR_FUN_0038c4cc;" (assignment_expression "DAT_00397ff0 = &PTR_FUN_0038c4cc" identifier = (pointer_expression "&PTR_FUN_0038c4cc" & identifier)) ;) (expression_statement "DAT_00397ff4 = 1;" (assignment_expression "DAT_00397ff4 = 1" identifier = number_literal) ;) (expression_statement "DAT_00397ff8 = uVar2;" (assignment_expression "DAT_00397ff8 = uVar2" identifier = identifier) ;) (expression_statement "FUN_00233ab0(&DAT_00397ff0,0,0);" (call_expression "FUN_00233ab0(&DAT_00397ff0,0,0)" identifier (argument_list "(&DAT_00397ff0,0,0)" ( (pointer_expression "&DAT_00397ff0" & 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_00397ff4 = DAT_00397ff4 + 1;" (assignment_expression "DAT_00397ff4 = DAT_00397ff4 + 1" identifier = (binary_expression "DAT_00397ff4 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396dfc);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396dfc)" identifier = (call_expression "FUN_001e9740(&DAT_00396dfc)" identifier (argument_list "(&DAT_00396dfc)" ( (pointer_expression "&DAT_00396dfc" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397ff0" & identifier)) ;) (expression_statement "DAT_00397ffc = &PTR_FUN_0038c498;" (assignment_expression "DAT_00397ffc = &PTR_FUN_0038c498" identifier = (pointer_expression "&PTR_FUN_0038c498" & identifier)) ;) (expression_statement "DAT_00398000 = 1;" (assignment_expression "DAT_00398000 = 1" identifier = number_literal) ;) (expression_statement "DAT_00398004 = uVar3;" (assignment_expression "DAT_00398004 = uVar3" identifier = identifier) ;) (expression_statement "FUN_00233570(&DAT_00397ffc,0,0);" (call_expression "FUN_00233570(&DAT_00397ffc,0,0)" identifier (argument_list "(&DAT_00397ffc,0,0)" ( (pointer_expression "&DAT_00397ffc" & 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_00398000 = DAT_00398000 + 1;" (assignment_expression "DAT_00398000 = DAT_00398000 + 1" identifier = (binary_expression "DAT_00398000 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396df8);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396df8)" identifier = (call_expression "FUN_001e9740(&DAT_00396df8)" identifier (argument_list "(&DAT_00396df8)" ( (pointer_expression "&DAT_00396df8" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397ffc" & identifier)) ;) (expression_statement "DAT_00397fe8 = &PTR_FUN_0038c5dc;" (assignment_expression "DAT_00397fe8 = &PTR_FUN_0038c5dc" identifier = (pointer_expression "&PTR_FUN_0038c5dc" & 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_00397fec = 2;" (assignment_expression "DAT_00397fec = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038efa4);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038efa4)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038efa4)" identifier (argument_list "(PTR_DAT_0038efa4)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fe8" & identifier)) ;) (expression_statement "DAT_00397fe0 = &PTR_FUN_0038c5f4;" (assignment_expression "DAT_00397fe0 = &PTR_FUN_0038c5f4" identifier = (pointer_expression "&PTR_FUN_0038c5f4" & 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_00397fe4 = 2;" (assignment_expression "DAT_00397fe4 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ecec);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ecec)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ecec)" identifier (argument_list "(PTR_DAT_0038ecec)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fe0" & identifier)) ;) (expression_statement "DAT_00397fd8 = &PTR_FUN_0038c634;" (assignment_expression "DAT_00397fd8 = &PTR_FUN_0038c634" identifier = (pointer_expression "&PTR_FUN_0038c634" & 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_00397fdc = 2;" (assignment_expression "DAT_00397fdc = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ee00);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ee00)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ee00)" identifier (argument_list "(PTR_DAT_0038ee00)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fd8" & identifier)) ;) (expression_statement "FUN_001fb5a0(&DAT_00397fc8,1);" (call_expression "FUN_001fb5a0(&DAT_00397fc8,1)" identifier (argument_list "(&DAT_00397fc8,1)" ( (pointer_expression "&DAT_00397fc8" & 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_00397fcc = DAT_00397fcc + 1;" (assignment_expression "DAT_00397fcc = DAT_00397fcc + 1" identifier = (binary_expression "DAT_00397fcc + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ede4);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ede4)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ede4)" identifier (argument_list "(PTR_DAT_0038ede4)" ( identifier )))) ;) (expression_statement "*(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;" (assignment_expression "*(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8" (pointer_expression "*(undefined **)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined **)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fc8" & identifier)) ;) (expression_statement "DAT_00397fb4 = 1;" (assignment_expression "DAT_00397fb4 = 1" identifier = number_literal) ;) (expression_statement "uVar4 = param_2[3];" (assignment_expression "uVar4 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = param_2[4];" (assignment_expression "uVar5 = param_2[4]" identifier = (subscript_expression "param_2[4]" 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_00397fb0 = &PTR_FUN_0038dcc0;" (assignment_expression "DAT_00397fb0 = &PTR_FUN_0038dcc0" identifier = (pointer_expression "&PTR_FUN_0038dcc0" & identifier)) ;) (expression_statement "DAT_00397fb8 = uVar4;" (assignment_expression "DAT_00397fb8 = uVar4" identifier = identifier) ;) (expression_statement "FUN_00232f40(&DAT_00397fb0,0);" (call_expression "FUN_00232f40(&DAT_00397fb0,0)" identifier (argument_list "(&DAT_00397fb0,0)" ( (pointer_expression "&DAT_00397fb0" & 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_00397fb4 = DAT_00397fb4 + 1;" (assignment_expression "DAT_00397fb4 = DAT_00397fb4 + 1" identifier = (binary_expression "DAT_00397fb4 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00397e8c);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00397e8c)" identifier = (call_expression "FUN_001e9740(&DAT_00397e8c)" identifier (argument_list "(&DAT_00397e8c)" ( (pointer_expression "&DAT_00397e8c" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fb0" & identifier)) ;) (expression_statement "DAT_00397fc0 = 1;" (assignment_expression "DAT_00397fc0 = 1" identifier = number_literal) ;) (expression_statement "DAT_00397fbc = &PTR_FUN_0038dc48;" (assignment_expression "DAT_00397fbc = &PTR_FUN_0038dc48" identifier = (pointer_expression "&PTR_FUN_0038dc48" & identifier)) ;) (expression_statement "DAT_00397fc4 = FUN_001e9290();" (assignment_expression "DAT_00397fc4 = FUN_001e9290()" identifier = (call_expression "FUN_001e9290()" 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_00397fc0 = DAT_00397fc0 + 1;" (assignment_expression "DAT_00397fc0 = DAT_00397fc0 + 1" identifier = (binary_expression "DAT_00397fc0 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ebb8)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ebb8)" identifier (argument_list "(PTR_DAT_0038ebb8)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fbc" & identifier)) ;) (expression_statement "DAT_00397f98 = &PTR_FUN_0038ddc8;" (assignment_expression "DAT_00397f98 = &PTR_FUN_0038ddc8" identifier = (pointer_expression "&PTR_FUN_0038ddc8" & identifier)) ;) (expression_statement "DAT_00397f9c = 1;" (assignment_expression "DAT_00397f9c = 1" identifier = number_literal) ;) (expression_statement "DAT_00397fa0 = uVar5;" (assignment_expression "DAT_00397fa0 = uVar5" identifier = identifier) ;) (expression_statement "FUN_00234860(&DAT_00397f98,0,0);" (call_expression "FUN_00234860(&DAT_00397f98,0,0)" identifier (argument_list "(&DAT_00397f98,0,0)" ( (pointer_expression "&DAT_00397f98" & 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_00397f9c = DAT_00397f9c + 1;" (assignment_expression "DAT_00397f9c = DAT_00397f9c + 1" identifier = (binary_expression "DAT_00397f9c + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00397e9c);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00397e9c)" identifier = (call_expression "FUN_001e9740(&DAT_00397e9c)" identifier (argument_list "(&DAT_00397e9c)" ( (pointer_expression "&DAT_00397e9c" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397f98" & identifier)) ;) (expression_statement "DAT_00397fa4 = &PTR_FUN_0038dd94;" (assignment_expression "DAT_00397fa4 = &PTR_FUN_0038dd94" identifier = (pointer_expression "&PTR_FUN_0038dd94" & identifier)) ;) (expression_statement "DAT_00397fa8 = 1;" (assignment_expression "DAT_00397fa8 = 1" identifier = number_literal) ;) (expression_statement "DAT_00397fac = uVar6;" (assignment_expression "DAT_00397fac = uVar6" identifier = identifier) ;) (expression_statement "FUN_00234290(&DAT_00397fa4,0,0);" (call_expression "FUN_00234290(&DAT_00397fa4,0,0)" identifier (argument_list "(&DAT_00397fa4,0,0)" ( (pointer_expression "&DAT_00397fa4" & 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_00397fa8 = DAT_00397fa8 + 1;" (assignment_expression "DAT_00397fa8 = DAT_00397fa8 + 1" identifier = (binary_expression "DAT_00397fa8 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00397e98);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00397e98)" identifier = (call_expression "FUN_001e9740(&DAT_00397e98)" identifier (argument_list "(&DAT_00397e98)" ( (pointer_expression "&DAT_00397e98" & identifier) )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397fa4" & identifier)) ;) (expression_statement "DAT_00397f90 = &PTR_FUN_0038ded8;" (assignment_expression "DAT_00397f90 = &PTR_FUN_0038ded8" identifier = (pointer_expression "&PTR_FUN_0038ded8" & 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_00397f94 = 2;" (assignment_expression "DAT_00397f94 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ef00);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ef00)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038ef00)" identifier (argument_list "(PTR_DAT_0038ef00)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397f90" & identifier)) ;) (expression_statement "DAT_00397f88 = &PTR_FUN_0038def0;" (assignment_expression "DAT_00397f88 = &PTR_FUN_0038def0" identifier = (pointer_expression "&PTR_FUN_0038def0" & 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_00397f8c = 2;" (assignment_expression "DAT_00397f8c = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038efac);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038efac)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038efac)" identifier (argument_list "(PTR_DAT_0038efac)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397f88" & identifier)) ;) (expression_statement "DAT_00397f80 = &PTR_FUN_0038df30;" (assignment_expression "DAT_00397f80 = &PTR_FUN_0038df30" identifier = (pointer_expression "&PTR_FUN_0038df30" & 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_00397f84 = 2;" (assignment_expression "DAT_00397f84 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038efb0);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038efb0)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038efb0)" identifier (argument_list "(PTR_DAT_0038efb0)" ( identifier )))) ;) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397f80" & identifier)) ;) (expression_statement "FUN_0023b990(&DAT_00397f70,1);" (call_expression "FUN_0023b990(&DAT_00397f70,1)" identifier (argument_list "(&DAT_00397f70,1)" ( (pointer_expression "&DAT_00397f70" & 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_00397f74 = DAT_00397f74 + 1;" (assignment_expression "DAT_00397f74 = DAT_00397f74 + 1" identifier = (binary_expression "DAT_00397f74 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = FUN_001e9740(PTR_DAT_0038eb90);" (assignment_expression "iVar9 = FUN_001e9740(PTR_DAT_0038eb90)" identifier = (call_expression "FUN_001e9740(PTR_DAT_0038eb90)" identifier (argument_list "(PTR_DAT_0038eb90)" ( identifier )))) ;) (expression_statement "iVar8 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;" (assignment_expression "*(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70" (pointer_expression "*(undefined **)(iVar10 + iVar9 * 4)" * (cast_expression "(undefined **)(iVar10 + iVar9 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + iVar9 * 4)" ( (binary_expression "iVar10 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = (pointer_expression "&DAT_00397f70" & identifier)) ;) (expression_statement "iVar10 = FUN_001e9740(&DAT_00396dec);" (assignment_expression "iVar10 = FUN_001e9740(&DAT_00396dec)" identifier = (call_expression "FUN_001e9740(&DAT_00396dec)" identifier (argument_list "(&DAT_00396dec)" ( (pointer_expression "&DAT_00396dec" & identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;" (assignment_expression "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar1" (pointer_expression "*(undefined4 *)(iVar8 + iVar10 * 4)" * (cast_expression "(undefined4 *)(iVar8 + iVar10 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar10 * 4)" ( (binary_expression "iVar8 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar10 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396dfc);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396dfc)" identifier = (call_expression "FUN_001e9740(&DAT_00396dfc)" identifier (argument_list "(&DAT_00396dfc)" ( (pointer_expression "&DAT_00396dfc" & identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;" (assignment_expression "*(undefined4 *)(iVar10 + iVar8 * 4) = uVar2" (pointer_expression "*(undefined4 *)(iVar10 + iVar8 * 4)" * (cast_expression "(undefined4 *)(iVar10 + iVar8 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar8 * 4)" ( (binary_expression "iVar10 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar10 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = FUN_001e9740(&DAT_00396df8);" (assignment_expression "iVar9 = FUN_001e9740(&DAT_00396df8)" identifier = (call_expression "FUN_001e9740(&DAT_00396df8)" identifier (argument_list "(&DAT_00396df8)" ( (pointer_expression "&DAT_00396df8" & identifier) )))) ;) (expression_statement "iVar8 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;" (assignment_expression "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar3" (pointer_expression "*(undefined4 *)(iVar10 + iVar9 * 4)" * (cast_expression "(undefined4 *)(iVar10 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar9 * 4)" ( (binary_expression "iVar10 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar9 = FUN_001e9740(&DAT_00397e8c);" (assignment_expression "iVar9 = FUN_001e9740(&DAT_00397e8c)" identifier = (call_expression "FUN_001e9740(&DAT_00397e8c)" identifier (argument_list "(&DAT_00397e8c)" ( (pointer_expression "&DAT_00397e8c" & identifier) )))) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar10 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;" (assignment_expression "*(undefined4 *)(iVar8 + iVar9 * 4) = uVar4" (pointer_expression "*(undefined4 *)(iVar8 + iVar9 * 4)" * (cast_expression "(undefined4 *)(iVar8 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar9 * 4)" ( (binary_expression "iVar8 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar9 = FUN_001e9740(&DAT_00397e9c);" (assignment_expression "iVar9 = FUN_001e9740(&DAT_00397e9c)" identifier = (call_expression "FUN_001e9740(&DAT_00397e9c)" identifier (argument_list "(&DAT_00397e9c)" ( (pointer_expression "&DAT_00397e9c" & identifier) )))) ;) (expression_statement "iVar8 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;" (assignment_expression "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar5" (pointer_expression "*(undefined4 *)(iVar10 + iVar9 * 4)" * (cast_expression "(undefined4 *)(iVar10 + iVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar9 * 4)" ( (binary_expression "iVar10 + iVar9 * 4" identifier + (binary_expression "iVar9 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar10 = FUN_001e9740(&DAT_00397e98);" (assignment_expression "iVar10 = FUN_001e9740(&DAT_00397e98)" identifier = (call_expression "FUN_001e9740(&DAT_00397e98)" identifier (argument_list "(&DAT_00397e98)" ( (pointer_expression "&DAT_00397e98" & identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;" (assignment_expression "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar6" (pointer_expression "*(undefined4 *)(iVar8 + iVar10 * 4)" * (cast_expression "(undefined4 *)(iVar8 + iVar10 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar10 * 4)" ( (binary_expression "iVar8 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal)) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE 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 TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (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 = (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 TYPE (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 * (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 TYPE (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 * (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)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 TYPE (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 * (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 TYPE (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 * (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 TYPE (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 * (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)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 TYPE (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 * (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (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 TYPE (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 TYPE (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 TYPE (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (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_0026c410(int param_1,undefined4 *param_2)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  DAT_0039800c = 1;\n  uVar3 = param_2[2];\n  DAT_00398008 = &PTR_FUN_0038c3c4;\n  DAT_00398010 = uVar1;\n                    \n  FUN_00232c30(&DAT_00398008,0);\n  puVar7 = PTR___pthread_key_create_0038ef24;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_0039800c = DAT_0039800c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;\n  DAT_00398018 = 1;\n  DAT_00398014 = &PTR_FUN_0038c38c;\n                    \n  DAT_0039801c = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398018 = DAT_00398018 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee60);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;\n  DAT_00397ff0 = &PTR_FUN_0038c4cc;\n  DAT_00397ff4 = 1;\n  DAT_00397ff8 = uVar2;\n                    \n  FUN_00233ab0(&DAT_00397ff0,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397ff4 = DAT_00397ff4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;\n  DAT_00397ffc = &PTR_FUN_0038c498;\n  DAT_00398000 = 1;\n  DAT_00398004 = uVar3;\n                    \n  FUN_00233570(&DAT_00397ffc,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398000 = DAT_00398000 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396df8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;\n  DAT_00397fe8 = &PTR_FUN_0038c5dc;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fec = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efa4);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;\n  DAT_00397fe0 = &PTR_FUN_0038c5f4;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fe4 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ecec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;\n  DAT_00397fd8 = &PTR_FUN_0038c634;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fdc = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;\n  FUN_001fb5a0(&DAT_00397fc8,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fcc = DAT_00397fcc + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ede4);\n  *(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;\n  DAT_00397fb4 = 1;\n  uVar4 = param_2[3];\n  uVar5 = param_2[4];\n  uVar6 = param_2[5];\n  DAT_00397fb0 = &PTR_FUN_0038dcc0;\n  DAT_00397fb8 = uVar4;\n                    \n  FUN_00232f40(&DAT_00397fb0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fb4 = DAT_00397fb4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e8c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;\n  DAT_00397fc0 = 1;\n  DAT_00397fbc = &PTR_FUN_0038dc48;\n                    \n  DAT_00397fc4 = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fc0 = DAT_00397fc0 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;\n  DAT_00397f98 = &PTR_FUN_0038ddc8;\n  DAT_00397f9c = 1;\n  DAT_00397fa0 = uVar5;\n                    \n  FUN_00234860(&DAT_00397f98,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f9c = DAT_00397f9c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e9c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;\n  DAT_00397fa4 = &PTR_FUN_0038dd94;\n  DAT_00397fa8 = 1;\n  DAT_00397fac = uVar6;\n                    \n  FUN_00234290(&DAT_00397fa4,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fa8 = DAT_00397fa8 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e98);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;\n  DAT_00397f90 = &PTR_FUN_0038ded8;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f94 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ef00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;\n  DAT_00397f88 = &PTR_FUN_0038def0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f8c = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efac);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;\n  DAT_00397f80 = &PTR_FUN_0038df30;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f84 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efb0);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;\n  FUN_0023b990(&DAT_00397f70,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f74 = DAT_00397f74 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar9 = FUN_001e9740(PTR_DAT_0038eb90);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;\n  iVar10 = FUN_001e9740(&DAT_00396dec);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar9 = FUN_001e9740(&DAT_00396df8);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;\n  iVar9 = FUN_001e9740(&DAT_00397e8c);\n  iVar10 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;\n  iVar9 = FUN_001e9740(&DAT_00397e9c);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;\n  iVar10 = FUN_001e9740(&DAT_00397e98);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0026c410(int param_1,undefined4 *param_2)" (identifier "FUN_0026c410") (parameter_list "(int param_1,undefined4 *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  \n  uVar1 = *param_2;\n  uVar2 = param_2[1];\n  DAT_0039800c = 1;\n  uVar3 = param_2[2];\n  DAT_00398008 = &PTR_FUN_0038c3c4;\n  DAT_00398010 = uVar1;\n                    \n  FUN_00232c30(&DAT_00398008,0);\n  puVar7 = PTR___pthread_key_create_0038ef24;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_0039800c = DAT_0039800c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;\n  DAT_00398018 = 1;\n  DAT_00398014 = &PTR_FUN_0038c38c;\n                    \n  DAT_0039801c = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398018 = DAT_00398018 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee60);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;\n  DAT_00397ff0 = &PTR_FUN_0038c4cc;\n  DAT_00397ff4 = 1;\n  DAT_00397ff8 = uVar2;\n                    \n  FUN_00233ab0(&DAT_00397ff0,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397ff4 = DAT_00397ff4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;\n  DAT_00397ffc = &PTR_FUN_0038c498;\n  DAT_00398000 = 1;\n  DAT_00398004 = uVar3;\n                    \n  FUN_00233570(&DAT_00397ffc,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00398000 = DAT_00398000 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00396df8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;\n  DAT_00397fe8 = &PTR_FUN_0038c5dc;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fec = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efa4);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;\n  DAT_00397fe0 = &PTR_FUN_0038c5f4;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fe4 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ecec);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;\n  DAT_00397fd8 = &PTR_FUN_0038c634;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fdc = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ee00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;\n  FUN_001fb5a0(&DAT_00397fc8,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fcc = DAT_00397fcc + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ede4);\n  *(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;\n  DAT_00397fb4 = 1;\n  uVar4 = param_2[3];\n  uVar5 = param_2[4];\n  uVar6 = param_2[5];\n  DAT_00397fb0 = &PTR_FUN_0038dcc0;\n  DAT_00397fb8 = uVar4;\n                    \n  FUN_00232f40(&DAT_00397fb0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fb4 = DAT_00397fb4 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e8c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;\n  DAT_00397fc0 = 1;\n  DAT_00397fbc = &PTR_FUN_0038dc48;\n                    \n  DAT_00397fc4 = FUN_001e9290();\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fc0 = DAT_00397fc0 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;\n  DAT_00397f98 = &PTR_FUN_0038ddc8;\n  DAT_00397f9c = 1;\n  DAT_00397fa0 = uVar5;\n                    \n  FUN_00234860(&DAT_00397f98,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f9c = DAT_00397f9c + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e9c);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;\n  DAT_00397fa4 = &PTR_FUN_0038dd94;\n  DAT_00397fa8 = 1;\n  DAT_00397fac = uVar6;\n                    \n  FUN_00234290(&DAT_00397fa4,0,0);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397fa8 = DAT_00397fa8 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(&DAT_00397e98);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;\n  DAT_00397f90 = &PTR_FUN_0038ded8;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f94 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038ef00);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;\n  DAT_00397f88 = &PTR_FUN_0038def0;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f8c = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efac);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;\n  DAT_00397f80 = &PTR_FUN_0038df30;\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f84 = 2;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar8 = FUN_001e9740(PTR_DAT_0038efb0);\n  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;\n  FUN_0023b990(&DAT_00397f70,1);\n  if (puVar7 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00397f74 = DAT_00397f74 + 1;\n  iVar10 = *(int *)(param_1 + 4);\n  iVar9 = FUN_001e9740(PTR_DAT_0038eb90);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;\n  iVar10 = FUN_001e9740(&DAT_00396dec);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar8 = FUN_001e9740(&DAT_00396dfc);\n  *(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;\n  iVar10 = *(int *)(param_1 + 0xc);\n  iVar9 = FUN_001e9740(&DAT_00396df8);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;\n  iVar9 = FUN_001e9740(&DAT_00397e8c);\n  iVar10 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;\n  iVar9 = FUN_001e9740(&DAT_00397e9c);\n  iVar8 = *(int *)(param_1 + 0xc);\n  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;\n  iVar10 = FUN_001e9740(&DAT_00397e98);\n  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (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 "DAT_0039800c = 1;" (assignment_expression "DAT_0039800c = 1" (identifier "DAT_0039800c") (= "=") (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_00398008 = &PTR_FUN_0038c3c4;" (assignment_expression "DAT_00398008 = &PTR_FUN_0038c3c4" (identifier "DAT_00398008") (= "=") (pointer_expression "&PTR_FUN_0038c3c4" (& "&") (identifier "PTR_FUN_0038c3c4"))) (; ";")) (expression_statement "DAT_00398010 = uVar1;" (assignment_expression "DAT_00398010 = uVar1" (identifier "DAT_00398010") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "FUN_00232c30(&DAT_00398008,0);" (call_expression "FUN_00232c30(&DAT_00398008,0)" (identifier "FUN_00232c30") (argument_list "(&DAT_00398008,0)" (( "(") (pointer_expression "&DAT_00398008" (& "&") (identifier "DAT_00398008")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar7 = PTR___pthread_key_create_0038ef24;" (assignment_expression "puVar7 = PTR___pthread_key_create_0038ef24" (identifier "puVar7") (= "=") (identifier "PTR___pthread_key_create_0038ef24")) (; ";")) (if_statement "if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(PTR___pthread_key_create_0038ef24 != (undefined *)0x0)" (( "(") (binary_expression "PTR___pthread_key_create_0038ef24 != (undefined *)0x0" (identifier "PTR___pthread_key_create_0038ef24") (!= "!=") (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_0039800c = DAT_0039800c + 1;" (assignment_expression "DAT_0039800c = DAT_0039800c + 1" (identifier "DAT_0039800c") (= "=") (binary_expression "DAT_0039800c + 1" (identifier "DAT_0039800c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396dec);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396dec)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(&DAT_00396dec)" (identifier "FUN_001e9740") (argument_list "(&DAT_00396dec)" (( "(") (pointer_expression "&DAT_00396dec" (& "&") (identifier "DAT_00396dec")) () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00398008" (& "&") (identifier "DAT_00398008"))) (; ";")) (expression_statement "DAT_00398018 = 1;" (assignment_expression "DAT_00398018 = 1" (identifier "DAT_00398018") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_00398014 = &PTR_FUN_0038c38c;" (assignment_expression "DAT_00398014 = &PTR_FUN_0038c38c" (identifier "DAT_00398014") (= "=") (pointer_expression "&PTR_FUN_0038c38c" (& "&") (identifier "PTR_FUN_0038c38c"))) (; ";")) (expression_statement "DAT_0039801c = FUN_001e9290();" (assignment_expression "DAT_0039801c = FUN_001e9290()" (identifier "DAT_0039801c") (= "=") (call_expression "FUN_001e9290()" (identifier "FUN_001e9290") (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_00398018 = DAT_00398018 + 1;" (assignment_expression "DAT_00398018 = DAT_00398018 + 1" (identifier "DAT_00398018") (= "=") (binary_expression "DAT_00398018 + 1" (identifier "DAT_00398018") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ee60);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ee60)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(PTR_DAT_0038ee60)" (identifier "FUN_001e9740") (argument_list "(PTR_DAT_0038ee60)" (( "(") (identifier "PTR_DAT_0038ee60") () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00398014" (& "&") (identifier "DAT_00398014"))) (; ";")) (expression_statement "DAT_00397ff0 = &PTR_FUN_0038c4cc;" (assignment_expression "DAT_00397ff0 = &PTR_FUN_0038c4cc" (identifier "DAT_00397ff0") (= "=") (pointer_expression "&PTR_FUN_0038c4cc" (& "&") (identifier "PTR_FUN_0038c4cc"))) (; ";")) (expression_statement "DAT_00397ff4 = 1;" (assignment_expression "DAT_00397ff4 = 1" (identifier "DAT_00397ff4") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_00397ff8 = uVar2;" (assignment_expression "DAT_00397ff8 = uVar2" (identifier "DAT_00397ff8") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_00233ab0(&DAT_00397ff0,0,0);" (call_expression "FUN_00233ab0(&DAT_00397ff0,0,0)" (identifier "FUN_00233ab0") (argument_list "(&DAT_00397ff0,0,0)" (( "(") (pointer_expression "&DAT_00397ff0" (& "&") (identifier "DAT_00397ff0")) (, ",") (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_00397ff4 = DAT_00397ff4 + 1;" (assignment_expression "DAT_00397ff4 = DAT_00397ff4 + 1" (identifier "DAT_00397ff4") (= "=") (binary_expression "DAT_00397ff4 + 1" (identifier "DAT_00397ff4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396dfc);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396dfc)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(&DAT_00396dfc)" (identifier "FUN_001e9740") (argument_list "(&DAT_00396dfc)" (( "(") (pointer_expression "&DAT_00396dfc" (& "&") (identifier "DAT_00396dfc")) () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397ff0" (& "&") (identifier "DAT_00397ff0"))) (; ";")) (expression_statement "DAT_00397ffc = &PTR_FUN_0038c498;" (assignment_expression "DAT_00397ffc = &PTR_FUN_0038c498" (identifier "DAT_00397ffc") (= "=") (pointer_expression "&PTR_FUN_0038c498" (& "&") (identifier "PTR_FUN_0038c498"))) (; ";")) (expression_statement "DAT_00398000 = 1;" (assignment_expression "DAT_00398000 = 1" (identifier "DAT_00398000") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_00398004 = uVar3;" (assignment_expression "DAT_00398004 = uVar3" (identifier "DAT_00398004") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "FUN_00233570(&DAT_00397ffc,0,0);" (call_expression "FUN_00233570(&DAT_00397ffc,0,0)" (identifier "FUN_00233570") (argument_list "(&DAT_00397ffc,0,0)" (( "(") (pointer_expression "&DAT_00397ffc" (& "&") (identifier "DAT_00397ffc")) (, ",") (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_00398000 = DAT_00398000 + 1;" (assignment_expression "DAT_00398000 = DAT_00398000 + 1" (identifier "DAT_00398000") (= "=") (binary_expression "DAT_00398000 + 1" (identifier "DAT_00398000") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396df8);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396df8)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(&DAT_00396df8)" (identifier "FUN_001e9740") (argument_list "(&DAT_00396df8)" (( "(") (pointer_expression "&DAT_00396df8" (& "&") (identifier "DAT_00396df8")) () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397ffc" (& "&") (identifier "DAT_00397ffc"))) (; ";")) (expression_statement "DAT_00397fe8 = &PTR_FUN_0038c5dc;" (assignment_expression "DAT_00397fe8 = &PTR_FUN_0038c5dc" (identifier "DAT_00397fe8") (= "=") (pointer_expression "&PTR_FUN_0038c5dc" (& "&") (identifier "PTR_FUN_0038c5dc"))) (; ";")) (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_00397fec = 2;" (assignment_expression "DAT_00397fec = 2" (identifier "DAT_00397fec") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038efa4);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038efa4)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(PTR_DAT_0038efa4)" (identifier "FUN_001e9740") (argument_list "(PTR_DAT_0038efa4)" (( "(") (identifier "PTR_DAT_0038efa4") () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397fe8" (& "&") (identifier "DAT_00397fe8"))) (; ";")) (expression_statement "DAT_00397fe0 = &PTR_FUN_0038c5f4;" (assignment_expression "DAT_00397fe0 = &PTR_FUN_0038c5f4" (identifier "DAT_00397fe0") (= "=") (pointer_expression "&PTR_FUN_0038c5f4" (& "&") (identifier "PTR_FUN_0038c5f4"))) (; ";")) (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_00397fe4 = 2;" (assignment_expression "DAT_00397fe4 = 2" (identifier "DAT_00397fe4") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ecec);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ecec)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(PTR_DAT_0038ecec)" (identifier "FUN_001e9740") (argument_list "(PTR_DAT_0038ecec)" (( "(") (identifier "PTR_DAT_0038ecec") () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397fe0" (& "&") (identifier "DAT_00397fe0"))) (; ";")) (expression_statement "DAT_00397fd8 = &PTR_FUN_0038c634;" (assignment_expression "DAT_00397fd8 = &PTR_FUN_0038c634" (identifier "DAT_00397fd8") (= "=") (pointer_expression "&PTR_FUN_0038c634" (& "&") (identifier "PTR_FUN_0038c634"))) (; ";")) (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_00397fdc = 2;" (assignment_expression "DAT_00397fdc = 2" (identifier "DAT_00397fdc") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ee00);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ee00)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(PTR_DAT_0038ee00)" (identifier "FUN_001e9740") (argument_list "(PTR_DAT_0038ee00)" (( "(") (identifier "PTR_DAT_0038ee00") () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397fd8" (& "&") (identifier "DAT_00397fd8"))) (; ";")) (expression_statement "FUN_001fb5a0(&DAT_00397fc8,1);" (call_expression "FUN_001fb5a0(&DAT_00397fc8,1)" (identifier "FUN_001fb5a0") (argument_list "(&DAT_00397fc8,1)" (( "(") (pointer_expression "&DAT_00397fc8" (& "&") (identifier "DAT_00397fc8")) (, ",") (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_00397fcc = DAT_00397fcc + 1;" (assignment_expression "DAT_00397fcc = DAT_00397fcc + 1" (identifier "DAT_00397fcc") (= "=") (binary_expression "DAT_00397fcc + 1" (identifier "DAT_00397fcc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ede4);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ede4)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(PTR_DAT_0038ede4)" (identifier "FUN_001e9740") (argument_list "(PTR_DAT_0038ede4)" (( "(") (identifier "PTR_DAT_0038ede4") () ")")))) (; ";")) (expression_statement "*(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;" (assignment_expression "*(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8" (pointer_expression "*(undefined **)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined **)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397fc8" (& "&") (identifier "DAT_00397fc8"))) (; ";")) (expression_statement "DAT_00397fb4 = 1;" (assignment_expression "DAT_00397fb4 = 1" (identifier "DAT_00397fb4") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar4 = param_2[3];" (assignment_expression "uVar4 = param_2[3]" (identifier "uVar4") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar5 = param_2[4];" (assignment_expression "uVar5 = param_2[4]" (identifier "uVar5") (= "=") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (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_00397fb0 = &PTR_FUN_0038dcc0;" (assignment_expression "DAT_00397fb0 = &PTR_FUN_0038dcc0" (identifier "DAT_00397fb0") (= "=") (pointer_expression "&PTR_FUN_0038dcc0" (& "&") (identifier "PTR_FUN_0038dcc0"))) (; ";")) (expression_statement "DAT_00397fb8 = uVar4;" (assignment_expression "DAT_00397fb8 = uVar4" (identifier "DAT_00397fb8") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00232f40(&DAT_00397fb0,0);" (call_expression "FUN_00232f40(&DAT_00397fb0,0)" (identifier "FUN_00232f40") (argument_list "(&DAT_00397fb0,0)" (( "(") (pointer_expression "&DAT_00397fb0" (& "&") (identifier "DAT_00397fb0")) (, ",") (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_00397fb4 = DAT_00397fb4 + 1;" (assignment_expression "DAT_00397fb4 = DAT_00397fb4 + 1" (identifier "DAT_00397fb4") (= "=") (binary_expression "DAT_00397fb4 + 1" (identifier "DAT_00397fb4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(&DAT_00397e8c);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00397e8c)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(&DAT_00397e8c)" (identifier "FUN_001e9740") (argument_list "(&DAT_00397e8c)" (( "(") (pointer_expression "&DAT_00397e8c" (& "&") (identifier "DAT_00397e8c")) () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397fb0" (& "&") (identifier "DAT_00397fb0"))) (; ";")) (expression_statement "DAT_00397fc0 = 1;" (assignment_expression "DAT_00397fc0 = 1" (identifier "DAT_00397fc0") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_00397fbc = &PTR_FUN_0038dc48;" (assignment_expression "DAT_00397fbc = &PTR_FUN_0038dc48" (identifier "DAT_00397fbc") (= "=") (pointer_expression "&PTR_FUN_0038dc48" (& "&") (identifier "PTR_FUN_0038dc48"))) (; ";")) (expression_statement "DAT_00397fc4 = FUN_001e9290();" (assignment_expression "DAT_00397fc4 = FUN_001e9290()" (identifier "DAT_00397fc4") (= "=") (call_expression "FUN_001e9290()" (identifier "FUN_001e9290") (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_00397fc0 = DAT_00397fc0 + 1;" (assignment_expression "DAT_00397fc0 = DAT_00397fc0 + 1" (identifier "DAT_00397fc0") (= "=") (binary_expression "DAT_00397fc0 + 1" (identifier "DAT_00397fc0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ebb8)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(PTR_DAT_0038ebb8)" (identifier "FUN_001e9740") (argument_list "(PTR_DAT_0038ebb8)" (( "(") (identifier "PTR_DAT_0038ebb8") () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397fbc" (& "&") (identifier "DAT_00397fbc"))) (; ";")) (expression_statement "DAT_00397f98 = &PTR_FUN_0038ddc8;" (assignment_expression "DAT_00397f98 = &PTR_FUN_0038ddc8" (identifier "DAT_00397f98") (= "=") (pointer_expression "&PTR_FUN_0038ddc8" (& "&") (identifier "PTR_FUN_0038ddc8"))) (; ";")) (expression_statement "DAT_00397f9c = 1;" (assignment_expression "DAT_00397f9c = 1" (identifier "DAT_00397f9c") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_00397fa0 = uVar5;" (assignment_expression "DAT_00397fa0 = uVar5" (identifier "DAT_00397fa0") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "FUN_00234860(&DAT_00397f98,0,0);" (call_expression "FUN_00234860(&DAT_00397f98,0,0)" (identifier "FUN_00234860") (argument_list "(&DAT_00397f98,0,0)" (( "(") (pointer_expression "&DAT_00397f98" (& "&") (identifier "DAT_00397f98")) (, ",") (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_00397f9c = DAT_00397f9c + 1;" (assignment_expression "DAT_00397f9c = DAT_00397f9c + 1" (identifier "DAT_00397f9c") (= "=") (binary_expression "DAT_00397f9c + 1" (identifier "DAT_00397f9c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(&DAT_00397e9c);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00397e9c)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(&DAT_00397e9c)" (identifier "FUN_001e9740") (argument_list "(&DAT_00397e9c)" (( "(") (pointer_expression "&DAT_00397e9c" (& "&") (identifier "DAT_00397e9c")) () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397f98" (& "&") (identifier "DAT_00397f98"))) (; ";")) (expression_statement "DAT_00397fa4 = &PTR_FUN_0038dd94;" (assignment_expression "DAT_00397fa4 = &PTR_FUN_0038dd94" (identifier "DAT_00397fa4") (= "=") (pointer_expression "&PTR_FUN_0038dd94" (& "&") (identifier "PTR_FUN_0038dd94"))) (; ";")) (expression_statement "DAT_00397fa8 = 1;" (assignment_expression "DAT_00397fa8 = 1" (identifier "DAT_00397fa8") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_00397fac = uVar6;" (assignment_expression "DAT_00397fac = uVar6" (identifier "DAT_00397fac") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "FUN_00234290(&DAT_00397fa4,0,0);" (call_expression "FUN_00234290(&DAT_00397fa4,0,0)" (identifier "FUN_00234290") (argument_list "(&DAT_00397fa4,0,0)" (( "(") (pointer_expression "&DAT_00397fa4" (& "&") (identifier "DAT_00397fa4")) (, ",") (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_00397fa8 = DAT_00397fa8 + 1;" (assignment_expression "DAT_00397fa8 = DAT_00397fa8 + 1" (identifier "DAT_00397fa8") (= "=") (binary_expression "DAT_00397fa8 + 1" (identifier "DAT_00397fa8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(&DAT_00397e98);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00397e98)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(&DAT_00397e98)" (identifier "FUN_001e9740") (argument_list "(&DAT_00397e98)" (( "(") (pointer_expression "&DAT_00397e98" (& "&") (identifier "DAT_00397e98")) () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397fa4" (& "&") (identifier "DAT_00397fa4"))) (; ";")) (expression_statement "DAT_00397f90 = &PTR_FUN_0038ded8;" (assignment_expression "DAT_00397f90 = &PTR_FUN_0038ded8" (identifier "DAT_00397f90") (= "=") (pointer_expression "&PTR_FUN_0038ded8" (& "&") (identifier "PTR_FUN_0038ded8"))) (; ";")) (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_00397f94 = 2;" (assignment_expression "DAT_00397f94 = 2" (identifier "DAT_00397f94") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038ef00);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038ef00)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(PTR_DAT_0038ef00)" (identifier "FUN_001e9740") (argument_list "(PTR_DAT_0038ef00)" (( "(") (identifier "PTR_DAT_0038ef00") () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397f90" (& "&") (identifier "DAT_00397f90"))) (; ";")) (expression_statement "DAT_00397f88 = &PTR_FUN_0038def0;" (assignment_expression "DAT_00397f88 = &PTR_FUN_0038def0" (identifier "DAT_00397f88") (= "=") (pointer_expression "&PTR_FUN_0038def0" (& "&") (identifier "PTR_FUN_0038def0"))) (; ";")) (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_00397f8c = 2;" (assignment_expression "DAT_00397f8c = 2" (identifier "DAT_00397f8c") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038efac);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038efac)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(PTR_DAT_0038efac)" (identifier "FUN_001e9740") (argument_list "(PTR_DAT_0038efac)" (( "(") (identifier "PTR_DAT_0038efac") () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397f88" (& "&") (identifier "DAT_00397f88"))) (; ";")) (expression_statement "DAT_00397f80 = &PTR_FUN_0038df30;" (assignment_expression "DAT_00397f80 = &PTR_FUN_0038df30" (identifier "DAT_00397f80") (= "=") (pointer_expression "&PTR_FUN_0038df30" (& "&") (identifier "PTR_FUN_0038df30"))) (; ";")) (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_00397f84 = 2;" (assignment_expression "DAT_00397f84 = 2" (identifier "DAT_00397f84") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(PTR_DAT_0038efb0);" (assignment_expression "iVar8 = FUN_001e9740(PTR_DAT_0038efb0)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(PTR_DAT_0038efb0)" (identifier "FUN_001e9740") (argument_list "(PTR_DAT_0038efb0)" (( "(") (identifier "PTR_DAT_0038efb0") () ")")))) (; ";")) (expression_statement "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;" (assignment_expression "*(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80" (pointer_expression "*(undefined ****)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined ****)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397f80" (& "&") (identifier "DAT_00397f80"))) (; ";")) (expression_statement "FUN_0023b990(&DAT_00397f70,1);" (call_expression "FUN_0023b990(&DAT_00397f70,1)" (identifier "FUN_0023b990") (argument_list "(&DAT_00397f70,1)" (( "(") (pointer_expression "&DAT_00397f70" (& "&") (identifier "DAT_00397f70")) (, ",") (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_00397f74 = DAT_00397f74 + 1;" (assignment_expression "DAT_00397f74 = DAT_00397f74 + 1" (identifier "DAT_00397f74") (= "=") (binary_expression "DAT_00397f74 + 1" (identifier "DAT_00397f74") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 4);" (assignment_expression "iVar10 = *(int *)(param_1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar9 = FUN_001e9740(PTR_DAT_0038eb90);" (assignment_expression "iVar9 = FUN_001e9740(PTR_DAT_0038eb90)" (identifier "iVar9") (= "=") (call_expression "FUN_001e9740(PTR_DAT_0038eb90)" (identifier "FUN_001e9740") (argument_list "(PTR_DAT_0038eb90)" (( "(") (identifier "PTR_DAT_0038eb90") () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xc)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;" (assignment_expression "*(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70" (pointer_expression "*(undefined **)(iVar10 + iVar9 * 4)" (* "*") (cast_expression "(undefined **)(iVar10 + iVar9 * 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + iVar9 * 4)" (( "(") (binary_expression "iVar10 + iVar9 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "&DAT_00397f70" (& "&") (identifier "DAT_00397f70"))) (; ";")) (expression_statement "iVar10 = FUN_001e9740(&DAT_00396dec);" (assignment_expression "iVar10 = FUN_001e9740(&DAT_00396dec)" (identifier "iVar10") (= "=") (call_expression "FUN_001e9740(&DAT_00396dec)" (identifier "FUN_001e9740") (argument_list "(&DAT_00396dec)" (( "(") (pointer_expression "&DAT_00396dec" (& "&") (identifier "DAT_00396dec")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;" (assignment_expression "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar1" (pointer_expression "*(undefined4 *)(iVar8 + iVar10 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar8 + iVar10 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar10 * 4)" (( "(") (binary_expression "iVar8 + iVar10 * 4" (identifier "iVar8") (+ "+") (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar10 = *(int *)(param_1 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar8 = FUN_001e9740(&DAT_00396dfc);" (assignment_expression "iVar8 = FUN_001e9740(&DAT_00396dfc)" (identifier "iVar8") (= "=") (call_expression "FUN_001e9740(&DAT_00396dfc)" (identifier "FUN_001e9740") (argument_list "(&DAT_00396dfc)" (( "(") (pointer_expression "&DAT_00396dfc" (& "&") (identifier "DAT_00396dfc")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;" (assignment_expression "*(undefined4 *)(iVar10 + iVar8 * 4) = uVar2" (pointer_expression "*(undefined4 *)(iVar10 + iVar8 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar10 + iVar8 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 4)" (( "(") (binary_expression "iVar10 + iVar8 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar10 = *(int *)(param_1 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar9 = FUN_001e9740(&DAT_00396df8);" (assignment_expression "iVar9 = FUN_001e9740(&DAT_00396df8)" (identifier "iVar9") (= "=") (call_expression "FUN_001e9740(&DAT_00396df8)" (identifier "FUN_001e9740") (argument_list "(&DAT_00396df8)" (( "(") (pointer_expression "&DAT_00396df8" (& "&") (identifier "DAT_00396df8")) () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xc)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;" (assignment_expression "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar3" (pointer_expression "*(undefined4 *)(iVar10 + iVar9 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar10 + iVar9 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar9 * 4)" (( "(") (binary_expression "iVar10 + iVar9 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "iVar9 = FUN_001e9740(&DAT_00397e8c);" (assignment_expression "iVar9 = FUN_001e9740(&DAT_00397e8c)" (identifier "iVar9") (= "=") (call_expression "FUN_001e9740(&DAT_00397e8c)" (identifier "FUN_001e9740") (argument_list "(&DAT_00397e8c)" (( "(") (pointer_expression "&DAT_00397e8c" (& "&") (identifier "DAT_00397e8c")) () ")")))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar10 = *(int *)(param_1 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;" (assignment_expression "*(undefined4 *)(iVar8 + iVar9 * 4) = uVar4" (pointer_expression "*(undefined4 *)(iVar8 + iVar9 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar8 + iVar9 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar9 * 4)" (( "(") (binary_expression "iVar8 + iVar9 * 4" (identifier "iVar8") (+ "+") (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iVar9 = FUN_001e9740(&DAT_00397e9c);" (assignment_expression "iVar9 = FUN_001e9740(&DAT_00397e9c)" (identifier "iVar9") (= "=") (call_expression "FUN_001e9740(&DAT_00397e9c)" (identifier "FUN_001e9740") (argument_list "(&DAT_00397e9c)" (( "(") (pointer_expression "&DAT_00397e9c" (& "&") (identifier "DAT_00397e9c")) () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xc)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;" (assignment_expression "*(undefined4 *)(iVar10 + iVar9 * 4) = uVar5" (pointer_expression "*(undefined4 *)(iVar10 + iVar9 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar10 + iVar9 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar9 * 4)" (( "(") (binary_expression "iVar10 + iVar9 * 4" (identifier "iVar10") (+ "+") (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "iVar10 = FUN_001e9740(&DAT_00397e98);" (assignment_expression "iVar10 = FUN_001e9740(&DAT_00397e98)" (identifier "iVar10") (= "=") (call_expression "FUN_001e9740(&DAT_00397e98)" (identifier "FUN_001e9740") (argument_list "(&DAT_00397e98)" (( "(") (pointer_expression "&DAT_00397e98" (& "&") (identifier "DAT_00397e98")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;" (assignment_expression "*(undefined4 *)(iVar8 + iVar10 * 4) = uVar6" (pointer_expression "*(undefined4 *)(iVar8 + iVar10 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar8 + iVar10 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar10 * 4)" (( "(") (binary_expression "iVar8 + iVar10 * 4" (identifier "iVar8") (+ "+") (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* std::locale::_Impl::_M_init_extra(std::locale::facet**) */

void __thiscall std::locale::type_1::function_1(type_1 *var_8,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_12;
  int var_10;
  int var_25;
  int var_9;
  
  pfVar1 = *param_1;
  pfVar2 = param_1[1];
  var_7 = 1;
  pfVar3 = param_1[2];
  (anonymous_namespace)::numpunct_c = &PTR__numpunct_0038c3c4;
  _DAT_00398010 = pfVar1;
                    /* try { // try from 0026c46b to 0026c46f has its CatchHandler @ 0026cbf6 */
  var_1<var_2>::var_3
            ((var_1<var_2> *)&(anonymous_namespace)::numpunct_c,(type_4 *)0x0);
  var_12 = var_4;
  if (var_4 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  var_7 = var_7 + 1;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)&var_1<var_2>::type_5);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::numpunct_c;
  var_13 = 1;
  (anonymous_namespace)::collate_c = &PTR__collate_0038c38c;
                    /* try { // try from 0026c4cb to 0026c4cf has its CatchHandler @ 0026cbd3 */
  DAT_0039801c = type_2::var_11();
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  var_13 = var_13 + 1;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)PTR_id_0038ee60);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::collate_c;
  (anonymous_namespace)::moneypunct_cf = &PTR__moneypunct_0038c4cc;
  var_17 = 1;
  DAT_00397ff8 = pfVar2;
                    /* try { // try from 0026c53e to 0026c542 has its CatchHandler @ 0026cbcc */
  var_15<var_2,false>::var_16
            ((type_4 *)&(anonymous_namespace)::moneypunct_cf,(char *)0x0);
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  var_17 = var_17 + 1;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)&var_15<var_2,false>::type_5);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::moneypunct_cf;
  (anonymous_namespace)::moneypunct_ct = &PTR__moneypunct_0038c498;
  var_18 = 1;
  DAT_00398004 = pfVar3;
                    /* try { // try from 0026c5af to 0026c5b3 has its CatchHandler @ 0026cbe1 */
  var_15<var_2,true>::var_16
            ((type_4 *)&(anonymous_namespace)::moneypunct_ct,(char *)0x0);
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  var_18 = var_18 + 1;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)&var_15<var_2,true>::type_5);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::moneypunct_ct;
  (anonymous_namespace)::money_get_c = &PTR__money_get_0038c5dc;
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  DAT_00397fec = 2;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)PTR_id_0038efa4);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::money_get_c;
  (anonymous_namespace)::money_put_c = &PTR__money_put_0038c5f4;
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  DAT_00397fe4 = 2;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)PTR_id_0038ecec);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::money_put_c;
  (anonymous_namespace)::time_get_c = &PTR__time_get_0038c634;
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  DAT_00397fdc = 2;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)PTR_id_0038ee00);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::time_get_c;
  var_19<var_2>::var_19((var_19<var_2> *)(anonymous_namespace)::messages_c,1);
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::messages_c._4_4_ = (anonymous_namespace)::messages_c._4_4_ + 1;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)PTR_id_0038ede4);
  *(type_6 **)(var_9 + var_10 * 4) = (anonymous_namespace)::messages_c;
  var_21 = 1;
  pfVar4 = param_1[3];
  pfVar5 = param_1[4];
  pfVar6 = param_1[5];
  (anonymous_namespace)::numpunct_w = &PTR__numpunct_0038dcc0;
  _DAT_00397fb8 = pfVar4;
                    /* try { // try from 0026c76d to 0026c771 has its CatchHandler @ 0026cbda */
  var_1<var_20>::var_3
            ((var_1<var_20> *)&(anonymous_namespace)::numpunct_w,(type_4 *)0x0);
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  var_21 = var_21 + 1;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)&var_1<var_20>::type_5);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::numpunct_w;
  var_22 = 1;
  (anonymous_namespace)::collate_w = &PTR__collate_0038dc48;
                    /* try { // try from 0026c7c7 to 0026c7cb has its CatchHandler @ 0026cbef */
  DAT_00397fc4 = type_2::var_11();
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  var_22 = var_22 + 1;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)PTR_id_0038ebb8);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::collate_w;
  (anonymous_namespace)::moneypunct_wf = &PTR__moneypunct_0038ddc8;
  var_23 = 1;
  DAT_00397fa0 = pfVar5;
                    /* try { // try from 0026c83a to 0026c83e has its CatchHandler @ 0026cbe8 */
  var_15<var_20,false>::var_16
            ((type_4 *)&(anonymous_namespace)::moneypunct_wf,(char *)0x0);
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  var_23 = var_23 + 1;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)&var_15<var_20,false>::type_5);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::moneypunct_wf;
  (anonymous_namespace)::moneypunct_wt = &PTR__moneypunct_0038dd94;
  var_24 = 1;
  DAT_00397fac = pfVar6;
                    /* try { // try from 0026c8ad to 0026c8b1 has its CatchHandler @ 0026cbfd */
  var_15<var_20,true>::var_16
            ((type_4 *)&(anonymous_namespace)::moneypunct_wt,(char *)0x0);
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  var_24 = var_24 + 1;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)&var_15<var_20,true>::type_5);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::moneypunct_wt;
  (anonymous_namespace)::money_get_w = &PTR__money_get_0038ded8;
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  DAT_00397f94 = 2;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)PTR_id_0038ef00);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::money_get_w;
  (anonymous_namespace)::money_put_w = &PTR__money_put_0038def0;
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  DAT_00397f8c = 2;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)PTR_id_0038efac);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::money_put_w;
  (anonymous_namespace)::time_get_w = &PTR__time_get_0038df30;
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  DAT_00397f84 = 2;
  var_9 = *(int *)(var_8 + 4);
  var_10 = locale::id::var_14((type_5 *)PTR_id_0038efb0);
  *(type_3 ****)(var_9 + var_10 * 4) = &(anonymous_namespace)::time_get_w;
  var_19<var_20>::var_19((var_19<var_20> *)(anonymous_namespace)::messages_w,1);
  if (var_12 != (type_3 *)0x0) {
    var_5();
    var_6();
  }
  (anonymous_namespace)::messages_w._4_4_ = (anonymous_namespace)::messages_w._4_4_ + 1;
  var_9 = *(int *)(var_8 + 4);
  var_25 = locale::id::var_14((type_5 *)PTR_id_0038eb90);
  var_10 = *(int *)(var_8 + 0xc);
  *(type_6 **)(var_9 + var_25 * 4) = (anonymous_namespace)::messages_w;
  var_9 = locale::id::var_14((type_5 *)&var_1<var_2>::type_5);
  *(type_2 **)(var_10 + var_9 * 4) = pfVar1;
  var_9 = *(int *)(var_8 + 0xc);
  var_10 = locale::id::var_14((type_5 *)&var_15<var_2,false>::type_5);
  *(type_2 **)(var_9 + var_10 * 4) = pfVar2;
  var_9 = *(int *)(var_8 + 0xc);
  var_25 = locale::id::var_14((type_5 *)&var_15<var_2,true>::type_5);
  var_10 = *(int *)(var_8 + 0xc);
  *(type_2 **)(var_9 + var_25 * 4) = pfVar3;
  var_25 = locale::id::var_14((type_5 *)&var_1<var_20>::type_5);
  var_9 = *(int *)(var_8 + 0xc);
  *(type_2 **)(var_10 + var_25 * 4) = pfVar4;
  var_25 = locale::id::var_14((type_5 *)&var_15<var_20,false>::type_5);
  var_10 = *(int *)(var_8 + 0xc);
  *(type_2 **)(var_9 + var_25 * 4) = pfVar5;
  var_9 = locale::id::var_14((type_5 *)&var_15<var_20,true>::type_5);
  *(type_2 **)(var_10 + var_9 * 4) = pfVar6;
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (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)))) (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: (primitive_type) 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 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: (primitive_type) 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 (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 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (primitive_type) 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 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (primitive_type) 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 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: (primitive_type) 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 (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 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: (primitive_type) 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 (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 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: (primitive_type) 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 (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 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: (primitive_type) 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 (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (primitive_type) 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 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: (primitive_type) 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 (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 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (primitive_type) 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 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (primitive_type) 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 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: (primitive_type) 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 (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 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: (primitive_type) 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 (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 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: (primitive_type) 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 (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 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: (primitive_type) 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 (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (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: (primitive_type) 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: (primitive_type) 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: (primitive_type) 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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void MASKED(int param_1,undefined4 *param_2)

{
  undefined4 uVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined *puVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  
  uVar1 = *param_2;
  uVar2 = param_2[1];
  DAT_0039800c = 1;
  uVar3 = param_2[2];
  DAT_00398008 = &PTR_FUN_0038c3c4;
  DAT_00398010 = uVar1;
                    /* try { // try from 0026c46b to 0026c46f has its CatchHandler @ 0026cbf6 */
  FUN_00232c30(&DAT_00398008,0);
  puVar7 = PTR___pthread_key_create_0038ef24;
  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_0039800c = DAT_0039800c + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00396dec);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398008;
  DAT_00398018 = 1;
  DAT_00398014 = &PTR_FUN_0038c38c;
                    /* try { // try from 0026c4cb to 0026c4cf has its CatchHandler @ 0026cbd3 */
  DAT_0039801c = FUN_001e9290();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00398018 = DAT_00398018 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ee60);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00398014;
  DAT_00397ff0 = &PTR_FUN_0038c4cc;
  DAT_00397ff4 = 1;
  DAT_00397ff8 = uVar2;
                    /* try { // try from 0026c53e to 0026c542 has its CatchHandler @ 0026cbcc */
  FUN_00233ab0(&DAT_00397ff0,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397ff4 = DAT_00397ff4 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00396dfc);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ff0;
  DAT_00397ffc = &PTR_FUN_0038c498;
  DAT_00398000 = 1;
  DAT_00398004 = uVar3;
                    /* try { // try from 0026c5af to 0026c5b3 has its CatchHandler @ 0026cbe1 */
  FUN_00233570(&DAT_00397ffc,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00398000 = DAT_00398000 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00396df8);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397ffc;
  DAT_00397fe8 = &PTR_FUN_0038c5dc;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fec = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038efa4);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe8;
  DAT_00397fe0 = &PTR_FUN_0038c5f4;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fe4 = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ecec);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fe0;
  DAT_00397fd8 = &PTR_FUN_0038c634;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fdc = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ee00);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fd8;
  FUN_001fb5a0(&DAT_00397fc8,1);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fcc = DAT_00397fcc + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ede4);
  *(undefined **)(iVar10 + iVar8 * 4) = &DAT_00397fc8;
  DAT_00397fb4 = 1;
  uVar4 = param_2[3];
  uVar5 = param_2[4];
  uVar6 = param_2[5];
  DAT_00397fb0 = &PTR_FUN_0038dcc0;
  DAT_00397fb8 = uVar4;
                    /* try { // try from 0026c76d to 0026c771 has its CatchHandler @ 0026cbda */
  FUN_00232f40(&DAT_00397fb0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fb4 = DAT_00397fb4 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00397e8c);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fb0;
  DAT_00397fc0 = 1;
  DAT_00397fbc = &PTR_FUN_0038dc48;
                    /* try { // try from 0026c7c7 to 0026c7cb has its CatchHandler @ 0026cbef */
  DAT_00397fc4 = FUN_001e9290();
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fc0 = DAT_00397fc0 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ebb8);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fbc;
  DAT_00397f98 = &PTR_FUN_0038ddc8;
  DAT_00397f9c = 1;
  DAT_00397fa0 = uVar5;
                    /* try { // try from 0026c83a to 0026c83e has its CatchHandler @ 0026cbe8 */
  FUN_00234860(&DAT_00397f98,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f9c = DAT_00397f9c + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00397e9c);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f98;
  DAT_00397fa4 = &PTR_FUN_0038dd94;
  DAT_00397fa8 = 1;
  DAT_00397fac = uVar6;
                    /* try { // try from 0026c8ad to 0026c8b1 has its CatchHandler @ 0026cbfd */
  FUN_00234290(&DAT_00397fa4,0,0);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397fa8 = DAT_00397fa8 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(&DAT_00397e98);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397fa4;
  DAT_00397f90 = &PTR_FUN_0038ded8;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f94 = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038ef00);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f90;
  DAT_00397f88 = &PTR_FUN_0038def0;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f8c = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038efac);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f88;
  DAT_00397f80 = &PTR_FUN_0038df30;
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f84 = 2;
  iVar10 = *(int *)(param_1 + 4);
  iVar8 = FUN_001e9740(PTR_DAT_0038efb0);
  *(undefined ****)(iVar10 + iVar8 * 4) = &DAT_00397f80;
  FUN_0023b990(&DAT_00397f70,1);
  if (puVar7 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00397f74 = DAT_00397f74 + 1;
  iVar10 = *(int *)(param_1 + 4);
  iVar9 = FUN_001e9740(PTR_DAT_0038eb90);
  iVar8 = *(int *)(param_1 + 0xc);
  *(undefined **)(iVar10 + iVar9 * 4) = &DAT_00397f70;
  iVar10 = FUN_001e9740(&DAT_00396dec);
  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar1;
  iVar10 = *(int *)(param_1 + 0xc);
  iVar8 = FUN_001e9740(&DAT_00396dfc);
  *(undefined4 *)(iVar10 + iVar8 * 4) = uVar2;
  iVar10 = *(int *)(param_1 + 0xc);
  iVar9 = FUN_001e9740(&DAT_00396df8);
  iVar8 = *(int *)(param_1 + 0xc);
  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar3;
  iVar9 = FUN_001e9740(&DAT_00397e8c);
  iVar10 = *(int *)(param_1 + 0xc);
  *(undefined4 *)(iVar8 + iVar9 * 4) = uVar4;
  iVar9 = FUN_001e9740(&DAT_00397e9c);
  iVar8 = *(int *)(param_1 + 0xc);
  *(undefined4 *)(iVar10 + iVar9 * 4) = uVar5;
  iVar10 = FUN_001e9740(&DAT_00397e98);
  *(undefined4 *)(iVar8 + iVar10 * 4) = uVar6;
  return;
}

