
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* std::ios_base::failure[abi:cxx11]::failure(char const*, std::error_code const&) */

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

{
  int *piVar1;
  char *pcVar2;
  int *piVar3;
  size_t sVar4;
  int **ppiVar5;
  uint uVar6;
  undefined1 auStack_80 [4];
  int *local_7c;
  undefined1 *local_78;
  int local_74;
  string *local_70;
  undefined1 *local_64;
  undefined4 local_60;
  undefined1 local_5c [16];
  int *local_4c;
  int local_48;
  int local_44;
  int local_40;
  int local_3c;
  int local_38;
  int *local_34;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  piVar1 = *(int **)(param_2 + 4);
  local_74 = *(int *)param_2;
  if (*(code **)(*piVar1 + 0x10) == ::(anonymous_namespace)::io_error_category::message_abi_cxx11_)
  {
    local_70 = (string *)&local_64;
    local_60 = 0;
    local_78 = local_5c;
    local_5c[0] = 0;
    if (local_74 == 1) {
      pcVar2 = "iostream error";
      uVar6 = 0xe;
    }
    else {
      pcVar2 = "Unknown error";
      uVar6 = 0xd;
    }
    local_64 = local_78;
                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */
    std::string::_M_replace(local_70,0,0,pcVar2,uVar6);
    ppiVar5 = &local_7c;
  }
  else {
    local_70 = (string *)&local_64;
    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);
    local_78 = local_5c;
    ppiVar5 = (int **)auStack_80;
  }
  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;
  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;
  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;
  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;
  *(string **)((int)ppiVar5 + -0x20) = local_70;
                    /* try { // try from 00226957 to 0022695b has its CatchHandler @ 00226adb */
  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;
  piVar3 = (int *)std::string::_M_replace
                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),
                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),
                             *(uint *)((int)ppiVar5 + -0x10));
  local_70 = (string *)&local_44;
  local_4c = (int *)*piVar3;
  if (local_4c == piVar3 + 2) {
    local_44 = piVar3[2];
    local_40 = piVar3[3];
    local_3c = piVar3[4];
    local_38 = piVar3[5];
    local_4c = (int *)local_70;
  }
  else {
    local_44 = piVar3[2];
  }
  local_48 = piVar3[1];
  *(undefined1 *)(piVar3 + 2) = 0;
  *piVar3 = (int)(piVar3 + 2);
  piVar3[1] = 0;
  *(char **)((int)ppiVar5 + -0x10) = param_1;
  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;
  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));
  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;
  *(char **)((int)ppiVar5 + -0x14) = param_1;
  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;
  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;
  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;
                    /* try { // try from 002269ac to 002269b0 has its CatchHandler @ 00226ad4 */
  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;
  piVar3 = (int *)std::string::_M_replace
                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),
                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),
                             *(uint *)((int)ppiVar5 + -0x10));
  local_7c = &local_2c;
  local_34 = (int *)*piVar3;
  if (local_34 == piVar3 + 2) {
    local_2c = piVar3[2];
    local_28 = piVar3[3];
    local_24 = piVar3[4];
    local_20 = piVar3[5];
    local_34 = local_7c;
  }
  else {
    local_2c = piVar3[2];
  }
  local_30 = piVar3[1];
  *(undefined1 *)(piVar3 + 2) = 0;
  *piVar3 = (int)(piVar3 + 2);
  piVar3[1] = 0;
  *(int ***)((int)ppiVar5 + -0xc) = &local_34;
  *(failure_abi_cxx11_ **)((int)ppiVar5 + -0x10) = this;
                    /* try { // try from 002269f2 to 002269f6 has its CatchHandler @ 00226ae2 */
  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;
  runtime_error::runtime_error
            (*(runtime_error **)((int)ppiVar5 + -0x10),*(string **)((int)ppiVar5 + -0xc));
  if (local_34 != local_7c) {
    *(int **)((int)ppiVar5 + -0x10) = local_34;
    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;
    operator_delete(*(void **)((int)ppiVar5 + -0x10));
  }
  if ((string *)local_4c != local_70) {
    *(int **)((int)ppiVar5 + -0x10) = local_4c;
    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;
    operator_delete(*(void **)((int)ppiVar5 + -0x10));
  }
  if (local_64 != local_78) {
    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;
    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;
    operator_delete(*(void **)((int)ppiVar5 + -0x10));
  }
  *(int **)(this + 0xc) = piVar1;
  *(int *)(this + 8) = local_74;
  *(undefined ***)this = &PTR__failure_0038d198;
  return;
}



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

void FUN_002268d0(undefined4 *param_1,undefined4 param_2,int *param_3)

