
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* std::__numpunct_cache<wchar_t>::_M_cache(std::locale const&) */

void __thiscall
std::__numpunct_cache<wchar_t>::_M_cache(__numpunct_cache<wchar_t> *this,locale *param_1)

{
  code *pcVar1;
  uint uVar2;
  __numpunct_cache<wchar_t> _Var3;
  numpunct *pnVar4;
  ctype *pcVar5;
  undefined4 uVar6;
  int iVar7;
  int **ppiVar8;
  uint auStackY_5c [4];
  undefined1 auStack_40 [4];
  int *local_3c;
  void *local_38;
  string *local_34;
  char *local_30;
  undefined1 local_2a;
  undefined1 local_29;
  int local_28;
  int local_24;
  int local_20 [4];
  
  pnVar4 = use_facet<std::numpunct<wchar_t>>(param_1);
  if (*(code **)(*(int *)pnVar4 + 0x10) == (code *)PTR_do_grouping_00301c1c) {
    local_34 = (string *)&local_28;
                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */
    std::string::string(local_34,*(char **)(*(int *)(pnVar4 + 8) + 8),(allocator *)local_20);
    ppiVar8 = &local_3c;
  }
  else {
    local_34 = (string *)&local_28;
                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */
    (**(code **)(*(int *)pnVar4 + 0x10))(local_34,pnVar4);
    ppiVar8 = (int **)auStack_40;
  }
  uVar6 = *(undefined4 *)(local_28 + -0xc);
  *(undefined4 *)(this + 0xc) = uVar6;
  *(undefined4 *)((int)ppiVar8 + -0x10) = uVar6;
                    /* try { // try from 001d6232 to 001d6236 has its CatchHandler @ 001d65e3 */
  *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6237;
  local_30 = (char *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));
  *(undefined4 *)((int)ppiVar8 + -4) = 0;
  *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0xc);
  *(char **)((int)ppiVar8 + -0xc) = local_30;
  *(string **)((int)ppiVar8 + -0x10) = local_34;
                    /* try { // try from 001d6249 to 001d624d has its CatchHandler @ 001d65c7 */
  *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d624e;
  std::string::copy(*(string **)((int)ppiVar8 + -0x10),*(char **)((int)ppiVar8 + -0xc),
                    *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));
  _Var3 = (__numpunct_cache<wchar_t>)0x0;
  if (*(int *)(this + 0xc) != 0) {
    _Var3 = (__numpunct_cache<wchar_t>)((byte)(*local_30 - 1U) < 0x7e);
  }
  this[0x10] = _Var3;
  pcVar1 = *(code **)(*(int *)pnVar4 + 0x14);
  if (pcVar1 == (code *)PTR_do_truename_00301bb4) {
    *(undefined1 **)((int)ppiVar8 + -8) = &local_2a;
    *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x14);
    local_34 = (string *)&local_24;
    *(string **)((int)ppiVar8 + -0x10) = local_34;
                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */
    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6293;
    std::wstring::wstring
              (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),
               *(allocator **)((int)ppiVar8 + -8));
  }
  else {
    local_34 = (string *)&local_24;
    *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;
    *(string **)((int)ppiVar8 + -0x10) = local_34;
                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */
    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6465;
    (*pcVar1)();
    ppiVar8 = (int **)((int)ppiVar8 + -4);
  }
  uVar2 = *(uint *)(local_24 + -0xc);
  *(uint *)(this + 0x18) = uVar2;
  if (uVar2 < 0x20000000) {
    *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;
                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */
    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62bb;
    local_38 = operator_new__(*(uint *)((int)ppiVar8 + -0x10));
    *(undefined4 *)((int)ppiVar8 + -4) = 0;
    *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x18);
    *(void **)((int)ppiVar8 + -0xc) = local_38;
    *(string **)((int)ppiVar8 + -0x10) = local_34;
                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */
    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62d2;
    std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),
                       *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));
    pcVar1 = *(code **)(*(int *)pnVar4 + 0x18);
    if (pcVar1 == (code *)PTR_do_falsename_00301c5c) {
      *(undefined1 **)((int)ppiVar8 + -8) = &local_29;
      *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c);
      local_3c = local_20;
      *(int **)((int)ppiVar8 + -0x10) = local_3c;
                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */
      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62ff;
      std::wstring::wstring
                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),
                 *(allocator **)((int)ppiVar8 + -8));
    }
    else {
      local_3c = local_20;
      *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;
      *(int **)((int)ppiVar8 + -0x10) = local_3c;
                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */
      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d647d;
      (*pcVar1)();
      ppiVar8 = (int **)((int)ppiVar8 + -4);
    }
    uVar2 = *(uint *)(local_20[0] + -0xc);
    *(uint *)(this + 0x20) = uVar2;
    if (uVar2 < 0x20000000) {
      *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;
                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */
      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6327;
      local_34 = (string *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));
      *(undefined4 *)((int)ppiVar8 + -4) = 0;
      *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x20);
      *(string **)((int)ppiVar8 + -0xc) = local_34;
      *(int **)((int)ppiVar8 + -0x10) = local_3c;
                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */
      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6340;
      std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),
                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));
      iVar7 = *(int *)pnVar4;
      pcVar1 = *(code **)(iVar7 + 8);
      if (pcVar1 == (code *)PTR_do_decimal_point_00301cf4) {
        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24);
      }
      else {
        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;
        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;
        uVar6 = (*pcVar1)();
        iVar7 = *(int *)pnVar4;
      }
      *(undefined4 *)(this + 0x24) = uVar6;
      pcVar1 = *(code **)(iVar7 + 0xc);
      if (pcVar1 == (code *)PTR_do_thousands_sep_00301e58) {
        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28);
      }
      else {
        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;
                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */
        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;
        uVar6 = (*pcVar1)();
      }
      *(undefined4 *)(this + 0x28) = uVar6;
      *(locale **)((int)ppiVar8 + -0x10) = param_1;
      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6388;
      pcVar5 = use_facet<std::ctype<wchar_t>>(*(locale **)((int)ppiVar8 + -0x10));
      iVar7 = *(int *)pcVar5;
      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0x2c;
      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_out + 0x24;
      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_out;
      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;
      pcVar1 = *(code **)(iVar7 + 0x2c);
      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63a7;
      (*pcVar1)();
      iVar7 = *(int *)pcVar5;
      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0xbc;
      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_in + 0x1a;
      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_in;
      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;
      pcVar1 = *(code **)(iVar7 + 0x2c);
      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63c7;
      (*pcVar1)();
      *(char **)(this + 8) = local_30;
      *(void **)(this + 0x14) = local_38;
      *(string **)(this + 0x1c) = local_34;
      this[0x124] = (__numpunct_cache<wchar_t>)0x1;
      if ((allocator *)(local_20[0] + -0xc) !=
          (allocator *)&std::wstring::_Rep::_S_empty_rep_storage) {
        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8;
        std::wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));
      }
      if ((allocator *)(local_24 + -0xc) != (allocator *)&std::wstring::_Rep::_S_empty_rep_storage)
      {
        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8;
        std::wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));
      }
      if ((allocator *)(local_28 + -0xc) != (allocator *)PTR__S_empty_rep_storage_00301cdc) {
        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8;
        std::string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));
      }
      return;
    }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */
    *(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d64fd;
    __cxa_throw_bad_array_new_length();
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001d65d4 to 001d65d8 has its CatchHandler @ 001d65dd */
  *(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d65d9;
  __cxa_throw_bad_array_new_length();
}



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

void FUN_001d61d0(int param_1,undefined4 param_2)

{
  code *pcVar1;
  uint uVar2;
  bool bVar3;
  int *piVar4;
  undefined4 uVar5;
  int iVar6;
  undefined ***pppuVar7;
  int aiStackY_5c [4];
  undefined1 auStack_40 [4];
  undefined **local_3c;
  undefined4 local_38;
  undefined **local_34;
  char *local_30;
  undefined1 local_2a;
  undefined1 local_29;
  int local_28;
  undefined *local_24;
  undefined *local_20 [4];
  
  piVar4 = (int *)FUN_001d6170(param_2);
  if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {
    local_34 = (undefined **)&local_28;
                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */
    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);
    pppuVar7 = &local_3c;
  }
  else {
    local_34 = (undefined **)&local_28;
                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */
    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);
    pppuVar7 = (undefined ***)auStack_40;
  }
  uVar5 = *(undefined4 *)(local_28 + -0xc);
  *(undefined4 *)(param_1 + 0xc) = uVar5;
  *(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;
                    /* try { // try from 001d6232 to 001d6236 has its CatchHandler @ 001d65e3 */
  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;
  local_30 = (char *)FUN_0017eb70();
  *(undefined4 *)((int)pppuVar7 + -4) = 0;
  *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);
  *(char **)((int)pppuVar7 + -0xc) = local_30;
  *(undefined ***)((int)pppuVar7 + -0x10) = local_34;
                    /* try { // try from 001d6249 to 001d624d has its CatchHandler @ 001d65c7 */
  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;
  FUN_001b7540();
  bVar3 = false;
  if (*(int *)(param_1 + 0xc) != 0) {
    bVar3 = (byte)(*local_30 - 1U) < 0x7e;
  }
  *(bool *)(param_1 + 0x10) = bVar3;
  pcVar1 = *(code **)(*piVar4 + 0x14);
  if (pcVar1 == (code *)PTR_FUN_00301bb4) {
    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;
    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);
    local_34 = &local_24;
    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;
                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */
    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;
    FUN_00205b00();
  }
  else {
    local_34 = &local_24;
    *(int **)((int)pppuVar7 + -0xc) = piVar4;
    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;
                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */
    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;
    (*pcVar1)();
    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);
  }
  uVar2 = *(uint *)(local_24 + -0xc);
  *(uint *)(param_1 + 0x18) = uVar2;
  if (uVar2 < 0x20000000) {
    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;
                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */
    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;
    local_38 = FUN_0017eb70();
    *(undefined4 *)((int)pppuVar7 + -4) = 0;
    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);
    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;
    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;
                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */
    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;
    FUN_00202840();
    pcVar1 = *(code **)(*piVar4 + 0x18);
    if (pcVar1 == (code *)PTR_FUN_00301c5c) {
      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;
      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);
      local_3c = local_20;
      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;
                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;
      FUN_00205b00();
    }
    else {
      local_3c = local_20;
      *(int **)((int)pppuVar7 + -0xc) = piVar4;
      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;
                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;
      (*pcVar1)();
      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);
    }
    uVar2 = *(uint *)(local_20[0] + -0xc);
    *(uint *)(param_1 + 0x20) = uVar2;
    if (uVar2 < 0x20000000) {
      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;
                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;
      local_34 = (undefined **)FUN_0017eb70();
      *(undefined4 *)((int)pppuVar7 + -4) = 0;
      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);
      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;
      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;
                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;
      FUN_00202840();
      iVar6 = *piVar4;
      pcVar1 = *(code **)(iVar6 + 8);
      if (pcVar1 == (code *)PTR_FUN_00301cf4) {
        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);
      }
      else {
        *(int **)((int)pppuVar7 + -0x10) = piVar4;
        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;
        uVar5 = (*pcVar1)();
        iVar6 = *piVar4;
      }
      *(undefined4 *)(param_1 + 0x24) = uVar5;
      pcVar1 = *(code **)(iVar6 + 0xc);
      if (pcVar1 == (code *)PTR_FUN_00301e58) {
        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);
      }
      else {
        *(int **)((int)pppuVar7 + -0x10) = piVar4;
                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */
        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;
        uVar5 = (*pcVar1)();
      }
      *(undefined4 *)(param_1 + 0x28) = uVar5;
      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;
      piVar4 = (int *)FUN_001d5bc0();
      iVar6 = *piVar4;
      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;
      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;
      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;
      *(int **)((int)pppuVar7 + -0x10) = piVar4;
      pcVar1 = *(code **)(iVar6 + 0x2c);
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;
      (*pcVar1)();
      iVar6 = *piVar4;
      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;
      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;
      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;
      *(int **)((int)pppuVar7 + -0x10) = piVar4;
      pcVar1 = *(code **)(iVar6 + 0x2c);
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;
      (*pcVar1)();
      *(char **)(param_1 + 8) = local_30;
      *(undefined4 *)(param_1 + 0x14) = local_38;
      *(undefined ***)(param_1 + 0x1c) = local_34;
      *(undefined1 *)(param_1 + 0x124) = 1;
      if (local_20[0] != &DAT_0030af6c) {
        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;
        FUN_001d2f90();
      }
      if (local_24 != &DAT_0030af6c) {
        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;
        FUN_001d2f90();
      }
      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {
        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;
        FUN_001d2f40();
      }
      return;
    }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */
    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;
    FUN_00180130();
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001d65d4 to 001d65d8 has its CatchHandler @ 001d65dd */
  *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;
  FUN_00180130();
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
CALL 0x0004fb7a
ADD ESI,0x12be26
PUSH EBX
SUB ESP,0x38
PUSH dword ptr [EBP + 0xc]
MOV EBX,ESI
CALL 0x001d6170
ADD ESP,0x10
MOV EDI,EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x10]
CMP EAX,dword ptr [ESI + 0xfffffc1c]
JNZ 0x001d6440
SUB ESP,0x4
LEA EAX,[EBP + -0x1c]
PUSH EAX
MOV EAX,dword ptr [EDI + 0x8]
PUSH dword ptr [EAX + 0x8]
LEA EAX,[EBP + -0x24]
PUSH EAX
MOV dword ptr [EBP + -0x30],EAX
CALL 0x001ba720
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x24]
MOV ECX,dword ptr [EBP + 0x8]
SUB ESP,0xc
MOV EBX,ESI
MOV EAX,dword ptr [EAX + -0xc]
MOV dword ptr [ECX + 0xc],EAX
PUSH EAX
CALL 0x0017eb70
MOV EDX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV dword ptr [EBP + -0x2c],EAX
PUSH 0x0
PUSH dword ptr [EDX + 0xc]
PUSH EAX
PUSH dword ptr [EBP + -0x30]
CALL 0x001b7540
MOV ECX,dword ptr [EBP + 0x8]
ADD ESP,0x10
XOR EAX,EAX
MOV EDX,dword ptr [ECX + 0xc]
TEST EDX,EDX
JNZ 0x001d6428
MOV EDX,dword ptr [EBP + 0x8]
MOV byte ptr [EDX + 0x10],AL
MOV EAX,dword ptr [EDI]
MOV EAX,dword ptr [EAX + 0x14]
CMP EAX,dword ptr [ESI + 0xfffffbb4]
JNZ 0x001d6458
SUB ESP,0x4
LEA EAX,[EBP + -0x26]
MOV EBX,ESI
PUSH EAX
MOV EAX,dword ptr [EDI + 0x8]
PUSH dword ptr [EAX + 0x14]
LEA EAX,[EBP + -0x20]
PUSH EAX
MOV dword ptr [EBP + -0x30],EAX
CALL 0x00205b00
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x20]
MOV EBX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + -0xc]
MOV dword ptr [EBX + 0x18],EAX
CMP EAX,0x1fffffff
JA 0x001d65d2
SUB ESP,0xc
SHL EAX,0x2
MOV EBX,ESI
PUSH EAX
CALL 0x0017eb70
MOV ECX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV dword ptr [EBP + -0x34],EAX
PUSH 0x0
PUSH dword ptr [ECX + 0x18]
PUSH EAX
PUSH dword ptr [EBP + -0x30]
CALL 0x00202840
MOV EAX,dword ptr [EDI]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x18]
CMP EAX,dword ptr [ESI + 0xfffffc5c]
JNZ 0x001d6470
SUB ESP,0x4
LEA EAX,[EBP + -0x25]
PUSH EAX
MOV EAX,dword ptr [EDI + 0x8]
PUSH dword ptr [EAX + 0x1c]
LEA EAX,[EBP + -0x1c]
PUSH EAX
MOV dword ptr [EBP + -0x38],EAX
CALL 0x00205b00
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x1c]
MOV EDX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + -0xc]
MOV dword ptr [EDX + 0x20],EAX
CMP EAX,0x1fffffff
JA 0x001d64f6
SUB ESP,0xc
SHL EAX,0x2
MOV EBX,ESI
PUSH EAX
CALL 0x0017eb70
MOV EBX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV dword ptr [EBP + -0x30],EAX
PUSH 0x0
PUSH dword ptr [EBX + 0x20]
MOV EBX,ESI
PUSH EAX
PUSH dword ptr [EBP + -0x38]
CALL 0x00202840
MOV EDX,dword ptr [EDI]
ADD ESP,0x10
MOV EAX,dword ptr [EDX + 0x8]
CMP EAX,dword ptr [ESI + 0xfffffcf4]
JNZ 0x001d64a0
MOV EAX,dword ptr [EDI + 0x8]
MOV EAX,dword ptr [EAX + 0x24]
MOV ECX,dword ptr [EBP + 0x8]
MOV dword ptr [ECX + 0x24],EAX
MOV EAX,dword ptr [EDX + 0xc]
CMP EAX,dword ptr [ESI + 0xfffffe58]
JNZ 0x001d6488
MOV EAX,dword ptr [EDI + 0x8]
MOV EAX,dword ptr [EAX + 0x28]
MOV EDX,dword ptr [EBP + 0x8]
SUB ESP,0xc
MOV EBX,ESI
MOV dword ptr [EDX + 0x28],EAX
PUSH dword ptr [EBP + 0xc]
CALL 0x001d5bc0
MOV EDI,EAX
LEA EAX,[ESI + 0x3ac]
MOV EBX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV EDX,dword ptr [EDI]
MOV EAX,dword ptr [EAX]
LEA ECX,[EBX + 0x2c]
PUSH ECX
LEA ECX,[EAX + 0x24]
PUSH ECX
PUSH EAX
PUSH EDI
CALL dword ptr [EDX + 0x2c]
LEA EAX,[ESI + 0x3b0]
MOV ECX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV EDX,dword ptr [EDI]
MOV EAX,dword ptr [EAX]
ADD ECX,0xbc
PUSH ECX
LEA ECX,[EAX + 0x1a]
PUSH ECX
PUSH EAX
PUSH EDI
CALL dword ptr [EDX + 0x2c]
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + -0x2c]
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x34]
MOV ECX,dword ptr [EBP + -0x30]
MOV dword ptr [EAX + 0x8],EDX
LEA EDI,[ESI + 0x8f60]
MOV dword ptr [EAX + 0x14],EBX
MOV dword ptr [EAX + 0x1c],ECX
MOV byte ptr [EAX + 0x124],0x1
MOV EAX,dword ptr [EBP + -0x1c]
SUB EAX,0xc
CMP EAX,EDI
JNZ 0x001d64c0
MOV EAX,dword ptr [EBP + -0x20]
SUB EAX,0xc
CMP EAX,EDI
JNZ 0x001d64d0
MOV EAX,dword ptr [EBP + -0x24]
SUB EAX,0xc
CMP EAX,dword ptr [ESI + 0xfffffcdc]
JNZ 0x001d64b0
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + -0x2c]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [EBP + -0x30],AL
SUB EAX,0x1
CMP AL,0x7d
SETBE AL
JMP 0x001d6261
LEA EDX,[EBP + -0x24]
SUB ESP,0x8
PUSH EDI
MOV dword ptr [EBP + -0x30],EDX
PUSH EDX
CALL EAX
ADD ESP,0xc
JMP 0x001d6220
LEA EBX,[EBP + -0x20]
SUB ESP,0x8
PUSH EDI
MOV dword ptr [EBP + -0x30],EBX
PUSH EBX
CALL EAX
ADD ESP,0xc
JMP 0x001d6296
LEA EDX,[EBP + -0x1c]
SUB ESP,0x8
PUSH EDI
MOV dword ptr [EBP + -0x38],EDX
PUSH EDX
CALL EAX
ADD ESP,0xc
JMP 0x001d6302
SUB ESP,0xc
PUSH EDI
CALL EAX
ADD ESP,0x10
JMP 0x001d6375
SUB ESP,0xc
PUSH EDI
CALL EAX
ADD ESP,0x10
MOV EDX,dword ptr [EDI]
JMP 0x001d635a
LEA EDX,[EBP + -0x25]
CALL 0x001d2f40
JMP 0x001d641a
LEA EDX,[EBP + -0x25]
CALL 0x001d2f90
JMP 0x001d63fa
LEA EDX,[EBP + -0x25]
CALL 0x001d2f90
JMP 0x001d6408
MOV EBX,ESI
CALL 0x00180130
MOV EBX,ESI
CALL 0x00180130
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nvoid FUN_001d61d0(int param_1,undefined4 param_2)\n\n{\n  code *pcVar1;\n  uint uVar2;\n  bool bVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined ***pppuVar7;\n  int aiStackY_5c [4];\n  undefined1 auStack_40 [4];\n  undefined **local_3c;\n  undefined4 local_38;\n  undefined **local_34;\n  char *local_30;\n  undefined1 local_2a;\n  undefined1 local_29;\n  int local_28;\n  undefined *local_24;\n  undefined *local_20 [4];\n  \n  piVar4 = (int *)FUN_001d6170(param_2);\n  if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {\n    local_34 = (undefined **)&local_28;\n                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */\n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }\n  else {\n    local_34 = (undefined **)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }\n  uVar5 = *(undefined4 *)(local_28 + -0xc);\n  *(undefined4 *)(param_1 + 0xc) = uVar5;\n  *(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;\n                    /* try { // try from 001d6232 to 001d6236 has its CatchHandler @ 001d65e3 */\n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;\n  local_30 = (char *)FUN_0017eb70();\n  *(undefined4 *)((int)pppuVar7 + -4) = 0;\n  *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);\n  *(char **)((int)pppuVar7 + -0xc) = local_30;\n  *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d6249 to 001d624d has its CatchHandler @ 001d65c7 */\n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;\n  FUN_001b7540();\n  bVar3 = false;\n  if (*(int *)(param_1 + 0xc) != 0) {\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }\n  *(bool *)(param_1 + 0x10) = bVar3;\n  pcVar1 = *(code **)(*piVar4 + 0x14);\n  if (pcVar1 == (code *)PTR_FUN_00301bb4) {\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }\n  else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }\n  uVar2 = *(uint *)(local_24 + -0xc);\n  *(uint *)(param_1 + 0x18) = uVar2;\n  if (uVar2 < 0x20000000) {\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */\n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d65d4 to 001d65d8 has its CatchHandler @ 001d65dd */\n  *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;\n  FUN_00180130();\n}\n\n" comment (function_definition "void FUN_001d61d0(int param_1,undefined4 param_2)\n\n{\n  code *pcVar1;\n  uint uVar2;\n  bool bVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined ***pppuVar7;\n  int aiStackY_5c [4];\n  undefined1 auStack_40 [4];\n  undefined **local_3c;\n  undefined4 local_38;\n  undefined **local_34;\n  char *local_30;\n  undefined1 local_2a;\n  undefined1 local_29;\n  int local_28;\n  undefined *local_24;\n  undefined *local_20 [4];\n  \n  piVar4 = (int *)FUN_001d6170(param_2);\n  if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {\n    local_34 = (undefined **)&local_28;\n                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */\n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }\n  else {\n    local_34 = (undefined **)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }\n  uVar5 = *(undefined4 *)(local_28 + -0xc);\n  *(undefined4 *)(param_1 + 0xc) = uVar5;\n  *(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;\n                    /* try { // try from 001d6232 to 001d6236 has its CatchHandler @ 001d65e3 */\n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;\n  local_30 = (char *)FUN_0017eb70();\n  *(undefined4 *)((int)pppuVar7 + -4) = 0;\n  *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);\n  *(char **)((int)pppuVar7 + -0xc) = local_30;\n  *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d6249 to 001d624d has its CatchHandler @ 001d65c7 */\n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;\n  FUN_001b7540();\n  bVar3 = false;\n  if (*(int *)(param_1 + 0xc) != 0) {\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }\n  *(bool *)(param_1 + 0x10) = bVar3;\n  pcVar1 = *(code **)(*piVar4 + 0x14);\n  if (pcVar1 == (code *)PTR_FUN_00301bb4) {\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }\n  else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }\n  uVar2 = *(uint *)(local_24 + -0xc);\n  *(uint *)(param_1 + 0x18) = uVar2;\n  if (uVar2 < 0x20000000) {\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */\n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d65d4 to 001d65d8 has its CatchHandler @ 001d65dd */\n  *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;\n  FUN_00180130();\n}" primitive_type (function_declarator "FUN_001d61d0(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 identifier) ))) (compound_statement "{\n  code *pcVar1;\n  uint uVar2;\n  bool bVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined ***pppuVar7;\n  int aiStackY_5c [4];\n  undefined1 auStack_40 [4];\n  undefined **local_3c;\n  undefined4 local_38;\n  undefined **local_34;\n  char *local_30;\n  undefined1 local_2a;\n  undefined1 local_29;\n  int local_28;\n  undefined *local_24;\n  undefined *local_20 [4];\n  \n  piVar4 = (int *)FUN_001d6170(param_2);\n  if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {\n    local_34 = (undefined **)&local_28;\n                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */\n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }\n  else {\n    local_34 = (undefined **)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }\n  uVar5 = *(undefined4 *)(local_28 + -0xc);\n  *(undefined4 *)(param_1 + 0xc) = uVar5;\n  *(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;\n                    /* try { // try from 001d6232 to 001d6236 has its CatchHandler @ 001d65e3 */\n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;\n  local_30 = (char *)FUN_0017eb70();\n  *(undefined4 *)((int)pppuVar7 + -4) = 0;\n  *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);\n  *(char **)((int)pppuVar7 + -0xc) = local_30;\n  *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d6249 to 001d624d has its CatchHandler @ 001d65c7 */\n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;\n  FUN_001b7540();\n  bVar3 = false;\n  if (*(int *)(param_1 + 0xc) != 0) {\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }\n  *(bool *)(param_1 + 0x10) = bVar3;\n  pcVar1 = *(code **)(*piVar4 + 0x14);\n  if (pcVar1 == (code *)PTR_FUN_00301bb4) {\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }\n  else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }\n  uVar2 = *(uint *)(local_24 + -0xc);\n  *(uint *)(param_1 + 0x18) = uVar2;\n  if (uVar2 < 0x20000000) {\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */\n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d65d4 to 001d65d8 has its CatchHandler @ 001d65dd */\n  *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;\n  FUN_00180130();\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined ***pppuVar7;" type_identifier (pointer_declarator "***pppuVar7" * (pointer_declarator "**pppuVar7" * (pointer_declarator "*pppuVar7" * identifier))) ;) (declaration "int aiStackY_5c [4];" primitive_type (array_declarator "aiStackY_5c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_40 [4];" type_identifier (array_declarator "auStack_40 [4]" identifier [ number_literal ]) ;) (declaration "undefined **local_3c;" type_identifier (pointer_declarator "**local_3c" * (pointer_declarator "*local_3c" * identifier)) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined1 local_2a;" type_identifier identifier ;) (declaration "undefined1 local_29;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined *local_20 [4];" type_identifier (pointer_declarator "*local_20 [4]" * (array_declarator "local_20 [4]" identifier [ number_literal ])) ;) (expression_statement "piVar4 = (int *)FUN_001d6170(param_2);" (assignment_expression "piVar4 = (int *)FUN_001d6170(param_2)" identifier = (cast_expression "(int *)FUN_001d6170(param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001d6170(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (if_statement "if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {\n    local_34 = (undefined **)&local_28;\n                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */\n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }\n  else {\n    local_34 = (undefined **)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c)" ( (binary_expression "*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c" (pointer_expression "*(code **)(*piVar4 + 0x10)" * (cast_expression "(code **)(*piVar4 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x10)" ( (binary_expression "*piVar4 + 0x10" (pointer_expression "*piVar4" * identifier) + number_literal) )))) == (cast_expression "(code *)PTR_FUN_00301c1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    local_34 = (undefined **)&local_28;\n                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */\n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }" { (expression_statement "local_34 = (undefined **)&local_28;" (assignment_expression "local_34 = (undefined **)&local_28" identifier = (cast_expression "(undefined **)&local_28" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_28" & identifier))) ;) comment (expression_statement "FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);" (call_expression "FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20)" identifier (argument_list "(local_34,*(undefined4 *)(piVar4[2] + 8),local_20)" ( identifier , (pointer_expression "*(undefined4 *)(piVar4[2] + 8)" * (cast_expression "(undefined4 *)(piVar4[2] + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[2] + 8)" ( (binary_expression "piVar4[2] + 8" (subscript_expression "piVar4[2]" identifier [ number_literal ]) + number_literal) )))) , identifier ))) ;) (expression_statement "pppuVar7 = &local_3c;" (assignment_expression "pppuVar7 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) }) (else_clause "else {\n    local_34 = (undefined **)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }" else (compound_statement "{\n    local_34 = (undefined **)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }" { (expression_statement "local_34 = (undefined **)&local_28;" (assignment_expression "local_34 = (undefined **)&local_28" identifier = (cast_expression "(undefined **)&local_28" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_28" & identifier))) ;) comment (expression_statement "(**(code **)(*piVar4 + 0x10))(local_34,piVar4);" (call_expression "(**(code **)(*piVar4 + 0x10))(local_34,piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0x10))" ( (pointer_expression "**(code **)(*piVar4 + 0x10)" * (pointer_expression "*(code **)(*piVar4 + 0x10)" * (cast_expression "(code **)(*piVar4 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x10)" ( (binary_expression "*piVar4 + 0x10" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(local_34,piVar4)" ( identifier , identifier ))) ;) (expression_statement "pppuVar7 = (undefined ***)auStack_40;" (assignment_expression "pppuVar7 = (undefined ***)auStack_40" identifier = (cast_expression "(undefined ***)auStack_40" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) }))) (expression_statement "uVar5 = *(undefined4 *)(local_28 + -0xc);" (assignment_expression "uVar5 = *(undefined4 *)(local_28 + -0xc)" identifier = (pointer_expression "*(undefined4 *)(local_28 + -0xc)" * (cast_expression "(undefined4 *)(local_28 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_28 + -0xc)" ( (binary_expression "local_28 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0xc) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0xc) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x10) = uVar5" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_30 = (char *)FUN_0017eb70();" (assignment_expression "local_30 = (char *)FUN_0017eb70()" identifier = (cast_expression "(char *)FUN_0017eb70()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017eb70()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -8)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(char **)((int)pppuVar7 + -0xc) = local_30;" (assignment_expression "*(char **)((int)pppuVar7 + -0xc) = local_30" (pointer_expression "*(char **)((int)pppuVar7 + -0xc)" * (cast_expression "(char **)((int)pppuVar7 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001b7540();" (call_expression "FUN_001b7540()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (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) )))) != number_literal) )) (compound_statement "{\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }" { (expression_statement "bVar3 = (byte)(*local_30 - 1U) < 0x7e;" (assignment_expression "bVar3 = (byte)(*local_30 - 1U) < 0x7e" identifier = (binary_expression "(byte)(*local_30 - 1U) < 0x7e" (call_expression "(byte)(*local_30 - 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*local_30 - 1U)" ( (binary_expression "*local_30 - 1U" (pointer_expression "*local_30" * identifier) - number_literal) ))) < number_literal)) ;) })) (expression_statement "*(bool *)(param_1 + 0x10) = bVar3;" (assignment_expression "*(bool *)(param_1 + 0x10) = bVar3" (pointer_expression "*(bool *)(param_1 + 0x10)" * (cast_expression "(bool *)(param_1 + 0x10)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(*piVar4 + 0x14);" (assignment_expression "pcVar1 = *(code **)(*piVar4 + 0x14)" identifier = (pointer_expression "*(code **)(*piVar4 + 0x14)" * (cast_expression "(code **)(*piVar4 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x14)" ( (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301bb4) {\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }\n  else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }" if (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301bb4)" ( (binary_expression "pcVar1 == (code *)PTR_FUN_00301bb4" identifier == (cast_expression "(code *)PTR_FUN_00301bb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }" { (expression_statement "*(undefined1 **)((int)pppuVar7 + -8) = &local_2a;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -8) = &local_2a" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -8)" * (cast_expression "(undefined1 **)((int)pppuVar7 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_2a" & identifier)) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(piVar4[2] + 0x14)" * (cast_expression "(undefined4 *)(piVar4[2] + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[2] + 0x14)" ( (binary_expression "piVar4[2] + 0x14" (subscript_expression "piVar4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "local_34 = &local_24;" (assignment_expression "local_34 = &local_24" identifier = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00205b00();" (call_expression "FUN_00205b00()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }" else (compound_statement "{\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }" { (expression_statement "local_34 = &local_24;" (assignment_expression "local_34 = &local_24" identifier = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(int **)((int)pppuVar7 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0xc) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0xc)" * (cast_expression "(int **)((int)pppuVar7 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pppuVar7 = (undefined ***)((int)pppuVar7 + -4);" (assignment_expression "pppuVar7 = (undefined ***)((int)pppuVar7 + -4)" identifier = (cast_expression "(undefined ***)((int)pppuVar7 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "uVar2 = *(uint *)(local_24 + -0xc);" (assignment_expression "uVar2 = *(uint *)(local_24 + -0xc)" identifier = (pointer_expression "*(uint *)(local_24 + -0xc)" * (cast_expression "(uint *)(local_24 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + -0xc)" ( (binary_expression "local_24 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x18) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x18) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar2 < 0x20000000) {\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */\n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }" if (parenthesized_expression "(uVar2 < 0x20000000)" ( (binary_expression "uVar2 < 0x20000000" identifier < number_literal) )) (compound_statement "{\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */\n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */\n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }" { (expression_statement "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;" (assignment_expression "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2" (pointer_expression "*(uint *)((int)pppuVar7 + -0x10)" * (cast_expression "(uint *)((int)pppuVar7 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar2 << 2" identifier << number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_38 = FUN_0017eb70();" (assignment_expression "local_38 = FUN_0017eb70()" identifier = (call_expression "FUN_0017eb70()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -8)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0xc) = local_38;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0xc) = local_38" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00202840();" (call_expression "FUN_00202840()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar1 = *(code **)(*piVar4 + 0x18);" (assignment_expression "pcVar1 = *(code **)(*piVar4 + 0x18)" identifier = (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }" if (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301c5c)" ( (binary_expression "pcVar1 == (code *)PTR_FUN_00301c5c" identifier == (cast_expression "(code *)PTR_FUN_00301c5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }" { (expression_statement "*(undefined1 **)((int)pppuVar7 + -8) = &local_29;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -8) = &local_29" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -8)" * (cast_expression "(undefined1 **)((int)pppuVar7 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_29" & identifier)) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(piVar4[2] + 0x1c)" * (cast_expression "(undefined4 *)(piVar4[2] + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[2] + 0x1c)" ( (binary_expression "piVar4[2] + 0x1c" (subscript_expression "piVar4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "local_3c = local_20;" (assignment_expression "local_3c = local_20" identifier = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00205b00();" (call_expression "FUN_00205b00()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }" else (compound_statement "{\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }" { (expression_statement "local_3c = local_20;" (assignment_expression "local_3c = local_20" identifier = identifier) ;) (expression_statement "*(int **)((int)pppuVar7 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0xc) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0xc)" * (cast_expression "(int **)((int)pppuVar7 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pppuVar7 = (undefined ***)((int)pppuVar7 + -4);" (assignment_expression "pppuVar7 = (undefined ***)((int)pppuVar7 + -4)" identifier = (cast_expression "(undefined ***)((int)pppuVar7 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "uVar2 = *(uint *)(local_20[0] + -0xc);" (assignment_expression "uVar2 = *(uint *)(local_20[0] + -0xc)" identifier = (pointer_expression "*(uint *)(local_20[0] + -0xc)" * (cast_expression "(uint *)(local_20[0] + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + -0xc)" ( (binary_expression "local_20[0] + -0xc" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x20) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x20) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }" if (parenthesized_expression "(uVar2 < 0x20000000)" ( (binary_expression "uVar2 < 0x20000000" identifier < number_literal) )) (compound_statement "{\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }" { (expression_statement "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;" (assignment_expression "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2" (pointer_expression "*(uint *)((int)pppuVar7 + -0x10)" * (cast_expression "(uint *)((int)pppuVar7 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar2 << 2" identifier << number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = (undefined **)FUN_0017eb70();" (assignment_expression "local_34 = (undefined **)FUN_0017eb70()" identifier = (cast_expression "(undefined **)FUN_0017eb70()" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_0017eb70()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -8)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0xc) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0xc) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00202840();" (call_expression "FUN_00202840()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "pcVar1 = *(code **)(iVar6 + 8);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 8)" identifier = (pointer_expression "*(code **)(iVar6 + 8)" * (cast_expression "(code **)(iVar6 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }" if (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301cf4)" ( (binary_expression "pcVar1 == (code *)PTR_FUN_00301cf4" identifier == (cast_expression "(code *)PTR_FUN_00301cf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }" { (expression_statement "uVar5 = *(undefined4 *)(piVar4[2] + 0x24);" (assignment_expression "uVar5 = *(undefined4 *)(piVar4[2] + 0x24)" identifier = (pointer_expression "*(undefined4 *)(piVar4[2] + 0x24)" * (cast_expression "(undefined4 *)(piVar4[2] + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[2] + 0x24)" ( (binary_expression "piVar4[2] + 0x24" (subscript_expression "piVar4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) }) (else_clause "else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }" else (compound_statement "{\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }" { (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" * (cast_expression "(int **)((int)pppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = (*pcVar1)();" (assignment_expression "uVar5 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) }))) (expression_statement "*(undefined4 *)(param_1 + 0x24) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar6 + 0xc);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 0xc)" identifier = (pointer_expression "*(code **)(iVar6 + 0xc)" * (cast_expression "(code **)(iVar6 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }" if (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301e58)" ( (binary_expression "pcVar1 == (code *)PTR_FUN_00301e58" identifier == (cast_expression "(code *)PTR_FUN_00301e58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }" { (expression_statement "uVar5 = *(undefined4 *)(piVar4[2] + 0x28);" (assignment_expression "uVar5 = *(undefined4 *)(piVar4[2] + 0x28)" identifier = (pointer_expression "*(undefined4 *)(piVar4[2] + 0x28)" * (cast_expression "(undefined4 *)(piVar4[2] + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[2] + 0x28)" ( (binary_expression "piVar4[2] + 0x28" (subscript_expression "piVar4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) }) (else_clause "else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }" else (compound_statement "{\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }" { (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" * (cast_expression "(int **)((int)pppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = (*pcVar1)();" (assignment_expression "uVar5 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "*(undefined4 *)(param_1 + 0x28) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x10) = param_2" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar4 = (int *)FUN_001d5bc0();" (assignment_expression "piVar4 = (int *)FUN_001d5bc0()" identifier = (cast_expression "(int *)FUN_001d5bc0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001d5bc0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;" (assignment_expression "*(int *)((int)pppuVar7 + -4) = param_1 + 0x2c" (pointer_expression "*(int *)((int)pppuVar7 + -4)" * (cast_expression "(int *)((int)pppuVar7 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "param_1 + 0x2c" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;" (assignment_expression "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24" (pointer_expression "*(undefined **)((int)pppuVar7 + -8)" * (cast_expression "(undefined **)((int)pppuVar7 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;" (assignment_expression "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac" (pointer_expression "*(undefined **)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined **)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" * (cast_expression "(int **)((int)pppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar6 + 0x2c);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 0x2c)" identifier = (pointer_expression "*(code **)(iVar6 + 0x2c)" * (cast_expression "(code **)(iVar6 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x2c)" ( (binary_expression "iVar6 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;" (assignment_expression "*(int *)((int)pppuVar7 + -4) = param_1 + 0xbc" (pointer_expression "*(int *)((int)pppuVar7 + -4)" * (cast_expression "(int *)((int)pppuVar7 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "param_1 + 0xbc" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;" (assignment_expression "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a" (pointer_expression "*(undefined **)((int)pppuVar7 + -8)" * (cast_expression "(undefined **)((int)pppuVar7 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;" (assignment_expression "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0" (pointer_expression "*(undefined **)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined **)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" * (cast_expression "(int **)((int)pppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar6 + 0x2c);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 0x2c)" identifier = (pointer_expression "*(code **)(iVar6 + 0x2c)" * (cast_expression "(code **)(iVar6 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x2c)" ( (binary_expression "iVar6 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(char **)(param_1 + 8) = local_30;" (assignment_expression "*(char **)(param_1 + 8) = local_30" (pointer_expression "*(char **)(param_1 + 8)" * (cast_expression "(char **)(param_1 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x14) = local_38;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = local_38" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(param_1 + 0x1c) = local_34;" (assignment_expression "*(undefined ***)(param_1 + 0x1c) = local_34" (pointer_expression "*(undefined ***)(param_1 + 0x1c)" * (cast_expression "(undefined ***)(param_1 + 0x1c)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x124) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x124) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x124)" * (cast_expression "(undefined1 *)(param_1 + 0x124)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }" if (parenthesized_expression "(local_20[0] != &DAT_0030af6c)" ( (binary_expression "local_20[0] != &DAT_0030af6c" (subscript_expression "local_20[0]" identifier [ number_literal ]) != (pointer_expression "&DAT_0030af6c" & identifier)) )) (compound_statement "{\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }" { (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001d2f90();" (call_expression "FUN_001d2f90()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }" if (parenthesized_expression "(local_24 != &DAT_0030af6c)" ( (binary_expression "local_24 != &DAT_0030af6c" identifier != (pointer_expression "&DAT_0030af6c" & identifier)) )) (compound_statement "{\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }" { (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001d2f90();" (call_expression "FUN_001d2f90()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }" if (parenthesized_expression "((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc)" ( (binary_expression "(undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc" (cast_expression "(undefined *)(local_28 + -0xc)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_28 + -0xc)" ( (binary_expression "local_28 + -0xc" identifier + number_literal) ))) != identifier) )) (compound_statement "{\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }" { (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001d2f40();" (call_expression "FUN_001d2f40()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) comment comment (expression_statement "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -4)" * (cast_expression "(undefined1 **)((int)pppuVar7 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_001d64fd" & identifier)) ;) (expression_statement "FUN_00180130();" (call_expression "FUN_00180130()" identifier (argument_list "()" ( ))) ;) })) comment comment (expression_statement "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -4)" * (cast_expression "(undefined1 **)((int)pppuVar7 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_001d65d9" & identifier)) ;) (expression_statement "FUN_00180130();" (call_expression "FUN_00180130()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n/* std::__numpunct_cache<wchar_t>::_M_cache(std::locale const&) */\n\nvoid __thiscall\nstd::__numpunct_cache<wchar_t>::_M_cache(__numpunct_cache<wchar_t> *this,locale *param_1)\n\n{\n  code *pcVar1;\n  uint uVar2;\n  __numpunct_cache<wchar_t> _Var3;\n  numpunct *pnVar4;\n  ctype *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int **ppiVar8;\n  uint auStackY_5c [4];\n  undefined1 auStack_40 [4];\n  int *local_3c;\n  void *local_38;\n  string *local_34;\n  char *local_30;\n  undefined1 local_2a;\n  undefined1 local_29;\n  int local_28;\n  int local_24;\n  int local_20 [4];\n  \n  pnVar4 = use_facet<std::numpunct<wchar_t>>(param_1);\n  if (*(code **)(*(int *)pnVar4 + 0x10) == (code *)PTR_do_grouping_00301c1c) {\n    local_34 = (string *)&local_28;\n                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */\n    std::string::string(local_34,*(char **)(*(int *)(pnVar4 + 8) + 8),(allocator *)local_20);\n    ppiVar8 = &local_3c;\n  }\n  else {\n    local_34 = (string *)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*(int *)pnVar4 + 0x10))(local_34,pnVar4);\n    ppiVar8 = (int **)auStack_40;\n  }\n  uVar6 = *(undefined4 *)(local_28 + -0xc);\n  *(undefined4 *)(this + 0xc) = uVar6;\n  *(undefined4 *)((int)ppiVar8 + -0x10) = uVar6;\n                    /* try { // try from 001d6232 to 001d6236 has its CatchHandler @ 001d65e3 */\n  *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6237;\n  local_30 = (char *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n  *(undefined4 *)((int)ppiVar8 + -4) = 0;\n  *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0xc);\n  *(char **)((int)ppiVar8 + -0xc) = local_30;\n  *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d6249 to 001d624d has its CatchHandler @ 001d65c7 */\n  *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d624e;\n  std::string::copy(*(string **)((int)ppiVar8 + -0x10),*(char **)((int)ppiVar8 + -0xc),\n                    *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n  _Var3 = (__numpunct_cache<wchar_t>)0x0;\n  if (*(int *)(this + 0xc) != 0) {\n    _Var3 = (__numpunct_cache<wchar_t>)((byte)(*local_30 - 1U) < 0x7e);\n  }\n  this[0x10] = _Var3;\n  pcVar1 = *(code **)(*(int *)pnVar4 + 0x14);\n  if (pcVar1 == (code *)PTR_do_truename_00301bb4) {\n    *(undefined1 **)((int)ppiVar8 + -8) = &local_2a;\n    *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x14);\n    local_34 = (string *)&local_24;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6293;\n    std::wstring::wstring\n              (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n               *(allocator **)((int)ppiVar8 + -8));\n  }\n  else {\n    local_34 = (string *)&local_24;\n    *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    ppiVar8 = (int **)((int)ppiVar8 + -4);\n  }\n  uVar2 = *(uint *)(local_24 + -0xc);\n  *(uint *)(this + 0x18) = uVar2;\n  if (uVar2 < 0x20000000) {\n    *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62bb;\n    local_38 = operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n    *(undefined4 *)((int)ppiVar8 + -4) = 0;\n    *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x18);\n    *(void **)((int)ppiVar8 + -0xc) = local_38;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62d2;\n    std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                       *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n    pcVar1 = *(code **)(*(int *)pnVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_do_falsename_00301c5c) {\n      *(undefined1 **)((int)ppiVar8 + -8) = &local_29;\n      *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c);\n      local_3c = local_20;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62ff;\n      std::wstring::wstring\n                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8));\n    }\n    else {\n      local_3c = local_20;\n      *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      ppiVar8 = (int **)((int)ppiVar8 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(this + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6327;\n      local_34 = (string *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n      *(undefined4 *)((int)ppiVar8 + -4) = 0;\n      *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x20);\n      *(string **)((int)ppiVar8 + -0xc) = local_34;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6340;\n      std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n      iVar7 = *(int *)pnVar4;\n      pcVar1 = *(code **)(iVar7 + 8);\n      if (pcVar1 == (code *)PTR_do_decimal_point_00301cf4) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;\n        uVar6 = (*pcVar1)();\n        iVar7 = *(int *)pnVar4;\n      }\n      *(undefined4 *)(this + 0x24) = uVar6;\n      pcVar1 = *(code **)(iVar7 + 0xc);\n      if (pcVar1 == (code *)PTR_do_thousands_sep_00301e58) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;\n        uVar6 = (*pcVar1)();\n      }\n      *(undefined4 *)(this + 0x28) = uVar6;\n      *(locale **)((int)ppiVar8 + -0x10) = param_1;\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6388;\n      pcVar5 = use_facet<std::ctype<wchar_t>>(*(locale **)((int)ppiVar8 + -0x10));\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0x2c;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_out + 0x24;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_out;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0xbc;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_in + 0x1a;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_in;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(this + 8) = local_30;\n      *(void **)(this + 0x14) = local_38;\n      *(string **)(this + 0x1c) = local_34;\n      this[0x124] = (__numpunct_cache<wchar_t>)0x1;\n      if ((allocator *)(local_20[0] + -0xc) !=\n          (allocator *)&std::wstring::_Rep::_S_empty_rep_storage) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));\n      }\n      if ((allocator *)(local_24 + -0xc) != (allocator *)&std::wstring::_Rep::_S_empty_rep_storage)\n      {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n      }\n      if ((allocator *)(local_28 + -0xc) != (allocator *)PTR__S_empty_rep_storage_00301cdc) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8;\n        std::string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));\n      }\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */\n    *(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d64fd;\n    __cxa_throw_bad_array_new_length();\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d65d4 to 001d65d8 has its CatchHandler @ 001d65dd */\n  *(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d65d9;\n  __cxa_throw_bad_array_new_length();\n}\n\n" comment comment (function_definition "void __thiscall\nstd::__numpunct_cache<wchar_t>::_M_cache(__numpunct_cache<wchar_t> *this,locale *param_1)\n\n{\n  code *pcVar1;\n  uint uVar2;\n  __numpunct_cache<wchar_t> _Var3;\n  numpunct *pnVar4;\n  ctype *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int **ppiVar8;\n  uint auStackY_5c [4];\n  undefined1 auStack_40 [4];\n  int *local_3c;\n  void *local_38;\n  string *local_34;\n  char *local_30;\n  undefined1 local_2a;\n  undefined1 local_29;\n  int local_28;\n  int local_24;\n  int local_20 [4];\n  \n  pnVar4 = use_facet<std::numpunct<wchar_t>>(param_1);\n  if (*(code **)(*(int *)pnVar4 + 0x10) == (code *)PTR_do_grouping_00301c1c) {\n    local_34 = (string *)&local_28;\n                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */\n    std::string::string(local_34,*(char **)(*(int *)(pnVar4 + 8) + 8),(allocator *)local_20);\n    ppiVar8 = &local_3c;\n  }\n  else {\n    local_34 = (string *)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*(int *)pnVar4 + 0x10))(local_34,pnVar4);\n    ppiVar8 = (int **)auStack_40;\n  }\n  uVar6 = *(undefined4 *)(local_28 + -0xc);\n  *(undefined4 *)(this + 0xc) = uVar6;\n  *(undefined4 *)((int)ppiVar8 + -0x10) = uVar6;\n                    /* try { // try from 001d6232 to 001d6236 has its CatchHandler @ 001d65e3 */\n  *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6237;\n  local_30 = (char *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n  *(undefined4 *)((int)ppiVar8 + -4) = 0;\n  *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0xc);\n  *(char **)((int)ppiVar8 + -0xc) = local_30;\n  *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d6249 to 001d624d has its CatchHandler @ 001d65c7 */\n  *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d624e;\n  std::string::copy(*(string **)((int)ppiVar8 + -0x10),*(char **)((int)ppiVar8 + -0xc),\n                    *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n  _Var3 = (__numpunct_cache<wchar_t>)0x0;\n  if (*(int *)(this + 0xc) != 0) {\n    _Var3 = (__numpunct_cache<wchar_t>)((byte)(*local_30 - 1U) < 0x7e);\n  }\n  this[0x10] = _Var3;\n  pcVar1 = *(code **)(*(int *)pnVar4 + 0x14);\n  if (pcVar1 == (code *)PTR_do_truename_00301bb4) {\n    *(undefined1 **)((int)ppiVar8 + -8) = &local_2a;\n    *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x14);\n    local_34 = (string *)&local_24;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6293;\n    std::wstring::wstring\n              (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n               *(allocator **)((int)ppiVar8 + -8));\n  }\n  else {\n    local_34 = (string *)&local_24;\n    *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    ppiVar8 = (int **)((int)ppiVar8 + -4);\n  }\n  uVar2 = *(uint *)(local_24 + -0xc);\n  *(uint *)(this + 0x18) = uVar2;\n  if (uVar2 < 0x20000000) {\n    *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62bb;\n    local_38 = operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n    *(undefined4 *)((int)ppiVar8 + -4) = 0;\n    *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x18);\n    *(void **)((int)ppiVar8 + -0xc) = local_38;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62d2;\n    std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                       *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n    pcVar1 = *(code **)(*(int *)pnVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_do_falsename_00301c5c) {\n      *(undefined1 **)((int)ppiVar8 + -8) = &local_29;\n      *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c);\n      local_3c = local_20;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62ff;\n      std::wstring::wstring\n                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8));\n    }\n    else {\n      local_3c = local_20;\n      *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      ppiVar8 = (int **)((int)ppiVar8 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(this + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6327;\n      local_34 = (string *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n      *(undefined4 *)((int)ppiVar8 + -4) = 0;\n      *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x20);\n      *(string **)((int)ppiVar8 + -0xc) = local_34;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6340;\n      std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n      iVar7 = *(int *)pnVar4;\n      pcVar1 = *(code **)(iVar7 + 8);\n      if (pcVar1 == (code *)PTR_do_decimal_point_00301cf4) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;\n        uVar6 = (*pcVar1)();\n        iVar7 = *(int *)pnVar4;\n      }\n      *(undefined4 *)(this + 0x24) = uVar6;\n      pcVar1 = *(code **)(iVar7 + 0xc);\n      if (pcVar1 == (code *)PTR_do_thousands_sep_00301e58) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;\n        uVar6 = (*pcVar1)();\n      }\n      *(undefined4 *)(this + 0x28) = uVar6;\n      *(locale **)((int)ppiVar8 + -0x10) = param_1;\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6388;\n      pcVar5 = use_facet<std::ctype<wchar_t>>(*(locale **)((int)ppiVar8 + -0x10));\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0x2c;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_out + 0x24;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_out;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0xbc;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_in + 0x1a;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_in;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(this + 8) = local_30;\n      *(void **)(this + 0x14) = local_38;\n      *(string **)(this + 0x1c) = local_34;\n      this[0x124] = (__numpunct_cache<wchar_t>)0x1;\n      if ((allocator *)(local_20[0] + -0xc) !=\n          (allocator *)&std::wstring::_Rep::_S_empty_rep_storage) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));\n      }\n      if ((allocator *)(local_24 + -0xc) != (allocator *)&std::wstring::_Rep::_S_empty_rep_storage)\n      {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n      }\n      if ((allocator *)(local_28 + -0xc) != (allocator *)PTR__S_empty_rep_storage_00301cdc) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8;\n        std::string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));\n      }\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */\n    *(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d64fd;\n    __cxa_throw_bad_array_new_length();\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d65d4 to 001d65d8 has its CatchHandler @ 001d65dd */\n  *(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d65d9;\n  __cxa_throw_bad_array_new_length();\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::__numpunct_cache<wchar_t>::" identifier : : identifier < identifier > : :) (function_declarator "_M_cache(__numpunct_cache<wchar_t> *this,locale *param_1)" identifier (parameter_list "(__numpunct_cache<wchar_t> *this,locale *param_1)" ( (parameter_declaration "__numpunct_cache<wchar_t> *this" type_identifier (ERROR "<wchar_t>" < identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "locale *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  code *pcVar1;\n  uint uVar2;\n  __numpunct_cache<wchar_t> _Var3;\n  numpunct *pnVar4;\n  ctype *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int **ppiVar8;\n  uint auStackY_5c [4];\n  undefined1 auStack_40 [4];\n  int *local_3c;\n  void *local_38;\n  string *local_34;\n  char *local_30;\n  undefined1 local_2a;\n  undefined1 local_29;\n  int local_28;\n  int local_24;\n  int local_20 [4];\n  \n  pnVar4 = use_facet<std::numpunct<wchar_t>>(param_1);\n  if (*(code **)(*(int *)pnVar4 + 0x10) == (code *)PTR_do_grouping_00301c1c) {\n    local_34 = (string *)&local_28;\n                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */\n    std::string::string(local_34,*(char **)(*(int *)(pnVar4 + 8) + 8),(allocator *)local_20);\n    ppiVar8 = &local_3c;\n  }\n  else {\n    local_34 = (string *)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*(int *)pnVar4 + 0x10))(local_34,pnVar4);\n    ppiVar8 = (int **)auStack_40;\n  }\n  uVar6 = *(undefined4 *)(local_28 + -0xc);\n  *(undefined4 *)(this + 0xc) = uVar6;\n  *(undefined4 *)((int)ppiVar8 + -0x10) = uVar6;\n                    /* try { // try from 001d6232 to 001d6236 has its CatchHandler @ 001d65e3 */\n  *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6237;\n  local_30 = (char *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n  *(undefined4 *)((int)ppiVar8 + -4) = 0;\n  *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0xc);\n  *(char **)((int)ppiVar8 + -0xc) = local_30;\n  *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d6249 to 001d624d has its CatchHandler @ 001d65c7 */\n  *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d624e;\n  std::string::copy(*(string **)((int)ppiVar8 + -0x10),*(char **)((int)ppiVar8 + -0xc),\n                    *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n  _Var3 = (__numpunct_cache<wchar_t>)0x0;\n  if (*(int *)(this + 0xc) != 0) {\n    _Var3 = (__numpunct_cache<wchar_t>)((byte)(*local_30 - 1U) < 0x7e);\n  }\n  this[0x10] = _Var3;\n  pcVar1 = *(code **)(*(int *)pnVar4 + 0x14);\n  if (pcVar1 == (code *)PTR_do_truename_00301bb4) {\n    *(undefined1 **)((int)ppiVar8 + -8) = &local_2a;\n    *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x14);\n    local_34 = (string *)&local_24;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6293;\n    std::wstring::wstring\n              (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n               *(allocator **)((int)ppiVar8 + -8));\n  }\n  else {\n    local_34 = (string *)&local_24;\n    *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    ppiVar8 = (int **)((int)ppiVar8 + -4);\n  }\n  uVar2 = *(uint *)(local_24 + -0xc);\n  *(uint *)(this + 0x18) = uVar2;\n  if (uVar2 < 0x20000000) {\n    *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62bb;\n    local_38 = operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n    *(undefined4 *)((int)ppiVar8 + -4) = 0;\n    *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x18);\n    *(void **)((int)ppiVar8 + -0xc) = local_38;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62d2;\n    std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                       *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n    pcVar1 = *(code **)(*(int *)pnVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_do_falsename_00301c5c) {\n      *(undefined1 **)((int)ppiVar8 + -8) = &local_29;\n      *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c);\n      local_3c = local_20;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62ff;\n      std::wstring::wstring\n                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8));\n    }\n    else {\n      local_3c = local_20;\n      *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      ppiVar8 = (int **)((int)ppiVar8 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(this + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6327;\n      local_34 = (string *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n      *(undefined4 *)((int)ppiVar8 + -4) = 0;\n      *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x20);\n      *(string **)((int)ppiVar8 + -0xc) = local_34;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6340;\n      std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n      iVar7 = *(int *)pnVar4;\n      pcVar1 = *(code **)(iVar7 + 8);\n      if (pcVar1 == (code *)PTR_do_decimal_point_00301cf4) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;\n        uVar6 = (*pcVar1)();\n        iVar7 = *(int *)pnVar4;\n      }\n      *(undefined4 *)(this + 0x24) = uVar6;\n      pcVar1 = *(code **)(iVar7 + 0xc);\n      if (pcVar1 == (code *)PTR_do_thousands_sep_00301e58) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;\n        uVar6 = (*pcVar1)();\n      }\n      *(undefined4 *)(this + 0x28) = uVar6;\n      *(locale **)((int)ppiVar8 + -0x10) = param_1;\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6388;\n      pcVar5 = use_facet<std::ctype<wchar_t>>(*(locale **)((int)ppiVar8 + -0x10));\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0x2c;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_out + 0x24;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_out;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0xbc;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_in + 0x1a;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_in;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(this + 8) = local_30;\n      *(void **)(this + 0x14) = local_38;\n      *(string **)(this + 0x1c) = local_34;\n      this[0x124] = (__numpunct_cache<wchar_t>)0x1;\n      if ((allocator *)(local_20[0] + -0xc) !=\n          (allocator *)&std::wstring::_Rep::_S_empty_rep_storage) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));\n      }\n      if ((allocator *)(local_24 + -0xc) != (allocator *)&std::wstring::_Rep::_S_empty_rep_storage)\n      {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n      }\n      if ((allocator *)(local_28 + -0xc) != (allocator *)PTR__S_empty_rep_storage_00301cdc) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8;\n        std::string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));\n      }\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */\n    *(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d64fd;\n    __cxa_throw_bad_array_new_length();\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d65d4 to 001d65d8 has its CatchHandler @ 001d65dd */\n  *(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d65d9;\n  __cxa_throw_bad_array_new_length();\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (expression_statement "__numpunct_cache<wchar_t> _Var3;" (binary_expression "__numpunct_cache<wchar_t> _Var3" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > identifier) ;) (declaration "numpunct *pnVar4;" type_identifier (pointer_declarator "*pnVar4" * identifier) ;) (declaration "ctype *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int **ppiVar8;" primitive_type (pointer_declarator "**ppiVar8" * (pointer_declarator "*ppiVar8" * identifier)) ;) (declaration "uint auStackY_5c [4];" type_identifier (array_declarator "auStackY_5c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_40 [4];" type_identifier (array_declarator "auStack_40 [4]" identifier [ number_literal ]) ;) (declaration "int *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "void *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "string *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined1 local_2a;" type_identifier identifier ;) (declaration "undefined1 local_29;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20 [4];" primitive_type (array_declarator "local_20 [4]" identifier [ number_literal ]) ;) (expression_statement "pnVar4 = use_facet<std::numpunct<wchar_t>>(param_1);" (binary_expression "pnVar4 = use_facet<std::numpunct<wchar_t>>(param_1)" (assignment_expression "pnVar4 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::numpunct" : : identifier) < (binary_expression "wchar_t>>(param_1)" identifier >> (parenthesized_expression "(param_1)" ( identifier )))) ;) (if_statement "if (*(code **)(*(int *)pnVar4 + 0x10) == (code *)PTR_do_grouping_00301c1c) {\n    local_34 = (string *)&local_28;\n                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */\n    std::string::string(local_34,*(char **)(*(int *)(pnVar4 + 8) + 8),(allocator *)local_20);\n    ppiVar8 = &local_3c;\n  }\n  else {\n    local_34 = (string *)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*(int *)pnVar4 + 0x10))(local_34,pnVar4);\n    ppiVar8 = (int **)auStack_40;\n  }" if (parenthesized_expression "(*(code **)(*(int *)pnVar4 + 0x10) == (code *)PTR_do_grouping_00301c1c)" ( (binary_expression "*(code **)(*(int *)pnVar4 + 0x10) == (code *)PTR_do_grouping_00301c1c" (pointer_expression "*(code **)(*(int *)pnVar4 + 0x10)" * (cast_expression "(code **)(*(int *)pnVar4 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pnVar4 + 0x10)" ( (binary_expression "*(int *)pnVar4 + 0x10" (pointer_expression "*(int *)pnVar4" * (cast_expression "(int *)pnVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (cast_expression "(code *)PTR_do_grouping_00301c1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    local_34 = (string *)&local_28;\n                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */\n    std::string::string(local_34,*(char **)(*(int *)(pnVar4 + 8) + 8),(allocator *)local_20);\n    ppiVar8 = &local_3c;\n  }" { (expression_statement "local_34 = (string *)&local_28;" (assignment_expression "local_34 = (string *)&local_28" identifier = (cast_expression "(string *)&local_28" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_28" & identifier))) ;) comment (labeled_statement "std::string::string(local_34,*(char **)(*(int *)(pnVar4 + 8) + 8),(allocator *)local_20);" statement_identifier : (ERROR ":" :) (labeled_statement "string::string(local_34,*(char **)(*(int *)(pnVar4 + 8) + 8),(allocator *)local_20);" statement_identifier : (ERROR ":" :) (expression_statement "string(local_34,*(char **)(*(int *)(pnVar4 + 8) + 8),(allocator *)local_20);" (call_expression "string(local_34,*(char **)(*(int *)(pnVar4 + 8) + 8),(allocator *)local_20)" identifier (argument_list "(local_34,*(char **)(*(int *)(pnVar4 + 8) + 8),(allocator *)local_20)" ( identifier , (pointer_expression "*(char **)(*(int *)(pnVar4 + 8) + 8)" * (cast_expression "(char **)(*(int *)(pnVar4 + 8) + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pnVar4 + 8) + 8)" ( (binary_expression "*(int *)(pnVar4 + 8) + 8" (pointer_expression "*(int *)(pnVar4 + 8)" * (cast_expression "(int *)(pnVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pnVar4 + 8)" ( (binary_expression "pnVar4 + 8" identifier + number_literal) )))) + number_literal) )))) , (cast_expression "(allocator *)local_20" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) (expression_statement "ppiVar8 = &local_3c;" (assignment_expression "ppiVar8 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) }) (else_clause "else {\n    local_34 = (string *)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*(int *)pnVar4 + 0x10))(local_34,pnVar4);\n    ppiVar8 = (int **)auStack_40;\n  }" else (compound_statement "{\n    local_34 = (string *)&local_28;\n                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */\n    (**(code **)(*(int *)pnVar4 + 0x10))(local_34,pnVar4);\n    ppiVar8 = (int **)auStack_40;\n  }" { (expression_statement "local_34 = (string *)&local_28;" (assignment_expression "local_34 = (string *)&local_28" identifier = (cast_expression "(string *)&local_28" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_28" & identifier))) ;) comment (expression_statement "(**(code **)(*(int *)pnVar4 + 0x10))(local_34,pnVar4);" (call_expression "(**(code **)(*(int *)pnVar4 + 0x10))(local_34,pnVar4)" (parenthesized_expression "(**(code **)(*(int *)pnVar4 + 0x10))" ( (pointer_expression "**(code **)(*(int *)pnVar4 + 0x10)" * (pointer_expression "*(code **)(*(int *)pnVar4 + 0x10)" * (cast_expression "(code **)(*(int *)pnVar4 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pnVar4 + 0x10)" ( (binary_expression "*(int *)pnVar4 + 0x10" (pointer_expression "*(int *)pnVar4" * (cast_expression "(int *)pnVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(local_34,pnVar4)" ( identifier , identifier ))) ;) (expression_statement "ppiVar8 = (int **)auStack_40;" (assignment_expression "ppiVar8 = (int **)auStack_40" identifier = (cast_expression "(int **)auStack_40" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }))) (expression_statement "uVar6 = *(undefined4 *)(local_28 + -0xc);" (assignment_expression "uVar6 = *(undefined4 *)(local_28 + -0xc)" identifier = (pointer_expression "*(undefined4 *)(local_28 + -0xc)" * (cast_expression "(undefined4 *)(local_28 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_28 + -0xc)" ( (binary_expression "local_28 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(this + 0xc) = uVar6;" (assignment_expression "*(undefined4 *)(this + 0xc) = uVar6" (pointer_expression "*(undefined4 *)(this + 0xc)" * (cast_expression "(undefined4 *)(this + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x10) = uVar6;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x10) = uVar6" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6237;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6237" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_30 = (char *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));" (assignment_expression "local_30 = (char *)operator_new__(*(uint *)((int)ppiVar8 + -0x10))" identifier = (cast_expression "(char *)operator_new__(*(uint *)((int)ppiVar8 + -0x10))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new__(*(uint *)((int)ppiVar8 + -0x10))" identifier (argument_list "(*(uint *)((int)ppiVar8 + -0x10))" ( (pointer_expression "*(uint *)((int)ppiVar8 + -0x10)" * (cast_expression "(uint *)((int)ppiVar8 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -4)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0xc);" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0xc)" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -8)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(this + 0xc)" * (cast_expression "(undefined4 *)(this + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(char **)((int)ppiVar8 + -0xc) = local_30;" (assignment_expression "*(char **)((int)ppiVar8 + -0xc) = local_30" (pointer_expression "*(char **)((int)ppiVar8 + -0xc)" * (cast_expression "(char **)((int)ppiVar8 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(string **)((int)ppiVar8 + -0x10) = local_34;" (assignment_expression "*(string **)((int)ppiVar8 + -0x10) = local_34" (pointer_expression "*(string **)((int)ppiVar8 + -0x10)" * (cast_expression "(string **)((int)ppiVar8 + -0x10)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d624e;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d624e" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::string::copy(*(string **)((int)ppiVar8 + -0x10),*(char **)((int)ppiVar8 + -0xc),\n                    *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));" statement_identifier : (ERROR ":" :) (labeled_statement "string::copy(*(string **)((int)ppiVar8 + -0x10),*(char **)((int)ppiVar8 + -0xc),\n                    *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));" statement_identifier : (ERROR ":" :) (expression_statement "copy(*(string **)((int)ppiVar8 + -0x10),*(char **)((int)ppiVar8 + -0xc),\n                    *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));" (call_expression "copy(*(string **)((int)ppiVar8 + -0x10),*(char **)((int)ppiVar8 + -0xc),\n                    *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4))" identifier (argument_list "(*(string **)((int)ppiVar8 + -0x10),*(char **)((int)ppiVar8 + -0xc),\n                    *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4))" ( (pointer_expression "*(string **)((int)ppiVar8 + -0x10)" * (cast_expression "(string **)((int)ppiVar8 + -0x10)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppiVar8 + -0xc)" * (cast_expression "(char **)((int)ppiVar8 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar8 + -8)" * (cast_expression "(uint *)((int)ppiVar8 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar8 + -4)" * (cast_expression "(uint *)((int)ppiVar8 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;))) (expression_statement "_Var3 = (__numpunct_cache<wchar_t>)0x0;" (assignment_expression "_Var3 = (__numpunct_cache<wchar_t>)0x0" identifier = (parenthesized_expression "(__numpunct_cache<wchar_t>)0x0" ( (binary_expression "__numpunct_cache<wchar_t>)0x0" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (ERROR ")" )) number_literal) ))) ;) (if_statement "if (*(int *)(this + 0xc) != 0) {\n    _Var3 = (__numpunct_cache<wchar_t>)((byte)(*local_30 - 1U) < 0x7e);\n  }" if (parenthesized_expression "(*(int *)(this + 0xc) != 0)" ( (binary_expression "*(int *)(this + 0xc) != 0" (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) )))) != number_literal) )) (compound_statement "{\n    _Var3 = (__numpunct_cache<wchar_t>)((byte)(*local_30 - 1U) < 0x7e);\n  }" { (expression_statement "_Var3 = (__numpunct_cache<wchar_t>)((byte)(*local_30 - 1U) < 0x7e);" (assignment_expression "_Var3 = (__numpunct_cache<wchar_t>)((byte)(*local_30 - 1U) < 0x7e)" identifier = (call_expression "(__numpunct_cache<wchar_t>)((byte)(*local_30 - 1U) < 0x7e)" (parenthesized_expression "(__numpunct_cache<wchar_t>)" ( (binary_expression "__numpunct_cache<wchar_t>" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > identifier) )) (argument_list "((byte)(*local_30 - 1U) < 0x7e)" ( (binary_expression "(byte)(*local_30 - 1U) < 0x7e" (call_expression "(byte)(*local_30 - 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*local_30 - 1U)" ( (binary_expression "*local_30 - 1U" (pointer_expression "*local_30" * identifier) - number_literal) ))) < number_literal) )))) ;) })) (expression_statement "this[0x10] = _Var3;" (assignment_expression "this[0x10] = _Var3" (subscript_expression "this[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar1 = *(code **)(*(int *)pnVar4 + 0x14);" (assignment_expression "pcVar1 = *(code **)(*(int *)pnVar4 + 0x14)" identifier = (pointer_expression "*(code **)(*(int *)pnVar4 + 0x14)" * (cast_expression "(code **)(*(int *)pnVar4 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pnVar4 + 0x14)" ( (binary_expression "*(int *)pnVar4 + 0x14" (pointer_expression "*(int *)pnVar4" * (cast_expression "(int *)pnVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_do_truename_00301bb4) {\n    *(undefined1 **)((int)ppiVar8 + -8) = &local_2a;\n    *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x14);\n    local_34 = (string *)&local_24;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6293;\n    std::wstring::wstring\n              (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n               *(allocator **)((int)ppiVar8 + -8));\n  }\n  else {\n    local_34 = (string *)&local_24;\n    *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    ppiVar8 = (int **)((int)ppiVar8 + -4);\n  }" if (parenthesized_expression "(pcVar1 == (code *)PTR_do_truename_00301bb4)" ( (binary_expression "pcVar1 == (code *)PTR_do_truename_00301bb4" identifier == (cast_expression "(code *)PTR_do_truename_00301bb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    *(undefined1 **)((int)ppiVar8 + -8) = &local_2a;\n    *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x14);\n    local_34 = (string *)&local_24;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6293;\n    std::wstring::wstring\n              (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n               *(allocator **)((int)ppiVar8 + -8));\n  }" { (expression_statement "*(undefined1 **)((int)ppiVar8 + -8) = &local_2a;" (assignment_expression "*(undefined1 **)((int)ppiVar8 + -8) = &local_2a" (pointer_expression "*(undefined1 **)((int)ppiVar8 + -8)" * (cast_expression "(undefined1 **)((int)ppiVar8 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_2a" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x14);" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x14)" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(pnVar4 + 8) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(pnVar4 + 8) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pnVar4 + 8) + 0x14)" ( (binary_expression "*(int *)(pnVar4 + 8) + 0x14" (pointer_expression "*(int *)(pnVar4 + 8)" * (cast_expression "(int *)(pnVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pnVar4 + 8)" ( (binary_expression "pnVar4 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_34 = (string *)&local_24;" (assignment_expression "local_34 = (string *)&local_24" identifier = (cast_expression "(string *)&local_24" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_24" & identifier))) ;) (expression_statement "*(string **)((int)ppiVar8 + -0x10) = local_34;" (assignment_expression "*(string **)((int)ppiVar8 + -0x10) = local_34" (pointer_expression "*(string **)((int)ppiVar8 + -0x10)" * (cast_expression "(string **)((int)ppiVar8 + -0x10)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6293;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6293" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::wstring::wstring\n              (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n               *(allocator **)((int)ppiVar8 + -8));" statement_identifier : (ERROR ":" :) (labeled_statement "wstring::wstring\n              (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n               *(allocator **)((int)ppiVar8 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "wstring\n              (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n               *(allocator **)((int)ppiVar8 + -8));" (call_expression "wstring\n              (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n               *(allocator **)((int)ppiVar8 + -8))" identifier (argument_list "(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n               *(allocator **)((int)ppiVar8 + -8))" ( (pointer_expression "*(wstring **)((int)ppiVar8 + -0x10)" * (cast_expression "(wstring **)((int)ppiVar8 + -0x10)" ( (type_descriptor "wstring **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(wchar_t **)((int)ppiVar8 + -0xc)" * (cast_expression "(wchar_t **)((int)ppiVar8 + -0xc)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(allocator **)((int)ppiVar8 + -8)" * (cast_expression "(allocator **)((int)ppiVar8 + -8)" ( (type_descriptor "allocator **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;))) }) (else_clause "else {\n    local_34 = (string *)&local_24;\n    *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    ppiVar8 = (int **)((int)ppiVar8 + -4);\n  }" else (compound_statement "{\n    local_34 = (string *)&local_24;\n    *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    ppiVar8 = (int **)((int)ppiVar8 + -4);\n  }" { (expression_statement "local_34 = (string *)&local_24;" (assignment_expression "local_34 = (string *)&local_24" identifier = (cast_expression "(string *)&local_24" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_24" & identifier))) ;) (expression_statement "*(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;" (assignment_expression "*(numpunct **)((int)ppiVar8 + -0xc) = pnVar4" (pointer_expression "*(numpunct **)((int)ppiVar8 + -0xc)" * (cast_expression "(numpunct **)((int)ppiVar8 + -0xc)" ( (type_descriptor "numpunct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(string **)((int)ppiVar8 + -0x10) = local_34;" (assignment_expression "*(string **)((int)ppiVar8 + -0x10) = local_34" (pointer_expression "*(string **)((int)ppiVar8 + -0x10)" * (cast_expression "(string **)((int)ppiVar8 + -0x10)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6465;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6465" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "ppiVar8 = (int **)((int)ppiVar8 + -4);" (assignment_expression "ppiVar8 = (int **)((int)ppiVar8 + -4)" identifier = (cast_expression "(int **)((int)ppiVar8 + -4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "uVar2 = *(uint *)(local_24 + -0xc);" (assignment_expression "uVar2 = *(uint *)(local_24 + -0xc)" identifier = (pointer_expression "*(uint *)(local_24 + -0xc)" * (cast_expression "(uint *)(local_24 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + -0xc)" ( (binary_expression "local_24 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(this + 0x18) = uVar2;" (assignment_expression "*(uint *)(this + 0x18) = uVar2" (pointer_expression "*(uint *)(this + 0x18)" * (cast_expression "(uint *)(this + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar2 < 0x20000000) {\n    *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62bb;\n    local_38 = operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n    *(undefined4 *)((int)ppiVar8 + -4) = 0;\n    *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x18);\n    *(void **)((int)ppiVar8 + -0xc) = local_38;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62d2;\n    std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                       *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n    pcVar1 = *(code **)(*(int *)pnVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_do_falsename_00301c5c) {\n      *(undefined1 **)((int)ppiVar8 + -8) = &local_29;\n      *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c);\n      local_3c = local_20;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62ff;\n      std::wstring::wstring\n                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8));\n    }\n    else {\n      local_3c = local_20;\n      *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      ppiVar8 = (int **)((int)ppiVar8 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(this + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6327;\n      local_34 = (string *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n      *(undefined4 *)((int)ppiVar8 + -4) = 0;\n      *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x20);\n      *(string **)((int)ppiVar8 + -0xc) = local_34;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6340;\n      std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n      iVar7 = *(int *)pnVar4;\n      pcVar1 = *(code **)(iVar7 + 8);\n      if (pcVar1 == (code *)PTR_do_decimal_point_00301cf4) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;\n        uVar6 = (*pcVar1)();\n        iVar7 = *(int *)pnVar4;\n      }\n      *(undefined4 *)(this + 0x24) = uVar6;\n      pcVar1 = *(code **)(iVar7 + 0xc);\n      if (pcVar1 == (code *)PTR_do_thousands_sep_00301e58) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;\n        uVar6 = (*pcVar1)();\n      }\n      *(undefined4 *)(this + 0x28) = uVar6;\n      *(locale **)((int)ppiVar8 + -0x10) = param_1;\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6388;\n      pcVar5 = use_facet<std::ctype<wchar_t>>(*(locale **)((int)ppiVar8 + -0x10));\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0x2c;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_out + 0x24;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_out;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0xbc;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_in + 0x1a;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_in;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(this + 8) = local_30;\n      *(void **)(this + 0x14) = local_38;\n      *(string **)(this + 0x1c) = local_34;\n      this[0x124] = (__numpunct_cache<wchar_t>)0x1;\n      if ((allocator *)(local_20[0] + -0xc) !=\n          (allocator *)&std::wstring::_Rep::_S_empty_rep_storage) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));\n      }\n      if ((allocator *)(local_24 + -0xc) != (allocator *)&std::wstring::_Rep::_S_empty_rep_storage)\n      {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n      }\n      if ((allocator *)(local_28 + -0xc) != (allocator *)PTR__S_empty_rep_storage_00301cdc) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8;\n        std::string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));\n      }\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */\n    *(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d64fd;\n    __cxa_throw_bad_array_new_length();\n  }" if (parenthesized_expression "(uVar2 < 0x20000000)" ( (binary_expression "uVar2 < 0x20000000" identifier < number_literal) )) (compound_statement "{\n    *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62bb;\n    local_38 = operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n    *(undefined4 *)((int)ppiVar8 + -4) = 0;\n    *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x18);\n    *(void **)((int)ppiVar8 + -0xc) = local_38;\n    *(string **)((int)ppiVar8 + -0x10) = local_34;\n                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */\n    *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62d2;\n    std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                       *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n    pcVar1 = *(code **)(*(int *)pnVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_do_falsename_00301c5c) {\n      *(undefined1 **)((int)ppiVar8 + -8) = &local_29;\n      *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c);\n      local_3c = local_20;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62ff;\n      std::wstring::wstring\n                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8));\n    }\n    else {\n      local_3c = local_20;\n      *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      ppiVar8 = (int **)((int)ppiVar8 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(this + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6327;\n      local_34 = (string *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n      *(undefined4 *)((int)ppiVar8 + -4) = 0;\n      *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x20);\n      *(string **)((int)ppiVar8 + -0xc) = local_34;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6340;\n      std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n      iVar7 = *(int *)pnVar4;\n      pcVar1 = *(code **)(iVar7 + 8);\n      if (pcVar1 == (code *)PTR_do_decimal_point_00301cf4) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;\n        uVar6 = (*pcVar1)();\n        iVar7 = *(int *)pnVar4;\n      }\n      *(undefined4 *)(this + 0x24) = uVar6;\n      pcVar1 = *(code **)(iVar7 + 0xc);\n      if (pcVar1 == (code *)PTR_do_thousands_sep_00301e58) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;\n        uVar6 = (*pcVar1)();\n      }\n      *(undefined4 *)(this + 0x28) = uVar6;\n      *(locale **)((int)ppiVar8 + -0x10) = param_1;\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6388;\n      pcVar5 = use_facet<std::ctype<wchar_t>>(*(locale **)((int)ppiVar8 + -0x10));\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0x2c;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_out + 0x24;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_out;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0xbc;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_in + 0x1a;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_in;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(this + 8) = local_30;\n      *(void **)(this + 0x14) = local_38;\n      *(string **)(this + 0x1c) = local_34;\n      this[0x124] = (__numpunct_cache<wchar_t>)0x1;\n      if ((allocator *)(local_20[0] + -0xc) !=\n          (allocator *)&std::wstring::_Rep::_S_empty_rep_storage) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));\n      }\n      if ((allocator *)(local_24 + -0xc) != (allocator *)&std::wstring::_Rep::_S_empty_rep_storage)\n      {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n      }\n      if ((allocator *)(local_28 + -0xc) != (allocator *)PTR__S_empty_rep_storage_00301cdc) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8;\n        std::string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));\n      }\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */\n    *(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d64fd;\n    __cxa_throw_bad_array_new_length();\n  }" { (expression_statement "*(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;" (assignment_expression "*(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2" (pointer_expression "*(uint *)((int)ppiVar8 + -0x10)" * (cast_expression "(uint *)((int)ppiVar8 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar2 << 2" identifier << number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62bb;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62bb" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_38 = operator_new__(*(uint *)((int)ppiVar8 + -0x10));" (assignment_expression "local_38 = operator_new__(*(uint *)((int)ppiVar8 + -0x10))" identifier = (call_expression "operator_new__(*(uint *)((int)ppiVar8 + -0x10))" identifier (argument_list "(*(uint *)((int)ppiVar8 + -0x10))" ( (pointer_expression "*(uint *)((int)ppiVar8 + -0x10)" * (cast_expression "(uint *)((int)ppiVar8 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -4)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x18);" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x18)" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -8)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(this + 0x18)" * (cast_expression "(undefined4 *)(this + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(void **)((int)ppiVar8 + -0xc) = local_38;" (assignment_expression "*(void **)((int)ppiVar8 + -0xc) = local_38" (pointer_expression "*(void **)((int)ppiVar8 + -0xc)" * (cast_expression "(void **)((int)ppiVar8 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(string **)((int)ppiVar8 + -0x10) = local_34;" (assignment_expression "*(string **)((int)ppiVar8 + -0x10) = local_34" (pointer_expression "*(string **)((int)ppiVar8 + -0x10)" * (cast_expression "(string **)((int)ppiVar8 + -0x10)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62d2;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62d2" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                       *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));" statement_identifier : (ERROR ":" :) (labeled_statement "wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                       *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));" statement_identifier : (ERROR ":" :) (expression_statement "copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                       *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));" (call_expression "copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                       *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4))" identifier (argument_list "(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                       *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4))" ( (pointer_expression "*(wstring **)((int)ppiVar8 + -0x10)" * (cast_expression "(wstring **)((int)ppiVar8 + -0x10)" ( (type_descriptor "wstring **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(wchar_t **)((int)ppiVar8 + -0xc)" * (cast_expression "(wchar_t **)((int)ppiVar8 + -0xc)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar8 + -8)" * (cast_expression "(uint *)((int)ppiVar8 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar8 + -4)" * (cast_expression "(uint *)((int)ppiVar8 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;))) (expression_statement "pcVar1 = *(code **)(*(int *)pnVar4 + 0x18);" (assignment_expression "pcVar1 = *(code **)(*(int *)pnVar4 + 0x18)" identifier = (pointer_expression "*(code **)(*(int *)pnVar4 + 0x18)" * (cast_expression "(code **)(*(int *)pnVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pnVar4 + 0x18)" ( (binary_expression "*(int *)pnVar4 + 0x18" (pointer_expression "*(int *)pnVar4" * (cast_expression "(int *)pnVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_do_falsename_00301c5c) {\n      *(undefined1 **)((int)ppiVar8 + -8) = &local_29;\n      *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c);\n      local_3c = local_20;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62ff;\n      std::wstring::wstring\n                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8));\n    }\n    else {\n      local_3c = local_20;\n      *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      ppiVar8 = (int **)((int)ppiVar8 + -4);\n    }" if (parenthesized_expression "(pcVar1 == (code *)PTR_do_falsename_00301c5c)" ( (binary_expression "pcVar1 == (code *)PTR_do_falsename_00301c5c" identifier == (cast_expression "(code *)PTR_do_falsename_00301c5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      *(undefined1 **)((int)ppiVar8 + -8) = &local_29;\n      *(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c);\n      local_3c = local_20;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62ff;\n      std::wstring::wstring\n                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8));\n    }" { (expression_statement "*(undefined1 **)((int)ppiVar8 + -8) = &local_29;" (assignment_expression "*(undefined1 **)((int)ppiVar8 + -8) = &local_29" (pointer_expression "*(undefined1 **)((int)ppiVar8 + -8)" * (cast_expression "(undefined1 **)((int)ppiVar8 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_29" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c);" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0xc) = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c)" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c)" * (cast_expression "(undefined4 *)(*(int *)(pnVar4 + 8) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pnVar4 + 8) + 0x1c)" ( (binary_expression "*(int *)(pnVar4 + 8) + 0x1c" (pointer_expression "*(int *)(pnVar4 + 8)" * (cast_expression "(int *)(pnVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pnVar4 + 8)" ( (binary_expression "pnVar4 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_3c = local_20;" (assignment_expression "local_3c = local_20" identifier = identifier) ;) (expression_statement "*(int **)((int)ppiVar8 + -0x10) = local_3c;" (assignment_expression "*(int **)((int)ppiVar8 + -0x10) = local_3c" (pointer_expression "*(int **)((int)ppiVar8 + -0x10)" * (cast_expression "(int **)((int)ppiVar8 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62ff;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d62ff" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::wstring::wstring\n                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8));" statement_identifier : (ERROR ":" :) (labeled_statement "wstring::wstring\n                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "wstring\n                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8));" (call_expression "wstring\n                (*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8))" identifier (argument_list "(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                 *(allocator **)((int)ppiVar8 + -8))" ( (pointer_expression "*(wstring **)((int)ppiVar8 + -0x10)" * (cast_expression "(wstring **)((int)ppiVar8 + -0x10)" ( (type_descriptor "wstring **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(wchar_t **)((int)ppiVar8 + -0xc)" * (cast_expression "(wchar_t **)((int)ppiVar8 + -0xc)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(allocator **)((int)ppiVar8 + -8)" * (cast_expression "(allocator **)((int)ppiVar8 + -8)" ( (type_descriptor "allocator **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;))) }) (else_clause "else {\n      local_3c = local_20;\n      *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      ppiVar8 = (int **)((int)ppiVar8 + -4);\n    }" else (compound_statement "{\n      local_3c = local_20;\n      *(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      ppiVar8 = (int **)((int)ppiVar8 + -4);\n    }" { (expression_statement "local_3c = local_20;" (assignment_expression "local_3c = local_20" identifier = identifier) ;) (expression_statement "*(numpunct **)((int)ppiVar8 + -0xc) = pnVar4;" (assignment_expression "*(numpunct **)((int)ppiVar8 + -0xc) = pnVar4" (pointer_expression "*(numpunct **)((int)ppiVar8 + -0xc)" * (cast_expression "(numpunct **)((int)ppiVar8 + -0xc)" ( (type_descriptor "numpunct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppiVar8 + -0x10) = local_3c;" (assignment_expression "*(int **)((int)ppiVar8 + -0x10) = local_3c" (pointer_expression "*(int **)((int)ppiVar8 + -0x10)" * (cast_expression "(int **)((int)ppiVar8 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d647d;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d647d" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "ppiVar8 = (int **)((int)ppiVar8 + -4);" (assignment_expression "ppiVar8 = (int **)((int)ppiVar8 + -4)" identifier = (cast_expression "(int **)((int)ppiVar8 + -4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "uVar2 = *(uint *)(local_20[0] + -0xc);" (assignment_expression "uVar2 = *(uint *)(local_20[0] + -0xc)" identifier = (pointer_expression "*(uint *)(local_20[0] + -0xc)" * (cast_expression "(uint *)(local_20[0] + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + -0xc)" ( (binary_expression "local_20[0] + -0xc" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "*(uint *)(this + 0x20) = uVar2;" (assignment_expression "*(uint *)(this + 0x20) = uVar2" (pointer_expression "*(uint *)(this + 0x20)" * (cast_expression "(uint *)(this + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar2 < 0x20000000) {\n      *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6327;\n      local_34 = (string *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n      *(undefined4 *)((int)ppiVar8 + -4) = 0;\n      *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x20);\n      *(string **)((int)ppiVar8 + -0xc) = local_34;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6340;\n      std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n      iVar7 = *(int *)pnVar4;\n      pcVar1 = *(code **)(iVar7 + 8);\n      if (pcVar1 == (code *)PTR_do_decimal_point_00301cf4) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;\n        uVar6 = (*pcVar1)();\n        iVar7 = *(int *)pnVar4;\n      }\n      *(undefined4 *)(this + 0x24) = uVar6;\n      pcVar1 = *(code **)(iVar7 + 0xc);\n      if (pcVar1 == (code *)PTR_do_thousands_sep_00301e58) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;\n        uVar6 = (*pcVar1)();\n      }\n      *(undefined4 *)(this + 0x28) = uVar6;\n      *(locale **)((int)ppiVar8 + -0x10) = param_1;\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6388;\n      pcVar5 = use_facet<std::ctype<wchar_t>>(*(locale **)((int)ppiVar8 + -0x10));\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0x2c;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_out + 0x24;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_out;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0xbc;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_in + 0x1a;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_in;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(this + 8) = local_30;\n      *(void **)(this + 0x14) = local_38;\n      *(string **)(this + 0x1c) = local_34;\n      this[0x124] = (__numpunct_cache<wchar_t>)0x1;\n      if ((allocator *)(local_20[0] + -0xc) !=\n          (allocator *)&std::wstring::_Rep::_S_empty_rep_storage) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));\n      }\n      if ((allocator *)(local_24 + -0xc) != (allocator *)&std::wstring::_Rep::_S_empty_rep_storage)\n      {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n      }\n      if ((allocator *)(local_28 + -0xc) != (allocator *)PTR__S_empty_rep_storage_00301cdc) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8;\n        std::string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));\n      }\n      return;\n    }" if (parenthesized_expression "(uVar2 < 0x20000000)" ( (binary_expression "uVar2 < 0x20000000" identifier < number_literal) )) (compound_statement "{\n      *(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;\n                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6327;\n      local_34 = (string *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));\n      *(undefined4 *)((int)ppiVar8 + -4) = 0;\n      *(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x20);\n      *(string **)((int)ppiVar8 + -0xc) = local_34;\n      *(int **)((int)ppiVar8 + -0x10) = local_3c;\n                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6340;\n      std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));\n      iVar7 = *(int *)pnVar4;\n      pcVar1 = *(code **)(iVar7 + 8);\n      if (pcVar1 == (code *)PTR_do_decimal_point_00301cf4) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;\n        uVar6 = (*pcVar1)();\n        iVar7 = *(int *)pnVar4;\n      }\n      *(undefined4 *)(this + 0x24) = uVar6;\n      pcVar1 = *(code **)(iVar7 + 0xc);\n      if (pcVar1 == (code *)PTR_do_thousands_sep_00301e58) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;\n        uVar6 = (*pcVar1)();\n      }\n      *(undefined4 *)(this + 0x28) = uVar6;\n      *(locale **)((int)ppiVar8 + -0x10) = param_1;\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6388;\n      pcVar5 = use_facet<std::ctype<wchar_t>>(*(locale **)((int)ppiVar8 + -0x10));\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0x2c;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_out + 0x24;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_out;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar7 = *(int *)pcVar5;\n      *(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0xbc;\n      *(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_in + 0x1a;\n      *(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_in;\n      *(ctype **)((int)ppiVar8 + -0x10) = pcVar5;\n      pcVar1 = *(code **)(iVar7 + 0x2c);\n      *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(this + 8) = local_30;\n      *(void **)(this + 0x14) = local_38;\n      *(string **)(this + 0x1c) = local_34;\n      this[0x124] = (__numpunct_cache<wchar_t>)0x1;\n      if ((allocator *)(local_20[0] + -0xc) !=\n          (allocator *)&std::wstring::_Rep::_S_empty_rep_storage) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));\n      }\n      if ((allocator *)(local_24 + -0xc) != (allocator *)&std::wstring::_Rep::_S_empty_rep_storage)\n      {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n      }\n      if ((allocator *)(local_28 + -0xc) != (allocator *)PTR__S_empty_rep_storage_00301cdc) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8;\n        std::string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));\n      }\n      return;\n    }" { (expression_statement "*(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2;" (assignment_expression "*(uint *)((int)ppiVar8 + -0x10) = uVar2 << 2" (pointer_expression "*(uint *)((int)ppiVar8 + -0x10)" * (cast_expression "(uint *)((int)ppiVar8 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar2 << 2" identifier << number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6327;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6327" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = (string *)operator_new__(*(uint *)((int)ppiVar8 + -0x10));" (assignment_expression "local_34 = (string *)operator_new__(*(uint *)((int)ppiVar8 + -0x10))" identifier = (cast_expression "(string *)operator_new__(*(uint *)((int)ppiVar8 + -0x10))" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new__(*(uint *)((int)ppiVar8 + -0x10))" identifier (argument_list "(*(uint *)((int)ppiVar8 + -0x10))" ( (pointer_expression "*(uint *)((int)ppiVar8 + -0x10)" * (cast_expression "(uint *)((int)ppiVar8 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -4)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x20);" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -8) = *(undefined4 *)(this + 0x20)" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -8)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(string **)((int)ppiVar8 + -0xc) = local_34;" (assignment_expression "*(string **)((int)ppiVar8 + -0xc) = local_34" (pointer_expression "*(string **)((int)ppiVar8 + -0xc)" * (cast_expression "(string **)((int)ppiVar8 + -0xc)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppiVar8 + -0x10) = local_3c;" (assignment_expression "*(int **)((int)ppiVar8 + -0x10) = local_3c" (pointer_expression "*(int **)((int)ppiVar8 + -0x10)" * (cast_expression "(int **)((int)ppiVar8 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6340;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6340" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));" statement_identifier : (ERROR ":" :) (labeled_statement "wstring::copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));" statement_identifier : (ERROR ":" :) (expression_statement "copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4));" (call_expression "copy(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4))" identifier (argument_list "(*(wstring **)((int)ppiVar8 + -0x10),*(wchar_t **)((int)ppiVar8 + -0xc),\n                         *(uint *)((int)ppiVar8 + -8),*(uint *)((int)ppiVar8 + -4))" ( (pointer_expression "*(wstring **)((int)ppiVar8 + -0x10)" * (cast_expression "(wstring **)((int)ppiVar8 + -0x10)" ( (type_descriptor "wstring **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(wchar_t **)((int)ppiVar8 + -0xc)" * (cast_expression "(wchar_t **)((int)ppiVar8 + -0xc)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar8 + -8)" * (cast_expression "(uint *)((int)ppiVar8 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar8 + -4)" * (cast_expression "(uint *)((int)ppiVar8 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;))) (expression_statement "iVar7 = *(int *)pnVar4;" (assignment_expression "iVar7 = *(int *)pnVar4" identifier = (pointer_expression "*(int *)pnVar4" * (cast_expression "(int *)pnVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar1 = *(code **)(iVar7 + 8);" (assignment_expression "pcVar1 = *(code **)(iVar7 + 8)" identifier = (pointer_expression "*(code **)(iVar7 + 8)" * (cast_expression "(code **)(iVar7 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_do_decimal_point_00301cf4) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;\n        uVar6 = (*pcVar1)();\n        iVar7 = *(int *)pnVar4;\n      }" if (parenthesized_expression "(pcVar1 == (code *)PTR_do_decimal_point_00301cf4)" ( (binary_expression "pcVar1 == (code *)PTR_do_decimal_point_00301cf4" identifier == (cast_expression "(code *)PTR_do_decimal_point_00301cf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24);\n      }" { (expression_statement "uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24);" (assignment_expression "uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24)" * (cast_expression "(undefined4 *)(*(int *)(pnVar4 + 8) + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pnVar4 + 8) + 0x24)" ( (binary_expression "*(int *)(pnVar4 + 8) + 0x24" (pointer_expression "*(int *)(pnVar4 + 8)" * (cast_expression "(int *)(pnVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pnVar4 + 8)" ( (binary_expression "pnVar4 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;\n        uVar6 = (*pcVar1)();\n        iVar7 = *(int *)pnVar4;\n      }" else (compound_statement "{\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;\n        uVar6 = (*pcVar1)();\n        iVar7 = *(int *)pnVar4;\n      }" { (expression_statement "*(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;" (assignment_expression "*(numpunct **)((int)ppiVar8 + -0x10) = pnVar4" (pointer_expression "*(numpunct **)((int)ppiVar8 + -0x10)" * (cast_expression "(numpunct **)((int)ppiVar8 + -0x10)" ( (type_descriptor "numpunct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d64a6" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = (*pcVar1)();" (assignment_expression "uVar6 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar7 = *(int *)pnVar4;" (assignment_expression "iVar7 = *(int *)pnVar4" identifier = (pointer_expression "*(int *)pnVar4" * (cast_expression "(int *)pnVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (expression_statement "*(undefined4 *)(this + 0x24) = uVar6;" (assignment_expression "*(undefined4 *)(this + 0x24) = uVar6" (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar7 + 0xc);" (assignment_expression "pcVar1 = *(code **)(iVar7 + 0xc)" identifier = (pointer_expression "*(code **)(iVar7 + 0xc)" * (cast_expression "(code **)(iVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_do_thousands_sep_00301e58) {\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28);\n      }\n      else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;\n        uVar6 = (*pcVar1)();\n      }" if (parenthesized_expression "(pcVar1 == (code *)PTR_do_thousands_sep_00301e58)" ( (binary_expression "pcVar1 == (code *)PTR_do_thousands_sep_00301e58" identifier == (cast_expression "(code *)PTR_do_thousands_sep_00301e58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28);\n      }" { (expression_statement "uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28);" (assignment_expression "uVar6 = *(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28)" * (cast_expression "(undefined4 *)(*(int *)(pnVar4 + 8) + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pnVar4 + 8) + 0x28)" ( (binary_expression "*(int *)(pnVar4 + 8) + 0x28" (pointer_expression "*(int *)(pnVar4 + 8)" * (cast_expression "(int *)(pnVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pnVar4 + 8)" ( (binary_expression "pnVar4 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;\n        uVar6 = (*pcVar1)();\n      }" else (compound_statement "{\n        *(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;\n                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */\n        *(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;\n        uVar6 = (*pcVar1)();\n      }" { (expression_statement "*(numpunct **)((int)ppiVar8 + -0x10) = pnVar4;" (assignment_expression "*(numpunct **)((int)ppiVar8 + -0x10) = pnVar4" (pointer_expression "*(numpunct **)((int)ppiVar8 + -0x10)" * (cast_expression "(numpunct **)((int)ppiVar8 + -0x10)" ( (type_descriptor "numpunct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d648e" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = (*pcVar1)();" (assignment_expression "uVar6 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "*(undefined4 *)(this + 0x28) = uVar6;" (assignment_expression "*(undefined4 *)(this + 0x28) = uVar6" (pointer_expression "*(undefined4 *)(this + 0x28)" * (cast_expression "(undefined4 *)(this + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(locale **)((int)ppiVar8 + -0x10) = param_1;" (assignment_expression "*(locale **)((int)ppiVar8 + -0x10) = param_1" (pointer_expression "*(locale **)((int)ppiVar8 + -0x10)" * (cast_expression "(locale **)((int)ppiVar8 + -0x10)" ( (type_descriptor "locale **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6388;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d6388" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pcVar5 = use_facet<std::ctype<wchar_t>>(*(locale **)((int)ppiVar8 + -0x10));" (binary_expression "pcVar5 = use_facet<std::ctype<wchar_t>>(*(locale **)((int)ppiVar8 + -0x10))" (assignment_expression "pcVar5 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>(*(locale **)((int)ppiVar8 + -0x10))" identifier >> (parenthesized_expression "(*(locale **)((int)ppiVar8 + -0x10))" ( (pointer_expression "*(locale **)((int)ppiVar8 + -0x10)" * (cast_expression "(locale **)((int)ppiVar8 + -0x10)" ( (type_descriptor "locale **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "iVar7 = *(int *)pcVar5;" (assignment_expression "iVar7 = *(int *)pcVar5" identifier = (pointer_expression "*(int *)pcVar5" * (cast_expression "(int *)pcVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0x2c;" (assignment_expression "*(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0x2c" (pointer_expression "*(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4)" * (call_expression "(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4)" (parenthesized_expression "(__numpunct_cache<wchar_t> **)" ( (binary_expression "__numpunct_cache<wchar_t> **" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "this + 0x2c" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_out + 0x24;" (binary_expression "*(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_out + 0x24" (assignment_expression "*(undefined **)((int)ppiVar8 + -8) = __num_base" (pointer_expression "*(undefined **)((int)ppiVar8 + -8)" * (cast_expression "(undefined **)((int)ppiVar8 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) (ERROR "::_S_atoms_out" : : identifier) + number_literal) ;) (expression_statement "*(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_out;" (assignment_expression "*(undefined **)((int)ppiVar8 + -0xc) = __num_base" (pointer_expression "*(undefined **)((int)ppiVar8 + -0xc)" * (cast_expression "(undefined **)((int)ppiVar8 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) (ERROR "::_S_atoms_out" : : identifier) ;) (expression_statement "*(ctype **)((int)ppiVar8 + -0x10) = pcVar5;" (assignment_expression "*(ctype **)((int)ppiVar8 + -0x10) = pcVar5" (pointer_expression "*(ctype **)((int)ppiVar8 + -0x10)" * (cast_expression "(ctype **)((int)ppiVar8 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar7 + 0x2c);" (assignment_expression "pcVar1 = *(code **)(iVar7 + 0x2c)" identifier = (pointer_expression "*(code **)(iVar7 + 0x2c)" * (cast_expression "(code **)(iVar7 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63a7;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63a7" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)pcVar5;" (assignment_expression "iVar7 = *(int *)pcVar5" identifier = (pointer_expression "*(int *)pcVar5" * (cast_expression "(int *)pcVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0xbc;" (assignment_expression "*(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4) = this + 0xbc" (pointer_expression "*(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4)" * (call_expression "(__numpunct_cache<wchar_t> **)((int)ppiVar8 + -4)" (parenthesized_expression "(__numpunct_cache<wchar_t> **)" ( (binary_expression "__numpunct_cache<wchar_t> **" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "this + 0xbc" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_in + 0x1a;" (binary_expression "*(undefined **)((int)ppiVar8 + -8) = __num_base::_S_atoms_in + 0x1a" (assignment_expression "*(undefined **)((int)ppiVar8 + -8) = __num_base" (pointer_expression "*(undefined **)((int)ppiVar8 + -8)" * (cast_expression "(undefined **)((int)ppiVar8 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -8)" ( (binary_expression "(int)ppiVar8 + -8" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) (ERROR "::_S_atoms_in" : : identifier) + number_literal) ;) (expression_statement "*(undefined **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_in;" (assignment_expression "*(undefined **)((int)ppiVar8 + -0xc) = __num_base" (pointer_expression "*(undefined **)((int)ppiVar8 + -0xc)" * (cast_expression "(undefined **)((int)ppiVar8 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0xc)" ( (binary_expression "(int)ppiVar8 + -0xc" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) (ERROR "::_S_atoms_in" : : identifier) ;) (expression_statement "*(ctype **)((int)ppiVar8 + -0x10) = pcVar5;" (assignment_expression "*(ctype **)((int)ppiVar8 + -0x10) = pcVar5" (pointer_expression "*(ctype **)((int)ppiVar8 + -0x10)" * (cast_expression "(ctype **)((int)ppiVar8 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -0x10)" ( (binary_expression "(int)ppiVar8 + -0x10" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar7 + 0x2c);" (assignment_expression "pcVar1 = *(code **)(iVar7 + 0x2c)" identifier = (pointer_expression "*(code **)(iVar7 + 0x2c)" * (cast_expression "(code **)(iVar7 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63c7;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -0x14) = 0x1d63c7" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -0x14)" ( (binary_expression "(int)ppiVar8 + -0x14" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(char **)(this + 8) = local_30;" (assignment_expression "*(char **)(this + 8) = local_30" (pointer_expression "*(char **)(this + 8)" * (cast_expression "(char **)(this + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(void **)(this + 0x14) = local_38;" (assignment_expression "*(void **)(this + 0x14) = local_38" (pointer_expression "*(void **)(this + 0x14)" * (cast_expression "(void **)(this + 0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(string **)(this + 0x1c) = local_34;" (assignment_expression "*(string **)(this + 0x1c) = local_34" (pointer_expression "*(string **)(this + 0x1c)" * (cast_expression "(string **)(this + 0x1c)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "this[0x124] = (__numpunct_cache<wchar_t>)0x1;" (assignment_expression "this[0x124] = (__numpunct_cache<wchar_t>)0x1" (subscript_expression "this[0x124]" identifier [ number_literal ]) = (parenthesized_expression "(__numpunct_cache<wchar_t>)0x1" ( (binary_expression "__numpunct_cache<wchar_t>)0x1" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (ERROR ")" )) number_literal) ))) ;) (if_statement "if ((allocator *)(local_20[0] + -0xc) !=\n          (allocator *)&std::wstring::_Rep::_S_empty_rep_storage) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));\n      }" if (parenthesized_expression "((allocator *)(local_20[0] + -0xc) !=\n          (allocator *)&std::wstring::_Rep::_S_empty_rep_storage)" ( (binary_expression "(allocator *)(local_20[0] + -0xc) !=\n          (allocator *)&std" (cast_expression "(allocator *)(local_20[0] + -0xc)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + -0xc)" ( (binary_expression "local_20[0] + -0xc" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))) != (cast_expression "(allocator *)&std" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&std" & identifier))) (ERROR "::wstring::_Rep::_S_empty_rep_storage" : : identifier : : identifier : : identifier) )) (compound_statement "{\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));\n      }" { (expression_statement "*(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -4) = 0x1d64c8" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -4)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));" statement_identifier : (ERROR ":" :) (labeled_statement "wstring::_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));" statement_identifier : (ERROR ":" :) (labeled_statement "_Rep::_M_dispose((allocator *)(local_20[0] + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "_M_dispose((allocator *)(local_20[0] + -0xc));" (call_expression "_M_dispose((allocator *)(local_20[0] + -0xc))" identifier (argument_list "((allocator *)(local_20[0] + -0xc))" ( (cast_expression "(allocator *)(local_20[0] + -0xc)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + -0xc)" ( (binary_expression "local_20[0] + -0xc" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))) ))) ;)))) })) (if_statement "if ((allocator *)(local_24 + -0xc) != (allocator *)&std::wstring::_Rep::_S_empty_rep_storage)\n      {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n      }" if (parenthesized_expression "((allocator *)(local_24 + -0xc) != (allocator *)&std::wstring::_Rep::_S_empty_rep_storage)" ( (binary_expression "(allocator *)(local_24 + -0xc) != (allocator *)&std" (cast_expression "(allocator *)(local_24 + -0xc)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + -0xc)" ( (binary_expression "local_24 + -0xc" identifier + number_literal) ))) != (cast_expression "(allocator *)&std" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&std" & identifier))) (ERROR "::wstring::_Rep::_S_empty_rep_storage" : : identifier : : identifier : : identifier) )) (compound_statement "{\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8;\n        std::wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n      }" { (expression_statement "*(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -4) = 0x1d64d8" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -4)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));" statement_identifier : (ERROR ":" :) (labeled_statement "wstring::_Rep::_M_dispose((allocator *)(local_24 + -0xc));" statement_identifier : (ERROR ":" :) (labeled_statement "_Rep::_M_dispose((allocator *)(local_24 + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "_M_dispose((allocator *)(local_24 + -0xc));" (call_expression "_M_dispose((allocator *)(local_24 + -0xc))" identifier (argument_list "((allocator *)(local_24 + -0xc))" ( (cast_expression "(allocator *)(local_24 + -0xc)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + -0xc)" ( (binary_expression "local_24 + -0xc" identifier + number_literal) ))) ))) ;)))) })) (if_statement "if ((allocator *)(local_28 + -0xc) != (allocator *)PTR__S_empty_rep_storage_00301cdc) {\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8;\n        std::string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));\n      }" if (parenthesized_expression "((allocator *)(local_28 + -0xc) != (allocator *)PTR__S_empty_rep_storage_00301cdc)" ( (binary_expression "(allocator *)(local_28 + -0xc) != (allocator *)PTR__S_empty_rep_storage_00301cdc" (cast_expression "(allocator *)(local_28 + -0xc)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_28 + -0xc)" ( (binary_expression "local_28 + -0xc" identifier + number_literal) ))) != (cast_expression "(allocator *)PTR__S_empty_rep_storage_00301cdc" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        *(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8;\n        std::string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));\n      }" { (expression_statement "*(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8;" (assignment_expression "*(undefined4 *)((int)ppiVar8 + -4) = 0x1d64b8" (pointer_expression "*(undefined4 *)((int)ppiVar8 + -4)" * (cast_expression "(undefined4 *)((int)ppiVar8 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));" statement_identifier : (ERROR ":" :) (labeled_statement "string::_Rep::_M_dispose((allocator *)(local_28 + -0xc));" statement_identifier : (ERROR ":" :) (labeled_statement "_Rep::_M_dispose((allocator *)(local_28 + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "_M_dispose((allocator *)(local_28 + -0xc));" (call_expression "_M_dispose((allocator *)(local_28 + -0xc))" identifier (argument_list "((allocator *)(local_28 + -0xc))" ( (cast_expression "(allocator *)(local_28 + -0xc)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_28 + -0xc)" ( (binary_expression "local_28 + -0xc" identifier + number_literal) ))) ))) ;)))) })) (return_statement "return;" return ;) })) comment comment (expression_statement "*(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d64fd;" (assignment_expression "*(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d64fd" (pointer_expression "*(undefined1 **)((int)ppiVar8 + -4)" * (cast_expression "(undefined1 **)((int)ppiVar8 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_001d64fd" & identifier)) ;) (expression_statement "__cxa_throw_bad_array_new_length();" (call_expression "__cxa_throw_bad_array_new_length()" identifier (argument_list "()" ( ))) ;) })) comment comment (expression_statement "*(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d65d9;" (assignment_expression "*(undefined1 **)((int)ppiVar8 + -4) = &LAB_001d65d9" (pointer_expression "*(undefined1 **)((int)ppiVar8 + -4)" * (cast_expression "(undefined1 **)((int)ppiVar8 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar8 + -4)" ( (binary_expression "(int)ppiVar8 + -4" (cast_expression "(int)ppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_001d65d9" & identifier)) ;) (expression_statement "__cxa_throw_bad_array_new_length();" (call_expression "__cxa_throw_bad_array_new_length()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_001d61d0(int param_1,undefined4 param_2)\n\n{\n  code *pcVar1;\n  uint uVar2;\n  bool bVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined ***pppuVar7;\n  int aiStackY_5c [4];\n  undefined1 auStack_40 [4];\n  undefined **local_3c;\n  undefined4 local_38;\n  undefined **local_34;\n  char *local_30;\n  undefined1 local_2a;\n  undefined1 local_29;\n  int local_28;\n  undefined *local_24;\n  undefined *local_20 [4];\n  \n  piVar4 = (int *)FUN_001d6170(param_2);\n  if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {\n    local_34 = (undefined **)&local_28;\n                    \n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }\n  else {\n    local_34 = (undefined **)&local_28;\n                    \n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }\n  uVar5 = *(undefined4 *)(local_28 + -0xc);\n  *(undefined4 *)(param_1 + 0xc) = uVar5;\n  *(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;\n                    \n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;\n  local_30 = (char *)FUN_0017eb70();\n  *(undefined4 *)((int)pppuVar7 + -4) = 0;\n  *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);\n  *(char **)((int)pppuVar7 + -0xc) = local_30;\n  *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;\n  FUN_001b7540();\n  bVar3 = false;\n  if (*(int *)(param_1 + 0xc) != 0) {\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }\n  *(bool *)(param_1 + 0x10) = bVar3;\n  pcVar1 = *(code **)(*piVar4 + 0x14);\n  if (pcVar1 == (code *)PTR_FUN_00301bb4) {\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }\n  else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }\n  uVar2 = *(uint *)(local_24 + -0xc);\n  *(uint *)(param_1 + 0x18) = uVar2;\n  if (uVar2 < 0x20000000) {\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    \n                    \n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }\n                    \n                    \n  *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;\n  FUN_00180130();\n}\n\n" (function_definition "void FUN_001d61d0(int param_1,undefined4 param_2)\n\n{\n  code *pcVar1;\n  uint uVar2;\n  bool bVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined ***pppuVar7;\n  int aiStackY_5c [4];\n  undefined1 auStack_40 [4];\n  undefined **local_3c;\n  undefined4 local_38;\n  undefined **local_34;\n  char *local_30;\n  undefined1 local_2a;\n  undefined1 local_29;\n  int local_28;\n  undefined *local_24;\n  undefined *local_20 [4];\n  \n  piVar4 = (int *)FUN_001d6170(param_2);\n  if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {\n    local_34 = (undefined **)&local_28;\n                    \n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }\n  else {\n    local_34 = (undefined **)&local_28;\n                    \n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }\n  uVar5 = *(undefined4 *)(local_28 + -0xc);\n  *(undefined4 *)(param_1 + 0xc) = uVar5;\n  *(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;\n                    \n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;\n  local_30 = (char *)FUN_0017eb70();\n  *(undefined4 *)((int)pppuVar7 + -4) = 0;\n  *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);\n  *(char **)((int)pppuVar7 + -0xc) = local_30;\n  *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;\n  FUN_001b7540();\n  bVar3 = false;\n  if (*(int *)(param_1 + 0xc) != 0) {\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }\n  *(bool *)(param_1 + 0x10) = bVar3;\n  pcVar1 = *(code **)(*piVar4 + 0x14);\n  if (pcVar1 == (code *)PTR_FUN_00301bb4) {\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }\n  else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }\n  uVar2 = *(uint *)(local_24 + -0xc);\n  *(uint *)(param_1 + 0x18) = uVar2;\n  if (uVar2 < 0x20000000) {\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    \n                    \n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }\n                    \n                    \n  *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;\n  FUN_00180130();\n}" primitive_type (function_declarator "FUN_001d61d0(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 identifier) ))) (compound_statement "{\n  code *pcVar1;\n  uint uVar2;\n  bool bVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined ***pppuVar7;\n  int aiStackY_5c [4];\n  undefined1 auStack_40 [4];\n  undefined **local_3c;\n  undefined4 local_38;\n  undefined **local_34;\n  char *local_30;\n  undefined1 local_2a;\n  undefined1 local_29;\n  int local_28;\n  undefined *local_24;\n  undefined *local_20 [4];\n  \n  piVar4 = (int *)FUN_001d6170(param_2);\n  if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {\n    local_34 = (undefined **)&local_28;\n                    \n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }\n  else {\n    local_34 = (undefined **)&local_28;\n                    \n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }\n  uVar5 = *(undefined4 *)(local_28 + -0xc);\n  *(undefined4 *)(param_1 + 0xc) = uVar5;\n  *(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;\n                    \n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;\n  local_30 = (char *)FUN_0017eb70();\n  *(undefined4 *)((int)pppuVar7 + -4) = 0;\n  *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);\n  *(char **)((int)pppuVar7 + -0xc) = local_30;\n  *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;\n  FUN_001b7540();\n  bVar3 = false;\n  if (*(int *)(param_1 + 0xc) != 0) {\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }\n  *(bool *)(param_1 + 0x10) = bVar3;\n  pcVar1 = *(code **)(*piVar4 + 0x14);\n  if (pcVar1 == (code *)PTR_FUN_00301bb4) {\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }\n  else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }\n  uVar2 = *(uint *)(local_24 + -0xc);\n  *(uint *)(param_1 + 0x18) = uVar2;\n  if (uVar2 < 0x20000000) {\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    \n                    \n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }\n                    \n                    \n  *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;\n  FUN_00180130();\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined ***pppuVar7;" type_identifier (pointer_declarator "***pppuVar7" * (pointer_declarator "**pppuVar7" * (pointer_declarator "*pppuVar7" * identifier))) ;) (declaration "int aiStackY_5c [4];" primitive_type (array_declarator "aiStackY_5c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_40 [4];" type_identifier (array_declarator "auStack_40 [4]" identifier [ number_literal ]) ;) (declaration "undefined **local_3c;" type_identifier (pointer_declarator "**local_3c" * (pointer_declarator "*local_3c" * identifier)) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined1 local_2a;" type_identifier identifier ;) (declaration "undefined1 local_29;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined *local_20 [4];" type_identifier (pointer_declarator "*local_20 [4]" * (array_declarator "local_20 [4]" identifier [ number_literal ])) ;) (expression_statement "piVar4 = (int *)FUN_001d6170(param_2);" (assignment_expression "piVar4 = (int *)FUN_001d6170(param_2)" identifier = (cast_expression "(int *)FUN_001d6170(param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001d6170(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (if_statement "if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {\n    local_34 = (undefined **)&local_28;\n                    \n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }\n  else {\n    local_34 = (undefined **)&local_28;\n                    \n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c)" ( (binary_expression "*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c" (pointer_expression "*(code **)(*piVar4 + 0x10)" * (cast_expression "(code **)(*piVar4 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x10)" ( (binary_expression "*piVar4 + 0x10" (pointer_expression "*piVar4" * identifier) + number_literal) )))) == (cast_expression "(code *)PTR_FUN_00301c1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    local_34 = (undefined **)&local_28;\n                    \n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }" { (expression_statement "local_34 = (undefined **)&local_28;" (assignment_expression "local_34 = (undefined **)&local_28" identifier = (cast_expression "(undefined **)&local_28" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_28" & identifier))) ;) (expression_statement "FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);" (call_expression "FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20)" identifier (argument_list "(local_34,*(undefined4 *)(piVar4[2] + 8),local_20)" ( identifier , (pointer_expression "*(undefined4 *)(piVar4[2] + 8)" * (cast_expression "(undefined4 *)(piVar4[2] + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[2] + 8)" ( (binary_expression "piVar4[2] + 8" (subscript_expression "piVar4[2]" identifier [ number_literal ]) + number_literal) )))) , identifier ))) ;) (expression_statement "pppuVar7 = &local_3c;" (assignment_expression "pppuVar7 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) }) (else_clause "else {\n    local_34 = (undefined **)&local_28;\n                    \n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }" else (compound_statement "{\n    local_34 = (undefined **)&local_28;\n                    \n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }" { (expression_statement "local_34 = (undefined **)&local_28;" (assignment_expression "local_34 = (undefined **)&local_28" identifier = (cast_expression "(undefined **)&local_28" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_28" & identifier))) ;) (expression_statement "(**(code **)(*piVar4 + 0x10))(local_34,piVar4);" (call_expression "(**(code **)(*piVar4 + 0x10))(local_34,piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0x10))" ( (pointer_expression "**(code **)(*piVar4 + 0x10)" * (pointer_expression "*(code **)(*piVar4 + 0x10)" * (cast_expression "(code **)(*piVar4 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x10)" ( (binary_expression "*piVar4 + 0x10" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(local_34,piVar4)" ( identifier , identifier ))) ;) (expression_statement "pppuVar7 = (undefined ***)auStack_40;" (assignment_expression "pppuVar7 = (undefined ***)auStack_40" identifier = (cast_expression "(undefined ***)auStack_40" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) }))) (expression_statement "uVar5 = *(undefined4 *)(local_28 + -0xc);" (assignment_expression "uVar5 = *(undefined4 *)(local_28 + -0xc)" identifier = (pointer_expression "*(undefined4 *)(local_28 + -0xc)" * (cast_expression "(undefined4 *)(local_28 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_28 + -0xc)" ( (binary_expression "local_28 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0xc) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0xc) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x10) = uVar5" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_30 = (char *)FUN_0017eb70();" (assignment_expression "local_30 = (char *)FUN_0017eb70()" identifier = (cast_expression "(char *)FUN_0017eb70()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017eb70()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -8)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(char **)((int)pppuVar7 + -0xc) = local_30;" (assignment_expression "*(char **)((int)pppuVar7 + -0xc) = local_30" (pointer_expression "*(char **)((int)pppuVar7 + -0xc)" * (cast_expression "(char **)((int)pppuVar7 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001b7540();" (call_expression "FUN_001b7540()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (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) )))) != number_literal) )) (compound_statement "{\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }" { (expression_statement "bVar3 = (byte)(*local_30 - 1U) < 0x7e;" (assignment_expression "bVar3 = (byte)(*local_30 - 1U) < 0x7e" identifier = (binary_expression "(byte)(*local_30 - 1U) < 0x7e" (call_expression "(byte)(*local_30 - 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*local_30 - 1U)" ( (binary_expression "*local_30 - 1U" (pointer_expression "*local_30" * identifier) - number_literal) ))) < number_literal)) ;) })) (expression_statement "*(bool *)(param_1 + 0x10) = bVar3;" (assignment_expression "*(bool *)(param_1 + 0x10) = bVar3" (pointer_expression "*(bool *)(param_1 + 0x10)" * (cast_expression "(bool *)(param_1 + 0x10)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(*piVar4 + 0x14);" (assignment_expression "pcVar1 = *(code **)(*piVar4 + 0x14)" identifier = (pointer_expression "*(code **)(*piVar4 + 0x14)" * (cast_expression "(code **)(*piVar4 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x14)" ( (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301bb4) {\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }\n  else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }" if (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301bb4)" ( (binary_expression "pcVar1 == (code *)PTR_FUN_00301bb4" identifier == (cast_expression "(code *)PTR_FUN_00301bb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }" { (expression_statement "*(undefined1 **)((int)pppuVar7 + -8) = &local_2a;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -8) = &local_2a" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -8)" * (cast_expression "(undefined1 **)((int)pppuVar7 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_2a" & identifier)) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(piVar4[2] + 0x14)" * (cast_expression "(undefined4 *)(piVar4[2] + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[2] + 0x14)" ( (binary_expression "piVar4[2] + 0x14" (subscript_expression "piVar4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "local_34 = &local_24;" (assignment_expression "local_34 = &local_24" identifier = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00205b00();" (call_expression "FUN_00205b00()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }" else (compound_statement "{\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }" { (expression_statement "local_34 = &local_24;" (assignment_expression "local_34 = &local_24" identifier = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(int **)((int)pppuVar7 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0xc) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0xc)" * (cast_expression "(int **)((int)pppuVar7 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pppuVar7 = (undefined ***)((int)pppuVar7 + -4);" (assignment_expression "pppuVar7 = (undefined ***)((int)pppuVar7 + -4)" identifier = (cast_expression "(undefined ***)((int)pppuVar7 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "uVar2 = *(uint *)(local_24 + -0xc);" (assignment_expression "uVar2 = *(uint *)(local_24 + -0xc)" identifier = (pointer_expression "*(uint *)(local_24 + -0xc)" * (cast_expression "(uint *)(local_24 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + -0xc)" ( (binary_expression "local_24 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x18) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x18) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar2 < 0x20000000) {\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    \n                    \n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }" if (parenthesized_expression "(uVar2 < 0x20000000)" ( (binary_expression "uVar2 < 0x20000000" identifier < number_literal) )) (compound_statement "{\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    \n                    \n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }" { (expression_statement "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;" (assignment_expression "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2" (pointer_expression "*(uint *)((int)pppuVar7 + -0x10)" * (cast_expression "(uint *)((int)pppuVar7 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar2 << 2" identifier << number_literal)) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_38 = FUN_0017eb70();" (assignment_expression "local_38 = FUN_0017eb70()" identifier = (call_expression "FUN_0017eb70()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -8)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0xc) = local_38;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0xc) = local_38" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00202840();" (call_expression "FUN_00202840()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar1 = *(code **)(*piVar4 + 0x18);" (assignment_expression "pcVar1 = *(code **)(*piVar4 + 0x18)" identifier = (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }" if (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301c5c)" ( (binary_expression "pcVar1 == (code *)PTR_FUN_00301c5c" identifier == (cast_expression "(code *)PTR_FUN_00301c5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }" { (expression_statement "*(undefined1 **)((int)pppuVar7 + -8) = &local_29;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -8) = &local_29" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -8)" * (cast_expression "(undefined1 **)((int)pppuVar7 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_29" & identifier)) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(piVar4[2] + 0x1c)" * (cast_expression "(undefined4 *)(piVar4[2] + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[2] + 0x1c)" ( (binary_expression "piVar4[2] + 0x1c" (subscript_expression "piVar4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "local_3c = local_20;" (assignment_expression "local_3c = local_20" identifier = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00205b00();" (call_expression "FUN_00205b00()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }" else (compound_statement "{\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }" { (expression_statement "local_3c = local_20;" (assignment_expression "local_3c = local_20" identifier = identifier) ;) (expression_statement "*(int **)((int)pppuVar7 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0xc) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0xc)" * (cast_expression "(int **)((int)pppuVar7 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pppuVar7 = (undefined ***)((int)pppuVar7 + -4);" (assignment_expression "pppuVar7 = (undefined ***)((int)pppuVar7 + -4)" identifier = (cast_expression "(undefined ***)((int)pppuVar7 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "uVar2 = *(uint *)(local_20[0] + -0xc);" (assignment_expression "uVar2 = *(uint *)(local_20[0] + -0xc)" identifier = (pointer_expression "*(uint *)(local_20[0] + -0xc)" * (cast_expression "(uint *)(local_20[0] + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + -0xc)" ( (binary_expression "local_20[0] + -0xc" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x20) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x20) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }" if (parenthesized_expression "(uVar2 < 0x20000000)" ( (binary_expression "uVar2 < 0x20000000" identifier < number_literal) )) (compound_statement "{\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }" { (expression_statement "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;" (assignment_expression "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2" (pointer_expression "*(uint *)((int)pppuVar7 + -0x10)" * (cast_expression "(uint *)((int)pppuVar7 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar2 << 2" identifier << number_literal)) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = (undefined **)FUN_0017eb70();" (assignment_expression "local_34 = (undefined **)FUN_0017eb70()" identifier = (cast_expression "(undefined **)FUN_0017eb70()" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_0017eb70()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -8)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0xc) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0xc) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00202840();" (call_expression "FUN_00202840()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "pcVar1 = *(code **)(iVar6 + 8);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 8)" identifier = (pointer_expression "*(code **)(iVar6 + 8)" * (cast_expression "(code **)(iVar6 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }" if (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301cf4)" ( (binary_expression "pcVar1 == (code *)PTR_FUN_00301cf4" identifier == (cast_expression "(code *)PTR_FUN_00301cf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }" { (expression_statement "uVar5 = *(undefined4 *)(piVar4[2] + 0x24);" (assignment_expression "uVar5 = *(undefined4 *)(piVar4[2] + 0x24)" identifier = (pointer_expression "*(undefined4 *)(piVar4[2] + 0x24)" * (cast_expression "(undefined4 *)(piVar4[2] + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[2] + 0x24)" ( (binary_expression "piVar4[2] + 0x24" (subscript_expression "piVar4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) }) (else_clause "else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }" else (compound_statement "{\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }" { (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" * (cast_expression "(int **)((int)pppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = (*pcVar1)();" (assignment_expression "uVar5 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) }))) (expression_statement "*(undefined4 *)(param_1 + 0x24) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar6 + 0xc);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 0xc)" identifier = (pointer_expression "*(code **)(iVar6 + 0xc)" * (cast_expression "(code **)(iVar6 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }" if (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301e58)" ( (binary_expression "pcVar1 == (code *)PTR_FUN_00301e58" identifier == (cast_expression "(code *)PTR_FUN_00301e58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }" { (expression_statement "uVar5 = *(undefined4 *)(piVar4[2] + 0x28);" (assignment_expression "uVar5 = *(undefined4 *)(piVar4[2] + 0x28)" identifier = (pointer_expression "*(undefined4 *)(piVar4[2] + 0x28)" * (cast_expression "(undefined4 *)(piVar4[2] + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[2] + 0x28)" ( (binary_expression "piVar4[2] + 0x28" (subscript_expression "piVar4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) }) (else_clause "else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }" else (compound_statement "{\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }" { (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" * (cast_expression "(int **)((int)pppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = (*pcVar1)();" (assignment_expression "uVar5 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "*(undefined4 *)(param_1 + 0x28) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x10) = param_2" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar4 = (int *)FUN_001d5bc0();" (assignment_expression "piVar4 = (int *)FUN_001d5bc0()" identifier = (cast_expression "(int *)FUN_001d5bc0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001d5bc0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;" (assignment_expression "*(int *)((int)pppuVar7 + -4) = param_1 + 0x2c" (pointer_expression "*(int *)((int)pppuVar7 + -4)" * (cast_expression "(int *)((int)pppuVar7 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "param_1 + 0x2c" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;" (assignment_expression "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24" (pointer_expression "*(undefined **)((int)pppuVar7 + -8)" * (cast_expression "(undefined **)((int)pppuVar7 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;" (assignment_expression "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac" (pointer_expression "*(undefined **)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined **)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" * (cast_expression "(int **)((int)pppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar6 + 0x2c);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 0x2c)" identifier = (pointer_expression "*(code **)(iVar6 + 0x2c)" * (cast_expression "(code **)(iVar6 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x2c)" ( (binary_expression "iVar6 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;" (assignment_expression "*(int *)((int)pppuVar7 + -4) = param_1 + 0xbc" (pointer_expression "*(int *)((int)pppuVar7 + -4)" * (cast_expression "(int *)((int)pppuVar7 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "param_1 + 0xbc" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;" (assignment_expression "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a" (pointer_expression "*(undefined **)((int)pppuVar7 + -8)" * (cast_expression "(undefined **)((int)pppuVar7 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -8)" ( (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;" (assignment_expression "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0" (pointer_expression "*(undefined **)((int)pppuVar7 + -0xc)" * (cast_expression "(undefined **)((int)pppuVar7 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0xc)" ( (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" * (cast_expression "(int **)((int)pppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -0x10)" ( (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar6 + 0x2c);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 0x2c)" identifier = (pointer_expression "*(code **)(iVar6 + 0x2c)" * (cast_expression "(code **)(iVar6 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x2c)" ( (binary_expression "iVar6 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -0x14)" ( (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(char **)(param_1 + 8) = local_30;" (assignment_expression "*(char **)(param_1 + 8) = local_30" (pointer_expression "*(char **)(param_1 + 8)" * (cast_expression "(char **)(param_1 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x14) = local_38;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = local_38" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(param_1 + 0x1c) = local_34;" (assignment_expression "*(undefined ***)(param_1 + 0x1c) = local_34" (pointer_expression "*(undefined ***)(param_1 + 0x1c)" * (cast_expression "(undefined ***)(param_1 + 0x1c)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x124) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x124) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x124)" * (cast_expression "(undefined1 *)(param_1 + 0x124)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }" if (parenthesized_expression "(local_20[0] != &DAT_0030af6c)" ( (binary_expression "local_20[0] != &DAT_0030af6c" (subscript_expression "local_20[0]" identifier [ number_literal ]) != (pointer_expression "&DAT_0030af6c" & identifier)) )) (compound_statement "{\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }" { (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001d2f90();" (call_expression "FUN_001d2f90()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }" if (parenthesized_expression "(local_24 != &DAT_0030af6c)" ( (binary_expression "local_24 != &DAT_0030af6c" identifier != (pointer_expression "&DAT_0030af6c" & identifier)) )) (compound_statement "{\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }" { (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001d2f90();" (call_expression "FUN_001d2f90()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }" if (parenthesized_expression "((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc)" ( (binary_expression "(undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc" (cast_expression "(undefined *)(local_28 + -0xc)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_28 + -0xc)" ( (binary_expression "local_28 + -0xc" identifier + number_literal) ))) != identifier) )) (compound_statement "{\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }" { (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001d2f40();" (call_expression "FUN_001d2f40()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -4)" * (cast_expression "(undefined1 **)((int)pppuVar7 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_001d64fd" & identifier)) ;) (expression_statement "FUN_00180130();" (call_expression "FUN_00180130()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -4)" * (cast_expression "(undefined1 **)((int)pppuVar7 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar7 + -4)" ( (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_001d65d9" & identifier)) ;) (expression_statement "FUN_00180130();" (call_expression "FUN_00180130()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) 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 + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) - LIT) ))) < LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_001d61d0(int param_1,undefined4 param_2)\n\n{\n  code *pcVar1;\n  uint uVar2;\n  bool bVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined ***pppuVar7;\n  int aiStackY_5c [4];\n  undefined1 auStack_40 [4];\n  undefined **local_3c;\n  undefined4 local_38;\n  undefined **local_34;\n  char *local_30;\n  undefined1 local_2a;\n  undefined1 local_29;\n  int local_28;\n  undefined *local_24;\n  undefined *local_20 [4];\n  \n  piVar4 = (int *)FUN_001d6170(param_2);\n  if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {\n    local_34 = (undefined **)&local_28;\n                    \n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }\n  else {\n    local_34 = (undefined **)&local_28;\n                    \n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }\n  uVar5 = *(undefined4 *)(local_28 + -0xc);\n  *(undefined4 *)(param_1 + 0xc) = uVar5;\n  *(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;\n                    \n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;\n  local_30 = (char *)FUN_0017eb70();\n  *(undefined4 *)((int)pppuVar7 + -4) = 0;\n  *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);\n  *(char **)((int)pppuVar7 + -0xc) = local_30;\n  *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;\n  FUN_001b7540();\n  bVar3 = false;\n  if (*(int *)(param_1 + 0xc) != 0) {\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }\n  *(bool *)(param_1 + 0x10) = bVar3;\n  pcVar1 = *(code **)(*piVar4 + 0x14);\n  if (pcVar1 == (code *)PTR_FUN_00301bb4) {\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }\n  else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }\n  uVar2 = *(uint *)(local_24 + -0xc);\n  *(uint *)(param_1 + 0x18) = uVar2;\n  if (uVar2 < 0x20000000) {\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    \n                    \n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }\n                    \n                    \n  *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;\n  FUN_00180130();\n}" (primitive_type "void") (function_declarator "FUN_001d61d0(int param_1,undefined4 param_2)" (identifier "FUN_001d61d0") (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") (identifier "param_2")) () ")"))) (compound_statement "{\n  code *pcVar1;\n  uint uVar2;\n  bool bVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined ***pppuVar7;\n  int aiStackY_5c [4];\n  undefined1 auStack_40 [4];\n  undefined **local_3c;\n  undefined4 local_38;\n  undefined **local_34;\n  char *local_30;\n  undefined1 local_2a;\n  undefined1 local_29;\n  int local_28;\n  undefined *local_24;\n  undefined *local_20 [4];\n  \n  piVar4 = (int *)FUN_001d6170(param_2);\n  if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {\n    local_34 = (undefined **)&local_28;\n                    \n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }\n  else {\n    local_34 = (undefined **)&local_28;\n                    \n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }\n  uVar5 = *(undefined4 *)(local_28 + -0xc);\n  *(undefined4 *)(param_1 + 0xc) = uVar5;\n  *(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;\n                    \n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;\n  local_30 = (char *)FUN_0017eb70();\n  *(undefined4 *)((int)pppuVar7 + -4) = 0;\n  *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);\n  *(char **)((int)pppuVar7 + -0xc) = local_30;\n  *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;\n  FUN_001b7540();\n  bVar3 = false;\n  if (*(int *)(param_1 + 0xc) != 0) {\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }\n  *(bool *)(param_1 + 0x10) = bVar3;\n  pcVar1 = *(code **)(*piVar4 + 0x14);\n  if (pcVar1 == (code *)PTR_FUN_00301bb4) {\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }\n  else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }\n  uVar2 = *(uint *)(local_24 + -0xc);\n  *(uint *)(param_1 + 0x18) = uVar2;\n  if (uVar2 < 0x20000000) {\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    \n                    \n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }\n                    \n                    \n  *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;\n  FUN_00180130();\n}" ({ "{") (declaration "code *pcVar1;" (type_identifier "code") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined ***pppuVar7;" (type_identifier "undefined") (pointer_declarator "***pppuVar7" (* "*") (pointer_declarator "**pppuVar7" (* "*") (pointer_declarator "*pppuVar7" (* "*") (identifier "pppuVar7")))) (; ";")) (declaration "int aiStackY_5c [4];" (primitive_type "int") (array_declarator "aiStackY_5c [4]" (identifier "aiStackY_5c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_40 [4];" (type_identifier "undefined1") (array_declarator "auStack_40 [4]" (identifier "auStack_40") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined **local_3c;" (type_identifier "undefined") (pointer_declarator "**local_3c" (* "*") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c"))) (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined **local_34;" (type_identifier "undefined") (pointer_declarator "**local_34" (* "*") (pointer_declarator "*local_34" (* "*") (identifier "local_34"))) (; ";")) (declaration "char *local_30;" (primitive_type "char") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "undefined1 local_2a;" (type_identifier "undefined1") (identifier "local_2a") (; ";")) (declaration "undefined1 local_29;" (type_identifier "undefined1") (identifier "local_29") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "undefined *local_24;" (type_identifier "undefined") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "undefined *local_20 [4];" (type_identifier "undefined") (pointer_declarator "*local_20 [4]" (* "*") (array_declarator "local_20 [4]" (identifier "local_20") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "piVar4 = (int *)FUN_001d6170(param_2);" (assignment_expression "piVar4 = (int *)FUN_001d6170(param_2)" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_001d6170(param_2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001d6170(param_2)" (identifier "FUN_001d6170") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (if_statement "if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {\n    local_34 = (undefined **)&local_28;\n                    \n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }\n  else {\n    local_34 = (undefined **)&local_28;\n                    \n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }" (if "if") (parenthesized_expression "(*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c)" (( "(") (binary_expression "*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c" (pointer_expression "*(code **)(*piVar4 + 0x10)" (* "*") (cast_expression "(code **)(*piVar4 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x10)" (( "(") (binary_expression "*piVar4 + 0x10" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (cast_expression "(code *)PTR_FUN_00301c1c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00301c1c"))) () ")")) (compound_statement "{\n    local_34 = (undefined **)&local_28;\n                    \n    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);\n    pppuVar7 = &local_3c;\n  }" ({ "{") (expression_statement "local_34 = (undefined **)&local_28;" (assignment_expression "local_34 = (undefined **)&local_28" (identifier "local_34") (= "=") (cast_expression "(undefined **)&local_28" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_28" (& "&") (identifier "local_28")))) (; ";")) (expression_statement "FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);" (call_expression "FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20)" (identifier "FUN_001ba720") (argument_list "(local_34,*(undefined4 *)(piVar4[2] + 8),local_20)" (( "(") (identifier "local_34") (, ",") (pointer_expression "*(undefined4 *)(piVar4[2] + 8)" (* "*") (cast_expression "(undefined4 *)(piVar4[2] + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[2] + 8)" (( "(") (binary_expression "piVar4[2] + 8" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "local_20") () ")"))) (; ";")) (expression_statement "pppuVar7 = &local_3c;" (assignment_expression "pppuVar7 = &local_3c" (identifier "pppuVar7") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (} "}")) (else_clause "else {\n    local_34 = (undefined **)&local_28;\n                    \n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }" (else "else") (compound_statement "{\n    local_34 = (undefined **)&local_28;\n                    \n    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);\n    pppuVar7 = (undefined ***)auStack_40;\n  }" ({ "{") (expression_statement "local_34 = (undefined **)&local_28;" (assignment_expression "local_34 = (undefined **)&local_28" (identifier "local_34") (= "=") (cast_expression "(undefined **)&local_28" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_28" (& "&") (identifier "local_28")))) (; ";")) (expression_statement "(**(code **)(*piVar4 + 0x10))(local_34,piVar4);" (call_expression "(**(code **)(*piVar4 + 0x10))(local_34,piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0x10))" (( "(") (pointer_expression "**(code **)(*piVar4 + 0x10)" (* "*") (pointer_expression "*(code **)(*piVar4 + 0x10)" (* "*") (cast_expression "(code **)(*piVar4 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x10)" (( "(") (binary_expression "*piVar4 + 0x10" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(local_34,piVar4)" (( "(") (identifier "local_34") (, ",") (identifier "piVar4") () ")"))) (; ";")) (expression_statement "pppuVar7 = (undefined ***)auStack_40;" (assignment_expression "pppuVar7 = (undefined ***)auStack_40" (identifier "pppuVar7") (= "=") (cast_expression "(undefined ***)auStack_40" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_40"))) (; ";")) (} "}")))) (expression_statement "uVar5 = *(undefined4 *)(local_28 + -0xc);" (assignment_expression "uVar5 = *(undefined4 *)(local_28 + -0xc)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(local_28 + -0xc)" (* "*") (cast_expression "(undefined4 *)(local_28 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_28 + -0xc)" (( "(") (binary_expression "local_28 + -0xc" (identifier "local_28") (+ "+") (number_literal "-0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0xc) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0xc) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x10) = uVar5" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d6237")) (; ";")) (expression_statement "local_30 = (char *)FUN_0017eb70();" (assignment_expression "local_30 = (char *)FUN_0017eb70()" (identifier "local_30") (= "=") (cast_expression "(char *)FUN_0017eb70()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0017eb70()" (identifier "FUN_0017eb70") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -8)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -8)" (( "(") (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(char **)((int)pppuVar7 + -0xc) = local_30;" (assignment_expression "*(char **)((int)pppuVar7 + -0xc) = local_30" (pointer_expression "*(char **)((int)pppuVar7 + -0xc)" (* "*") (cast_expression "(char **)((int)pppuVar7 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -0xc)" (( "(") (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d624e")) (; ";")) (expression_statement "FUN_001b7540();" (call_expression "FUN_001b7540()" (identifier "FUN_001b7540") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (if_statement "if (*(int *)(param_1 + 0xc) != 0) {\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) != 0" (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")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    bVar3 = (byte)(*local_30 - 1U) < 0x7e;\n  }" ({ "{") (expression_statement "bVar3 = (byte)(*local_30 - 1U) < 0x7e;" (assignment_expression "bVar3 = (byte)(*local_30 - 1U) < 0x7e" (identifier "bVar3") (= "=") (binary_expression "(byte)(*local_30 - 1U) < 0x7e" (call_expression "(byte)(*local_30 - 1U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*local_30 - 1U)" (( "(") (binary_expression "*local_30 - 1U" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (- "-") (number_literal "1U")) () ")"))) (< "<") (number_literal "0x7e"))) (; ";")) (} "}"))) (expression_statement "*(bool *)(param_1 + 0x10) = bVar3;" (assignment_expression "*(bool *)(param_1 + 0x10) = bVar3" (pointer_expression "*(bool *)(param_1 + 0x10)" (* "*") (cast_expression "(bool *)(param_1 + 0x10)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "bVar3")) (; ";")) (expression_statement "pcVar1 = *(code **)(*piVar4 + 0x14);" (assignment_expression "pcVar1 = *(code **)(*piVar4 + 0x14)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(*piVar4 + 0x14)" (* "*") (cast_expression "(code **)(*piVar4 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x14)" (( "(") (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301bb4) {\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }\n  else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }" (if "if") (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301bb4)" (( "(") (binary_expression "pcVar1 == (code *)PTR_FUN_00301bb4" (identifier "pcVar1") (== "==") (cast_expression "(code *)PTR_FUN_00301bb4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00301bb4"))) () ")")) (compound_statement "{\n    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;\n    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);\n    local_34 = &local_24;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;\n    FUN_00205b00();\n  }" ({ "{") (expression_statement "*(undefined1 **)((int)pppuVar7 + -8) = &local_2a;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -8) = &local_2a" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -8)" (* "*") (cast_expression "(undefined1 **)((int)pppuVar7 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -8)" (( "(") (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_2a" (& "&") (identifier "local_2a"))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0xc)" (( "(") (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(piVar4[2] + 0x14)" (* "*") (cast_expression "(undefined4 *)(piVar4[2] + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[2] + 0x14)" (( "(") (binary_expression "piVar4[2] + 0x14" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_34 = &local_24;" (assignment_expression "local_34 = &local_24" (identifier "local_34") (= "=") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (; ";")) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d6293")) (; ";")) (expression_statement "FUN_00205b00();" (call_expression "FUN_00205b00()" (identifier "FUN_00205b00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }" (else "else") (compound_statement "{\n    local_34 = &local_24;\n    *(int **)((int)pppuVar7 + -0xc) = piVar4;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;\n    (*pcVar1)();\n    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n  }" ({ "{") (expression_statement "local_34 = &local_24;" (assignment_expression "local_34 = &local_24" (identifier "local_34") (= "=") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (; ";")) (expression_statement "*(int **)((int)pppuVar7 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0xc) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0xc)" (* "*") (cast_expression "(int **)((int)pppuVar7 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -0xc)" (( "(") (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d6465")) (; ";")) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppuVar7 = (undefined ***)((int)pppuVar7 + -4);" (assignment_expression "pppuVar7 = (undefined ***)((int)pppuVar7 + -4)" (identifier "pppuVar7") (= "=") (cast_expression "(undefined ***)((int)pppuVar7 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar2 = *(uint *)(local_24 + -0xc);" (assignment_expression "uVar2 = *(uint *)(local_24 + -0xc)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(local_24 + -0xc)" (* "*") (cast_expression "(uint *)(local_24 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_24 + -0xc)" (( "(") (binary_expression "local_24 + -0xc" (identifier "local_24") (+ "+") (number_literal "-0xc")) () ")"))))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x18) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x18) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x18)" (* "*") (cast_expression "(uint *)(param_1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (uVar2 < 0x20000000) {\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    \n                    \n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }" (if "if") (parenthesized_expression "(uVar2 < 0x20000000)" (( "(") (binary_expression "uVar2 < 0x20000000" (identifier "uVar2") (< "<") (number_literal "0x20000000")) () ")")) (compound_statement "{\n    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;\n    local_38 = FUN_0017eb70();\n    *(undefined4 *)((int)pppuVar7 + -4) = 0;\n    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;\n    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;\n                    \n    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;\n    FUN_00202840();\n    pcVar1 = *(code **)(*piVar4 + 0x18);\n    if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }\n    uVar2 = *(uint *)(local_20[0] + -0xc);\n    *(uint *)(param_1 + 0x20) = uVar2;\n    if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }\n                    \n                    \n    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;\n    FUN_00180130();\n  }" ({ "{") (expression_statement "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;" (assignment_expression "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2" (pointer_expression "*(uint *)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(uint *)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "uVar2 << 2" (identifier "uVar2") (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d62bb")) (; ";")) (expression_statement "local_38 = FUN_0017eb70();" (assignment_expression "local_38 = FUN_0017eb70()" (identifier "local_38") (= "=") (call_expression "FUN_0017eb70()" (identifier "FUN_0017eb70") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -8)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -8)" (( "(") (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0xc) = local_38;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0xc) = local_38" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0xc)" (( "(") (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_38")) (; ";")) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d62d2")) (; ";")) (expression_statement "FUN_00202840();" (call_expression "FUN_00202840()" (identifier "FUN_00202840") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar1 = *(code **)(*piVar4 + 0x18);" (assignment_expression "pcVar1 = *(code **)(*piVar4 + 0x18)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(*piVar4 + 0x18)" (* "*") (cast_expression "(code **)(*piVar4 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x18)" (( "(") (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301c5c) {\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }\n    else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }" (if "if") (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301c5c)" (( "(") (binary_expression "pcVar1 == (code *)PTR_FUN_00301c5c" (identifier "pcVar1") (== "==") (cast_expression "(code *)PTR_FUN_00301c5c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00301c5c"))) () ")")) (compound_statement "{\n      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;\n      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);\n      local_3c = local_20;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;\n      FUN_00205b00();\n    }" ({ "{") (expression_statement "*(undefined1 **)((int)pppuVar7 + -8) = &local_29;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -8) = &local_29" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -8)" (* "*") (cast_expression "(undefined1 **)((int)pppuVar7 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -8)" (( "(") (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_29" (& "&") (identifier "local_29"))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0xc)" (( "(") (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(piVar4[2] + 0x1c)" (* "*") (cast_expression "(undefined4 *)(piVar4[2] + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[2] + 0x1c)" (( "(") (binary_expression "piVar4[2] + 0x1c" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "local_3c = local_20;" (assignment_expression "local_3c = local_20" (identifier "local_3c") (= "=") (identifier "local_20")) (; ";")) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d62ff")) (; ";")) (expression_statement "FUN_00205b00();" (call_expression "FUN_00205b00()" (identifier "FUN_00205b00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }" (else "else") (compound_statement "{\n      local_3c = local_20;\n      *(int **)((int)pppuVar7 + -0xc) = piVar4;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;\n      (*pcVar1)();\n      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);\n    }" ({ "{") (expression_statement "local_3c = local_20;" (assignment_expression "local_3c = local_20" (identifier "local_3c") (= "=") (identifier "local_20")) (; ";")) (expression_statement "*(int **)((int)pppuVar7 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0xc) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0xc)" (* "*") (cast_expression "(int **)((int)pppuVar7 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -0xc)" (( "(") (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d647d")) (; ";")) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppuVar7 = (undefined ***)((int)pppuVar7 + -4);" (assignment_expression "pppuVar7 = (undefined ***)((int)pppuVar7 + -4)" (identifier "pppuVar7") (= "=") (cast_expression "(undefined ***)((int)pppuVar7 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar2 = *(uint *)(local_20[0] + -0xc);" (assignment_expression "uVar2 = *(uint *)(local_20[0] + -0xc)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(local_20[0] + -0xc)" (* "*") (cast_expression "(uint *)(local_20[0] + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20[0] + -0xc)" (( "(") (binary_expression "local_20[0] + -0xc" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0xc")) () ")"))))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x20) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x20) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (uVar2 < 0x20000000) {\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }" (if "if") (parenthesized_expression "(uVar2 < 0x20000000)" (( "(") (binary_expression "uVar2 < 0x20000000" (identifier "uVar2") (< "<") (number_literal "0x20000000")) () ")")) (compound_statement "{\n      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;\n      local_34 = (undefined **)FUN_0017eb70();\n      *(undefined4 *)((int)pppuVar7 + -4) = 0;\n      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);\n      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;\n      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;\n                    \n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;\n      FUN_00202840();\n      iVar6 = *piVar4;\n      pcVar1 = *(code **)(iVar6 + 8);\n      if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }\n      *(undefined4 *)(param_1 + 0x24) = uVar5;\n      pcVar1 = *(code **)(iVar6 + 0xc);\n      if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }\n      *(undefined4 *)(param_1 + 0x28) = uVar5;\n      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;\n      piVar4 = (int *)FUN_001d5bc0();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;\n      (*pcVar1)();\n      iVar6 = *piVar4;\n      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;\n      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;\n      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;\n      *(int **)((int)pppuVar7 + -0x10) = piVar4;\n      pcVar1 = *(code **)(iVar6 + 0x2c);\n      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;\n      (*pcVar1)();\n      *(char **)(param_1 + 8) = local_30;\n      *(undefined4 *)(param_1 + 0x14) = local_38;\n      *(undefined ***)(param_1 + 0x1c) = local_34;\n      *(undefined1 *)(param_1 + 0x124) = 1;\n      if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }\n      if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }\n      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }\n      return;\n    }" ({ "{") (expression_statement "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;" (assignment_expression "*(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2" (pointer_expression "*(uint *)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(uint *)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "uVar2 << 2" (identifier "uVar2") (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d6327")) (; ";")) (expression_statement "local_34 = (undefined **)FUN_0017eb70();" (assignment_expression "local_34 = (undefined **)FUN_0017eb70()" (identifier "local_34") (= "=") (cast_expression "(undefined **)FUN_0017eb70()" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_0017eb70()" (identifier "FUN_0017eb70") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20)" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -8)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -8)" (( "(") (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(undefined ***)((int)pppuVar7 + -0xc) = local_34;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0xc) = local_34" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0xc)" (* "*") (cast_expression "(undefined ***)((int)pppuVar7 + -0xc)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar7 + -0xc)" (( "(") (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c;" (assignment_expression "*(undefined ***)((int)pppuVar7 + -0x10) = local_3c" (pointer_expression "*(undefined ***)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(undefined ***)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d6340")) (; ";")) (expression_statement "FUN_00202840();" (call_expression "FUN_00202840()" (identifier "FUN_00202840") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" (identifier "iVar6") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "pcVar1 = *(code **)(iVar6 + 8);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 8)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(iVar6 + 8)" (* "*") (cast_expression "(code **)(iVar6 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301cf4) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }" (if "if") (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301cf4)" (( "(") (binary_expression "pcVar1 == (code *)PTR_FUN_00301cf4" (identifier "pcVar1") (== "==") (cast_expression "(code *)PTR_FUN_00301cf4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00301cf4"))) () ")")) (compound_statement "{\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);\n      }" ({ "{") (expression_statement "uVar5 = *(undefined4 *)(piVar4[2] + 0x24);" (assignment_expression "uVar5 = *(undefined4 *)(piVar4[2] + 0x24)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(piVar4[2] + 0x24)" (* "*") (cast_expression "(undefined4 *)(piVar4[2] + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[2] + 0x24)" (( "(") (binary_expression "piVar4[2] + 0x24" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }" (else "else") (compound_statement "{\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;\n        uVar5 = (*pcVar1)();\n        iVar6 = *piVar4;\n      }" ({ "{") (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(int **)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d64a6")) (; ";")) (expression_statement "uVar5 = (*pcVar1)();" (assignment_expression "uVar5 = (*pcVar1)()" (identifier "uVar5") (= "=") (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" (identifier "iVar6") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(param_1 + 0x24) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "pcVar1 = *(code **)(iVar6 + 0xc);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 0xc)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(iVar6 + 0xc)" (* "*") (cast_expression "(code **)(iVar6 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar1 == (code *)PTR_FUN_00301e58) {\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }\n      else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }" (if "if") (parenthesized_expression "(pcVar1 == (code *)PTR_FUN_00301e58)" (( "(") (binary_expression "pcVar1 == (code *)PTR_FUN_00301e58" (identifier "pcVar1") (== "==") (cast_expression "(code *)PTR_FUN_00301e58" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00301e58"))) () ")")) (compound_statement "{\n        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);\n      }" ({ "{") (expression_statement "uVar5 = *(undefined4 *)(piVar4[2] + 0x28);" (assignment_expression "uVar5 = *(undefined4 *)(piVar4[2] + 0x28)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(piVar4[2] + 0x28)" (* "*") (cast_expression "(undefined4 *)(piVar4[2] + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[2] + 0x28)" (( "(") (binary_expression "piVar4[2] + 0x28" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }" (else "else") (compound_statement "{\n        *(int **)((int)pppuVar7 + -0x10) = piVar4;\n                    \n        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;\n        uVar5 = (*pcVar1)();\n      }" ({ "{") (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(int **)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d648e")) (; ";")) (expression_statement "uVar5 = (*pcVar1)();" (assignment_expression "uVar5 = (*pcVar1)()" (identifier "uVar5") (= "=") (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(param_1 + 0x28) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x10) = param_2" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d6388")) (; ";")) (expression_statement "piVar4 = (int *)FUN_001d5bc0();" (assignment_expression "piVar4 = (int *)FUN_001d5bc0()" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_001d5bc0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001d5bc0()" (identifier "FUN_001d5bc0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" (identifier "iVar6") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "*(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;" (assignment_expression "*(int *)((int)pppuVar7 + -4) = param_1 + 0x2c" (pointer_expression "*(int *)((int)pppuVar7 + -4)" (* "*") (cast_expression "(int *)((int)pppuVar7 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c"))) (; ";")) (expression_statement "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;" (assignment_expression "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24" (pointer_expression "*(undefined **)((int)pppuVar7 + -8)" (* "*") (cast_expression "(undefined **)((int)pppuVar7 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -8)" (( "(") (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24" (identifier "PTR_s___xX0123456789abcdef0123456789AB_003023ac") (+ "+") (number_literal "0x24"))) (; ";")) (expression_statement "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;" (assignment_expression "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac" (pointer_expression "*(undefined **)((int)pppuVar7 + -0xc)" (* "*") (cast_expression "(undefined **)((int)pppuVar7 + -0xc)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -0xc)" (( "(") (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "PTR_s___xX0123456789abcdef0123456789AB_003023ac")) (; ";")) (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(int **)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "pcVar1 = *(code **)(iVar6 + 0x2c);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 0x2c)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(iVar6 + 0x2c)" (* "*") (cast_expression "(code **)(iVar6 + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x2c)" (( "(") (binary_expression "iVar6 + 0x2c" (identifier "iVar6") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d63a7")) (; ";")) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" (identifier "iVar6") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "*(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;" (assignment_expression "*(int *)((int)pppuVar7 + -4) = param_1 + 0xbc" (pointer_expression "*(int *)((int)pppuVar7 + -4)" (* "*") (cast_expression "(int *)((int)pppuVar7 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "param_1 + 0xbc" (identifier "param_1") (+ "+") (number_literal "0xbc"))) (; ";")) (expression_statement "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;" (assignment_expression "*(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a" (pointer_expression "*(undefined **)((int)pppuVar7 + -8)" (* "*") (cast_expression "(undefined **)((int)pppuVar7 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -8)" (( "(") (binary_expression "(int)pppuVar7 + -8" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a" (identifier "PTR_s___xX0123456789abcdefABCDEF_003023b0") (+ "+") (number_literal "0x1a"))) (; ";")) (expression_statement "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;" (assignment_expression "*(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0" (pointer_expression "*(undefined **)((int)pppuVar7 + -0xc)" (* "*") (cast_expression "(undefined **)((int)pppuVar7 + -0xc)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -0xc)" (( "(") (binary_expression "(int)pppuVar7 + -0xc" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "PTR_s___xX0123456789abcdefABCDEF_003023b0")) (; ";")) (expression_statement "*(int **)((int)pppuVar7 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)pppuVar7 + -0x10) = piVar4" (pointer_expression "*(int **)((int)pppuVar7 + -0x10)" (* "*") (cast_expression "(int **)((int)pppuVar7 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x10)" (( "(") (binary_expression "(int)pppuVar7 + -0x10" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "pcVar1 = *(code **)(iVar6 + 0x2c);" (assignment_expression "pcVar1 = *(code **)(iVar6 + 0x2c)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(iVar6 + 0x2c)" (* "*") (cast_expression "(code **)(iVar6 + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x2c)" (( "(") (binary_expression "iVar6 + 0x2c" (identifier "iVar6") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -0x14)" (( "(") (binary_expression "(int)pppuVar7 + -0x14" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d63c7")) (; ";")) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(char **)(param_1 + 8) = local_30;" (assignment_expression "*(char **)(param_1 + 8) = local_30" (pointer_expression "*(char **)(param_1 + 8)" (* "*") (cast_expression "(char **)(param_1 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x14) = local_38;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = local_38" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "local_38")) (; ";")) (expression_statement "*(undefined ***)(param_1 + 0x1c) = local_34;" (assignment_expression "*(undefined ***)(param_1 + 0x1c) = local_34" (pointer_expression "*(undefined ***)(param_1 + 0x1c)" (* "*") (cast_expression "(undefined ***)(param_1 + 0x1c)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x124) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x124) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x124)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x124)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (local_20[0] != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }" (if "if") (parenthesized_expression "(local_20[0] != &DAT_0030af6c)" (( "(") (binary_expression "local_20[0] != &DAT_0030af6c" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (!= "!=") (pointer_expression "&DAT_0030af6c" (& "&") (identifier "DAT_0030af6c"))) () ")")) (compound_statement "{\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;\n        FUN_001d2f90();\n      }" ({ "{") (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x1d64c8")) (; ";")) (expression_statement "FUN_001d2f90();" (call_expression "FUN_001d2f90()" (identifier "FUN_001d2f90") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_24 != &DAT_0030af6c) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }" (if "if") (parenthesized_expression "(local_24 != &DAT_0030af6c)" (( "(") (binary_expression "local_24 != &DAT_0030af6c" (identifier "local_24") (!= "!=") (pointer_expression "&DAT_0030af6c" (& "&") (identifier "DAT_0030af6c"))) () ")")) (compound_statement "{\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;\n        FUN_001d2f90();\n      }" ({ "{") (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x1d64d8")) (; ";")) (expression_statement "FUN_001d2f90();" (call_expression "FUN_001d2f90()" (identifier "FUN_001d2f90") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }" (if "if") (parenthesized_expression "((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc)" (( "(") (binary_expression "(undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc" (cast_expression "(undefined *)(local_28 + -0xc)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_28 + -0xc)" (( "(") (binary_expression "local_28 + -0xc" (identifier "local_28") (+ "+") (number_literal "-0xc")) () ")"))) (!= "!=") (identifier "PTR_DAT_00301cdc")) () ")")) (compound_statement "{\n        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;\n        FUN_001d2f40();\n      }" ({ "{") (expression_statement "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;" (assignment_expression "*(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8" (pointer_expression "*(undefined4 *)((int)pppuVar7 + -4)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar7 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x1d64b8")) (; ";")) (expression_statement "FUN_001d2f40();" (call_expression "FUN_001d2f40()" (identifier "FUN_001d2f40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -4)" (* "*") (cast_expression "(undefined1 **)((int)pppuVar7 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "&LAB_001d64fd" (& "&") (identifier "LAB_001d64fd"))) (; ";")) (expression_statement "FUN_00180130();" (call_expression "FUN_00180130()" (identifier "FUN_00180130") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;" (assignment_expression "*(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9" (pointer_expression "*(undefined1 **)((int)pppuVar7 + -4)" (* "*") (cast_expression "(undefined1 **)((int)pppuVar7 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar7 + -4)" (( "(") (binary_expression "(int)pppuVar7 + -4" (cast_expression "(int)pppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "&LAB_001d65d9" (& "&") (identifier "LAB_001d65d9"))) (; ";")) (expression_statement "FUN_00180130();" (call_expression "FUN_00180130()" (identifier "FUN_00180130") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* std::__numpunct_cache<wchar_t>::_M_cache(std::locale const&) */

void __thiscall
var_4::type_1<var_1>::function_1(type_1<var_1> *var_7,type_2 *param_1)

{
  type_3 *var_11;
  type_4 var_14;
  type_1<var_1> var_2;
  type_5 *var_5;
  type_6 *pcVar5;
  type_7 uVar6;
  int var_15;
  int **ppiVar8;
  type_4 auStackY_5c [4];
  type_8 auStack_40 [4];
  int *local_3c;
  void *local_38;
  type_9 *local_34;
  char *local_30;
  type_8 local_2a;
  type_8 local_29;
  int var_6;
  int var_13;
  int local_20 [4];
  
  var_5 = var_3<var_4::type_5<var_1>>(param_1);
  if (*(type_3 **)(*(int *)var_5 + 0x10) == (type_3 *)PTR_do_grouping_00301c1c) {
    local_34 = (type_9 *)&var_6;
                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */
    std::string::type_9(local_34,*(char **)(*(int *)(var_5 + 8) + 8),(type_10 *)local_20);
    ppiVar8 = &local_3c;
  }
  else {
    local_34 = (type_9 *)&var_6;
                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */
    (**(type_3 **)(*(int *)var_5 + 0x10))(local_34,var_5);
    ppiVar8 = (int **)auStack_40;
  }
  uVar6 = *(type_7 *)(var_6 + -0xc);
  *(type_7 *)(var_7 + 0xc) = uVar6;
  *(type_7 *)((int)ppiVar8 + -0x10) = uVar6;
                    /* try { // try from 001d6232 to 001d6236 has its CatchHandler @ 001d65e3 */
  *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d6237;
  local_30 = (char *)var_8(*(type_4 *)((int)ppiVar8 + -0x10));
  *(type_7 *)((int)ppiVar8 + -4) = 0;
  *(type_7 *)((int)ppiVar8 + -8) = *(type_7 *)(var_7 + 0xc);
  *(char **)((int)ppiVar8 + -0xc) = local_30;
  *(type_9 **)((int)ppiVar8 + -0x10) = local_34;
                    /* try { // try from 001d6249 to 001d624d has its CatchHandler @ 001d65c7 */
  *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d624e;
  std::string::var_9(*(type_9 **)((int)ppiVar8 + -0x10),*(char **)((int)ppiVar8 + -0xc),
                    *(type_4 *)((int)ppiVar8 + -8),*(type_4 *)((int)ppiVar8 + -4));
  var_2 = (type_1<var_1>)0x0;
  if (*(int *)(var_7 + 0xc) != 0) {
    var_2 = (type_1<var_1>var_10)((byte)(*local_30 - 1U) < 0x7e);
  }
  var_7[0x10] = var_2;
  var_11 = *(type_3 **)(*(int *)var_5 + 0x14);
  if (var_11 == (type_3 *)PTR_do_truename_00301bb4) {
    *(type_8 **)((int)ppiVar8 + -8) = &local_2a;
    *(type_7 *)((int)ppiVar8 + -0xc) = *(type_7 *)(*(int *)(var_5 + 8) + 0x14);
    local_34 = (type_9 *)&var_13;
    *(type_9 **)((int)ppiVar8 + -0x10) = local_34;
                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */
    *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d6293;
    std::wstring::var_12
              (*(var_12 **)((int)ppiVar8 + -0x10),*(var_1 **)((int)ppiVar8 + -0xc),
               *(type_10 **)((int)ppiVar8 + -8));
  }
  else {
    local_34 = (type_9 *)&var_13;
    *(type_5 **)((int)ppiVar8 + -0xc) = var_5;
    *(type_9 **)((int)ppiVar8 + -0x10) = local_34;
                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */
    *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d6465;
    (*var_11)();
    ppiVar8 = (int **)((int)ppiVar8 + -4);
  }
  var_14 = *(type_4 *)(var_13 + -0xc);
  *(type_4 *)(var_7 + 0x18) = var_14;
  if (var_14 < 0x20000000) {
    *(type_4 *)((int)ppiVar8 + -0x10) = var_14 << 2;
                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */
    *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d62bb;
    local_38 = var_8(*(type_4 *)((int)ppiVar8 + -0x10));
    *(type_7 *)((int)ppiVar8 + -4) = 0;
    *(type_7 *)((int)ppiVar8 + -8) = *(type_7 *)(var_7 + 0x18);
    *(void **)((int)ppiVar8 + -0xc) = local_38;
    *(type_9 **)((int)ppiVar8 + -0x10) = local_34;
                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */
    *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d62d2;
    std::wstring::var_9(*(var_12 **)((int)ppiVar8 + -0x10),*(var_1 **)((int)ppiVar8 + -0xc),
                       *(type_4 *)((int)ppiVar8 + -8),*(type_4 *)((int)ppiVar8 + -4));
    var_11 = *(type_3 **)(*(int *)var_5 + 0x18);
    if (var_11 == (type_3 *)PTR_do_falsename_00301c5c) {
      *(type_8 **)((int)ppiVar8 + -8) = &local_29;
      *(type_7 *)((int)ppiVar8 + -0xc) = *(type_7 *)(*(int *)(var_5 + 8) + 0x1c);
      local_3c = local_20;
      *(int **)((int)ppiVar8 + -0x10) = local_3c;
                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */
      *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d62ff;
      std::wstring::var_12
                (*(var_12 **)((int)ppiVar8 + -0x10),*(var_1 **)((int)ppiVar8 + -0xc),
                 *(type_10 **)((int)ppiVar8 + -8));
    }
    else {
      local_3c = local_20;
      *(type_5 **)((int)ppiVar8 + -0xc) = var_5;
      *(int **)((int)ppiVar8 + -0x10) = local_3c;
                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */
      *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d647d;
      (*var_11)();
      ppiVar8 = (int **)((int)ppiVar8 + -4);
    }
    var_14 = *(type_4 *)(local_20[0] + -0xc);
    *(type_4 *)(var_7 + 0x20) = var_14;
    if (var_14 < 0x20000000) {
      *(type_4 *)((int)ppiVar8 + -0x10) = var_14 << 2;
                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */
      *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d6327;
      local_34 = (type_9 *)var_8(*(type_4 *)((int)ppiVar8 + -0x10));
      *(type_7 *)((int)ppiVar8 + -4) = 0;
      *(type_7 *)((int)ppiVar8 + -8) = *(type_7 *)(var_7 + 0x20);
      *(type_9 **)((int)ppiVar8 + -0xc) = local_34;
      *(int **)((int)ppiVar8 + -0x10) = local_3c;
                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */
      *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d6340;
      std::wstring::var_9(*(var_12 **)((int)ppiVar8 + -0x10),*(var_1 **)((int)ppiVar8 + -0xc),
                         *(type_4 *)((int)ppiVar8 + -8),*(type_4 *)((int)ppiVar8 + -4));
      var_15 = *(int *)var_5;
      var_11 = *(type_3 **)(var_15 + 8);
      if (var_11 == (type_3 *)PTR_do_decimal_point_00301cf4) {
        uVar6 = *(type_7 *)(*(int *)(var_5 + 8) + 0x24);
      }
      else {
        *(type_5 **)((int)ppiVar8 + -0x10) = var_5;
        *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d64a6;
        uVar6 = (*var_11)();
        var_15 = *(int *)var_5;
      }
      *(type_7 *)(var_7 + 0x24) = uVar6;
      var_11 = *(type_3 **)(var_15 + 0xc);
      if (var_11 == (type_3 *)PTR_do_thousands_sep_00301e58) {
        uVar6 = *(type_7 *)(*(int *)(var_5 + 8) + 0x28);
      }
      else {
        *(type_5 **)((int)ppiVar8 + -0x10) = var_5;
                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */
        *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d648e;
        uVar6 = (*var_11)();
      }
      *(type_7 *)(var_7 + 0x28) = uVar6;
      *(type_2 **)((int)ppiVar8 + -0x10) = param_1;
      *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d6388;
      pcVar5 = var_3<var_4::type_6<var_1>>(*(type_2 **)((int)ppiVar8 + -0x10));
      var_15 = *(int *)pcVar5;
      *(type_1<var_1> **var_10)((int)ppiVar8 + -4) = var_7 + 0x2c;
      *(type_11 **)((int)ppiVar8 + -8) = __num_base::_S_atoms_out + 0x24;
      *(type_11 **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_out;
      *(type_6 **)((int)ppiVar8 + -0x10) = pcVar5;
      var_11 = *(type_3 **)(var_15 + 0x2c);
      *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d63a7;
      (*var_11)();
      var_15 = *(int *)pcVar5;
      *(type_1<var_1> **var_10)((int)ppiVar8 + -4) = var_7 + 0xbc;
      *(type_11 **)((int)ppiVar8 + -8) = __num_base::_S_atoms_in + 0x1a;
      *(type_11 **)((int)ppiVar8 + -0xc) = __num_base::_S_atoms_in;
      *(type_6 **)((int)ppiVar8 + -0x10) = pcVar5;
      var_11 = *(type_3 **)(var_15 + 0x2c);
      *(type_7 *)((int)ppiVar8 + -0x14) = 0x1d63c7;
      (*var_11)();
      *(char **)(var_7 + 8) = local_30;
      *(void **)(var_7 + 0x14) = local_38;
      *(type_9 **)(var_7 + 0x1c) = local_34;
      var_7[0x124] = (type_1<var_1>)0x1;
      if ((type_10 *)(local_20[0] + -0xc) !=
          (type_10 *)&var_4::var_12::_Rep::_S_empty_rep_storage) {
        *(type_7 *)((int)ppiVar8 + -4) = 0x1d64c8;
        std::wstring::_Rep::var_16((type_10 *)(local_20[0] + -0xc));
      }
      if ((type_10 *)(var_13 + -0xc) != (type_10 *)&var_4::var_12::_Rep::_S_empty_rep_storage)
      {
        *(type_7 *)((int)ppiVar8 + -4) = 0x1d64d8;
        std::wstring::_Rep::var_16((type_10 *)(var_13 + -0xc));
      }
      if ((type_10 *)(var_6 + -0xc) != (type_10 *)PTR__S_empty_rep_storage_00301cdc) {
        *(type_7 *)((int)ppiVar8 + -4) = 0x1d64b8;
        std::string::_Rep::var_16((type_10 *)(var_6 + -0xc));
      }
      return;
    }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */
    *(type_8 **)((int)ppiVar8 + -4) = &LAB_001d64fd;
    var_17();
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001d65d4 to 001d65d8 has its CatchHandler @ 001d65dd */
  *(type_8 **)((int)ppiVar8 + -4) = &LAB_001d65d9;
  var_17();
}


(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: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

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

void MASKED(int param_1,undefined4 param_2)

{
  code *pcVar1;
  uint uVar2;
  bool bVar3;
  int *piVar4;
  undefined4 uVar5;
  int iVar6;
  undefined ***pppuVar7;
  int aiStackY_5c [4];
  undefined1 auStack_40 [4];
  undefined **local_3c;
  undefined4 local_38;
  undefined **local_34;
  char *local_30;
  undefined1 local_2a;
  undefined1 local_29;
  int local_28;
  undefined *local_24;
  undefined *local_20 [4];
  
  piVar4 = (int *)FUN_001d6170(param_2);
  if (*(code **)(*piVar4 + 0x10) == (code *)PTR_FUN_00301c1c) {
    local_34 = (undefined **)&local_28;
                    /* try { // try from 001d6218 to 001d621c has its CatchHandler @ 001d65e1 */
    FUN_001ba720(local_34,*(undefined4 *)(piVar4[2] + 8),local_20);
    pppuVar7 = &local_3c;
  }
  else {
    local_34 = (undefined **)&local_28;
                    /* try { // try from 001d644b to 001d644c has its CatchHandler @ 001d65e1 */
    (**(code **)(*piVar4 + 0x10))(local_34,piVar4);
    pppuVar7 = (undefined ***)auStack_40;
  }
  uVar5 = *(undefined4 *)(local_28 + -0xc);
  *(undefined4 *)(param_1 + 0xc) = uVar5;
  *(undefined4 *)((int)pppuVar7 + -0x10) = uVar5;
                    /* try { // try from 001d6232 to 001d6236 has its CatchHandler @ 001d65e3 */
  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6237;
  local_30 = (char *)FUN_0017eb70();
  *(undefined4 *)((int)pppuVar7 + -4) = 0;
  *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0xc);
  *(char **)((int)pppuVar7 + -0xc) = local_30;
  *(undefined ***)((int)pppuVar7 + -0x10) = local_34;
                    /* try { // try from 001d6249 to 001d624d has its CatchHandler @ 001d65c7 */
  *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d624e;
  FUN_001b7540();
  bVar3 = false;
  if (*(int *)(param_1 + 0xc) != 0) {
    bVar3 = (byte)(*local_30 - 1U) < 0x7e;
  }
  *(bool *)(param_1 + 0x10) = bVar3;
  pcVar1 = *(code **)(*piVar4 + 0x14);
  if (pcVar1 == (code *)PTR_FUN_00301bb4) {
    *(undefined1 **)((int)pppuVar7 + -8) = &local_2a;
    *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x14);
    local_34 = &local_24;
    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;
                    /* try { // try from 001d628e to 001d6292 has its CatchHandler @ 001d64ef */
    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6293;
    FUN_00205b00();
  }
  else {
    local_34 = &local_24;
    *(int **)((int)pppuVar7 + -0xc) = piVar4;
    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;
                    /* try { // try from 001d6463 to 001d6464 has its CatchHandler @ 001d64dd */
    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6465;
    (*pcVar1)();
    pppuVar7 = (undefined ***)((int)pppuVar7 + -4);
  }
  uVar2 = *(uint *)(local_24 + -0xc);
  *(uint *)(param_1 + 0x18) = uVar2;
  if (uVar2 < 0x20000000) {
    *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;
                    /* try { // try from 001d62b6 to 001d62ba has its CatchHandler @ 001d65e7 */
    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62bb;
    local_38 = FUN_0017eb70();
    *(undefined4 *)((int)pppuVar7 + -4) = 0;
    *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x18);
    *(undefined4 *)((int)pppuVar7 + -0xc) = local_38;
    *(undefined ***)((int)pppuVar7 + -0x10) = local_34;
                    /* try { // try from 001d62cd to 001d62d1 has its CatchHandler @ 001d64e8 */
    *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62d2;
    FUN_00202840();
    pcVar1 = *(code **)(*piVar4 + 0x18);
    if (pcVar1 == (code *)PTR_FUN_00301c5c) {
      *(undefined1 **)((int)pppuVar7 + -8) = &local_29;
      *(undefined4 *)((int)pppuVar7 + -0xc) = *(undefined4 *)(piVar4[2] + 0x1c);
      local_3c = local_20;
      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;
                    /* try { // try from 001d62fa to 001d62fe has its CatchHandler @ 001d65c3 */
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d62ff;
      FUN_00205b00();
    }
    else {
      local_3c = local_20;
      *(int **)((int)pppuVar7 + -0xc) = piVar4;
      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;
                    /* try { // try from 001d647b to 001d647c has its CatchHandler @ 001d65d9 */
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d647d;
      (*pcVar1)();
      pppuVar7 = (undefined ***)((int)pppuVar7 + -4);
    }
    uVar2 = *(uint *)(local_20[0] + -0xc);
    *(uint *)(param_1 + 0x20) = uVar2;
    if (uVar2 < 0x20000000) {
      *(uint *)((int)pppuVar7 + -0x10) = uVar2 << 2;
                    /* try { // try from 001d6322 to 001d6326 has its CatchHandler @ 001d64e4 */
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6327;
      local_34 = (undefined **)FUN_0017eb70();
      *(undefined4 *)((int)pppuVar7 + -4) = 0;
      *(undefined4 *)((int)pppuVar7 + -8) = *(undefined4 *)(param_1 + 0x20);
      *(undefined ***)((int)pppuVar7 + -0xc) = local_34;
      *(undefined ***)((int)pppuVar7 + -0x10) = local_3c;
                    /* try { // try from 001d633b to 001d63c6 has its CatchHandler @ 001d65cb */
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6340;
      FUN_00202840();
      iVar6 = *piVar4;
      pcVar1 = *(code **)(iVar6 + 8);
      if (pcVar1 == (code *)PTR_FUN_00301cf4) {
        uVar5 = *(undefined4 *)(piVar4[2] + 0x24);
      }
      else {
        *(int **)((int)pppuVar7 + -0x10) = piVar4;
        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d64a6;
        uVar5 = (*pcVar1)();
        iVar6 = *piVar4;
      }
      *(undefined4 *)(param_1 + 0x24) = uVar5;
      pcVar1 = *(code **)(iVar6 + 0xc);
      if (pcVar1 == (code *)PTR_FUN_00301e58) {
        uVar5 = *(undefined4 *)(piVar4[2] + 0x28);
      }
      else {
        *(int **)((int)pppuVar7 + -0x10) = piVar4;
                    /* try { // try from 001d648c to 001d64a5 has its CatchHandler @ 001d65cb */
        *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d648e;
        uVar5 = (*pcVar1)();
      }
      *(undefined4 *)(param_1 + 0x28) = uVar5;
      *(undefined4 *)((int)pppuVar7 + -0x10) = param_2;
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d6388;
      piVar4 = (int *)FUN_001d5bc0();
      iVar6 = *piVar4;
      *(int *)((int)pppuVar7 + -4) = param_1 + 0x2c;
      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdef0123456789AB_003023ac + 0x24;
      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdef0123456789AB_003023ac;
      *(int **)((int)pppuVar7 + -0x10) = piVar4;
      pcVar1 = *(code **)(iVar6 + 0x2c);
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63a7;
      (*pcVar1)();
      iVar6 = *piVar4;
      *(int *)((int)pppuVar7 + -4) = param_1 + 0xbc;
      *(undefined **)((int)pppuVar7 + -8) = PTR_s___xX0123456789abcdefABCDEF_003023b0 + 0x1a;
      *(undefined **)((int)pppuVar7 + -0xc) = PTR_s___xX0123456789abcdefABCDEF_003023b0;
      *(int **)((int)pppuVar7 + -0x10) = piVar4;
      pcVar1 = *(code **)(iVar6 + 0x2c);
      *(undefined4 *)((int)pppuVar7 + -0x14) = 0x1d63c7;
      (*pcVar1)();
      *(char **)(param_1 + 8) = local_30;
      *(undefined4 *)(param_1 + 0x14) = local_38;
      *(undefined ***)(param_1 + 0x1c) = local_34;
      *(undefined1 *)(param_1 + 0x124) = 1;
      if (local_20[0] != &DAT_0030af6c) {
        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64c8;
        FUN_001d2f90();
      }
      if (local_24 != &DAT_0030af6c) {
        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64d8;
        FUN_001d2f90();
      }
      if ((undefined *)(local_28 + -0xc) != PTR_DAT_00301cdc) {
        *(undefined4 *)((int)pppuVar7 + -4) = 0x1d64b8;
        FUN_001d2f40();
      }
      return;
    }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001d64f8 to 001d64fc has its CatchHandler @ 001d64fd */
    *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d64fd;
    FUN_00180130();
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001d65d4 to 001d65d8 has its CatchHandler @ 001d65dd */
  *(undefined1 **)((int)pppuVar7 + -4) = &LAB_001d65d9;
  FUN_00180130();
}