{
  int *piVar1;
  char *pcVar2;
  int *piVar3;
  size_t sVar4;
  int **ppiVar5;
  undefined4 uVar6;
  undefined1 auStack_80 [4];
  int *local_7c;
  undefined1 *local_78;
  int local_74;
  undefined1 **local_70;
  undefined1 *local_64;
  undefined4 local_60;
  undefined1 local_5c [16];
  int *local_4c;
  int local_48;
  int local_44;
  int local_40;
  int local_3c;
  int local_38;
  int *local_34;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  piVar1 = (int *)param_3[1];
  local_74 = *param_3;
  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {
    local_70 = &local_64;
    local_60 = 0;
    local_78 = local_5c;
    local_5c[0] = 0;
    if (local_74 == 1) {
      pcVar2 = "iostream error";
      uVar6 = 0xe;
    }
    else {
      pcVar2 = "Unknown error";
      uVar6 = 0xd;
    }
    local_64 = local_78;
                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */
    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);
    ppiVar5 = &local_7c;
  }
  else {
    local_70 = &local_64;
    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);
    local_78 = local_5c;
    ppiVar5 = (int **)auStack_80;
  }
  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;
  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;
  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;
  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;
  *(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;
                    /* try { // try from 00226957 to 0022695b has its CatchHandler @ 00226adb */
  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;
  piVar3 = (int *)FUN_001ef9f0();
  local_70 = (undefined1 **)&local_44;
  local_4c = (int *)*piVar3;
  if (local_4c == piVar3 + 2) {
    local_44 = piVar3[2];
    local_40 = piVar3[3];
    local_3c = piVar3[4];
    local_38 = piVar3[5];
    local_4c = (int *)local_70;
  }
  else {
    local_44 = piVar3[2];
  }
  local_48 = piVar3[1];
  *(undefined1 *)(piVar3 + 2) = 0;
  *piVar3 = (int)(piVar3 + 2);
  piVar3[1] = 0;
  *(undefined4 *)((int)ppiVar5 + -0x10) = param_2;
  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;
  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));
  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;
  *(undefined4 *)((int)ppiVar5 + -0x14) = param_2;
  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;
  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;
  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;
                    /* try { // try from 002269ac to 002269b0 has its CatchHandler @ 00226ad4 */
  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;
  piVar3 = (int *)FUN_001ef9f0();
  local_7c = &local_2c;
  local_34 = (int *)*piVar3;
  if (local_34 == piVar3 + 2) {
    local_2c = piVar3[2];
    local_28 = piVar3[3];
    local_24 = piVar3[4];
    local_20 = piVar3[5];
    local_34 = local_7c;
  }
  else {
    local_2c = piVar3[2];
  }
  local_30 = piVar3[1];
  *(undefined1 *)(piVar3 + 2) = 0;
  *piVar3 = (int)(piVar3 + 2);
  piVar3[1] = 0;
  *(int ***)((int)ppiVar5 + -0xc) = &local_34;
  *(undefined4 **)((int)ppiVar5 + -0x10) = param_1;
                    /* try { // try from 002269f2 to 002269f6 has its CatchHandler @ 00226ae2 */
  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;
  FUN_0026c330();
  if (local_34 != local_7c) {
    *(int **)((int)ppiVar5 + -0x10) = local_34;
    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;
    FUN_001e6db0();
  }
  if ((undefined1 **)local_4c != local_70) {
    *(int **)((int)ppiVar5 + -0x10) = local_4c;
    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;
    FUN_001e6db0();
  }
  if (local_64 != local_78) {
    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;
    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;
    FUN_001e6db0();
  }
  param_1[3] = piVar1;
  param_1[2] = local_74;
  *param_1 = &PTR_FUN_0038d198;
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
CALL 0x000559ea
ADD ESI,0x168726
PUSH EBX
SUB ESP,0x6c
MOV EAX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EAX + 0x4]
MOV EBX,dword ptr [EAX]
LEA EDX,[ESI + 0xffe972f0]
MOV EAX,dword ptr [EDI]
MOV dword ptr [EBP + -0x70],EBX
MOV EAX,dword ptr [EAX + 0x10]
CMP EAX,EDX
JNZ 0x00226a70
LEA EAX,[EBP + -0x60]
MOV dword ptr [EBP + -0x5c],0x0
MOV dword ptr [EBP + -0x6c],EAX
LEA EAX,[EBP + -0x58]
MOV dword ptr [EBP + -0x74],EAX
MOV dword ptr [EBP + -0x60],EAX
MOV byte ptr [EBP + -0x58],0x0
CMP EBX,0x1
JZ 0x00226a60
SUB ESP,0xc
LEA EAX,[ESI + 0xfff15fe4]
PUSH 0xd
PUSH EAX
MOV EBX,ESI
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + -0x6c]
CALL 0x001ef9f0
ADD ESP,0x20
SUB ESP,0xc
LEA EAX,[ESI + 0xfff0ff59]
MOV EBX,ESI
PUSH 0x2
PUSH EAX
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + -0x6c]
CALL 0x001ef9f0
LEA EBX,[EBP + -0x40]
LEA EDX,[EAX + 0x8]
ADD ESP,0x20
MOV dword ptr [EBP + -0x48],EBX
MOV ECX,dword ptr [EAX]
MOV dword ptr [EBP + -0x6c],EBX
CMP ECX,EDX
JZ 0x00226ab0
MOV dword ptr [EBP + -0x48],ECX
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x40],ECX
MOV ECX,dword ptr [EAX + 0x4]
SUB ESP,0xc
MOV byte ptr [EAX + 0x8],0x0
MOV EBX,ESI
MOV dword ptr [EBP + -0x44],ECX
MOV dword ptr [EAX],EDX
MOV dword ptr [EAX + 0x4],0x0
PUSH dword ptr [EBP + 0xc]
CALL 0x000295f0
MOV dword ptr [ESP],EAX
LEA EAX,[EBP + -0x48]
PUSH dword ptr [EBP + 0xc]
PUSH 0x0
PUSH 0x0
PUSH EAX
CALL 0x001ef9f0
LEA EDX,[EBP + -0x28]
ADD ESP,0x20
MOV dword ptr [EBP + -0x30],EDX
MOV ECX,dword ptr [EAX]
MOV dword ptr [EBP + -0x78],EDX
LEA EDX,[EAX + 0x8]
CMP ECX,EDX
JZ 0x00226a90
MOV dword ptr [EBP + -0x30],ECX
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x28],ECX
MOV ECX,dword ptr [EAX + 0x4]
MOV byte ptr [EAX + 0x8],0x0
SUB ESP,0x8
MOV EBX,ESI
MOV dword ptr [EBP + -0x2c],ECX
MOV dword ptr [EAX],EDX
MOV dword ptr [EAX + 0x4],0x0
LEA EAX,[EBP + -0x30]
PUSH EAX
PUSH dword ptr [EBP + 0x8]
CALL 0x0026c330
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x30]
CMP EAX,dword ptr [EBP + -0x78]
JZ 0x00226a0e
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x48]
CMP EAX,dword ptr [EBP + -0x6c]
JZ 0x00226a24
SUB ESP,0xc
MOV EBX,ESI
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x60]
CMP EAX,dword ptr [EBP + -0x74]
JZ 0x00226a3a
SUB ESP,0xc
MOV EBX,ESI
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBP + -0x70]
MOV dword ptr [EAX + 0xc],EDI
MOV EDI,dword ptr [EBP + 0x8]
MOV dword ptr [EAX + 0x8],ECX
LEA EAX,[ESI + 0xffffe190]
ADD EAX,0x8
MOV dword ptr [EDI],EAX
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
LEA EAX,[ESI + 0xfff15fd5]
PUSH 0xe
JMP 0x00226930
SUB ESP,0x4
LEA EDX,[EBP + -0x60]
PUSH dword ptr [EBP + -0x70]
MOV dword ptr [EBP + -0x6c],EDX
PUSH EDI
PUSH EDX
CALL EAX
LEA EAX,[EBP + -0x58]
ADD ESP,0xc
MOV dword ptr [EBP + -0x74],EAX
JMP 0x00226942
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x28],ECX
MOV ECX,dword ptr [EAX + 0xc]
MOV dword ptr [EBP + -0x24],ECX
MOV ECX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + -0x20],ECX
MOV ECX,dword ptr [EAX + 0x14]
MOV dword ptr [EBP + -0x1c],ECX
JMP 0x002269d3
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x40],ECX
MOV ECX,dword ptr [EAX + 0xc]
MOV dword ptr [EBP + -0x3c],ECX
MOV ECX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + -0x38],ECX
MOV ECX,dword ptr [EAX + 0x14]
MOV dword ptr [EBP + -0x34],ECX
JMP 0x0022697e
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nvoid FUN_002268d0(undefined4 *param_1,undefined4 param_2,int *param_3)\n\n{\n  int *piVar1;\n  char *pcVar2;\n  int *piVar3;\n  size_t sVar4;\n  int **ppiVar5;\n  undefined4 uVar6;\n  undefined1 auStack_80 [4];\n  int *local_7c;\n  undefined1 *local_78;\n  int local_74;\n  undefined1 **local_70;\n  undefined1 *local_64;\n  undefined4 local_60;\n  undefined1 local_5c [16];\n  int *local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar1 = (int *)param_3[1];\n  local_74 = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */\n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }\n  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;\n  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;\n                    /* try { // try from 00226957 to 0022695b has its CatchHandler @ 00226adb */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_70 = (undefined1 **)&local_44;\n  local_4c = (int *)*piVar3;\n  if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }\n  local_48 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x10) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;\n  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));\n  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;\n                    /* try { // try from 002269ac to 002269b0 has its CatchHandler @ 00226ad4 */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_7c = &local_2c;\n  local_34 = (int *)*piVar3;\n  if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }\n  local_30 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(int ***)((int)ppiVar5 + -0xc) = &local_34;\n  *(undefined4 **)((int)ppiVar5 + -0x10) = param_1;\n                    /* try { // try from 002269f2 to 002269f6 has its CatchHandler @ 00226ae2 */\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;\n  FUN_0026c330();\n  if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }\n  if ((undefined1 **)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }\n  param_1[3] = piVar1;\n  param_1[2] = local_74;\n  *param_1 = &PTR_FUN_0038d198;\n  return;\n}\n\n" comment (function_definition "void FUN_002268d0(undefined4 *param_1,undefined4 param_2,int *param_3)\n\n{\n  int *piVar1;\n  char *pcVar2;\n  int *piVar3;\n  size_t sVar4;\n  int **ppiVar5;\n  undefined4 uVar6;\n  undefined1 auStack_80 [4];\n  int *local_7c;\n  undefined1 *local_78;\n  int local_74;\n  undefined1 **local_70;\n  undefined1 *local_64;\n  undefined4 local_60;\n  undefined1 local_5c [16];\n  int *local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar1 = (int *)param_3[1];\n  local_74 = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */\n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }\n  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;\n  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;\n                    /* try { // try from 00226957 to 0022695b has its CatchHandler @ 00226adb */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_70 = (undefined1 **)&local_44;\n  local_4c = (int *)*piVar3;\n  if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }\n  local_48 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x10) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;\n  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));\n  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;\n                    /* try { // try from 002269ac to 002269b0 has its CatchHandler @ 00226ad4 */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_7c = &local_2c;\n  local_34 = (int *)*piVar3;\n  if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }\n  local_30 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(int ***)((int)ppiVar5 + -0xc) = &local_34;\n  *(undefined4 **)((int)ppiVar5 + -0x10) = param_1;\n                    /* try { // try from 002269f2 to 002269f6 has its CatchHandler @ 00226ae2 */\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;\n  FUN_0026c330();\n  if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }\n  if ((undefined1 **)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }\n  param_1[3] = piVar1;\n  param_1[2] = local_74;\n  *param_1 = &PTR_FUN_0038d198;\n  return;\n}" primitive_type (function_declarator "FUN_002268d0(undefined4 *param_1,undefined4 param_2,int *param_3)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  char *pcVar2;\n  int *piVar3;\n  size_t sVar4;\n  int **ppiVar5;\n  undefined4 uVar6;\n  undefined1 auStack_80 [4];\n  int *local_7c;\n  undefined1 *local_78;\n  int local_74;\n  undefined1 **local_70;\n  undefined1 *local_64;\n  undefined4 local_60;\n  undefined1 local_5c [16];\n  int *local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar1 = (int *)param_3[1];\n  local_74 = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */\n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }\n  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;\n  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;\n                    /* try { // try from 00226957 to 0022695b has its CatchHandler @ 00226adb */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_70 = (undefined1 **)&local_44;\n  local_4c = (int *)*piVar3;\n  if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }\n  local_48 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x10) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;\n  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));\n  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;\n                    /* try { // try from 002269ac to 002269b0 has its CatchHandler @ 00226ad4 */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_7c = &local_2c;\n  local_34 = (int *)*piVar3;\n  if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }\n  local_30 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(int ***)((int)ppiVar5 + -0xc) = &local_34;\n  *(undefined4 **)((int)ppiVar5 + -0x10) = param_1;\n                    /* try { // try from 002269f2 to 002269f6 has its CatchHandler @ 00226ae2 */\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;\n  FUN_0026c330();\n  if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }\n  if ((undefined1 **)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }\n  param_1[3] = piVar1;\n  param_1[2] = local_74;\n  *param_1 = &PTR_FUN_0038d198;\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int **ppiVar5;" primitive_type (pointer_declarator "**ppiVar5" * (pointer_declarator "*ppiVar5" * identifier)) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined1 auStack_80 [4];" type_identifier (array_declarator "auStack_80 [4]" identifier [ number_literal ]) ;) (declaration "int *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "undefined1 **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "undefined1 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined1 local_5c [16];" type_identifier (array_declarator "local_5c [16]" identifier [ number_literal ]) ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "piVar1 = (int *)param_3[1];" (assignment_expression "piVar1 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "local_74 = *param_3;" (assignment_expression "local_74 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */\n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" if (parenthesized_expression "(*(code **)(*piVar1 + 0x10) == FUN_002262f0)" ( (binary_expression "*(code **)(*piVar1 + 0x10) == FUN_002262f0" (pointer_expression "*(code **)(*piVar1 + 0x10)" * (cast_expression "(code **)(*piVar1 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar1 + 0x10)" ( (binary_expression "*piVar1 + 0x10" (pointer_expression "*piVar1" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */\n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }" { (expression_statement "local_70 = &local_64;" (assignment_expression "local_70 = &local_64" identifier = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_78 = local_5c;" (assignment_expression "local_78 = local_5c" identifier = identifier) ;) (expression_statement "local_5c[0] = 0;" (assignment_expression "local_5c[0] = 0" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" if (parenthesized_expression "(local_74 == 1)" ( (binary_expression "local_74 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }" { (expression_statement "pcVar2 = "iostream error";" (assignment_expression "pcVar2 = "iostream error"" identifier = (string_literal ""iostream error"" " string_content ")) ;) (expression_statement "uVar6 = 0xe;" (assignment_expression "uVar6 = 0xe" identifier = number_literal) ;) }) (else_clause "else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" else (compound_statement "{\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" { (expression_statement "pcVar2 = "Unknown error";" (assignment_expression "pcVar2 = "Unknown error"" identifier = (string_literal ""Unknown error"" " string_content ")) ;) (expression_statement "uVar6 = 0xd;" (assignment_expression "uVar6 = 0xd" identifier = number_literal) ;) }))) (expression_statement "local_64 = local_78;" (assignment_expression "local_64 = local_78" identifier = identifier) ;) comment (expression_statement "FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);" (call_expression "FUN_001ef9f0(local_70,0,0,pcVar2,uVar6)" identifier (argument_list "(local_70,0,0,pcVar2,uVar6)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "ppiVar5 = &local_7c;" (assignment_expression "ppiVar5 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) }) (else_clause "else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" else (compound_statement "{\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" { (expression_statement "local_70 = &local_64;" (assignment_expression "local_70 = &local_64" identifier = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "(**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);" (call_expression "(**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74)" (parenthesized_expression "(**(code **)(*piVar1 + 0x10))" ( (pointer_expression "**(code **)(*piVar1 + 0x10)" * (pointer_expression "*(code **)(*piVar1 + 0x10)" * (cast_expression "(code **)(*piVar1 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar1 + 0x10)" ( (binary_expression "*piVar1 + 0x10" (pointer_expression "*piVar1" * identifier) + number_literal) ))))) )) (argument_list "(local_70,piVar1,local_74)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_78 = local_5c;" (assignment_expression "local_78 = local_5c" identifier = identifier) ;) (expression_statement "ppiVar5 = (int **)auStack_80;" (assignment_expression "ppiVar5 = (int **)auStack_80" identifier = (cast_expression "(int **)auStack_80" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }))) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x10) = 2;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x10) = 2" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;" (assignment_expression "*(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59" (pointer_expression "*(undefined **)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&DAT_0029ef59" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x18)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x18)" ( (binary_expression "(int)ppiVar5 + -0x18" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x1c)" ( (binary_expression "(int)ppiVar5 + -0x1c" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;" (assignment_expression "*(undefined1 ***)((int)ppiVar5 + -0x20) = local_70" (pointer_expression "*(undefined1 ***)((int)ppiVar5 + -0x20)" * (cast_expression "(undefined1 ***)((int)ppiVar5 + -0x20)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppiVar5 + -0x20)" ( (binary_expression "(int)ppiVar5 + -0x20" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x24)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x24)" ( (binary_expression "(int)ppiVar5 + -0x24" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar3 = (int *)FUN_001ef9f0();" (assignment_expression "piVar3 = (int *)FUN_001ef9f0()" identifier = (cast_expression "(int *)FUN_001ef9f0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001ef9f0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_70 = (undefined1 **)&local_44;" (assignment_expression "local_70 = (undefined1 **)&local_44" identifier = (cast_expression "(undefined1 **)&local_44" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_44" & identifier))) ;) (expression_statement "local_4c = (int *)*piVar3;" (assignment_expression "local_4c = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (if_statement "if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }" if (parenthesized_expression "(local_4c == piVar3 + 2)" ( (binary_expression "local_4c == piVar3 + 2" identifier == (binary_expression "piVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }" { (expression_statement "local_44 = piVar3[2];" (assignment_expression "local_44 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (expression_statement "local_40 = piVar3[3];" (assignment_expression "local_40 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "local_3c = piVar3[4];" (assignment_expression "local_3c = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) (expression_statement "local_38 = piVar3[5];" (assignment_expression "local_38 = piVar3[5]" identifier = (subscript_expression "piVar3[5]" identifier [ number_literal ])) ;) (expression_statement "local_4c = (int *)local_70;" (assignment_expression "local_4c = (int *)local_70" identifier = (cast_expression "(int *)local_70" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n    local_44 = piVar3[2];\n  }" else (compound_statement "{\n    local_44 = piVar3[2];\n  }" { (expression_statement "local_44 = piVar3[2];" (assignment_expression "local_44 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_48 = piVar3[1];" (assignment_expression "local_48 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" * (cast_expression "(undefined1 *)(piVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x10) = param_2" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));" (assignment_expression "sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)ppiVar5 + -0x10))" identifier (argument_list "(*(char **)((int)ppiVar5 + -0x10))" ( (pointer_expression "*(char **)((int)ppiVar5 + -0x10)" * (cast_expression "(char **)((int)ppiVar5 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "*(size_t *)((int)ppiVar5 + -0x10) = sVar4;" (assignment_expression "*(size_t *)((int)ppiVar5 + -0x10) = sVar4" (pointer_expression "*(size_t *)((int)ppiVar5 + -0x10)" * (cast_expression "(size_t *)((int)ppiVar5 + -0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = param_2;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = param_2" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x18)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x18)" ( (binary_expression "(int)ppiVar5 + -0x18" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x1c)" ( (binary_expression "(int)ppiVar5 + -0x1c" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int ***)((int)ppiVar5 + -0x20) = &local_4c;" (assignment_expression "*(int ***)((int)ppiVar5 + -0x20) = &local_4c" (pointer_expression "*(int ***)((int)ppiVar5 + -0x20)" * (cast_expression "(int ***)((int)ppiVar5 + -0x20)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppiVar5 + -0x20)" ( (binary_expression "(int)ppiVar5 + -0x20" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_4c" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x24)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x24)" ( (binary_expression "(int)ppiVar5 + -0x24" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar3 = (int *)FUN_001ef9f0();" (assignment_expression "piVar3 = (int *)FUN_001ef9f0()" identifier = (cast_expression "(int *)FUN_001ef9f0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001ef9f0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_7c = &local_2c;" (assignment_expression "local_7c = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "local_34 = (int *)*piVar3;" (assignment_expression "local_34 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (if_statement "if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }" if (parenthesized_expression "(local_34 == piVar3 + 2)" ( (binary_expression "local_34 == piVar3 + 2" identifier == (binary_expression "piVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }" { (expression_statement "local_2c = piVar3[2];" (assignment_expression "local_2c = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (expression_statement "local_28 = piVar3[3];" (assignment_expression "local_28 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "local_24 = piVar3[4];" (assignment_expression "local_24 = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) (expression_statement "local_20 = piVar3[5];" (assignment_expression "local_20 = piVar3[5]" identifier = (subscript_expression "piVar3[5]" identifier [ number_literal ])) ;) (expression_statement "local_34 = local_7c;" (assignment_expression "local_34 = local_7c" identifier = identifier) ;) }) (else_clause "else {\n    local_2c = piVar3[2];\n  }" else (compound_statement "{\n    local_2c = piVar3[2];\n  }" { (expression_statement "local_2c = piVar3[2];" (assignment_expression "local_2c = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_30 = piVar3[1];" (assignment_expression "local_30 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" * (cast_expression "(undefined1 *)(piVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int ***)((int)ppiVar5 + -0xc) = &local_34;" (assignment_expression "*(int ***)((int)ppiVar5 + -0xc) = &local_34" (pointer_expression "*(int ***)((int)ppiVar5 + -0xc)" * (cast_expression "(int ***)((int)ppiVar5 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppiVar5 + -0xc)" ( (binary_expression "(int)ppiVar5 + -0xc" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(undefined4 **)((int)ppiVar5 + -0x10) = param_1;" (assignment_expression "*(undefined4 **)((int)ppiVar5 + -0x10) = param_1" (pointer_expression "*(undefined4 **)((int)ppiVar5 + -0x10)" * (cast_expression "(undefined4 **)((int)ppiVar5 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0026c330();" (call_expression "FUN_0026c330()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "(local_34 != local_7c)" ( (binary_expression "local_34 != local_7c" identifier != identifier) )) (compound_statement "{\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }" { (expression_statement "*(int **)((int)ppiVar5 + -0x10) = local_34;" (assignment_expression "*(int **)((int)ppiVar5 + -0x10) = local_34" (pointer_expression "*(int **)((int)ppiVar5 + -0x10)" * (cast_expression "(int **)((int)ppiVar5 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((undefined1 **)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "((undefined1 **)local_4c != local_70)" ( (binary_expression "(undefined1 **)local_4c != local_70" (cast_expression "(undefined1 **)local_4c" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != identifier) )) (compound_statement "{\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }" { (expression_statement "*(int **)((int)ppiVar5 + -0x10) = local_4c;" (assignment_expression "*(int **)((int)ppiVar5 + -0x10) = local_4c" (pointer_expression "*(int **)((int)ppiVar5 + -0x10)" * (cast_expression "(int **)((int)ppiVar5 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "(local_64 != local_78)" ( (binary_expression "local_64 != local_78" identifier != identifier) )) (compound_statement "{\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }" { (expression_statement "*(undefined1 **)((int)ppiVar5 + -0x10) = local_64;" (assignment_expression "*(undefined1 **)((int)ppiVar5 + -0x10) = local_64" (pointer_expression "*(undefined1 **)((int)ppiVar5 + -0x10)" * (cast_expression "(undefined1 **)((int)ppiVar5 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "param_1[3] = piVar1;" (assignment_expression "param_1[3] = piVar1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_74;" (assignment_expression "param_1[2] = local_74" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_1 = &PTR_FUN_0038d198;" (assignment_expression "*param_1 = &PTR_FUN_0038d198" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0038d198" & identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n/* std::ios_base::failure[abi:cxx11]::failure(char const*, std::error_code const&) */\n\nvoid __thiscall\nstd::ios_base::failure[abi:cxx11]::failure\n          (failure_abi_cxx11_ *this,char *param_1,error_code *param_2)\n\n{\n  int *piVar1;\n  char *pcVar2;\n  int *piVar3;\n  size_t sVar4;\n  int **ppiVar5;\n  uint uVar6;\n  undefined1 auStack_80 [4];\n  int *local_7c;\n  undefined1 *local_78;\n  int local_74;\n  string *local_70;\n  undefined1 *local_64;\n  undefined4 local_60;\n  undefined1 local_5c [16];\n  int *local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar1 = *(int **)(param_2 + 4);\n  local_74 = *(int *)param_2;\n  if (*(code **)(*piVar1 + 0x10) == ::(anonymous_namespace)::io_error_category::message_abi_cxx11_)\n  {\n    local_70 = (string *)&local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */\n    std::string::_M_replace(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = (string *)&local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }\n  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;\n  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(string **)((int)ppiVar5 + -0x20) = local_70;\n                    /* try { // try from 00226957 to 0022695b has its CatchHandler @ 00226adb */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;\n  piVar3 = (int *)std::string::_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10));\n  local_70 = (string *)&local_44;\n  local_4c = (int *)*piVar3;\n  if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }\n  local_48 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(char **)((int)ppiVar5 + -0x10) = param_1;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;\n  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));\n  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;\n  *(char **)((int)ppiVar5 + -0x14) = param_1;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;\n                    /* try { // try from 002269ac to 002269b0 has its CatchHandler @ 00226ad4 */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;\n  piVar3 = (int *)std::string::_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10));\n  local_7c = &local_2c;\n  local_34 = (int *)*piVar3;\n  if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }\n  local_30 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(int ***)((int)ppiVar5 + -0xc) = &local_34;\n  *(failure_abi_cxx11_ **)((int)ppiVar5 + -0x10) = this;\n                    /* try { // try from 002269f2 to 002269f6 has its CatchHandler @ 00226ae2 */\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;\n  runtime_error::runtime_error\n            (*(runtime_error **)((int)ppiVar5 + -0x10),*(string **)((int)ppiVar5 + -0xc));\n  if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }\n  if ((string *)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }\n  if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }\n  *(int **)(this + 0xc) = piVar1;\n  *(int *)(this + 8) = local_74;\n  *(undefined ***)this = &PTR__failure_0038d198;\n  return;\n}\n\n" comment comment (function_definition "void __thiscall\nstd::ios_base::failure[abi:cxx11]::failure\n          (failure_abi_cxx11_ *this,char *param_1,error_code *param_2)\n\n{\n  int *piVar1;\n  char *pcVar2;\n  int *piVar3;\n  size_t sVar4;\n  int **ppiVar5;\n  uint uVar6;\n  undefined1 auStack_80 [4];\n  int *local_7c;\n  undefined1 *local_78;\n  int local_74;\n  string *local_70;\n  undefined1 *local_64;\n  undefined4 local_60;\n  undefined1 local_5c [16];\n  int *local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar1 = *(int **)(param_2 + 4);\n  local_74 = *(int *)param_2;\n  if (*(code **)(*piVar1 + 0x10) == ::(anonymous_namespace)::io_error_category::message_abi_cxx11_)\n  {\n    local_70 = (string *)&local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */\n    std::string::_M_replace(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = (string *)&local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }\n  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;\n  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(string **)((int)ppiVar5 + -0x20) = local_70;\n                    /* try { // try from 00226957 to 0022695b has its CatchHandler @ 00226adb */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;\n  piVar3 = (int *)std::string::_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10));\n  local_70 = (string *)&local_44;\n  local_4c = (int *)*piVar3;\n  if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }\n  local_48 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(char **)((int)ppiVar5 + -0x10) = param_1;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;\n  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));\n  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;\n  *(char **)((int)ppiVar5 + -0x14) = param_1;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;\n                    /* try { // try from 002269ac to 002269b0 has its CatchHandler @ 00226ad4 */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;\n  piVar3 = (int *)std::string::_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10));\n  local_7c = &local_2c;\n  local_34 = (int *)*piVar3;\n  if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }\n  local_30 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(int ***)((int)ppiVar5 + -0xc) = &local_34;\n  *(failure_abi_cxx11_ **)((int)ppiVar5 + -0x10) = this;\n                    /* try { // try from 002269f2 to 002269f6 has its CatchHandler @ 00226ae2 */\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;\n  runtime_error::runtime_error\n            (*(runtime_error **)((int)ppiVar5 + -0x10),*(string **)((int)ppiVar5 + -0xc));\n  if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }\n  if ((string *)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }\n  if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }\n  *(int **)(this + 0xc) = piVar1;\n  *(int *)(this + 8) = local_74;\n  *(undefined ***)this = &PTR__failure_0038d198;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::ios_base::failure[abi:cxx11]::" identifier : : identifier : : (array_declarator "failure[abi:cxx11]" identifier [ (ERROR "abi:" identifier :) identifier ]) : :) (function_declarator "failure\n          (failure_abi_cxx11_ *this,char *param_1,error_code *param_2)" identifier (parameter_list "(failure_abi_cxx11_ *this,char *param_1,error_code *param_2)" ( (parameter_declaration "failure_abi_cxx11_ *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "error_code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  char *pcVar2;\n  int *piVar3;\n  size_t sVar4;\n  int **ppiVar5;\n  uint uVar6;\n  undefined1 auStack_80 [4];\n  int *local_7c;\n  undefined1 *local_78;\n  int local_74;\n  string *local_70;\n  undefined1 *local_64;\n  undefined4 local_60;\n  undefined1 local_5c [16];\n  int *local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar1 = *(int **)(param_2 + 4);\n  local_74 = *(int *)param_2;\n  if (*(code **)(*piVar1 + 0x10) == ::(anonymous_namespace)::io_error_category::message_abi_cxx11_)\n  {\n    local_70 = (string *)&local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */\n    std::string::_M_replace(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = (string *)&local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }\n  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;\n  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(string **)((int)ppiVar5 + -0x20) = local_70;\n                    /* try { // try from 00226957 to 0022695b has its CatchHandler @ 00226adb */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;\n  piVar3 = (int *)std::string::_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10));\n  local_70 = (string *)&local_44;\n  local_4c = (int *)*piVar3;\n  if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }\n  local_48 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(char **)((int)ppiVar5 + -0x10) = param_1;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;\n  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));\n  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;\n  *(char **)((int)ppiVar5 + -0x14) = param_1;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;\n                    /* try { // try from 002269ac to 002269b0 has its CatchHandler @ 00226ad4 */\n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;\n  piVar3 = (int *)std::string::_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10));\n  local_7c = &local_2c;\n  local_34 = (int *)*piVar3;\n  if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }\n  local_30 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(int ***)((int)ppiVar5 + -0xc) = &local_34;\n  *(failure_abi_cxx11_ **)((int)ppiVar5 + -0x10) = this;\n                    /* try { // try from 002269f2 to 002269f6 has its CatchHandler @ 00226ae2 */\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;\n  runtime_error::runtime_error\n            (*(runtime_error **)((int)ppiVar5 + -0x10),*(string **)((int)ppiVar5 + -0xc));\n  if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }\n  if ((string *)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }\n  if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }\n  *(int **)(this + 0xc) = piVar1;\n  *(int *)(this + 8) = local_74;\n  *(undefined ***)this = &PTR__failure_0038d198;\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int **ppiVar5;" primitive_type (pointer_declarator "**ppiVar5" * (pointer_declarator "*ppiVar5" * identifier)) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined1 auStack_80 [4];" type_identifier (array_declarator "auStack_80 [4]" identifier [ number_literal ]) ;) (declaration "int *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "string *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined1 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined1 local_5c [16];" type_identifier (array_declarator "local_5c [16]" identifier [ number_literal ]) ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "piVar1 = *(int **)(param_2 + 4);" (assignment_expression "piVar1 = *(int **)(param_2 + 4)" identifier = (pointer_expression "*(int **)(param_2 + 4)" * (cast_expression "(int **)(param_2 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_74 = *(int *)param_2;" (assignment_expression "local_74 = *(int *)param_2" identifier = (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(code **)(*piVar1 + 0x10) == ::(anonymous_namespace)::io_error_category::message_abi_cxx11_)\n  {\n    local_70 = (string *)&local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */\n    std::string::_M_replace(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = (string *)&local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" if (parenthesized_expression "(*(code **)(*piVar1 + 0x10) == ::(anonymous_namespace)" ( (binary_expression "*(code **)(*piVar1 + 0x10) == ::(anonymous_namespace" (pointer_expression "*(code **)(*piVar1 + 0x10)" * (cast_expression "(code **)(*piVar1 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar1 + 0x10)" ( (binary_expression "*piVar1 + 0x10" (pointer_expression "*piVar1" * identifier) + number_literal) )))) == (ERROR "::(" : : () identifier) )) (ERROR "::" : :) (labeled_statement "io_error_category::message_abi_cxx11_)\n  {\n    local_70 = (string *)&local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */\n    std::string::_M_replace(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }" statement_identifier : (ERROR ":message_abi_cxx11_)" : identifier )) (compound_statement "{\n    local_70 = (string *)&local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */\n    std::string::_M_replace(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }" { (expression_statement "local_70 = (string *)&local_64;" (assignment_expression "local_70 = (string *)&local_64" identifier = (cast_expression "(string *)&local_64" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_64" & identifier))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_78 = local_5c;" (assignment_expression "local_78 = local_5c" identifier = identifier) ;) (expression_statement "local_5c[0] = 0;" (assignment_expression "local_5c[0] = 0" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" if (parenthesized_expression "(local_74 == 1)" ( (binary_expression "local_74 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }" { (expression_statement "pcVar2 = "iostream error";" (assignment_expression "pcVar2 = "iostream error"" identifier = (string_literal ""iostream error"" " string_content ")) ;) (expression_statement "uVar6 = 0xe;" (assignment_expression "uVar6 = 0xe" identifier = number_literal) ;) }) (else_clause "else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" else (compound_statement "{\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" { (expression_statement "pcVar2 = "Unknown error";" (assignment_expression "pcVar2 = "Unknown error"" identifier = (string_literal ""Unknown error"" " string_content ")) ;) (expression_statement "uVar6 = 0xd;" (assignment_expression "uVar6 = 0xd" identifier = number_literal) ;) }))) (expression_statement "local_64 = local_78;" (assignment_expression "local_64 = local_78" identifier = identifier) ;) comment (labeled_statement "std::string::_M_replace(local_70,0,0,pcVar2,uVar6);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_replace(local_70,0,0,pcVar2,uVar6);" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace(local_70,0,0,pcVar2,uVar6);" (call_expression "_M_replace(local_70,0,0,pcVar2,uVar6)" identifier (argument_list "(local_70,0,0,pcVar2,uVar6)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;))) (expression_statement "ppiVar5 = &local_7c;" (assignment_expression "ppiVar5 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) })) (else_clause "else {\n    local_70 = (string *)&local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" else (compound_statement "{\n    local_70 = (string *)&local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" { (expression_statement "local_70 = (string *)&local_64;" (assignment_expression "local_70 = (string *)&local_64" identifier = (cast_expression "(string *)&local_64" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_64" & identifier))) ;) (expression_statement "(**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);" (call_expression "(**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74)" (parenthesized_expression "(**(code **)(*piVar1 + 0x10))" ( (pointer_expression "**(code **)(*piVar1 + 0x10)" * (pointer_expression "*(code **)(*piVar1 + 0x10)" * (cast_expression "(code **)(*piVar1 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar1 + 0x10)" ( (binary_expression "*piVar1 + 0x10" (pointer_expression "*piVar1" * identifier) + number_literal) ))))) )) (argument_list "(local_70,piVar1,local_74)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_78 = local_5c;" (assignment_expression "local_78 = local_5c" identifier = identifier) ;) (expression_statement "ppiVar5 = (int **)auStack_80;" (assignment_expression "ppiVar5 = (int **)auStack_80" identifier = (cast_expression "(int **)auStack_80" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }))) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x10) = 2;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x10) = 2" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;" (assignment_expression "*(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59" (pointer_expression "*(undefined **)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&DAT_0029ef59" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x18)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x18)" ( (binary_expression "(int)ppiVar5 + -0x18" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x1c)" ( (binary_expression "(int)ppiVar5 + -0x1c" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(string **)((int)ppiVar5 + -0x20) = local_70;" (assignment_expression "*(string **)((int)ppiVar5 + -0x20) = local_70" (pointer_expression "*(string **)((int)ppiVar5 + -0x20)" * (cast_expression "(string **)((int)ppiVar5 + -0x20)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x20)" ( (binary_expression "(int)ppiVar5 + -0x20" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x24)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x24)" ( (binary_expression "(int)ppiVar5 + -0x24" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "piVar3 = (int *)std::" (assignment_expression "piVar3 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10));" (call_expression "_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10))" identifier (argument_list "(*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10))" ( (pointer_expression "*(string **)((int)ppiVar5 + -0x20)" * (cast_expression "(string **)((int)ppiVar5 + -0x20)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x20)" ( (binary_expression "(int)ppiVar5 + -0x20" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar5 + -0x1c)" * (cast_expression "(uint *)((int)ppiVar5 + -0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x1c)" ( (binary_expression "(int)ppiVar5 + -0x1c" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar5 + -0x18)" * (cast_expression "(uint *)((int)ppiVar5 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x18)" ( (binary_expression "(int)ppiVar5 + -0x18" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppiVar5 + -0x14)" * (cast_expression "(char **)((int)ppiVar5 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar5 + -0x10)" * (cast_expression "(uint *)((int)ppiVar5 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "local_70 = (string *)&local_44;" (assignment_expression "local_70 = (string *)&local_44" identifier = (cast_expression "(string *)&local_44" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_44" & identifier))) ;) (expression_statement "local_4c = (int *)*piVar3;" (assignment_expression "local_4c = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (if_statement "if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }" if (parenthesized_expression "(local_4c == piVar3 + 2)" ( (binary_expression "local_4c == piVar3 + 2" identifier == (binary_expression "piVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }" { (expression_statement "local_44 = piVar3[2];" (assignment_expression "local_44 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (expression_statement "local_40 = piVar3[3];" (assignment_expression "local_40 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "local_3c = piVar3[4];" (assignment_expression "local_3c = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) (expression_statement "local_38 = piVar3[5];" (assignment_expression "local_38 = piVar3[5]" identifier = (subscript_expression "piVar3[5]" identifier [ number_literal ])) ;) (expression_statement "local_4c = (int *)local_70;" (assignment_expression "local_4c = (int *)local_70" identifier = (cast_expression "(int *)local_70" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n    local_44 = piVar3[2];\n  }" else (compound_statement "{\n    local_44 = piVar3[2];\n  }" { (expression_statement "local_44 = piVar3[2];" (assignment_expression "local_44 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_48 = piVar3[1];" (assignment_expression "local_48 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" * (cast_expression "(undefined1 *)(piVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(char **)((int)ppiVar5 + -0x10) = param_1;" (assignment_expression "*(char **)((int)ppiVar5 + -0x10) = param_1" (pointer_expression "*(char **)((int)ppiVar5 + -0x10)" * (cast_expression "(char **)((int)ppiVar5 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));" (assignment_expression "sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)ppiVar5 + -0x10))" identifier (argument_list "(*(char **)((int)ppiVar5 + -0x10))" ( (pointer_expression "*(char **)((int)ppiVar5 + -0x10)" * (cast_expression "(char **)((int)ppiVar5 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "*(size_t *)((int)ppiVar5 + -0x10) = sVar4;" (assignment_expression "*(size_t *)((int)ppiVar5 + -0x10) = sVar4" (pointer_expression "*(size_t *)((int)ppiVar5 + -0x10)" * (cast_expression "(size_t *)((int)ppiVar5 + -0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(char **)((int)ppiVar5 + -0x14) = param_1;" (assignment_expression "*(char **)((int)ppiVar5 + -0x14) = param_1" (pointer_expression "*(char **)((int)ppiVar5 + -0x14)" * (cast_expression "(char **)((int)ppiVar5 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x18)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x18)" ( (binary_expression "(int)ppiVar5 + -0x18" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x1c)" ( (binary_expression "(int)ppiVar5 + -0x1c" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int ***)((int)ppiVar5 + -0x20) = &local_4c;" (assignment_expression "*(int ***)((int)ppiVar5 + -0x20) = &local_4c" (pointer_expression "*(int ***)((int)ppiVar5 + -0x20)" * (cast_expression "(int ***)((int)ppiVar5 + -0x20)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppiVar5 + -0x20)" ( (binary_expression "(int)ppiVar5 + -0x20" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_4c" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x24)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x24)" ( (binary_expression "(int)ppiVar5 + -0x24" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "piVar3 = (int *)std::" (assignment_expression "piVar3 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10));" (call_expression "_M_replace\n                            (*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10))" identifier (argument_list "(*(string **)((int)ppiVar5 + -0x20),*(uint *)((int)ppiVar5 + -0x1c),\n                             *(uint *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),\n                             *(uint *)((int)ppiVar5 + -0x10))" ( (pointer_expression "*(string **)((int)ppiVar5 + -0x20)" * (cast_expression "(string **)((int)ppiVar5 + -0x20)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x20)" ( (binary_expression "(int)ppiVar5 + -0x20" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar5 + -0x1c)" * (cast_expression "(uint *)((int)ppiVar5 + -0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x1c)" ( (binary_expression "(int)ppiVar5 + -0x1c" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar5 + -0x18)" * (cast_expression "(uint *)((int)ppiVar5 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x18)" ( (binary_expression "(int)ppiVar5 + -0x18" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppiVar5 + -0x14)" * (cast_expression "(char **)((int)ppiVar5 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppiVar5 + -0x10)" * (cast_expression "(uint *)((int)ppiVar5 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "local_7c = &local_2c;" (assignment_expression "local_7c = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "local_34 = (int *)*piVar3;" (assignment_expression "local_34 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (if_statement "if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }" if (parenthesized_expression "(local_34 == piVar3 + 2)" ( (binary_expression "local_34 == piVar3 + 2" identifier == (binary_expression "piVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }" { (expression_statement "local_2c = piVar3[2];" (assignment_expression "local_2c = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (expression_statement "local_28 = piVar3[3];" (assignment_expression "local_28 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "local_24 = piVar3[4];" (assignment_expression "local_24 = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) (expression_statement "local_20 = piVar3[5];" (assignment_expression "local_20 = piVar3[5]" identifier = (subscript_expression "piVar3[5]" identifier [ number_literal ])) ;) (expression_statement "local_34 = local_7c;" (assignment_expression "local_34 = local_7c" identifier = identifier) ;) }) (else_clause "else {\n    local_2c = piVar3[2];\n  }" else (compound_statement "{\n    local_2c = piVar3[2];\n  }" { (expression_statement "local_2c = piVar3[2];" (assignment_expression "local_2c = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_30 = piVar3[1];" (assignment_expression "local_30 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" * (cast_expression "(undefined1 *)(piVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int ***)((int)ppiVar5 + -0xc) = &local_34;" (assignment_expression "*(int ***)((int)ppiVar5 + -0xc) = &local_34" (pointer_expression "*(int ***)((int)ppiVar5 + -0xc)" * (cast_expression "(int ***)((int)ppiVar5 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppiVar5 + -0xc)" ( (binary_expression "(int)ppiVar5 + -0xc" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(failure_abi_cxx11_ **)((int)ppiVar5 + -0x10) = this;" (assignment_expression "*(failure_abi_cxx11_ **)((int)ppiVar5 + -0x10) = this" (pointer_expression "*(failure_abi_cxx11_ **)((int)ppiVar5 + -0x10)" * (cast_expression "(failure_abi_cxx11_ **)((int)ppiVar5 + -0x10)" ( (type_descriptor "failure_abi_cxx11_ **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "runtime_error::runtime_error\n            (*(runtime_error **)((int)ppiVar5 + -0x10),*(string **)((int)ppiVar5 + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "runtime_error\n            (*(runtime_error **)((int)ppiVar5 + -0x10),*(string **)((int)ppiVar5 + -0xc));" (call_expression "runtime_error\n            (*(runtime_error **)((int)ppiVar5 + -0x10),*(string **)((int)ppiVar5 + -0xc))" identifier (argument_list "(*(runtime_error **)((int)ppiVar5 + -0x10),*(string **)((int)ppiVar5 + -0xc))" ( (pointer_expression "*(runtime_error **)((int)ppiVar5 + -0x10)" * (cast_expression "(runtime_error **)((int)ppiVar5 + -0x10)" ( (type_descriptor "runtime_error **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(string **)((int)ppiVar5 + -0xc)" * (cast_expression "(string **)((int)ppiVar5 + -0xc)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0xc)" ( (binary_expression "(int)ppiVar5 + -0xc" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (if_statement "if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }" if (parenthesized_expression "(local_34 != local_7c)" ( (binary_expression "local_34 != local_7c" identifier != identifier) )) (compound_statement "{\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }" { (expression_statement "*(int **)((int)ppiVar5 + -0x10) = local_34;" (assignment_expression "*(int **)((int)ppiVar5 + -0x10) = local_34" (pointer_expression "*(int **)((int)ppiVar5 + -0x10)" * (cast_expression "(int **)((int)ppiVar5 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppiVar5 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppiVar5 + -0x10))" identifier (argument_list "(*(void **)((int)ppiVar5 + -0x10))" ( (pointer_expression "*(void **)((int)ppiVar5 + -0x10)" * (cast_expression "(void **)((int)ppiVar5 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if ((string *)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }" if (parenthesized_expression "((string *)local_4c != local_70)" ( (binary_expression "(string *)local_4c != local_70" (cast_expression "(string *)local_4c" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }" { (expression_statement "*(int **)((int)ppiVar5 + -0x10) = local_4c;" (assignment_expression "*(int **)((int)ppiVar5 + -0x10) = local_4c" (pointer_expression "*(int **)((int)ppiVar5 + -0x10)" * (cast_expression "(int **)((int)ppiVar5 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppiVar5 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppiVar5 + -0x10))" identifier (argument_list "(*(void **)((int)ppiVar5 + -0x10))" ( (pointer_expression "*(void **)((int)ppiVar5 + -0x10)" * (cast_expression "(void **)((int)ppiVar5 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }" if (parenthesized_expression "(local_64 != local_78)" ( (binary_expression "local_64 != local_78" identifier != identifier) )) (compound_statement "{\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    operator_delete(*(void **)((int)ppiVar5 + -0x10));\n  }" { (expression_statement "*(undefined1 **)((int)ppiVar5 + -0x10) = local_64;" (assignment_expression "*(undefined1 **)((int)ppiVar5 + -0x10) = local_64" (pointer_expression "*(undefined1 **)((int)ppiVar5 + -0x10)" * (cast_expression "(undefined1 **)((int)ppiVar5 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppiVar5 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppiVar5 + -0x10))" identifier (argument_list "(*(void **)((int)ppiVar5 + -0x10))" ( (pointer_expression "*(void **)((int)ppiVar5 + -0x10)" * (cast_expression "(void **)((int)ppiVar5 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "*(int **)(this + 0xc) = piVar1;" (assignment_expression "*(int **)(this + 0xc) = piVar1" (pointer_expression "*(int **)(this + 0xc)" * (cast_expression "(int **)(this + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 8) = local_74;" (assignment_expression "*(int *)(this + 8) = local_74" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)this = &PTR__failure_0038d198;" (assignment_expression "*(undefined ***)this = &PTR__failure_0038d198" (pointer_expression "*(undefined ***)this" * (cast_expression "(undefined ***)this" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) = (pointer_expression "&PTR__failure_0038d198" & identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_002268d0(undefined4 *param_1,undefined4 param_2,int *param_3)\n\n{\n  int *piVar1;\n  char *pcVar2;\n  int *piVar3;\n  size_t sVar4;\n  int **ppiVar5;\n  undefined4 uVar6;\n  undefined1 auStack_80 [4];\n  int *local_7c;\n  undefined1 *local_78;\n  int local_74;\n  undefined1 **local_70;\n  undefined1 *local_64;\n  undefined4 local_60;\n  undefined1 local_5c [16];\n  int *local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar1 = (int *)param_3[1];\n  local_74 = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    \n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }\n  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;\n  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_70 = (undefined1 **)&local_44;\n  local_4c = (int *)*piVar3;\n  if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }\n  local_48 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x10) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;\n  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));\n  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_7c = &local_2c;\n  local_34 = (int *)*piVar3;\n  if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }\n  local_30 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(int ***)((int)ppiVar5 + -0xc) = &local_34;\n  *(undefined4 **)((int)ppiVar5 + -0x10) = param_1;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;\n  FUN_0026c330();\n  if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }\n  if ((undefined1 **)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }\n  param_1[3] = piVar1;\n  param_1[2] = local_74;\n  *param_1 = &PTR_FUN_0038d198;\n  return;\n}\n\n" (function_definition "void FUN_002268d0(undefined4 *param_1,undefined4 param_2,int *param_3)\n\n{\n  int *piVar1;\n  char *pcVar2;\n  int *piVar3;\n  size_t sVar4;\n  int **ppiVar5;\n  undefined4 uVar6;\n  undefined1 auStack_80 [4];\n  int *local_7c;\n  undefined1 *local_78;\n  int local_74;\n  undefined1 **local_70;\n  undefined1 *local_64;\n  undefined4 local_60;\n  undefined1 local_5c [16];\n  int *local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar1 = (int *)param_3[1];\n  local_74 = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    \n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }\n  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;\n  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_70 = (undefined1 **)&local_44;\n  local_4c = (int *)*piVar3;\n  if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }\n  local_48 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x10) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;\n  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));\n  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_7c = &local_2c;\n  local_34 = (int *)*piVar3;\n  if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }\n  local_30 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(int ***)((int)ppiVar5 + -0xc) = &local_34;\n  *(undefined4 **)((int)ppiVar5 + -0x10) = param_1;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;\n  FUN_0026c330();\n  if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }\n  if ((undefined1 **)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }\n  param_1[3] = piVar1;\n  param_1[2] = local_74;\n  *param_1 = &PTR_FUN_0038d198;\n  return;\n}" primitive_type (function_declarator "FUN_002268d0(undefined4 *param_1,undefined4 param_2,int *param_3)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  char *pcVar2;\n  int *piVar3;\n  size_t sVar4;\n  int **ppiVar5;\n  undefined4 uVar6;\n  undefined1 auStack_80 [4];\n  int *local_7c;\n  undefined1 *local_78;\n  int local_74;\n  undefined1 **local_70;\n  undefined1 *local_64;\n  undefined4 local_60;\n  undefined1 local_5c [16];\n  int *local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar1 = (int *)param_3[1];\n  local_74 = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    \n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }\n  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;\n  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_70 = (undefined1 **)&local_44;\n  local_4c = (int *)*piVar3;\n  if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }\n  local_48 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x10) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;\n  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));\n  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_7c = &local_2c;\n  local_34 = (int *)*piVar3;\n  if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }\n  local_30 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(int ***)((int)ppiVar5 + -0xc) = &local_34;\n  *(undefined4 **)((int)ppiVar5 + -0x10) = param_1;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;\n  FUN_0026c330();\n  if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }\n  if ((undefined1 **)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }\n  param_1[3] = piVar1;\n  param_1[2] = local_74;\n  *param_1 = &PTR_FUN_0038d198;\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int **ppiVar5;" primitive_type (pointer_declarator "**ppiVar5" * (pointer_declarator "*ppiVar5" * identifier)) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined1 auStack_80 [4];" type_identifier (array_declarator "auStack_80 [4]" identifier [ number_literal ]) ;) (declaration "int *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "undefined1 **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "undefined1 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined1 local_5c [16];" type_identifier (array_declarator "local_5c [16]" identifier [ number_literal ]) ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "piVar1 = (int *)param_3[1];" (assignment_expression "piVar1 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "local_74 = *param_3;" (assignment_expression "local_74 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    \n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" if (parenthesized_expression "(*(code **)(*piVar1 + 0x10) == FUN_002262f0)" ( (binary_expression "*(code **)(*piVar1 + 0x10) == FUN_002262f0" (pointer_expression "*(code **)(*piVar1 + 0x10)" * (cast_expression "(code **)(*piVar1 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar1 + 0x10)" ( (binary_expression "*piVar1 + 0x10" (pointer_expression "*piVar1" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    \n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }" { (expression_statement "local_70 = &local_64;" (assignment_expression "local_70 = &local_64" identifier = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_78 = local_5c;" (assignment_expression "local_78 = local_5c" identifier = identifier) ;) (expression_statement "local_5c[0] = 0;" (assignment_expression "local_5c[0] = 0" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" if (parenthesized_expression "(local_74 == 1)" ( (binary_expression "local_74 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }" { (expression_statement "pcVar2 = "iostream error";" (assignment_expression "pcVar2 = "iostream error"" identifier = (string_literal ""iostream error"" " string_content ")) ;) (expression_statement "uVar6 = 0xe;" (assignment_expression "uVar6 = 0xe" identifier = number_literal) ;) }) (else_clause "else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" else (compound_statement "{\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" { (expression_statement "pcVar2 = "Unknown error";" (assignment_expression "pcVar2 = "Unknown error"" identifier = (string_literal ""Unknown error"" " string_content ")) ;) (expression_statement "uVar6 = 0xd;" (assignment_expression "uVar6 = 0xd" identifier = number_literal) ;) }))) (expression_statement "local_64 = local_78;" (assignment_expression "local_64 = local_78" identifier = identifier) ;) (expression_statement "FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);" (call_expression "FUN_001ef9f0(local_70,0,0,pcVar2,uVar6)" identifier (argument_list "(local_70,0,0,pcVar2,uVar6)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "ppiVar5 = &local_7c;" (assignment_expression "ppiVar5 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) }) (else_clause "else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" else (compound_statement "{\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" { (expression_statement "local_70 = &local_64;" (assignment_expression "local_70 = &local_64" identifier = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "(**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);" (call_expression "(**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74)" (parenthesized_expression "(**(code **)(*piVar1 + 0x10))" ( (pointer_expression "**(code **)(*piVar1 + 0x10)" * (pointer_expression "*(code **)(*piVar1 + 0x10)" * (cast_expression "(code **)(*piVar1 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar1 + 0x10)" ( (binary_expression "*piVar1 + 0x10" (pointer_expression "*piVar1" * identifier) + number_literal) ))))) )) (argument_list "(local_70,piVar1,local_74)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_78 = local_5c;" (assignment_expression "local_78 = local_5c" identifier = identifier) ;) (expression_statement "ppiVar5 = (int **)auStack_80;" (assignment_expression "ppiVar5 = (int **)auStack_80" identifier = (cast_expression "(int **)auStack_80" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }))) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x10) = 2;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x10) = 2" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;" (assignment_expression "*(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59" (pointer_expression "*(undefined **)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&DAT_0029ef59" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x18)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x18)" ( (binary_expression "(int)ppiVar5 + -0x18" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x1c)" ( (binary_expression "(int)ppiVar5 + -0x1c" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;" (assignment_expression "*(undefined1 ***)((int)ppiVar5 + -0x20) = local_70" (pointer_expression "*(undefined1 ***)((int)ppiVar5 + -0x20)" * (cast_expression "(undefined1 ***)((int)ppiVar5 + -0x20)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppiVar5 + -0x20)" ( (binary_expression "(int)ppiVar5 + -0x20" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x24)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x24)" ( (binary_expression "(int)ppiVar5 + -0x24" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar3 = (int *)FUN_001ef9f0();" (assignment_expression "piVar3 = (int *)FUN_001ef9f0()" identifier = (cast_expression "(int *)FUN_001ef9f0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001ef9f0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_70 = (undefined1 **)&local_44;" (assignment_expression "local_70 = (undefined1 **)&local_44" identifier = (cast_expression "(undefined1 **)&local_44" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_44" & identifier))) ;) (expression_statement "local_4c = (int *)*piVar3;" (assignment_expression "local_4c = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (if_statement "if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }" if (parenthesized_expression "(local_4c == piVar3 + 2)" ( (binary_expression "local_4c == piVar3 + 2" identifier == (binary_expression "piVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }" { (expression_statement "local_44 = piVar3[2];" (assignment_expression "local_44 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (expression_statement "local_40 = piVar3[3];" (assignment_expression "local_40 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "local_3c = piVar3[4];" (assignment_expression "local_3c = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) (expression_statement "local_38 = piVar3[5];" (assignment_expression "local_38 = piVar3[5]" identifier = (subscript_expression "piVar3[5]" identifier [ number_literal ])) ;) (expression_statement "local_4c = (int *)local_70;" (assignment_expression "local_4c = (int *)local_70" identifier = (cast_expression "(int *)local_70" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n    local_44 = piVar3[2];\n  }" else (compound_statement "{\n    local_44 = piVar3[2];\n  }" { (expression_statement "local_44 = piVar3[2];" (assignment_expression "local_44 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_48 = piVar3[1];" (assignment_expression "local_48 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" * (cast_expression "(undefined1 *)(piVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x10) = param_2" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));" (assignment_expression "sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)ppiVar5 + -0x10))" identifier (argument_list "(*(char **)((int)ppiVar5 + -0x10))" ( (pointer_expression "*(char **)((int)ppiVar5 + -0x10)" * (cast_expression "(char **)((int)ppiVar5 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "*(size_t *)((int)ppiVar5 + -0x10) = sVar4;" (assignment_expression "*(size_t *)((int)ppiVar5 + -0x10) = sVar4" (pointer_expression "*(size_t *)((int)ppiVar5 + -0x10)" * (cast_expression "(size_t *)((int)ppiVar5 + -0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = param_2;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = param_2" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x18)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x18)" ( (binary_expression "(int)ppiVar5 + -0x18" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x1c)" ( (binary_expression "(int)ppiVar5 + -0x1c" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int ***)((int)ppiVar5 + -0x20) = &local_4c;" (assignment_expression "*(int ***)((int)ppiVar5 + -0x20) = &local_4c" (pointer_expression "*(int ***)((int)ppiVar5 + -0x20)" * (cast_expression "(int ***)((int)ppiVar5 + -0x20)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppiVar5 + -0x20)" ( (binary_expression "(int)ppiVar5 + -0x20" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x24)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x24)" ( (binary_expression "(int)ppiVar5 + -0x24" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar3 = (int *)FUN_001ef9f0();" (assignment_expression "piVar3 = (int *)FUN_001ef9f0()" identifier = (cast_expression "(int *)FUN_001ef9f0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001ef9f0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_7c = &local_2c;" (assignment_expression "local_7c = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "local_34 = (int *)*piVar3;" (assignment_expression "local_34 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (if_statement "if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }" if (parenthesized_expression "(local_34 == piVar3 + 2)" ( (binary_expression "local_34 == piVar3 + 2" identifier == (binary_expression "piVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }" { (expression_statement "local_2c = piVar3[2];" (assignment_expression "local_2c = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (expression_statement "local_28 = piVar3[3];" (assignment_expression "local_28 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "local_24 = piVar3[4];" (assignment_expression "local_24 = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) (expression_statement "local_20 = piVar3[5];" (assignment_expression "local_20 = piVar3[5]" identifier = (subscript_expression "piVar3[5]" identifier [ number_literal ])) ;) (expression_statement "local_34 = local_7c;" (assignment_expression "local_34 = local_7c" identifier = identifier) ;) }) (else_clause "else {\n    local_2c = piVar3[2];\n  }" else (compound_statement "{\n    local_2c = piVar3[2];\n  }" { (expression_statement "local_2c = piVar3[2];" (assignment_expression "local_2c = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_30 = piVar3[1];" (assignment_expression "local_30 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" * (cast_expression "(undefined1 *)(piVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int ***)((int)ppiVar5 + -0xc) = &local_34;" (assignment_expression "*(int ***)((int)ppiVar5 + -0xc) = &local_34" (pointer_expression "*(int ***)((int)ppiVar5 + -0xc)" * (cast_expression "(int ***)((int)ppiVar5 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppiVar5 + -0xc)" ( (binary_expression "(int)ppiVar5 + -0xc" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(undefined4 **)((int)ppiVar5 + -0x10) = param_1;" (assignment_expression "*(undefined4 **)((int)ppiVar5 + -0x10) = param_1" (pointer_expression "*(undefined4 **)((int)ppiVar5 + -0x10)" * (cast_expression "(undefined4 **)((int)ppiVar5 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0026c330();" (call_expression "FUN_0026c330()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "(local_34 != local_7c)" ( (binary_expression "local_34 != local_7c" identifier != identifier) )) (compound_statement "{\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }" { (expression_statement "*(int **)((int)ppiVar5 + -0x10) = local_34;" (assignment_expression "*(int **)((int)ppiVar5 + -0x10) = local_34" (pointer_expression "*(int **)((int)ppiVar5 + -0x10)" * (cast_expression "(int **)((int)ppiVar5 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((undefined1 **)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "((undefined1 **)local_4c != local_70)" ( (binary_expression "(undefined1 **)local_4c != local_70" (cast_expression "(undefined1 **)local_4c" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != identifier) )) (compound_statement "{\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }" { (expression_statement "*(int **)((int)ppiVar5 + -0x10) = local_4c;" (assignment_expression "*(int **)((int)ppiVar5 + -0x10) = local_4c" (pointer_expression "*(int **)((int)ppiVar5 + -0x10)" * (cast_expression "(int **)((int)ppiVar5 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "(local_64 != local_78)" ( (binary_expression "local_64 != local_78" identifier != identifier) )) (compound_statement "{\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }" { (expression_statement "*(undefined1 **)((int)ppiVar5 + -0x10) = local_64;" (assignment_expression "*(undefined1 **)((int)ppiVar5 + -0x10) = local_64" (pointer_expression "*(undefined1 **)((int)ppiVar5 + -0x10)" * (cast_expression "(undefined1 **)((int)ppiVar5 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar5 + -0x10)" ( (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar5 + -0x14)" ( (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "param_1[3] = piVar1;" (assignment_expression "param_1[3] = piVar1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_74;" (assignment_expression "param_1[2] = local_74" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_1 = &PTR_FUN_0038d198;" (assignment_expression "*param_1 = &PTR_FUN_0038d198" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0038d198" & identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 (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) )))) = 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 (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression 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) )))) = 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 IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 *)) ) (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 (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 * (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) )))) = 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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) )))) = (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 *)) ) (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 != 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) )))) = 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 ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT) != 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) )))) = 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 ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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) )))) = 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (return_statement return ;) })))
(function_definition "void FUN_002268d0(undefined4 *param_1,undefined4 param_2,int *param_3)\n\n{\n  int *piVar1;\n  char *pcVar2;\n  int *piVar3;\n  size_t sVar4;\n  int **ppiVar5;\n  undefined4 uVar6;\n  undefined1 auStack_80 [4];\n  int *local_7c;\n  undefined1 *local_78;\n  int local_74;\n  undefined1 **local_70;\n  undefined1 *local_64;\n  undefined4 local_60;\n  undefined1 local_5c [16];\n  int *local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar1 = (int *)param_3[1];\n  local_74 = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    \n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }\n  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;\n  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_70 = (undefined1 **)&local_44;\n  local_4c = (int *)*piVar3;\n  if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }\n  local_48 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x10) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;\n  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));\n  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_7c = &local_2c;\n  local_34 = (int *)*piVar3;\n  if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }\n  local_30 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(int ***)((int)ppiVar5 + -0xc) = &local_34;\n  *(undefined4 **)((int)ppiVar5 + -0x10) = param_1;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;\n  FUN_0026c330();\n  if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }\n  if ((undefined1 **)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }\n  param_1[3] = piVar1;\n  param_1[2] = local_74;\n  *param_1 = &PTR_FUN_0038d198;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002268d0(undefined4 *param_1,undefined4 param_2,int *param_3)" (identifier "FUN_002268d0") (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  char *pcVar2;\n  int *piVar3;\n  size_t sVar4;\n  int **ppiVar5;\n  undefined4 uVar6;\n  undefined1 auStack_80 [4];\n  int *local_7c;\n  undefined1 *local_78;\n  int local_74;\n  undefined1 **local_70;\n  undefined1 *local_64;\n  undefined4 local_60;\n  undefined1 local_5c [16];\n  int *local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar1 = (int *)param_3[1];\n  local_74 = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    \n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }\n  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;\n  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_70 = (undefined1 **)&local_44;\n  local_4c = (int *)*piVar3;\n  if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }\n  local_48 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x10) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;\n  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));\n  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;\n  *(undefined4 *)((int)ppiVar5 + -0x14) = param_2;\n  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;\n  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;\n  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;\n  piVar3 = (int *)FUN_001ef9f0();\n  local_7c = &local_2c;\n  local_34 = (int *)*piVar3;\n  if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }\n  local_30 = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  *(int ***)((int)ppiVar5 + -0xc) = &local_34;\n  *(undefined4 **)((int)ppiVar5 + -0x10) = param_1;\n                    \n  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;\n  FUN_0026c330();\n  if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }\n  if ((undefined1 **)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }\n  param_1[3] = piVar1;\n  param_1[2] = local_74;\n  *param_1 = &PTR_FUN_0038d198;\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (declaration "int **ppiVar5;" (primitive_type "int") (pointer_declarator "**ppiVar5" (* "*") (pointer_declarator "*ppiVar5" (* "*") (identifier "ppiVar5"))) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined1 auStack_80 [4];" (type_identifier "undefined1") (array_declarator "auStack_80 [4]" (identifier "auStack_80") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int *local_7c;" (primitive_type "int") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "undefined1 *local_78;" (type_identifier "undefined1") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "undefined1 **local_70;" (type_identifier "undefined1") (pointer_declarator "**local_70" (* "*") (pointer_declarator "*local_70" (* "*") (identifier "local_70"))) (; ";")) (declaration "undefined1 *local_64;" (type_identifier "undefined1") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "undefined1 local_5c [16];" (type_identifier "undefined1") (array_declarator "local_5c [16]" (identifier "local_5c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int *local_4c;" (primitive_type "int") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int *local_34;" (primitive_type "int") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "piVar1 = (int *)param_3[1];" (assignment_expression "piVar1 = (int *)param_3[1]" (identifier "piVar1") (= "=") (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_74 = *param_3;" (assignment_expression "local_74 = *param_3" (identifier "local_74") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    \n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }\n  else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" (if "if") (parenthesized_expression "(*(code **)(*piVar1 + 0x10) == FUN_002262f0)" (( "(") (binary_expression "*(code **)(*piVar1 + 0x10) == FUN_002262f0" (pointer_expression "*(code **)(*piVar1 + 0x10)" (* "*") (cast_expression "(code **)(*piVar1 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar1 + 0x10)" (( "(") (binary_expression "*piVar1 + 0x10" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (identifier "FUN_002262f0")) () ")")) (compound_statement "{\n    local_70 = &local_64;\n    local_60 = 0;\n    local_78 = local_5c;\n    local_5c[0] = 0;\n    if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }\n    local_64 = local_78;\n                    \n    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);\n    ppiVar5 = &local_7c;\n  }" ({ "{") (expression_statement "local_70 = &local_64;" (assignment_expression "local_70 = &local_64" (identifier "local_70") (= "=") (pointer_expression "&local_64" (& "&") (identifier "local_64"))) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = local_5c;" (assignment_expression "local_78 = local_5c" (identifier "local_78") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "local_5c[0] = 0;" (assignment_expression "local_5c[0] = 0" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_74 == 1) {\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }\n    else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" (if "if") (parenthesized_expression "(local_74 == 1)" (( "(") (binary_expression "local_74 == 1" (identifier "local_74") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      pcVar2 = "iostream error";\n      uVar6 = 0xe;\n    }" ({ "{") (expression_statement "pcVar2 = "iostream error";" (assignment_expression "pcVar2 = "iostream error"" (identifier "pcVar2") (= "=") (string_literal ""iostream error"" (" """) (string_content "iostream error") (" """))) (; ";")) (expression_statement "uVar6 = 0xe;" (assignment_expression "uVar6 = 0xe" (identifier "uVar6") (= "=") (number_literal "0xe")) (; ";")) (} "}")) (else_clause "else {\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" (else "else") (compound_statement "{\n      pcVar2 = "Unknown error";\n      uVar6 = 0xd;\n    }" ({ "{") (expression_statement "pcVar2 = "Unknown error";" (assignment_expression "pcVar2 = "Unknown error"" (identifier "pcVar2") (= "=") (string_literal ""Unknown error"" (" """) (string_content "Unknown error") (" """))) (; ";")) (expression_statement "uVar6 = 0xd;" (assignment_expression "uVar6 = 0xd" (identifier "uVar6") (= "=") (number_literal "0xd")) (; ";")) (} "}")))) (expression_statement "local_64 = local_78;" (assignment_expression "local_64 = local_78" (identifier "local_64") (= "=") (identifier "local_78")) (; ";")) (expression_statement "FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);" (call_expression "FUN_001ef9f0(local_70,0,0,pcVar2,uVar6)" (identifier "FUN_001ef9f0") (argument_list "(local_70,0,0,pcVar2,uVar6)" (( "(") (identifier "local_70") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "pcVar2") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "ppiVar5 = &local_7c;" (assignment_expression "ppiVar5 = &local_7c" (identifier "ppiVar5") (= "=") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) (; ";")) (} "}")) (else_clause "else {\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" (else "else") (compound_statement "{\n    local_70 = &local_64;\n    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);\n    local_78 = local_5c;\n    ppiVar5 = (int **)auStack_80;\n  }" ({ "{") (expression_statement "local_70 = &local_64;" (assignment_expression "local_70 = &local_64" (identifier "local_70") (= "=") (pointer_expression "&local_64" (& "&") (identifier "local_64"))) (; ";")) (expression_statement "(**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);" (call_expression "(**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74)" (parenthesized_expression "(**(code **)(*piVar1 + 0x10))" (( "(") (pointer_expression "**(code **)(*piVar1 + 0x10)" (* "*") (pointer_expression "*(code **)(*piVar1 + 0x10)" (* "*") (cast_expression "(code **)(*piVar1 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar1 + 0x10)" (( "(") (binary_expression "*piVar1 + 0x10" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(local_70,piVar1,local_74)" (( "(") (identifier "local_70") (, ",") (identifier "piVar1") (, ",") (identifier "local_74") () ")"))) (; ";")) (expression_statement "local_78 = local_5c;" (assignment_expression "local_78 = local_5c" (identifier "local_78") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "ppiVar5 = (int **)auStack_80;" (assignment_expression "ppiVar5 = (int **)auStack_80" (identifier "ppiVar5") (= "=") (cast_expression "(int **)auStack_80" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_80"))) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x10) = 2;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x10) = 2" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x10)" (( "(") (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;" (assignment_expression "*(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59" (pointer_expression "*(undefined **)((int)ppiVar5 + -0x14)" (* "*") (cast_expression "(undefined **)((int)ppiVar5 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x14)" (( "(") (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&DAT_0029ef59" (& "&") (identifier "DAT_0029ef59"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x18)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x18)" (( "(") (binary_expression "(int)ppiVar5 + -0x18" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x1c)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x1c)" (( "(") (binary_expression "(int)ppiVar5 + -0x1c" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;" (assignment_expression "*(undefined1 ***)((int)ppiVar5 + -0x20) = local_70" (pointer_expression "*(undefined1 ***)((int)ppiVar5 + -0x20)" (* "*") (cast_expression "(undefined1 ***)((int)ppiVar5 + -0x20)" (( "(") (type_descriptor "undefined1 ***" (type_identifier "undefined1") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x20)" (( "(") (binary_expression "(int)ppiVar5 + -0x20" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_70")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x24)" (( "(") (binary_expression "(int)ppiVar5 + -0x24" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x22695c")) (; ";")) (expression_statement "piVar3 = (int *)FUN_001ef9f0();" (assignment_expression "piVar3 = (int *)FUN_001ef9f0()" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_001ef9f0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001ef9f0()" (identifier "FUN_001ef9f0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_70 = (undefined1 **)&local_44;" (assignment_expression "local_70 = (undefined1 **)&local_44" (identifier "local_70") (= "=") (cast_expression "(undefined1 **)&local_44" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_44" (& "&") (identifier "local_44")))) (; ";")) (expression_statement "local_4c = (int *)*piVar3;" (assignment_expression "local_4c = (int *)*piVar3" (identifier "local_4c") (= "=") (cast_expression "(int *)*piVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")))) (; ";")) (if_statement "if (local_4c == piVar3 + 2) {\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }\n  else {\n    local_44 = piVar3[2];\n  }" (if "if") (parenthesized_expression "(local_4c == piVar3 + 2)" (( "(") (binary_expression "local_4c == piVar3 + 2" (identifier "local_4c") (== "==") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n    local_44 = piVar3[2];\n    local_40 = piVar3[3];\n    local_3c = piVar3[4];\n    local_38 = piVar3[5];\n    local_4c = (int *)local_70;\n  }" ({ "{") (expression_statement "local_44 = piVar3[2];" (assignment_expression "local_44 = piVar3[2]" (identifier "local_44") (= "=") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_40 = piVar3[3];" (assignment_expression "local_40 = piVar3[3]" (identifier "local_40") (= "=") (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_3c = piVar3[4];" (assignment_expression "local_3c = piVar3[4]" (identifier "local_3c") (= "=") (subscript_expression "piVar3[4]" (identifier "piVar3") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_38 = piVar3[5];" (assignment_expression "local_38 = piVar3[5]" (identifier "local_38") (= "=") (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_4c = (int *)local_70;" (assignment_expression "local_4c = (int *)local_70" (identifier "local_4c") (= "=") (cast_expression "(int *)local_70" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_70"))) (; ";")) (} "}")) (else_clause "else {\n    local_44 = piVar3[2];\n  }" (else "else") (compound_statement "{\n    local_44 = piVar3[2];\n  }" ({ "{") (expression_statement "local_44 = piVar3[2];" (assignment_expression "local_44 = piVar3[2]" (identifier "local_44") (= "=") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (expression_statement "local_48 = piVar3[1];" (assignment_expression "local_48 = piVar3[1]" (identifier "local_48") (= "=") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" (* "*") (cast_expression "(undefined1 *)(piVar3 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 2)" (( "(") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (cast_expression "(int)(piVar3 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar3 + 2)" (( "(") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x10) = param_2" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x10)" (( "(") (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x14)" (( "(") (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x22699e")) (; ";")) (expression_statement "sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));" (assignment_expression "sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10))" (identifier "sVar4") (= "=") (call_expression "strlen(*(char **)((int)ppiVar5 + -0x10))" (identifier "strlen") (argument_list "(*(char **)((int)ppiVar5 + -0x10))" (( "(") (pointer_expression "*(char **)((int)ppiVar5 + -0x10)" (* "*") (cast_expression "(char **)((int)ppiVar5 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x10)" (( "(") (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "*(size_t *)((int)ppiVar5 + -0x10) = sVar4;" (assignment_expression "*(size_t *)((int)ppiVar5 + -0x10) = sVar4" (pointer_expression "*(size_t *)((int)ppiVar5 + -0x10)" (* "*") (cast_expression "(size_t *)((int)ppiVar5 + -0x10)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x10)" (( "(") (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "sVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = param_2;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = param_2" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x14)" (( "(") (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x18)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x18)" (( "(") (binary_expression "(int)ppiVar5 + -0x18" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x1c)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x1c)" (( "(") (binary_expression "(int)ppiVar5 + -0x1c" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int ***)((int)ppiVar5 + -0x20) = &local_4c;" (assignment_expression "*(int ***)((int)ppiVar5 + -0x20) = &local_4c" (pointer_expression "*(int ***)((int)ppiVar5 + -0x20)" (* "*") (cast_expression "(int ***)((int)ppiVar5 + -0x20)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x20)" (( "(") (binary_expression "(int)ppiVar5 + -0x20" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x24)" (( "(") (binary_expression "(int)ppiVar5 + -0x24" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x2269b1")) (; ";")) (expression_statement "piVar3 = (int *)FUN_001ef9f0();" (assignment_expression "piVar3 = (int *)FUN_001ef9f0()" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_001ef9f0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001ef9f0()" (identifier "FUN_001ef9f0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_7c = &local_2c;" (assignment_expression "local_7c = &local_2c" (identifier "local_7c") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (expression_statement "local_34 = (int *)*piVar3;" (assignment_expression "local_34 = (int *)*piVar3" (identifier "local_34") (= "=") (cast_expression "(int *)*piVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")))) (; ";")) (if_statement "if (local_34 == piVar3 + 2) {\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }\n  else {\n    local_2c = piVar3[2];\n  }" (if "if") (parenthesized_expression "(local_34 == piVar3 + 2)" (( "(") (binary_expression "local_34 == piVar3 + 2" (identifier "local_34") (== "==") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n    local_2c = piVar3[2];\n    local_28 = piVar3[3];\n    local_24 = piVar3[4];\n    local_20 = piVar3[5];\n    local_34 = local_7c;\n  }" ({ "{") (expression_statement "local_2c = piVar3[2];" (assignment_expression "local_2c = piVar3[2]" (identifier "local_2c") (= "=") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_28 = piVar3[3];" (assignment_expression "local_28 = piVar3[3]" (identifier "local_28") (= "=") (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_24 = piVar3[4];" (assignment_expression "local_24 = piVar3[4]" (identifier "local_24") (= "=") (subscript_expression "piVar3[4]" (identifier "piVar3") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_20 = piVar3[5];" (assignment_expression "local_20 = piVar3[5]" (identifier "local_20") (= "=") (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_34 = local_7c;" (assignment_expression "local_34 = local_7c" (identifier "local_34") (= "=") (identifier "local_7c")) (; ";")) (} "}")) (else_clause "else {\n    local_2c = piVar3[2];\n  }" (else "else") (compound_statement "{\n    local_2c = piVar3[2];\n  }" ({ "{") (expression_statement "local_2c = piVar3[2];" (assignment_expression "local_2c = piVar3[2]" (identifier "local_2c") (= "=") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (expression_statement "local_30 = piVar3[1];" (assignment_expression "local_30 = piVar3[1]" (identifier "local_30") (= "=") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" (* "*") (cast_expression "(undefined1 *)(piVar3 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 2)" (( "(") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (cast_expression "(int)(piVar3 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar3 + 2)" (( "(") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int ***)((int)ppiVar5 + -0xc) = &local_34;" (assignment_expression "*(int ***)((int)ppiVar5 + -0xc) = &local_34" (pointer_expression "*(int ***)((int)ppiVar5 + -0xc)" (* "*") (cast_expression "(int ***)((int)ppiVar5 + -0xc)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppiVar5 + -0xc)" (( "(") (binary_expression "(int)ppiVar5 + -0xc" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(undefined4 **)((int)ppiVar5 + -0x10) = param_1;" (assignment_expression "*(undefined4 **)((int)ppiVar5 + -0x10) = param_1" (pointer_expression "*(undefined4 **)((int)ppiVar5 + -0x10)" (* "*") (cast_expression "(undefined4 **)((int)ppiVar5 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x10)" (( "(") (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x14)" (( "(") (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x2269f7")) (; ";")) (expression_statement "FUN_0026c330();" (call_expression "FUN_0026c330()" (identifier "FUN_0026c330") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_34 != local_7c) {\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }" (if "if") (parenthesized_expression "(local_34 != local_7c)" (( "(") (binary_expression "local_34 != local_7c" (identifier "local_34") (!= "!=") (identifier "local_7c")) () ")")) (compound_statement "{\n    *(int **)((int)ppiVar5 + -0x10) = local_34;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;\n    FUN_001e6db0();\n  }" ({ "{") (expression_statement "*(int **)((int)ppiVar5 + -0x10) = local_34;" (assignment_expression "*(int **)((int)ppiVar5 + -0x10) = local_34" (pointer_expression "*(int **)((int)ppiVar5 + -0x10)" (* "*") (cast_expression "(int **)((int)ppiVar5 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x10)" (( "(") (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x14)" (( "(") (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x226a0b")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((undefined1 **)local_4c != local_70) {\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }" (if "if") (parenthesized_expression "((undefined1 **)local_4c != local_70)" (( "(") (binary_expression "(undefined1 **)local_4c != local_70" (cast_expression "(undefined1 **)local_4c" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_4c")) (!= "!=") (identifier "local_70")) () ")")) (compound_statement "{\n    *(int **)((int)ppiVar5 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;\n    FUN_001e6db0();\n  }" ({ "{") (expression_statement "*(int **)((int)ppiVar5 + -0x10) = local_4c;" (assignment_expression "*(int **)((int)ppiVar5 + -0x10) = local_4c" (pointer_expression "*(int **)((int)ppiVar5 + -0x10)" (* "*") (cast_expression "(int **)((int)ppiVar5 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x10)" (( "(") (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x14)" (( "(") (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x226a21")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_64 != local_78) {\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }" (if "if") (parenthesized_expression "(local_64 != local_78)" (( "(") (binary_expression "local_64 != local_78" (identifier "local_64") (!= "!=") (identifier "local_78")) () ")")) (compound_statement "{\n    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;\n    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;\n    FUN_001e6db0();\n  }" ({ "{") (expression_statement "*(undefined1 **)((int)ppiVar5 + -0x10) = local_64;" (assignment_expression "*(undefined1 **)((int)ppiVar5 + -0x10) = local_64" (pointer_expression "*(undefined1 **)((int)ppiVar5 + -0x10)" (* "*") (cast_expression "(undefined1 **)((int)ppiVar5 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x10)" (( "(") (binary_expression "(int)ppiVar5 + -0x10" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;" (assignment_expression "*(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37" (pointer_expression "*(undefined4 *)((int)ppiVar5 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar5 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar5 + -0x14)" (( "(") (binary_expression "(int)ppiVar5 + -0x14" (cast_expression "(int)ppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar5")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x226a37")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[3] = piVar1;" (assignment_expression "param_1[3] = piVar1" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar1")) (; ";")) (expression_statement "param_1[2] = local_74;" (assignment_expression "param_1[2] = local_74" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "*param_1 = &PTR_FUN_0038d198;" (assignment_expression "*param_1 = &PTR_FUN_0038d198" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&PTR_FUN_0038d198" (& "&") (identifier "PTR_FUN_0038d198"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* std::ios_base::failure[abi:cxx11]::failure(char const*, std::error_code const&) */

void __thiscall
std::ios_base::function_1[abi:cxx11]::function_1
          (type_1 *var_15,char *param_1,type_2 *var_1)

{
  int *piVar1;
  char *pcVar2;
  int *var_6;
  size_t sVar4;
  int **ppiVar5;
  type_3 uVar6;
  type_4 auStack_80 [4];
  int *var_10;
  type_4 *var_14;
  int var_3;
  type_5 *var_12;
  type_4 *var_13;
  type_6 local_60;
  type_4 local_5c [16];
  int *var_5;
  int local_48;
  int local_44;
  int local_40;
  int local_3c;
  int local_38;
  int *var_8;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  piVar1 = *(int **)(var_1 + 4);
  var_3 = *(int *)var_1;
  if (*(type_7 **)(*piVar1 + 0x10) == ::(var_2)::io_error_category::message_abi_cxx11_)
  {
    var_12 = (type_5 *)&var_13;
    local_60 = 0;
    var_14 = local_5c;
    local_5c[0] = 0;
    if (var_3 == 1) {
      pcVar2 = "iostream error";
      uVar6 = 0xe;
    }
    else {
      pcVar2 = "Unknown error";
      uVar6 = 0xd;
    }
    var_13 = var_14;
                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */
    std::string::var_4(var_12,0,0,pcVar2,uVar6);
    ppiVar5 = &var_10;
  }
  else {
    var_12 = (type_5 *)&var_13;
    (**(type_7 **)(*piVar1 + 0x10))(var_12,piVar1,var_3);
    var_14 = local_5c;
    ppiVar5 = (int **)auStack_80;
  }
  *(type_6 *)((int)ppiVar5 + -0x10) = 2;
  *(type_8 **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;
  *(type_6 *)((int)ppiVar5 + -0x18) = 0;
  *(type_6 *)((int)ppiVar5 + -0x1c) = 0;
  *(type_5 **)((int)ppiVar5 + -0x20) = var_12;
                    /* try { // try from 00226957 to 0022695b has its CatchHandler @ 00226adb */
  *(type_6 *)((int)ppiVar5 + -0x24) = 0x22695c;
  var_6 = (int *)std::string::var_4
                            (*(type_5 **)((int)ppiVar5 + -0x20),*(type_3 *)((int)ppiVar5 + -0x1c),
                             *(type_3 *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),
                             *(type_3 *)((int)ppiVar5 + -0x10));
  var_12 = (type_5 *)&local_44;
  var_5 = (int *)*var_6;
  if (var_5 == var_6 + 2) {
    local_44 = var_6[2];
    local_40 = var_6[3];
    local_3c = var_6[4];
    local_38 = var_6[5];
    var_5 = (int *)var_12;
  }
  else {
    local_44 = var_6[2];
  }
  local_48 = var_6[1];
  *(type_4 *)(var_6 + 2) = 0;
  *var_6 = (int)(var_6 + 2);
  var_6[1] = 0;
  *(char **)((int)ppiVar5 + -0x10) = param_1;
  *(type_6 *)((int)ppiVar5 + -0x14) = 0x22699e;
  sVar4 = var_7(*(char **)((int)ppiVar5 + -0x10));
  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;
  *(char **)((int)ppiVar5 + -0x14) = param_1;
  *(type_6 *)((int)ppiVar5 + -0x18) = 0;
  *(type_6 *)((int)ppiVar5 + -0x1c) = 0;
  *(int ***)((int)ppiVar5 + -0x20) = &var_5;
                    /* try { // try from 002269ac to 002269b0 has its CatchHandler @ 00226ad4 */
  *(type_6 *)((int)ppiVar5 + -0x24) = 0x2269b1;
  var_6 = (int *)std::string::var_4
                            (*(type_5 **)((int)ppiVar5 + -0x20),*(type_3 *)((int)ppiVar5 + -0x1c),
                             *(type_3 *)((int)ppiVar5 + -0x18),*(char **)((int)ppiVar5 + -0x14),
                             *(type_3 *)((int)ppiVar5 + -0x10));
  var_10 = &local_2c;
  var_8 = (int *)*var_6;
  if (var_8 == var_6 + 2) {
    local_2c = var_6[2];
    local_28 = var_6[3];
    local_24 = var_6[4];
    local_20 = var_6[5];
    var_8 = var_10;
  }
  else {
    local_2c = var_6[2];
  }
  local_30 = var_6[1];
  *(type_4 *)(var_6 + 2) = 0;
  *var_6 = (int)(var_6 + 2);
  var_6[1] = 0;
  *(int ***)((int)ppiVar5 + -0xc) = &var_8;
  *(type_1 **)((int)ppiVar5 + -0x10) = var_15;
                    /* try { // try from 002269f2 to 002269f6 has its CatchHandler @ 00226ae2 */
  *(type_6 *)((int)ppiVar5 + -0x14) = 0x2269f7;
  runtime_error::var_9
            (*(var_9 **)((int)ppiVar5 + -0x10),*(type_5 **)((int)ppiVar5 + -0xc));
  if (var_8 != var_10) {
    *(int **)((int)ppiVar5 + -0x10) = var_8;
    *(type_6 *)((int)ppiVar5 + -0x14) = 0x226a0b;
    var_11(*(void **)((int)ppiVar5 + -0x10));
  }
  if ((type_5 *)var_5 != var_12) {
    *(int **)((int)ppiVar5 + -0x10) = var_5;
    *(type_6 *)((int)ppiVar5 + -0x14) = 0x226a21;
    var_11(*(void **)((int)ppiVar5 + -0x10));
  }
  if (var_13 != var_14) {
    *(type_4 **)((int)ppiVar5 + -0x10) = var_13;
    *(type_6 *)((int)ppiVar5 + -0x14) = 0x226a37;
    var_11(*(void **)((int)ppiVar5 + -0x10));
  }
  *(int **)(var_15 + 0xc) = piVar1;
  *(int *)(var_15 + 8) = var_3;
  *(type_8 ***)var_15 = &PTR__failure_0038d198;
  return;
}


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

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

void MASKED(undefined4 *param_1,undefined4 param_2,int *param_3)

{
  int *piVar1;
  char *pcVar2;
  int *piVar3;
  size_t sVar4;
  int **ppiVar5;
  undefined4 uVar6;
  undefined1 auStack_80 [4];
  int *local_7c;
  undefined1 *local_78;
  int local_74;
  undefined1 **local_70;
  undefined1 *local_64;
  undefined4 local_60;
  undefined1 local_5c [16];
  int *local_4c;
  int local_48;
  int local_44;
  int local_40;
  int local_3c;
  int local_38;
  int *local_34;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  piVar1 = (int *)param_3[1];
  local_74 = *param_3;
  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {
    local_70 = &local_64;
    local_60 = 0;
    local_78 = local_5c;
    local_5c[0] = 0;
    if (local_74 == 1) {
      pcVar2 = "iostream error";
      uVar6 = 0xe;
    }
    else {
      pcVar2 = "Unknown error";
      uVar6 = 0xd;
    }
    local_64 = local_78;
                    /* try { // try from 0022693a to 0022693e has its CatchHandler @ 00226acd */
    FUN_001ef9f0(local_70,0,0,pcVar2,uVar6);
    ppiVar5 = &local_7c;
  }
  else {
    local_70 = &local_64;
    (**(code **)(*piVar1 + 0x10))(local_70,piVar1,local_74);
    local_78 = local_5c;
    ppiVar5 = (int **)auStack_80;
  }
  *(undefined4 *)((int)ppiVar5 + -0x10) = 2;
  *(undefined **)((int)ppiVar5 + -0x14) = &DAT_0029ef59;
  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;
  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;
  *(undefined1 ***)((int)ppiVar5 + -0x20) = local_70;
                    /* try { // try from 00226957 to 0022695b has its CatchHandler @ 00226adb */
  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x22695c;
  piVar3 = (int *)FUN_001ef9f0();
  local_70 = (undefined1 **)&local_44;
  local_4c = (int *)*piVar3;
  if (local_4c == piVar3 + 2) {
    local_44 = piVar3[2];
    local_40 = piVar3[3];
    local_3c = piVar3[4];
    local_38 = piVar3[5];
    local_4c = (int *)local_70;
  }
  else {
    local_44 = piVar3[2];
  }
  local_48 = piVar3[1];
  *(undefined1 *)(piVar3 + 2) = 0;
  *piVar3 = (int)(piVar3 + 2);
  piVar3[1] = 0;
  *(undefined4 *)((int)ppiVar5 + -0x10) = param_2;
  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x22699e;
  sVar4 = strlen(*(char **)((int)ppiVar5 + -0x10));
  *(size_t *)((int)ppiVar5 + -0x10) = sVar4;
  *(undefined4 *)((int)ppiVar5 + -0x14) = param_2;
  *(undefined4 *)((int)ppiVar5 + -0x18) = 0;
  *(undefined4 *)((int)ppiVar5 + -0x1c) = 0;
  *(int ***)((int)ppiVar5 + -0x20) = &local_4c;
                    /* try { // try from 002269ac to 002269b0 has its CatchHandler @ 00226ad4 */
  *(undefined4 *)((int)ppiVar5 + -0x24) = 0x2269b1;
  piVar3 = (int *)FUN_001ef9f0();
  local_7c = &local_2c;
  local_34 = (int *)*piVar3;
  if (local_34 == piVar3 + 2) {
    local_2c = piVar3[2];
    local_28 = piVar3[3];
    local_24 = piVar3[4];
    local_20 = piVar3[5];
    local_34 = local_7c;
  }
  else {
    local_2c = piVar3[2];
  }
  local_30 = piVar3[1];
  *(undefined1 *)(piVar3 + 2) = 0;
  *piVar3 = (int)(piVar3 + 2);
  piVar3[1] = 0;
  *(int ***)((int)ppiVar5 + -0xc) = &local_34;
  *(undefined4 **)((int)ppiVar5 + -0x10) = param_1;
                    /* try { // try from 002269f2 to 002269f6 has its CatchHandler @ 00226ae2 */
  *(undefined4 *)((int)ppiVar5 + -0x14) = 0x2269f7;
  FUN_0026c330();
  if (local_34 != local_7c) {
    *(int **)((int)ppiVar5 + -0x10) = local_34;
    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a0b;
    FUN_001e6db0();
  }
  if ((undefined1 **)local_4c != local_70) {
    *(int **)((int)ppiVar5 + -0x10) = local_4c;
    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a21;
    FUN_001e6db0();
  }
  if (local_64 != local_78) {
    *(undefined1 **)((int)ppiVar5 + -0x10) = local_64;
    *(undefined4 *)((int)ppiVar5 + -0x14) = 0x226a37;
    FUN_001e6db0();
  }
  param_1[3] = piVar1;
  param_1[2] = local_74;
  *param_1 = &PTR_FUN_0038d198;
  return;
}

