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

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

{
  int *piVar1;
  int iVar2;
  char *pcVar3;
  int *piVar4;
  int *piVar5;
  uint **ppuVar6;
  uint uVar7;
  undefined1 auStack_90 [4];
  uint *local_8c;
  int local_88;
  uint local_84;
  string *local_80;
  int local_7c;
  uint *local_78;
  uint *local_74;
  undefined **local_70;
  uint *local_64;
  int local_60;
  uint local_5c [4];
  uint *local_4c;
  int local_48;
  uint local_44 [4];
  int *local_34;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  local_70 = &_GLOBAL_OFFSET_TABLE_;
  piVar1 = *(int **)(param_2 + 4);
  local_7c = *(int *)param_2;
  if (*(code **)(*piVar1 + 0x10) == ::(anonymous_namespace)::io_error_category::message_abi_cxx11_)
  {
    local_80 = (string *)&local_4c;
    local_48 = 0;
    local_78 = local_44;
    local_44[0] = local_44[0] & 0xffffff00;
    if (local_7c == 1) {
      pcVar3 = "iostream error";
      uVar7 = 0xe;
    }
    else {
      uVar7 = 0xd;
      pcVar3 = "Unknown error";
    }
    local_4c = local_78;
                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */
    std::string::_M_replace(local_80,0,0,pcVar3,uVar7);
    ppuVar6 = &local_8c;
  }
  else {
    local_80 = (string *)&local_4c;
    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);
    local_78 = local_44;
    ppuVar6 = (uint **)auStack_90;
  }
  local_74 = local_5c;
  iVar2 = *(int *)param_1;
  *(undefined4 *)((int)ppuVar6 + -4) = 0;
  *(int *)((int)ppuVar6 + -8) = *(int *)(param_1 + 4) + iVar2;
  *(int *)((int)ppuVar6 + -0xc) = iVar2;
  *(uint ***)((int)ppuVar6 + -0x10) = &local_64;
                    /* try { // try from 002266c7 to 002266cb has its CatchHandler @ 002268bc */
  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266cc;
  local_64 = local_74;
  __cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::_M_construct<char*>();
  if (0x7fffffffU - local_60 < 2) {
    *(int *)((int)ppuVar6 + -0x10) = (int)local_70 + -0x10841e;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */
    *(undefined1 **)((int)ppuVar6 + -0x14) = &LAB_002268a0;
    __throw_length_error(*(char **)((int)ppuVar6 + -0x10));
  }
  *(undefined4 *)((int)ppuVar6 + -8) = 2;
  *(int *)((int)ppuVar6 + -0xc) = (int)local_70 + -0xf00a7;
  *(uint ***)((int)ppuVar6 + -0x10) = &local_64;
                    /* try { // try from 002266f0 to 002266f4 has its CatchHandler @ 002268b5 */
  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266f5;
  std::string::_M_append
            (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),
             *(uint *)((int)ppuVar6 + -8));
  local_88 = local_60;
  local_8c = local_64;
  local_84 = 0xf;
  if (local_64 != local_74) {
    local_84 = local_5c[0];
  }
  if (local_84 < (uint)(local_60 + local_48)) {
    uVar7 = 0xf;
    if (local_4c != local_78) {
      uVar7 = local_44[0];
    }
    if (uVar7 < (uint)(local_60 + local_48)) goto LAB_0022673a;
    *(int *)((int)ppuVar6 + -0x10) = local_60;
    *(uint **)((int)ppuVar6 + -0x14) = local_64;
    *(undefined4 *)((int)ppuVar6 + -0x18) = 0;
    *(undefined4 *)((int)ppuVar6 + -0x1c) = 0;
    *(string **)((int)ppuVar6 + -0x20) = local_80;
                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */
    *(undefined4 *)((int)ppuVar6 + -0x24) = 0x22681e;
    piVar4 = (int *)std::string::_M_replace
                              (*(string **)((int)ppuVar6 + -0x20),*(uint *)((int)ppuVar6 + -0x1c),
                               *(uint *)((int)ppuVar6 + -0x18),*(char **)((int)ppuVar6 + -0x14),
                               *(uint *)((int)ppuVar6 + -0x10));
    piVar5 = piVar4 + 2;
    local_34 = (int *)*piVar4;
    if (local_34 == piVar5) goto LAB_00226834;
  }
  else {
LAB_0022673a:
    *(int *)((int)ppuVar6 + -8) = local_48;
    *(uint **)((int)ppuVar6 + -0xc) = local_4c;
    *(uint ***)((int)ppuVar6 + -0x10) = &local_64;
                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */
    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x226748;
    piVar4 = (int *)std::string::_M_append
                              (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),
                               *(uint *)((int)ppuVar6 + -8));
    piVar5 = piVar4 + 2;
    local_34 = (int *)*piVar4;
    if (local_34 == piVar5) {
LAB_00226834:
      local_34 = &local_2c;
      local_2c = piVar4[2];
      local_28 = piVar4[3];
      local_24 = piVar4[4];
      local_20 = piVar4[5];
      goto LAB_00226767;
    }
  }
  local_2c = piVar4[2];
LAB_00226767:
  local_30 = piVar4[1];
  *(undefined1 *)(piVar4 + 2) = 0;
  *piVar4 = (int)piVar5;
  piVar4[1] = 0;
  *(int ***)((int)ppuVar6 + -0xc) = &local_34;
  *(failure_abi_cxx11_ **)((int)ppuVar6 + -0x10) = this;
                    /* try { // try from 00226787 to 0022678b has its CatchHandler @ 002268a0 */
  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x22678c;
  runtime_error::runtime_error
            (*(runtime_error **)((int)ppuVar6 + -0x10),*(string **)((int)ppuVar6 + -0xc));
  if (local_34 != &local_2c) {
    *(int **)((int)ppuVar6 + -0x10) = local_34;
    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267a2;
    operator_delete(*(void **)((int)ppuVar6 + -0x10));
  }
  if (local_64 != local_74) {
    *(uint **)((int)ppuVar6 + -0x10) = local_64;
    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267b9;
    operator_delete(*(void **)((int)ppuVar6 + -0x10));
  }
  if (local_4c != local_78) {
    *(uint **)((int)ppuVar6 + -0x10) = local_4c;
    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267d0;
    operator_delete(*(void **)((int)ppuVar6 + -0x10));
  }
  *(int **)(this + 0xc) = piVar1;
  *(int *)(this + 8) = local_7c;
  *(undefined ***)this = local_70 + -0x79a;
  return;
}



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

void FUN_00226630(int *param_1,int *param_2,int *param_3)

{
  int *piVar1;
  int iVar2;
  char *pcVar3;
  uint uVar4;
  int *piVar5;
  int *piVar6;
  uint **ppuVar7;
  undefined4 uVar8;
  undefined1 auStack_90 [4];
  uint *local_8c;
  int local_88;
  uint local_84;
  uint **local_80;
  int local_7c;
  uint *local_78;
  uint *local_74;
  undefined **local_70;
  uint *local_64;
  int local_60;
  uint local_5c [4];
  uint *local_4c;
  int local_48;
  uint local_44 [4];
  int *local_34;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  local_70 = &__DT_PLTGOT;
  piVar1 = (int *)param_3[1];
  local_7c = *param_3;
  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {
    local_80 = &local_4c;
    local_48 = 0;
    local_78 = local_44;
    local_44[0] = local_44[0] & 0xffffff00;
    if (local_7c == 1) {
      pcVar3 = "iostream error";
      uVar8 = 0xe;
    }
    else {
      uVar8 = 0xd;
      pcVar3 = "Unknown error";
    }
    local_4c = local_78;
                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */
    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);
    ppuVar7 = &local_8c;
  }
  else {
    local_80 = &local_4c;
    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);
    local_78 = local_44;
    ppuVar7 = (uint **)auStack_90;
  }
  local_74 = local_5c;
  iVar2 = *param_2;
  *(undefined4 *)((int)ppuVar7 + -4) = 0;
  *(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;
  *(int *)((int)ppuVar7 + -0xc) = iVar2;
  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;
                    /* try { // try from 002266c7 to 002266cb has its CatchHandler @ 002268bc */
  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;
  local_64 = local_74;
  FUN_000513a0();
  if (0x7fffffffU - local_60 < 2) {
    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */
    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;
    FUN_0022c7a0();
  }
  *(undefined4 *)((int)ppuVar7 + -8) = 2;
  *(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;
  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;
                    /* try { // try from 002266f0 to 002266f4 has its CatchHandler @ 002268b5 */
  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;
  FUN_001f05c0();
  local_88 = local_60;
  local_8c = local_64;
  local_84 = 0xf;
  if (local_64 != local_74) {
    local_84 = local_5c[0];
  }
  if (local_84 < (uint)(local_60 + local_48)) {
    uVar4 = 0xf;
    if (local_4c != local_78) {
      uVar4 = local_44[0];
    }
    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;
    *(int *)((int)ppuVar7 + -0x10) = local_60;
    *(uint **)((int)ppuVar7 + -0x14) = local_64;
    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;
    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;
    *(uint ***)((int)ppuVar7 + -0x20) = local_80;
                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */
    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;
    piVar5 = (int *)FUN_001ef9f0();
    piVar6 = piVar5 + 2;
    local_34 = (int *)*piVar5;
    if (local_34 == piVar6) goto LAB_00226834;
  }
  else {
LAB_0022673a:
    *(int *)((int)ppuVar7 + -8) = local_48;
    *(uint **)((int)ppuVar7 + -0xc) = local_4c;
    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;
                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */
    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;
    piVar5 = (int *)FUN_001f05c0();
    piVar6 = piVar5 + 2;
    local_34 = (int *)*piVar5;
    if (local_34 == piVar6) {
LAB_00226834:
      local_34 = &local_2c;
      local_2c = piVar5[2];
      local_28 = piVar5[3];
      local_24 = piVar5[4];
      local_20 = piVar5[5];
      goto LAB_00226767;
    }
  }
  local_2c = piVar5[2];
LAB_00226767:
  local_30 = piVar5[1];
  *(undefined1 *)(piVar5 + 2) = 0;
  *piVar5 = (int)piVar6;
  piVar5[1] = 0;
  *(int ***)((int)ppuVar7 + -0xc) = &local_34;
  *(int **)((int)ppuVar7 + -0x10) = param_1;
                    /* try { // try from 00226787 to 0022678b has its CatchHandler @ 002268a0 */
  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;
  FUN_0026c330();
  if (local_34 != &local_2c) {
    *(int **)((int)ppuVar7 + -0x10) = local_34;
    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;
    FUN_001e6db0();
  }
  if (local_64 != local_74) {
    *(uint **)((int)ppuVar7 + -0x10) = local_64;
    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;
    FUN_001e6db0();
  }
  if (local_4c != local_78) {
    *(uint **)((int)ppuVar7 + -0x10) = local_4c;
    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;
    FUN_001e6db0();
  }
  param_1[3] = (int)piVar1;
  param_1[2] = local_7c;
  *param_1 = (int)(local_70 + -0x79a);
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
CALL 0x000559ea
ADD ESI,0x1689c6
PUSH EBX
SUB ESP,0x7c
MOV EAX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EAX + 0x4]
MOV ECX,dword ptr [EAX]
LEA EDX,[ESI + 0xffe972f0]
MOV dword ptr [EBP + -0x6c],ESI
MOV EAX,dword ptr [EDI]
MOV dword ptr [EBP + -0x78],ECX
MOV EAX,dword ptr [EAX + 0x10]
CMP EAX,EDX
JNZ 0x00226870
LEA EAX,[EBP + -0x48]
MOV dword ptr [EBP + -0x44],0x0
MOV dword ptr [EBP + -0x7c],EAX
LEA EAX,[EBP + -0x40]
MOV dword ptr [EBP + -0x74],EAX
MOV dword ptr [EBP + -0x48],EAX
MOV byte ptr [EBP + -0x40],0x0
CMP ECX,0x1
JZ 0x00226858
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH 0xd
LEA EAX,[EBX + 0xfff15fe4]
PUSH EAX
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + -0x7c]
CALL 0x001ef9f0
ADD ESP,0x20
LEA EAX,[EBP + -0x58]
MOV ECX,dword ptr [EBP + 0xc]
LEA ESI,[EBP + -0x60]
MOV EBX,dword ptr [EBP + -0x6c]
MOV dword ptr [EBP + -0x70],EAX
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX]
PUSH 0x0
MOV EDX,dword ptr [ECX + 0x4]
ADD EDX,EAX
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x000513a0
MOV EAX,0x7fffffff
SUB EAX,dword ptr [EBP + -0x5c]
ADD ESP,0x10
CMP EAX,0x1
JBE 0x0022688e
MOV EBX,dword ptr [EBP + -0x6c]
SUB ESP,0x4
PUSH 0x2
LEA EAX,[EBX + 0xfff0ff59]
PUSH EAX
PUSH ESI
CALL 0x001f05c0
MOV EAX,dword ptr [EBP + -0x5c]
MOV EDX,dword ptr [EBP + -0x44]
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff7c],EAX
LEA ECX,[EAX + EDX*0x1]
MOV EAX,dword ptr [EBP + -0x60]
MOV EBX,EAX
MOV dword ptr [EBP + 0xffffff78],EAX
MOV EAX,0xf
CMP EBX,dword ptr [EBP + -0x70]
MOV EBX,EAX
CMOVNZ EBX,dword ptr [EBP + -0x58]
MOV dword ptr [EBP + -0x80],EBX
MOV EBX,dword ptr [EBP + -0x48]
CMP ECX,dword ptr [EBP + -0x80]
JBE 0x0022673a
CMP EBX,dword ptr [EBP + -0x74]
CMOVNZ EAX,dword ptr [EBP + -0x40]
CMP ECX,EAX
JBE 0x00226800
SUB ESP,0x4
PUSH EDX
PUSH EBX
MOV EBX,dword ptr [EBP + -0x6c]
PUSH ESI
CALL 0x001f05c0
LEA ESI,[EBP + -0x28]
LEA EDX,[EAX + 0x8]
ADD ESP,0x10
MOV dword ptr [EBP + -0x30],ESI
MOV ECX,dword ptr [EAX]
CMP ECX,EDX
JZ 0x00226834
MOV dword ptr [EBP + -0x30],ECX
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x28],ECX
MOV ECX,dword ptr [EAX + 0x4]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x6c]
MOV byte ptr [EAX + 0x8],0x0
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
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0x10
CMP EAX,ESI
JZ 0x002267a5
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x60]
CMP EAX,dword ptr [EBP + -0x70]
JZ 0x002267bc
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x48]
CMP EAX,dword ptr [EBP + -0x74]
JZ 0x002267d3
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + -0x78]
MOV dword ptr [EAX + 0xc],EDI
MOV EDI,dword ptr [EBP + 0x8]
MOV dword ptr [EAX + 0x8],EDX
MOV EAX,dword ptr [EBP + -0x6c]
LEA EAX,[EAX + 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
PUSH dword ptr [EBP + 0xffffff7c]
MOV EBX,dword ptr [EBP + -0x6c]
PUSH dword ptr [EBP + 0xffffff78]
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + -0x7c]
CALL 0x001ef9f0
LEA ESI,[EBP + -0x28]
LEA EDX,[EAX + 0x8]
ADD ESP,0x20
MOV dword ptr [EBP + -0x30],ESI
MOV ECX,dword ptr [EAX]
CMP ECX,EDX
JNZ 0x0022675e
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 0x00226767
SUB ESP,0xc
MOV EBX,ESI
LEA EAX,[ESI + 0xfff15fd5]
PUSH 0xe
JMP 0x00226696
SUB ESP,0x4
LEA ESI,[EBP + -0x48]
PUSH dword ptr [EBP + -0x78]
MOV dword ptr [EBP + -0x7c],ESI
PUSH EDI
PUSH ESI
CALL EAX
LEA EAX,[EBP + -0x40]
ADD ESP,0xc
MOV dword ptr [EBP + -0x74],EAX
JMP 0x002266a6
MOV EBX,dword ptr [EBP + -0x6c]
SUB ESP,0xc
LEA EAX,[EBX + 0xffef7be2]
PUSH EAX
CALL 0x0022c7a0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nvoid FUN_00226630(int *param_1,int *param_2,int *param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  char *pcVar3;\n  uint uVar4;\n  int *piVar5;\n  int *piVar6;\n  uint **ppuVar7;\n  undefined4 uVar8;\n  undefined1 auStack_90 [4];\n  uint *local_8c;\n  int local_88;\n  uint local_84;\n  uint **local_80;\n  int local_7c;\n  uint *local_78;\n  uint *local_74;\n  undefined **local_70;\n  uint *local_64;\n  int local_60;\n  uint local_5c [4];\n  uint *local_4c;\n  int local_48;\n  uint local_44 [4];\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  local_70 = &__DT_PLTGOT;\n  piVar1 = (int *)param_3[1];\n  local_7c = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */\n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }\n  else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }\n  local_74 = local_5c;\n  iVar2 = *param_2;\n  *(undefined4 *)((int)ppuVar7 + -4) = 0;\n  *(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;\n  *(int *)((int)ppuVar7 + -0xc) = iVar2;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 002266c7 to 002266cb has its CatchHandler @ 002268bc */\n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;\n  local_64 = local_74;\n  FUN_000513a0();\n  if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */\n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }\n  *(undefined4 *)((int)ppuVar7 + -8) = 2;\n  *(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 002266f0 to 002266f4 has its CatchHandler @ 002268b5 */\n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;\n  FUN_001f05c0();\n  local_88 = local_60;\n  local_8c = local_64;\n  local_84 = 0xf;\n  if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }\n  if (local_84 < (uint)(local_60 + local_48)) {\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }\n  local_2c = piVar5[2];\nLAB_00226767:\n  local_30 = piVar5[1];\n  *(undefined1 *)(piVar5 + 2) = 0;\n  *piVar5 = (int)piVar6;\n  piVar5[1] = 0;\n  *(int ***)((int)ppuVar7 + -0xc) = &local_34;\n  *(int **)((int)ppuVar7 + -0x10) = param_1;\n                    /* try { // try from 00226787 to 0022678b has its CatchHandler @ 002268a0 */\n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;\n  FUN_0026c330();\n  if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_74) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }\n  if (local_4c != local_78) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }\n  param_1[3] = (int)piVar1;\n  param_1[2] = local_7c;\n  *param_1 = (int)(local_70 + -0x79a);\n  return;\n}\n\n" comment (function_definition "void FUN_00226630(int *param_1,int *param_2,int *param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  char *pcVar3;\n  uint uVar4;\n  int *piVar5;\n  int *piVar6;\n  uint **ppuVar7;\n  undefined4 uVar8;\n  undefined1 auStack_90 [4];\n  uint *local_8c;\n  int local_88;\n  uint local_84;\n  uint **local_80;\n  int local_7c;\n  uint *local_78;\n  uint *local_74;\n  undefined **local_70;\n  uint *local_64;\n  int local_60;\n  uint local_5c [4];\n  uint *local_4c;\n  int local_48;\n  uint local_44 [4];\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  local_70 = &__DT_PLTGOT;\n  piVar1 = (int *)param_3[1];\n  local_7c = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */\n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }\n  else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }\n  local_74 = local_5c;\n  iVar2 = *param_2;\n  *(undefined4 *)((int)ppuVar7 + -4) = 0;\n  *(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;\n  *(int *)((int)ppuVar7 + -0xc) = iVar2;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 002266c7 to 002266cb has its CatchHandler @ 002268bc */\n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;\n  local_64 = local_74;\n  FUN_000513a0();\n  if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */\n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }\n  *(undefined4 *)((int)ppuVar7 + -8) = 2;\n  *(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 002266f0 to 002266f4 has its CatchHandler @ 002268b5 */\n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;\n  FUN_001f05c0();\n  local_88 = local_60;\n  local_8c = local_64;\n  local_84 = 0xf;\n  if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }\n  if (local_84 < (uint)(local_60 + local_48)) {\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }\n  local_2c = piVar5[2];\nLAB_00226767:\n  local_30 = piVar5[1];\n  *(undefined1 *)(piVar5 + 2) = 0;\n  *piVar5 = (int)piVar6;\n  piVar5[1] = 0;\n  *(int ***)((int)ppuVar7 + -0xc) = &local_34;\n  *(int **)((int)ppuVar7 + -0x10) = param_1;\n                    /* try { // try from 00226787 to 0022678b has its CatchHandler @ 002268a0 */\n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;\n  FUN_0026c330();\n  if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_74) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }\n  if (local_4c != local_78) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }\n  param_1[3] = (int)piVar1;\n  param_1[2] = local_7c;\n  *param_1 = (int)(local_70 + -0x79a);\n  return;\n}" primitive_type (function_declarator "FUN_00226630(int *param_1,int *param_2,int *param_3)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  char *pcVar3;\n  uint uVar4;\n  int *piVar5;\n  int *piVar6;\n  uint **ppuVar7;\n  undefined4 uVar8;\n  undefined1 auStack_90 [4];\n  uint *local_8c;\n  int local_88;\n  uint local_84;\n  uint **local_80;\n  int local_7c;\n  uint *local_78;\n  uint *local_74;\n  undefined **local_70;\n  uint *local_64;\n  int local_60;\n  uint local_5c [4];\n  uint *local_4c;\n  int local_48;\n  uint local_44 [4];\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  local_70 = &__DT_PLTGOT;\n  piVar1 = (int *)param_3[1];\n  local_7c = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */\n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }\n  else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }\n  local_74 = local_5c;\n  iVar2 = *param_2;\n  *(undefined4 *)((int)ppuVar7 + -4) = 0;\n  *(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;\n  *(int *)((int)ppuVar7 + -0xc) = iVar2;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 002266c7 to 002266cb has its CatchHandler @ 002268bc */\n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;\n  local_64 = local_74;\n  FUN_000513a0();\n  if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */\n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }\n  *(undefined4 *)((int)ppuVar7 + -8) = 2;\n  *(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 002266f0 to 002266f4 has its CatchHandler @ 002268b5 */\n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;\n  FUN_001f05c0();\n  local_88 = local_60;\n  local_8c = local_64;\n  local_84 = 0xf;\n  if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }\n  if (local_84 < (uint)(local_60 + local_48)) {\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }\n  local_2c = piVar5[2];\nLAB_00226767:\n  local_30 = piVar5[1];\n  *(undefined1 *)(piVar5 + 2) = 0;\n  *piVar5 = (int)piVar6;\n  piVar5[1] = 0;\n  *(int ***)((int)ppuVar7 + -0xc) = &local_34;\n  *(int **)((int)ppuVar7 + -0x10) = param_1;\n                    /* try { // try from 00226787 to 0022678b has its CatchHandler @ 002268a0 */\n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;\n  FUN_0026c330();\n  if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_74) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }\n  if (local_4c != local_78) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }\n  param_1[3] = (int)piVar1;\n  param_1[2] = local_7c;\n  *param_1 = (int)(local_70 + -0x79a);\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint **ppuVar7;" type_identifier (pointer_declarator "**ppuVar7" * (pointer_declarator "*ppuVar7" * identifier)) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined1 auStack_90 [4];" type_identifier (array_declarator "auStack_90 [4]" identifier [ number_literal ]) ;) (declaration "uint *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "uint **local_80;" type_identifier (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier)) ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "uint *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "uint *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "uint local_5c [4];" type_identifier (array_declarator "local_5c [4]" identifier [ number_literal ]) ;) (declaration "uint *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint local_44 [4];" type_identifier (array_declarator "local_44 [4]" identifier [ number_literal ]) ;) (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 "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & 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_7c = *param_3;" (assignment_expression "local_7c = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */\n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }\n  else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\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_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */\n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }" { (expression_statement "local_80 = &local_4c;" (assignment_expression "local_80 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_78 = local_44;" (assignment_expression "local_78 = local_44" identifier = identifier) ;) (expression_statement "local_44[0] = local_44[0] & 0xffffff00;" (assignment_expression "local_44[0] = local_44[0] & 0xffffff00" (subscript_expression "local_44[0]" identifier [ number_literal ]) = (binary_expression "local_44[0] & 0xffffff00" (subscript_expression "local_44[0]" identifier [ number_literal ]) & number_literal)) ;) (if_statement "if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }" if (parenthesized_expression "(local_7c == 1)" ( (binary_expression "local_7c == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }" { (expression_statement "pcVar3 = "iostream error";" (assignment_expression "pcVar3 = "iostream error"" identifier = (string_literal ""iostream error"" " string_content ")) ;) (expression_statement "uVar8 = 0xe;" (assignment_expression "uVar8 = 0xe" identifier = number_literal) ;) }) (else_clause "else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }" else (compound_statement "{\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }" { (expression_statement "uVar8 = 0xd;" (assignment_expression "uVar8 = 0xd" identifier = number_literal) ;) (expression_statement "pcVar3 = "Unknown error";" (assignment_expression "pcVar3 = "Unknown error"" identifier = (string_literal ""Unknown error"" " string_content ")) ;) }))) (expression_statement "local_4c = local_78;" (assignment_expression "local_4c = local_78" identifier = identifier) ;) comment (expression_statement "FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);" (call_expression "FUN_001ef9f0(local_80,0,0,pcVar3,uVar8)" identifier (argument_list "(local_80,0,0,pcVar3,uVar8)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "ppuVar7 = &local_8c;" (assignment_expression "ppuVar7 = &local_8c" identifier = (pointer_expression "&local_8c" & identifier)) ;) }) (else_clause "else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }" else (compound_statement "{\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }" { (expression_statement "local_80 = &local_4c;" (assignment_expression "local_80 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "(**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);" (call_expression "(**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c)" (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_80,piVar1,local_7c)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_78 = local_44;" (assignment_expression "local_78 = local_44" identifier = identifier) ;) (expression_statement "ppuVar7 = (uint **)auStack_90;" (assignment_expression "ppuVar7 = (uint **)auStack_90" identifier = (cast_expression "(uint **)auStack_90" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }))) (expression_statement "local_74 = local_5c;" (assignment_expression "local_74 = local_5c" identifier = identifier) ;) (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -4)" ( (binary_expression "(int)ppuVar7 + -4" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;" (assignment_expression "*(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2" (pointer_expression "*(int *)((int)ppuVar7 + -8)" * (cast_expression "(int *)((int)ppuVar7 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -8)" ( (binary_expression "(int)ppuVar7 + -8" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "*(int *)((int)ppuVar7 + -0xc) = iVar2;" (assignment_expression "*(int *)((int)ppuVar7 + -0xc) = iVar2" (pointer_expression "*(int *)((int)ppuVar7 + -0xc)" * (cast_expression "(int *)((int)ppuVar7 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0xc)" ( (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)((int)ppuVar7 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x10)" * (cast_expression "(uint ***)((int)ppuVar7 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_74;" (assignment_expression "local_64 = local_74" identifier = identifier) ;) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */\n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }" if (parenthesized_expression "(0x7fffffffU - local_60 < 2)" ( (binary_expression "0x7fffffffU - local_60 < 2" (binary_expression "0x7fffffffU - local_60" number_literal - identifier) < number_literal) )) (compound_statement "{\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */\n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }" { (expression_statement "*(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;" (assignment_expression "*(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e" (pointer_expression "*(int *)((int)ppuVar7 + -0x10)" * (cast_expression "(int *)((int)ppuVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_70 + -0x10841e" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;" (assignment_expression "*(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0" (pointer_expression "*(undefined1 **)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined1 **)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_002268a0" & identifier)) ;) (expression_statement "FUN_0022c7a0();" (call_expression "FUN_0022c7a0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)((int)ppuVar7 + -8) = 2;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -8) = 2" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -8)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -8)" ( (binary_expression "(int)ppuVar7 + -8" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;" (assignment_expression "*(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7" (pointer_expression "*(int *)((int)ppuVar7 + -0xc)" * (cast_expression "(int *)((int)ppuVar7 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0xc)" ( (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_70 + -0xf00a7" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(uint ***)((int)ppuVar7 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x10)" * (cast_expression "(uint ***)((int)ppuVar7 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001f05c0();" (call_expression "FUN_001f05c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_88 = local_60;" (assignment_expression "local_88 = local_60" identifier = identifier) ;) (expression_statement "local_8c = local_64;" (assignment_expression "local_8c = local_64" identifier = identifier) ;) (expression_statement "local_84 = 0xf;" (assignment_expression "local_84 = 0xf" identifier = number_literal) ;) (if_statement "if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }" if (parenthesized_expression "(local_64 != local_74)" ( (binary_expression "local_64 != local_74" identifier != identifier) )) (compound_statement "{\n    local_84 = local_5c[0];\n  }" { (expression_statement "local_84 = local_5c[0];" (assignment_expression "local_84 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) })) (if_statement "if (local_84 < (uint)(local_60 + local_48)) {\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }" if (parenthesized_expression "(local_84 < (uint)(local_60 + local_48))" ( (binary_expression "local_84 < (uint)(local_60 + local_48)" identifier < (call_expression "(uint)(local_60 + local_48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_60 + local_48)" ( (binary_expression "local_60 + local_48" identifier + identifier) )))) )) (compound_statement "{\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }" { (expression_statement "uVar4 = 0xf;" (assignment_expression "uVar4 = 0xf" identifier = number_literal) ;) (if_statement "if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }" if (parenthesized_expression "(local_4c != local_78)" ( (binary_expression "local_4c != local_78" identifier != identifier) )) (compound_statement "{\n      uVar4 = local_44[0];\n    }" { (expression_statement "uVar4 = local_44[0];" (assignment_expression "uVar4 = local_44[0]" identifier = (subscript_expression "local_44[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;" if (parenthesized_expression "(uVar4 < (uint)(local_60 + local_48))" ( (binary_expression "uVar4 < (uint)(local_60 + local_48)" identifier < (call_expression "(uint)(local_60 + local_48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_60 + local_48)" ( (binary_expression "local_60 + local_48" identifier + identifier) )))) )) (goto_statement "goto LAB_0022673a;" goto statement_identifier ;)) (expression_statement "*(int *)((int)ppuVar7 + -0x10) = local_60;" (assignment_expression "*(int *)((int)ppuVar7 + -0x10) = local_60" (pointer_expression "*(int *)((int)ppuVar7 + -0x10)" * (cast_expression "(int *)((int)ppuVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)((int)ppuVar7 + -0x14) = local_64;" (assignment_expression "*(uint **)((int)ppuVar7 + -0x14) = local_64" (pointer_expression "*(uint **)((int)ppuVar7 + -0x14)" * (cast_expression "(uint **)((int)ppuVar7 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x18)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x18)" ( (binary_expression "(int)ppuVar7 + -0x18" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x1c)" ( (binary_expression "(int)ppuVar7 + -0x1c" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint ***)((int)ppuVar7 + -0x20) = local_80;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x20) = local_80" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x20)" * (cast_expression "(uint ***)((int)ppuVar7 + -0x20)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar7 + -0x20)" ( (binary_expression "(int)ppuVar7 + -0x20" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x24)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x24)" ( (binary_expression "(int)ppuVar7 + -0x24" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar5 = (int *)FUN_001ef9f0();" (assignment_expression "piVar5 = (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 "piVar6 = piVar5 + 2;" (assignment_expression "piVar6 = piVar5 + 2" identifier = (binary_expression "piVar5 + 2" identifier + number_literal)) ;) (expression_statement "local_34 = (int *)*piVar5;" (assignment_expression "local_34 = (int *)*piVar5" identifier = (cast_expression "(int *)*piVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) ;) (if_statement "if (local_34 == piVar6) goto LAB_00226834;" if (parenthesized_expression "(local_34 == piVar6)" ( (binary_expression "local_34 == piVar6" identifier == identifier) )) (goto_statement "goto LAB_00226834;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }" else (compound_statement "{\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }" { (labeled_statement "LAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;" statement_identifier : (expression_statement "*(int *)((int)ppuVar7 + -8) = local_48;" (assignment_expression "*(int *)((int)ppuVar7 + -8) = local_48" (pointer_expression "*(int *)((int)ppuVar7 + -8)" * (cast_expression "(int *)((int)ppuVar7 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -8)" ( (binary_expression "(int)ppuVar7 + -8" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(uint **)((int)ppuVar7 + -0xc) = local_4c;" (assignment_expression "*(uint **)((int)ppuVar7 + -0xc) = local_4c" (pointer_expression "*(uint **)((int)ppuVar7 + -0xc)" * (cast_expression "(uint **)((int)ppuVar7 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0xc)" ( (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)((int)ppuVar7 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x10)" * (cast_expression "(uint ***)((int)ppuVar7 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar5 = (int *)FUN_001f05c0();" (assignment_expression "piVar5 = (int *)FUN_001f05c0()" identifier = (cast_expression "(int *)FUN_001f05c0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f05c0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar6 = piVar5 + 2;" (assignment_expression "piVar6 = piVar5 + 2" identifier = (binary_expression "piVar5 + 2" identifier + number_literal)) ;) (expression_statement "local_34 = (int *)*piVar5;" (assignment_expression "local_34 = (int *)*piVar5" identifier = (cast_expression "(int *)*piVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) ;) (if_statement "if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }" if (parenthesized_expression "(local_34 == piVar6)" ( (binary_expression "local_34 == piVar6" identifier == identifier) )) (compound_statement "{\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }" { (labeled_statement "LAB_00226834:\n      local_34 = &local_2c;" statement_identifier : (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;)) (expression_statement "local_2c = piVar5[2];" (assignment_expression "local_2c = piVar5[2]" identifier = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (expression_statement "local_28 = piVar5[3];" (assignment_expression "local_28 = piVar5[3]" identifier = (subscript_expression "piVar5[3]" identifier [ number_literal ])) ;) (expression_statement "local_24 = piVar5[4];" (assignment_expression "local_24 = piVar5[4]" identifier = (subscript_expression "piVar5[4]" identifier [ number_literal ])) ;) (expression_statement "local_20 = piVar5[5];" (assignment_expression "local_20 = piVar5[5]" identifier = (subscript_expression "piVar5[5]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00226767;" goto statement_identifier ;) })) }))) (expression_statement "local_2c = piVar5[2];" (assignment_expression "local_2c = piVar5[2]" identifier = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00226767:\n  local_30 = piVar5[1];" statement_identifier : (expression_statement "local_30 = piVar5[1];" (assignment_expression "local_30 = piVar5[1]" identifier = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;)) (expression_statement "*(undefined1 *)(piVar5 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar5 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar5 + 2)" * (cast_expression "(undefined1 *)(piVar5 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 2)" ( (binary_expression "piVar5 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar5 = (int)piVar6;" (assignment_expression "*piVar5 = (int)piVar6" (pointer_expression "*piVar5" * identifier) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar5[1] = 0;" (assignment_expression "piVar5[1] = 0" (subscript_expression "piVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int ***)((int)ppuVar7 + -0xc) = &local_34;" (assignment_expression "*(int ***)((int)ppuVar7 + -0xc) = &local_34" (pointer_expression "*(int ***)((int)ppuVar7 + -0xc)" * (cast_expression "(int ***)((int)ppuVar7 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar7 + -0xc)" ( (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(int **)((int)ppuVar7 + -0x10) = param_1;" (assignment_expression "*(int **)((int)ppuVar7 + -0x10) = param_1" (pointer_expression "*(int **)((int)ppuVar7 + -0x10)" * (cast_expression "(int **)((int)ppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (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_2c) {\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "(local_34 != &local_2c)" ( (binary_expression "local_34 != &local_2c" identifier != (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }" { (expression_statement "*(int **)((int)ppuVar7 + -0x10) = local_34;" (assignment_expression "*(int **)((int)ppuVar7 + -0x10) = local_34" (pointer_expression "*(int **)((int)ppuVar7 + -0x10)" * (cast_expression "(int **)((int)ppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (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_74) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "(local_64 != local_74)" ( (binary_expression "local_64 != local_74" identifier != identifier) )) (compound_statement "{\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }" { (expression_statement "*(uint **)((int)ppuVar7 + -0x10) = local_64;" (assignment_expression "*(uint **)((int)ppuVar7 + -0x10) = local_64" (pointer_expression "*(uint **)((int)ppuVar7 + -0x10)" * (cast_expression "(uint **)((int)ppuVar7 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (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_4c != local_78) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "(local_4c != local_78)" ( (binary_expression "local_4c != local_78" identifier != identifier) )) (compound_statement "{\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }" { (expression_statement "*(uint **)((int)ppuVar7 + -0x10) = local_4c;" (assignment_expression "*(uint **)((int)ppuVar7 + -0x10) = local_4c" (pointer_expression "*(uint **)((int)ppuVar7 + -0x10)" * (cast_expression "(uint **)((int)ppuVar7 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (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] = (int)piVar1;" (assignment_expression "param_1[3] = (int)piVar1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[2] = local_7c;" (assignment_expression "param_1[2] = local_7c" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_1 = (int)(local_70 + -0x79a);" (assignment_expression "*param_1 = (int)(local_70 + -0x79a)" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)(local_70 + -0x79a)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_70 + -0x79a)" ( (binary_expression "local_70 + -0x79a" identifier + number_literal) )))) ;) (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(std::string const&, std::error_code const&) */\n\nvoid __thiscall\nstd::ios_base::failure[abi:cxx11]::failure\n          (failure_abi_cxx11_ *this,string *param_1,error_code *param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  char *pcVar3;\n  int *piVar4;\n  int *piVar5;\n  uint **ppuVar6;\n  uint uVar7;\n  undefined1 auStack_90 [4];\n  uint *local_8c;\n  int local_88;\n  uint local_84;\n  string *local_80;\n  int local_7c;\n  uint *local_78;\n  uint *local_74;\n  undefined **local_70;\n  uint *local_64;\n  int local_60;\n  uint local_5c [4];\n  uint *local_4c;\n  int local_48;\n  uint local_44 [4];\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  local_70 = &_GLOBAL_OFFSET_TABLE_;\n  piVar1 = *(int **)(param_2 + 4);\n  local_7c = *(int *)param_2;\n  if (*(code **)(*piVar1 + 0x10) == ::(anonymous_namespace)::io_error_category::message_abi_cxx11_)\n  {\n    local_80 = (string *)&local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar7 = 0xe;\n    }\n    else {\n      uVar7 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */\n    std::string::_M_replace(local_80,0,0,pcVar3,uVar7);\n    ppuVar6 = &local_8c;\n  }\n  else {\n    local_80 = (string *)&local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar6 = (uint **)auStack_90;\n  }\n  local_74 = local_5c;\n  iVar2 = *(int *)param_1;\n  *(undefined4 *)((int)ppuVar6 + -4) = 0;\n  *(int *)((int)ppuVar6 + -8) = *(int *)(param_1 + 4) + iVar2;\n  *(int *)((int)ppuVar6 + -0xc) = iVar2;\n  *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 002266c7 to 002266cb has its CatchHandler @ 002268bc */\n  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266cc;\n  local_64 = local_74;\n  __cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::_M_construct<char*>();\n  if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar6 + -0x10) = (int)local_70 + -0x10841e;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */\n    *(undefined1 **)((int)ppuVar6 + -0x14) = &LAB_002268a0;\n    __throw_length_error(*(char **)((int)ppuVar6 + -0x10));\n  }\n  *(undefined4 *)((int)ppuVar6 + -8) = 2;\n  *(int *)((int)ppuVar6 + -0xc) = (int)local_70 + -0xf00a7;\n  *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 002266f0 to 002266f4 has its CatchHandler @ 002268b5 */\n  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266f5;\n  std::string::_M_append\n            (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n             *(uint *)((int)ppuVar6 + -8));\n  local_88 = local_60;\n  local_8c = local_64;\n  local_84 = 0xf;\n  if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }\n  if (local_84 < (uint)(local_60 + local_48)) {\n    uVar7 = 0xf;\n    if (local_4c != local_78) {\n      uVar7 = local_44[0];\n    }\n    if (uVar7 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar6 + -0x10) = local_60;\n    *(uint **)((int)ppuVar6 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar6 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar6 + -0x1c) = 0;\n    *(string **)((int)ppuVar6 + -0x20) = local_80;\n                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar6 + -0x24) = 0x22681e;\n    piVar4 = (int *)std::string::_M_replace\n                              (*(string **)((int)ppuVar6 + -0x20),*(uint *)((int)ppuVar6 + -0x1c),\n                               *(uint *)((int)ppuVar6 + -0x18),*(char **)((int)ppuVar6 + -0x14),\n                               *(uint *)((int)ppuVar6 + -0x10));\n    piVar5 = piVar4 + 2;\n    local_34 = (int *)*piVar4;\n    if (local_34 == piVar5) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar6 + -8) = local_48;\n    *(uint **)((int)ppuVar6 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x226748;\n    piVar4 = (int *)std::string::_M_append\n                              (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n                               *(uint *)((int)ppuVar6 + -8));\n    piVar5 = piVar4 + 2;\n    local_34 = (int *)*piVar4;\n    if (local_34 == piVar5) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar4[2];\n      local_28 = piVar4[3];\n      local_24 = piVar4[4];\n      local_20 = piVar4[5];\n      goto LAB_00226767;\n    }\n  }\n  local_2c = piVar4[2];\nLAB_00226767:\n  local_30 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar5;\n  piVar4[1] = 0;\n  *(int ***)((int)ppuVar6 + -0xc) = &local_34;\n  *(failure_abi_cxx11_ **)((int)ppuVar6 + -0x10) = this;\n                    /* try { // try from 00226787 to 0022678b has its CatchHandler @ 002268a0 */\n  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x22678c;\n  runtime_error::runtime_error\n            (*(runtime_error **)((int)ppuVar6 + -0x10),*(string **)((int)ppuVar6 + -0xc));\n  if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar6 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267a2;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }\n  if (local_64 != local_74) {\n    *(uint **)((int)ppuVar6 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267b9;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }\n  if (local_4c != local_78) {\n    *(uint **)((int)ppuVar6 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267d0;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }\n  *(int **)(this + 0xc) = piVar1;\n  *(int *)(this + 8) = local_7c;\n  *(undefined ***)this = local_70 + -0x79a;\n  return;\n}\n\n" comment comment (function_definition "void __thiscall\nstd::ios_base::failure[abi:cxx11]::failure\n          (failure_abi_cxx11_ *this,string *param_1,error_code *param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  char *pcVar3;\n  int *piVar4;\n  int *piVar5;\n  uint **ppuVar6;\n  uint uVar7;\n  undefined1 auStack_90 [4];\n  uint *local_8c;\n  int local_88;\n  uint local_84;\n  string *local_80;\n  int local_7c;\n  uint *local_78;\n  uint *local_74;\n  undefined **local_70;\n  uint *local_64;\n  int local_60;\n  uint local_5c [4];\n  uint *local_4c;\n  int local_48;\n  uint local_44 [4];\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  local_70 = &_GLOBAL_OFFSET_TABLE_;\n  piVar1 = *(int **)(param_2 + 4);\n  local_7c = *(int *)param_2;\n  if (*(code **)(*piVar1 + 0x10) == ::(anonymous_namespace)::io_error_category::message_abi_cxx11_)\n  {\n    local_80 = (string *)&local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar7 = 0xe;\n    }\n    else {\n      uVar7 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */\n    std::string::_M_replace(local_80,0,0,pcVar3,uVar7);\n    ppuVar6 = &local_8c;\n  }\n  else {\n    local_80 = (string *)&local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar6 = (uint **)auStack_90;\n  }\n  local_74 = local_5c;\n  iVar2 = *(int *)param_1;\n  *(undefined4 *)((int)ppuVar6 + -4) = 0;\n  *(int *)((int)ppuVar6 + -8) = *(int *)(param_1 + 4) + iVar2;\n  *(int *)((int)ppuVar6 + -0xc) = iVar2;\n  *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 002266c7 to 002266cb has its CatchHandler @ 002268bc */\n  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266cc;\n  local_64 = local_74;\n  __cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::_M_construct<char*>();\n  if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar6 + -0x10) = (int)local_70 + -0x10841e;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */\n    *(undefined1 **)((int)ppuVar6 + -0x14) = &LAB_002268a0;\n    __throw_length_error(*(char **)((int)ppuVar6 + -0x10));\n  }\n  *(undefined4 *)((int)ppuVar6 + -8) = 2;\n  *(int *)((int)ppuVar6 + -0xc) = (int)local_70 + -0xf00a7;\n  *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 002266f0 to 002266f4 has its CatchHandler @ 002268b5 */\n  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266f5;\n  std::string::_M_append\n            (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n             *(uint *)((int)ppuVar6 + -8));\n  local_88 = local_60;\n  local_8c = local_64;\n  local_84 = 0xf;\n  if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }\n  if (local_84 < (uint)(local_60 + local_48)) {\n    uVar7 = 0xf;\n    if (local_4c != local_78) {\n      uVar7 = local_44[0];\n    }\n    if (uVar7 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar6 + -0x10) = local_60;\n    *(uint **)((int)ppuVar6 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar6 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar6 + -0x1c) = 0;\n    *(string **)((int)ppuVar6 + -0x20) = local_80;\n                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar6 + -0x24) = 0x22681e;\n    piVar4 = (int *)std::string::_M_replace\n                              (*(string **)((int)ppuVar6 + -0x20),*(uint *)((int)ppuVar6 + -0x1c),\n                               *(uint *)((int)ppuVar6 + -0x18),*(char **)((int)ppuVar6 + -0x14),\n                               *(uint *)((int)ppuVar6 + -0x10));\n    piVar5 = piVar4 + 2;\n    local_34 = (int *)*piVar4;\n    if (local_34 == piVar5) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar6 + -8) = local_48;\n    *(uint **)((int)ppuVar6 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x226748;\n    piVar4 = (int *)std::string::_M_append\n                              (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n                               *(uint *)((int)ppuVar6 + -8));\n    piVar5 = piVar4 + 2;\n    local_34 = (int *)*piVar4;\n    if (local_34 == piVar5) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar4[2];\n      local_28 = piVar4[3];\n      local_24 = piVar4[4];\n      local_20 = piVar4[5];\n      goto LAB_00226767;\n    }\n  }\n  local_2c = piVar4[2];\nLAB_00226767:\n  local_30 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar5;\n  piVar4[1] = 0;\n  *(int ***)((int)ppuVar6 + -0xc) = &local_34;\n  *(failure_abi_cxx11_ **)((int)ppuVar6 + -0x10) = this;\n                    /* try { // try from 00226787 to 0022678b has its CatchHandler @ 002268a0 */\n  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x22678c;\n  runtime_error::runtime_error\n            (*(runtime_error **)((int)ppuVar6 + -0x10),*(string **)((int)ppuVar6 + -0xc));\n  if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar6 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267a2;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }\n  if (local_64 != local_74) {\n    *(uint **)((int)ppuVar6 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267b9;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }\n  if (local_4c != local_78) {\n    *(uint **)((int)ppuVar6 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267d0;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }\n  *(int **)(this + 0xc) = piVar1;\n  *(int *)(this + 8) = local_7c;\n  *(undefined ***)this = local_70 + -0x79a;\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,string *param_1,error_code *param_2)" identifier (parameter_list "(failure_abi_cxx11_ *this,string *param_1,error_code *param_2)" ( (parameter_declaration "failure_abi_cxx11_ *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "string *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "error_code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  char *pcVar3;\n  int *piVar4;\n  int *piVar5;\n  uint **ppuVar6;\n  uint uVar7;\n  undefined1 auStack_90 [4];\n  uint *local_8c;\n  int local_88;\n  uint local_84;\n  string *local_80;\n  int local_7c;\n  uint *local_78;\n  uint *local_74;\n  undefined **local_70;\n  uint *local_64;\n  int local_60;\n  uint local_5c [4];\n  uint *local_4c;\n  int local_48;\n  uint local_44 [4];\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  local_70 = &_GLOBAL_OFFSET_TABLE_;\n  piVar1 = *(int **)(param_2 + 4);\n  local_7c = *(int *)param_2;\n  if (*(code **)(*piVar1 + 0x10) == ::(anonymous_namespace)::io_error_category::message_abi_cxx11_)\n  {\n    local_80 = (string *)&local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar7 = 0xe;\n    }\n    else {\n      uVar7 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */\n    std::string::_M_replace(local_80,0,0,pcVar3,uVar7);\n    ppuVar6 = &local_8c;\n  }\n  else {\n    local_80 = (string *)&local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar6 = (uint **)auStack_90;\n  }\n  local_74 = local_5c;\n  iVar2 = *(int *)param_1;\n  *(undefined4 *)((int)ppuVar6 + -4) = 0;\n  *(int *)((int)ppuVar6 + -8) = *(int *)(param_1 + 4) + iVar2;\n  *(int *)((int)ppuVar6 + -0xc) = iVar2;\n  *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 002266c7 to 002266cb has its CatchHandler @ 002268bc */\n  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266cc;\n  local_64 = local_74;\n  __cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::_M_construct<char*>();\n  if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar6 + -0x10) = (int)local_70 + -0x10841e;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */\n    *(undefined1 **)((int)ppuVar6 + -0x14) = &LAB_002268a0;\n    __throw_length_error(*(char **)((int)ppuVar6 + -0x10));\n  }\n  *(undefined4 *)((int)ppuVar6 + -8) = 2;\n  *(int *)((int)ppuVar6 + -0xc) = (int)local_70 + -0xf00a7;\n  *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 002266f0 to 002266f4 has its CatchHandler @ 002268b5 */\n  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266f5;\n  std::string::_M_append\n            (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n             *(uint *)((int)ppuVar6 + -8));\n  local_88 = local_60;\n  local_8c = local_64;\n  local_84 = 0xf;\n  if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }\n  if (local_84 < (uint)(local_60 + local_48)) {\n    uVar7 = 0xf;\n    if (local_4c != local_78) {\n      uVar7 = local_44[0];\n    }\n    if (uVar7 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar6 + -0x10) = local_60;\n    *(uint **)((int)ppuVar6 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar6 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar6 + -0x1c) = 0;\n    *(string **)((int)ppuVar6 + -0x20) = local_80;\n                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar6 + -0x24) = 0x22681e;\n    piVar4 = (int *)std::string::_M_replace\n                              (*(string **)((int)ppuVar6 + -0x20),*(uint *)((int)ppuVar6 + -0x1c),\n                               *(uint *)((int)ppuVar6 + -0x18),*(char **)((int)ppuVar6 + -0x14),\n                               *(uint *)((int)ppuVar6 + -0x10));\n    piVar5 = piVar4 + 2;\n    local_34 = (int *)*piVar4;\n    if (local_34 == piVar5) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar6 + -8) = local_48;\n    *(uint **)((int)ppuVar6 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x226748;\n    piVar4 = (int *)std::string::_M_append\n                              (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n                               *(uint *)((int)ppuVar6 + -8));\n    piVar5 = piVar4 + 2;\n    local_34 = (int *)*piVar4;\n    if (local_34 == piVar5) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar4[2];\n      local_28 = piVar4[3];\n      local_24 = piVar4[4];\n      local_20 = piVar4[5];\n      goto LAB_00226767;\n    }\n  }\n  local_2c = piVar4[2];\nLAB_00226767:\n  local_30 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar5;\n  piVar4[1] = 0;\n  *(int ***)((int)ppuVar6 + -0xc) = &local_34;\n  *(failure_abi_cxx11_ **)((int)ppuVar6 + -0x10) = this;\n                    /* try { // try from 00226787 to 0022678b has its CatchHandler @ 002268a0 */\n  *(undefined4 *)((int)ppuVar6 + -0x14) = 0x22678c;\n  runtime_error::runtime_error\n            (*(runtime_error **)((int)ppuVar6 + -0x10),*(string **)((int)ppuVar6 + -0xc));\n  if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar6 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267a2;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }\n  if (local_64 != local_74) {\n    *(uint **)((int)ppuVar6 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267b9;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }\n  if (local_4c != local_78) {\n    *(uint **)((int)ppuVar6 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267d0;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }\n  *(int **)(this + 0xc) = piVar1;\n  *(int *)(this + 8) = local_7c;\n  *(undefined ***)this = local_70 + -0x79a;\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined1 auStack_90 [4];" type_identifier (array_declarator "auStack_90 [4]" identifier [ number_literal ]) ;) (declaration "uint *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "string *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "uint *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "uint *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "uint local_5c [4];" type_identifier (array_declarator "local_5c [4]" identifier [ number_literal ]) ;) (declaration "uint *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint local_44 [4];" type_identifier (array_declarator "local_44 [4]" identifier [ number_literal ]) ;) (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 "local_70 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_70 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & 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_7c = *(int *)param_2;" (assignment_expression "local_7c = *(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_80 = (string *)&local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar7 = 0xe;\n    }\n    else {\n      uVar7 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */\n    std::string::_M_replace(local_80,0,0,pcVar3,uVar7);\n    ppuVar6 = &local_8c;\n  }\n  else {\n    local_80 = (string *)&local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar6 = (uint **)auStack_90;\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_80 = (string *)&local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar7 = 0xe;\n    }\n    else {\n      uVar7 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */\n    std::string::_M_replace(local_80,0,0,pcVar3,uVar7);\n    ppuVar6 = &local_8c;\n  }" statement_identifier : (ERROR ":message_abi_cxx11_)" : identifier )) (compound_statement "{\n    local_80 = (string *)&local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar7 = 0xe;\n    }\n    else {\n      uVar7 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */\n    std::string::_M_replace(local_80,0,0,pcVar3,uVar7);\n    ppuVar6 = &local_8c;\n  }" { (expression_statement "local_80 = (string *)&local_4c;" (assignment_expression "local_80 = (string *)&local_4c" identifier = (cast_expression "(string *)&local_4c" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_4c" & identifier))) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_78 = local_44;" (assignment_expression "local_78 = local_44" identifier = identifier) ;) (expression_statement "local_44[0] = local_44[0] & 0xffffff00;" (assignment_expression "local_44[0] = local_44[0] & 0xffffff00" (subscript_expression "local_44[0]" identifier [ number_literal ]) = (binary_expression "local_44[0] & 0xffffff00" (subscript_expression "local_44[0]" identifier [ number_literal ]) & number_literal)) ;) (if_statement "if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar7 = 0xe;\n    }\n    else {\n      uVar7 = 0xd;\n      pcVar3 = "Unknown error";\n    }" if (parenthesized_expression "(local_7c == 1)" ( (binary_expression "local_7c == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar3 = "iostream error";\n      uVar7 = 0xe;\n    }" { (expression_statement "pcVar3 = "iostream error";" (assignment_expression "pcVar3 = "iostream error"" identifier = (string_literal ""iostream error"" " string_content ")) ;) (expression_statement "uVar7 = 0xe;" (assignment_expression "uVar7 = 0xe" identifier = number_literal) ;) }) (else_clause "else {\n      uVar7 = 0xd;\n      pcVar3 = "Unknown error";\n    }" else (compound_statement "{\n      uVar7 = 0xd;\n      pcVar3 = "Unknown error";\n    }" { (expression_statement "uVar7 = 0xd;" (assignment_expression "uVar7 = 0xd" identifier = number_literal) ;) (expression_statement "pcVar3 = "Unknown error";" (assignment_expression "pcVar3 = "Unknown error"" identifier = (string_literal ""Unknown error"" " string_content ")) ;) }))) (expression_statement "local_4c = local_78;" (assignment_expression "local_4c = local_78" identifier = identifier) ;) comment (labeled_statement "std::string::_M_replace(local_80,0,0,pcVar3,uVar7);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_replace(local_80,0,0,pcVar3,uVar7);" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace(local_80,0,0,pcVar3,uVar7);" (call_expression "_M_replace(local_80,0,0,pcVar3,uVar7)" identifier (argument_list "(local_80,0,0,pcVar3,uVar7)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;))) (expression_statement "ppuVar6 = &local_8c;" (assignment_expression "ppuVar6 = &local_8c" identifier = (pointer_expression "&local_8c" & identifier)) ;) })) (else_clause "else {\n    local_80 = (string *)&local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar6 = (uint **)auStack_90;\n  }" else (compound_statement "{\n    local_80 = (string *)&local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar6 = (uint **)auStack_90;\n  }" { (expression_statement "local_80 = (string *)&local_4c;" (assignment_expression "local_80 = (string *)&local_4c" identifier = (cast_expression "(string *)&local_4c" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_4c" & identifier))) ;) (expression_statement "(**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);" (call_expression "(**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c)" (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_80,piVar1,local_7c)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_78 = local_44;" (assignment_expression "local_78 = local_44" identifier = identifier) ;) (expression_statement "ppuVar6 = (uint **)auStack_90;" (assignment_expression "ppuVar6 = (uint **)auStack_90" identifier = (cast_expression "(uint **)auStack_90" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }))) (expression_statement "local_74 = local_5c;" (assignment_expression "local_74 = local_5c" identifier = identifier) ;) (expression_statement "iVar2 = *(int *)param_1;" (assignment_expression "iVar2 = *(int *)param_1" identifier = (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)((int)ppuVar6 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -4)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -4)" ( (binary_expression "(int)ppuVar6 + -4" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppuVar6 + -8) = *(int *)(param_1 + 4) + iVar2;" (assignment_expression "*(int *)((int)ppuVar6 + -8) = *(int *)(param_1 + 4) + iVar2" (pointer_expression "*(int *)((int)ppuVar6 + -8)" * (cast_expression "(int *)((int)ppuVar6 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -8)" ( (binary_expression "(int)ppuVar6 + -8" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)(param_1 + 4) + iVar2" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + identifier)) ;) (expression_statement "*(int *)((int)ppuVar6 + -0xc) = iVar2;" (assignment_expression "*(int *)((int)ppuVar6 + -0xc) = iVar2" (pointer_expression "*(int *)((int)ppuVar6 + -0xc)" * (cast_expression "(int *)((int)ppuVar6 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0xc)" ( (binary_expression "(int)ppuVar6 + -0xc" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)((int)ppuVar6 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar6 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar6 + -0x10)" * (cast_expression "(uint ***)((int)ppuVar6 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266cc;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266cc" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x14)" ( (binary_expression "(int)ppuVar6 + -0x14" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_74;" (assignment_expression "local_64 = local_74" identifier = identifier) ;) (ERROR "__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>::_M_construct<char*>();" (binary_expression "allocator<char>_>::_M_construct<char" (binary_expression "allocator<char>_>::_M_construct" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) (ERROR "*>()" * > ( )) ;) (if_statement "if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar6 + -0x10) = (int)local_70 + -0x10841e;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */\n    *(undefined1 **)((int)ppuVar6 + -0x14) = &LAB_002268a0;\n    __throw_length_error(*(char **)((int)ppuVar6 + -0x10));\n  }" if (parenthesized_expression "(0x7fffffffU - local_60 < 2)" ( (binary_expression "0x7fffffffU - local_60 < 2" (binary_expression "0x7fffffffU - local_60" number_literal - identifier) < number_literal) )) (compound_statement "{\n    *(int *)((int)ppuVar6 + -0x10) = (int)local_70 + -0x10841e;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */\n    *(undefined1 **)((int)ppuVar6 + -0x14) = &LAB_002268a0;\n    __throw_length_error(*(char **)((int)ppuVar6 + -0x10));\n  }" { (expression_statement "*(int *)((int)ppuVar6 + -0x10) = (int)local_70 + -0x10841e;" (assignment_expression "*(int *)((int)ppuVar6 + -0x10) = (int)local_70 + -0x10841e" (pointer_expression "*(int *)((int)ppuVar6 + -0x10)" * (cast_expression "(int *)((int)ppuVar6 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_70 + -0x10841e" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined1 **)((int)ppuVar6 + -0x14) = &LAB_002268a0;" (assignment_expression "*(undefined1 **)((int)ppuVar6 + -0x14) = &LAB_002268a0" (pointer_expression "*(undefined1 **)((int)ppuVar6 + -0x14)" * (cast_expression "(undefined1 **)((int)ppuVar6 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x14)" ( (binary_expression "(int)ppuVar6 + -0x14" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_002268a0" & identifier)) ;) (expression_statement "__throw_length_error(*(char **)((int)ppuVar6 + -0x10));" (call_expression "__throw_length_error(*(char **)((int)ppuVar6 + -0x10))" identifier (argument_list "(*(char **)((int)ppuVar6 + -0x10))" ( (pointer_expression "*(char **)((int)ppuVar6 + -0x10)" * (cast_expression "(char **)((int)ppuVar6 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "*(undefined4 *)((int)ppuVar6 + -8) = 2;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -8) = 2" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -8)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -8)" ( (binary_expression "(int)ppuVar6 + -8" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppuVar6 + -0xc) = (int)local_70 + -0xf00a7;" (assignment_expression "*(int *)((int)ppuVar6 + -0xc) = (int)local_70 + -0xf00a7" (pointer_expression "*(int *)((int)ppuVar6 + -0xc)" * (cast_expression "(int *)((int)ppuVar6 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0xc)" ( (binary_expression "(int)ppuVar6 + -0xc" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_70 + -0xf00a7" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(uint ***)((int)ppuVar6 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar6 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar6 + -0x10)" * (cast_expression "(uint ***)((int)ppuVar6 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266f5;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x2266f5" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x14)" ( (binary_expression "(int)ppuVar6 + -0x14" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::string::_M_append\n            (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n             *(uint *)((int)ppuVar6 + -8));" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_append\n            (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n             *(uint *)((int)ppuVar6 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "_M_append\n            (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n             *(uint *)((int)ppuVar6 + -8));" (call_expression "_M_append\n            (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n             *(uint *)((int)ppuVar6 + -8))" identifier (argument_list "(*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n             *(uint *)((int)ppuVar6 + -8))" ( (pointer_expression "*(string **)((int)ppuVar6 + -0x10)" * (cast_expression "(string **)((int)ppuVar6 + -0x10)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppuVar6 + -0xc)" * (cast_expression "(char **)((int)ppuVar6 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0xc)" ( (binary_expression "(int)ppuVar6 + -0xc" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppuVar6 + -8)" * (cast_expression "(uint *)((int)ppuVar6 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -8)" ( (binary_expression "(int)ppuVar6 + -8" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;))) (expression_statement "local_88 = local_60;" (assignment_expression "local_88 = local_60" identifier = identifier) ;) (expression_statement "local_8c = local_64;" (assignment_expression "local_8c = local_64" identifier = identifier) ;) (expression_statement "local_84 = 0xf;" (assignment_expression "local_84 = 0xf" identifier = number_literal) ;) (if_statement "if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }" if (parenthesized_expression "(local_64 != local_74)" ( (binary_expression "local_64 != local_74" identifier != identifier) )) (compound_statement "{\n    local_84 = local_5c[0];\n  }" { (expression_statement "local_84 = local_5c[0];" (assignment_expression "local_84 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) })) (if_statement "if (local_84 < (uint)(local_60 + local_48)) {\n    uVar7 = 0xf;\n    if (local_4c != local_78) {\n      uVar7 = local_44[0];\n    }\n    if (uVar7 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar6 + -0x10) = local_60;\n    *(uint **)((int)ppuVar6 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar6 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar6 + -0x1c) = 0;\n    *(string **)((int)ppuVar6 + -0x20) = local_80;\n                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar6 + -0x24) = 0x22681e;\n    piVar4 = (int *)std::string::_M_replace\n                              (*(string **)((int)ppuVar6 + -0x20),*(uint *)((int)ppuVar6 + -0x1c),\n                               *(uint *)((int)ppuVar6 + -0x18),*(char **)((int)ppuVar6 + -0x14),\n                               *(uint *)((int)ppuVar6 + -0x10));\n    piVar5 = piVar4 + 2;\n    local_34 = (int *)*piVar4;\n    if (local_34 == piVar5) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar6 + -8) = local_48;\n    *(uint **)((int)ppuVar6 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x226748;\n    piVar4 = (int *)std::string::_M_append\n                              (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n                               *(uint *)((int)ppuVar6 + -8));\n    piVar5 = piVar4 + 2;\n    local_34 = (int *)*piVar4;\n    if (local_34 == piVar5) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar4[2];\n      local_28 = piVar4[3];\n      local_24 = piVar4[4];\n      local_20 = piVar4[5];\n      goto LAB_00226767;\n    }\n  }" if (parenthesized_expression "(local_84 < (uint)(local_60 + local_48))" ( (binary_expression "local_84 < (uint)(local_60 + local_48)" identifier < (call_expression "(uint)(local_60 + local_48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_60 + local_48)" ( (binary_expression "local_60 + local_48" identifier + identifier) )))) )) (compound_statement "{\n    uVar7 = 0xf;\n    if (local_4c != local_78) {\n      uVar7 = local_44[0];\n    }\n    if (uVar7 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar6 + -0x10) = local_60;\n    *(uint **)((int)ppuVar6 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar6 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar6 + -0x1c) = 0;\n    *(string **)((int)ppuVar6 + -0x20) = local_80;\n                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar6 + -0x24) = 0x22681e;\n    piVar4 = (int *)std::string::_M_replace\n                              (*(string **)((int)ppuVar6 + -0x20),*(uint *)((int)ppuVar6 + -0x1c),\n                               *(uint *)((int)ppuVar6 + -0x18),*(char **)((int)ppuVar6 + -0x14),\n                               *(uint *)((int)ppuVar6 + -0x10));\n    piVar5 = piVar4 + 2;\n    local_34 = (int *)*piVar4;\n    if (local_34 == piVar5) goto LAB_00226834;\n  }" { (expression_statement "uVar7 = 0xf;" (assignment_expression "uVar7 = 0xf" identifier = number_literal) ;) (if_statement "if (local_4c != local_78) {\n      uVar7 = local_44[0];\n    }" if (parenthesized_expression "(local_4c != local_78)" ( (binary_expression "local_4c != local_78" identifier != identifier) )) (compound_statement "{\n      uVar7 = local_44[0];\n    }" { (expression_statement "uVar7 = local_44[0];" (assignment_expression "uVar7 = local_44[0]" identifier = (subscript_expression "local_44[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar7 < (uint)(local_60 + local_48)) goto LAB_0022673a;" if (parenthesized_expression "(uVar7 < (uint)(local_60 + local_48))" ( (binary_expression "uVar7 < (uint)(local_60 + local_48)" identifier < (call_expression "(uint)(local_60 + local_48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_60 + local_48)" ( (binary_expression "local_60 + local_48" identifier + identifier) )))) )) (goto_statement "goto LAB_0022673a;" goto statement_identifier ;)) (expression_statement "*(int *)((int)ppuVar6 + -0x10) = local_60;" (assignment_expression "*(int *)((int)ppuVar6 + -0x10) = local_60" (pointer_expression "*(int *)((int)ppuVar6 + -0x10)" * (cast_expression "(int *)((int)ppuVar6 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)((int)ppuVar6 + -0x14) = local_64;" (assignment_expression "*(uint **)((int)ppuVar6 + -0x14) = local_64" (pointer_expression "*(uint **)((int)ppuVar6 + -0x14)" * (cast_expression "(uint **)((int)ppuVar6 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x14)" ( (binary_expression "(int)ppuVar6 + -0x14" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar6 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -0x18)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x18)" ( (binary_expression "(int)ppuVar6 + -0x18" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppuVar6 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x1c)" ( (binary_expression "(int)ppuVar6 + -0x1c" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(string **)((int)ppuVar6 + -0x20) = local_80;" (assignment_expression "*(string **)((int)ppuVar6 + -0x20) = local_80" (pointer_expression "*(string **)((int)ppuVar6 + -0x20)" * (cast_expression "(string **)((int)ppuVar6 + -0x20)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x20)" ( (binary_expression "(int)ppuVar6 + -0x20" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppuVar6 + -0x24) = 0x22681e;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -0x24) = 0x22681e" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -0x24)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x24)" ( (binary_expression "(int)ppuVar6 + -0x24" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "piVar4 = (int *)std::" (assignment_expression "piVar4 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_replace\n                              (*(string **)((int)ppuVar6 + -0x20),*(uint *)((int)ppuVar6 + -0x1c),\n                               *(uint *)((int)ppuVar6 + -0x18),*(char **)((int)ppuVar6 + -0x14),\n                               *(uint *)((int)ppuVar6 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace\n                              (*(string **)((int)ppuVar6 + -0x20),*(uint *)((int)ppuVar6 + -0x1c),\n                               *(uint *)((int)ppuVar6 + -0x18),*(char **)((int)ppuVar6 + -0x14),\n                               *(uint *)((int)ppuVar6 + -0x10));" (call_expression "_M_replace\n                              (*(string **)((int)ppuVar6 + -0x20),*(uint *)((int)ppuVar6 + -0x1c),\n                               *(uint *)((int)ppuVar6 + -0x18),*(char **)((int)ppuVar6 + -0x14),\n                               *(uint *)((int)ppuVar6 + -0x10))" identifier (argument_list "(*(string **)((int)ppuVar6 + -0x20),*(uint *)((int)ppuVar6 + -0x1c),\n                               *(uint *)((int)ppuVar6 + -0x18),*(char **)((int)ppuVar6 + -0x14),\n                               *(uint *)((int)ppuVar6 + -0x10))" ( (pointer_expression "*(string **)((int)ppuVar6 + -0x20)" * (cast_expression "(string **)((int)ppuVar6 + -0x20)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x20)" ( (binary_expression "(int)ppuVar6 + -0x20" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppuVar6 + -0x1c)" * (cast_expression "(uint *)((int)ppuVar6 + -0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x1c)" ( (binary_expression "(int)ppuVar6 + -0x1c" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppuVar6 + -0x18)" * (cast_expression "(uint *)((int)ppuVar6 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x18)" ( (binary_expression "(int)ppuVar6 + -0x18" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppuVar6 + -0x14)" * (cast_expression "(char **)((int)ppuVar6 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x14)" ( (binary_expression "(int)ppuVar6 + -0x14" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppuVar6 + -0x10)" * (cast_expression "(uint *)((int)ppuVar6 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "piVar5 = piVar4 + 2;" (assignment_expression "piVar5 = piVar4 + 2" identifier = (binary_expression "piVar4 + 2" identifier + number_literal)) ;) (expression_statement "local_34 = (int *)*piVar4;" (assignment_expression "local_34 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (local_34 == piVar5) goto LAB_00226834;" if (parenthesized_expression "(local_34 == piVar5)" ( (binary_expression "local_34 == piVar5" identifier == identifier) )) (goto_statement "goto LAB_00226834;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0022673a:\n    *(int *)((int)ppuVar6 + -8) = local_48;\n    *(uint **)((int)ppuVar6 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x226748;\n    piVar4 = (int *)std::string::_M_append\n                              (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n                               *(uint *)((int)ppuVar6 + -8));\n    piVar5 = piVar4 + 2;\n    local_34 = (int *)*piVar4;\n    if (local_34 == piVar5) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar4[2];\n      local_28 = piVar4[3];\n      local_24 = piVar4[4];\n      local_20 = piVar4[5];\n      goto LAB_00226767;\n    }\n  }" else (compound_statement "{\nLAB_0022673a:\n    *(int *)((int)ppuVar6 + -8) = local_48;\n    *(uint **)((int)ppuVar6 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar6 + -0x10) = &local_64;\n                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x226748;\n    piVar4 = (int *)std::string::_M_append\n                              (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n                               *(uint *)((int)ppuVar6 + -8));\n    piVar5 = piVar4 + 2;\n    local_34 = (int *)*piVar4;\n    if (local_34 == piVar5) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar4[2];\n      local_28 = piVar4[3];\n      local_24 = piVar4[4];\n      local_20 = piVar4[5];\n      goto LAB_00226767;\n    }\n  }" { (labeled_statement "LAB_0022673a:\n    *(int *)((int)ppuVar6 + -8) = local_48;" statement_identifier : (expression_statement "*(int *)((int)ppuVar6 + -8) = local_48;" (assignment_expression "*(int *)((int)ppuVar6 + -8) = local_48" (pointer_expression "*(int *)((int)ppuVar6 + -8)" * (cast_expression "(int *)((int)ppuVar6 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -8)" ( (binary_expression "(int)ppuVar6 + -8" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(uint **)((int)ppuVar6 + -0xc) = local_4c;" (assignment_expression "*(uint **)((int)ppuVar6 + -0xc) = local_4c" (pointer_expression "*(uint **)((int)ppuVar6 + -0xc)" * (cast_expression "(uint **)((int)ppuVar6 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0xc)" ( (binary_expression "(int)ppuVar6 + -0xc" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)((int)ppuVar6 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar6 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar6 + -0x10)" * (cast_expression "(uint ***)((int)ppuVar6 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x226748;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x226748" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x14)" ( (binary_expression "(int)ppuVar6 + -0x14" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "piVar4 = (int *)std::" (assignment_expression "piVar4 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_append\n                              (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n                               *(uint *)((int)ppuVar6 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "_M_append\n                              (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n                               *(uint *)((int)ppuVar6 + -8));" (call_expression "_M_append\n                              (*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n                               *(uint *)((int)ppuVar6 + -8))" identifier (argument_list "(*(string **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),\n                               *(uint *)((int)ppuVar6 + -8))" ( (pointer_expression "*(string **)((int)ppuVar6 + -0x10)" * (cast_expression "(string **)((int)ppuVar6 + -0x10)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppuVar6 + -0xc)" * (cast_expression "(char **)((int)ppuVar6 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0xc)" ( (binary_expression "(int)ppuVar6 + -0xc" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppuVar6 + -8)" * (cast_expression "(uint *)((int)ppuVar6 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -8)" ( (binary_expression "(int)ppuVar6 + -8" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "piVar5 = piVar4 + 2;" (assignment_expression "piVar5 = piVar4 + 2" identifier = (binary_expression "piVar4 + 2" identifier + number_literal)) ;) (expression_statement "local_34 = (int *)*piVar4;" (assignment_expression "local_34 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (local_34 == piVar5) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar4[2];\n      local_28 = piVar4[3];\n      local_24 = piVar4[4];\n      local_20 = piVar4[5];\n      goto LAB_00226767;\n    }" if (parenthesized_expression "(local_34 == piVar5)" ( (binary_expression "local_34 == piVar5" identifier == identifier) )) (compound_statement "{\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar4[2];\n      local_28 = piVar4[3];\n      local_24 = piVar4[4];\n      local_20 = piVar4[5];\n      goto LAB_00226767;\n    }" { (labeled_statement "LAB_00226834:\n      local_34 = &local_2c;" statement_identifier : (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;)) (expression_statement "local_2c = piVar4[2];" (assignment_expression "local_2c = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "local_28 = piVar4[3];" (assignment_expression "local_28 = piVar4[3]" identifier = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (expression_statement "local_24 = piVar4[4];" (assignment_expression "local_24 = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "local_20 = piVar4[5];" (assignment_expression "local_20 = piVar4[5]" identifier = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00226767;" goto statement_identifier ;) })) }))) (expression_statement "local_2c = piVar4[2];" (assignment_expression "local_2c = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00226767:\n  local_30 = piVar4[1];" statement_identifier : (expression_statement "local_30 = piVar4[1];" (assignment_expression "local_30 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;)) (expression_statement "*(undefined1 *)(piVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 2)" * (cast_expression "(undefined1 *)(piVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar4 = (int)piVar5;" (assignment_expression "*piVar4 = (int)piVar5" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar4[1] = 0;" (assignment_expression "piVar4[1] = 0" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int ***)((int)ppuVar6 + -0xc) = &local_34;" (assignment_expression "*(int ***)((int)ppuVar6 + -0xc) = &local_34" (pointer_expression "*(int ***)((int)ppuVar6 + -0xc)" * (cast_expression "(int ***)((int)ppuVar6 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar6 + -0xc)" ( (binary_expression "(int)ppuVar6 + -0xc" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(failure_abi_cxx11_ **)((int)ppuVar6 + -0x10) = this;" (assignment_expression "*(failure_abi_cxx11_ **)((int)ppuVar6 + -0x10) = this" (pointer_expression "*(failure_abi_cxx11_ **)((int)ppuVar6 + -0x10)" * (cast_expression "(failure_abi_cxx11_ **)((int)ppuVar6 + -0x10)" ( (type_descriptor "failure_abi_cxx11_ **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x22678c;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x22678c" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x14)" ( (binary_expression "(int)ppuVar6 + -0x14" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "runtime_error::runtime_error\n            (*(runtime_error **)((int)ppuVar6 + -0x10),*(string **)((int)ppuVar6 + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "runtime_error\n            (*(runtime_error **)((int)ppuVar6 + -0x10),*(string **)((int)ppuVar6 + -0xc));" (call_expression "runtime_error\n            (*(runtime_error **)((int)ppuVar6 + -0x10),*(string **)((int)ppuVar6 + -0xc))" identifier (argument_list "(*(runtime_error **)((int)ppuVar6 + -0x10),*(string **)((int)ppuVar6 + -0xc))" ( (pointer_expression "*(runtime_error **)((int)ppuVar6 + -0x10)" * (cast_expression "(runtime_error **)((int)ppuVar6 + -0x10)" ( (type_descriptor "runtime_error **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(string **)((int)ppuVar6 + -0xc)" * (cast_expression "(string **)((int)ppuVar6 + -0xc)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0xc)" ( (binary_expression "(int)ppuVar6 + -0xc" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (if_statement "if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar6 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267a2;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }" if (parenthesized_expression "(local_34 != &local_2c)" ( (binary_expression "local_34 != &local_2c" identifier != (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n    *(int **)((int)ppuVar6 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267a2;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }" { (expression_statement "*(int **)((int)ppuVar6 + -0x10) = local_34;" (assignment_expression "*(int **)((int)ppuVar6 + -0x10) = local_34" (pointer_expression "*(int **)((int)ppuVar6 + -0x10)" * (cast_expression "(int **)((int)ppuVar6 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267a2;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267a2" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x14)" ( (binary_expression "(int)ppuVar6 + -0x14" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppuVar6 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppuVar6 + -0x10))" identifier (argument_list "(*(void **)((int)ppuVar6 + -0x10))" ( (pointer_expression "*(void **)((int)ppuVar6 + -0x10)" * (cast_expression "(void **)((int)ppuVar6 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if (local_64 != local_74) {\n    *(uint **)((int)ppuVar6 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267b9;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }" if (parenthesized_expression "(local_64 != local_74)" ( (binary_expression "local_64 != local_74" identifier != identifier) )) (compound_statement "{\n    *(uint **)((int)ppuVar6 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267b9;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }" { (expression_statement "*(uint **)((int)ppuVar6 + -0x10) = local_64;" (assignment_expression "*(uint **)((int)ppuVar6 + -0x10) = local_64" (pointer_expression "*(uint **)((int)ppuVar6 + -0x10)" * (cast_expression "(uint **)((int)ppuVar6 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267b9;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267b9" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x14)" ( (binary_expression "(int)ppuVar6 + -0x14" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppuVar6 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppuVar6 + -0x10))" identifier (argument_list "(*(void **)((int)ppuVar6 + -0x10))" ( (pointer_expression "*(void **)((int)ppuVar6 + -0x10)" * (cast_expression "(void **)((int)ppuVar6 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if (local_4c != local_78) {\n    *(uint **)((int)ppuVar6 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267d0;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }" if (parenthesized_expression "(local_4c != local_78)" ( (binary_expression "local_4c != local_78" identifier != identifier) )) (compound_statement "{\n    *(uint **)((int)ppuVar6 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267d0;\n    operator_delete(*(void **)((int)ppuVar6 + -0x10));\n  }" { (expression_statement "*(uint **)((int)ppuVar6 + -0x10) = local_4c;" (assignment_expression "*(uint **)((int)ppuVar6 + -0x10) = local_4c" (pointer_expression "*(uint **)((int)ppuVar6 + -0x10)" * (cast_expression "(uint **)((int)ppuVar6 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267d0;" (assignment_expression "*(undefined4 *)((int)ppuVar6 + -0x14) = 0x2267d0" (pointer_expression "*(undefined4 *)((int)ppuVar6 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar6 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar6 + -0x14)" ( (binary_expression "(int)ppuVar6 + -0x14" (cast_expression "(int)ppuVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppuVar6 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppuVar6 + -0x10))" identifier (argument_list "(*(void **)((int)ppuVar6 + -0x10))" ( (pointer_expression "*(void **)((int)ppuVar6 + -0x10)" * (cast_expression "(void **)((int)ppuVar6 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar6 + -0x10)" ( (binary_expression "(int)ppuVar6 + -0x10" (cast_expression "(int)ppuVar6" ( (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_7c;" (assignment_expression "*(int *)(this + 8) = local_7c" (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 = local_70 + -0x79a;" (assignment_expression "*(undefined ***)this = local_70 + -0x79a" (pointer_expression "*(undefined ***)this" * (cast_expression "(undefined ***)this" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) = (binary_expression "local_70 + -0x79a" identifier + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00226630(int *param_1,int *param_2,int *param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  char *pcVar3;\n  uint uVar4;\n  int *piVar5;\n  int *piVar6;\n  uint **ppuVar7;\n  undefined4 uVar8;\n  undefined1 auStack_90 [4];\n  uint *local_8c;\n  int local_88;\n  uint local_84;\n  uint **local_80;\n  int local_7c;\n  uint *local_78;\n  uint *local_74;\n  undefined **local_70;\n  uint *local_64;\n  int local_60;\n  uint local_5c [4];\n  uint *local_4c;\n  int local_48;\n  uint local_44 [4];\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  local_70 = &__DT_PLTGOT;\n  piVar1 = (int *)param_3[1];\n  local_7c = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    \n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }\n  else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }\n  local_74 = local_5c;\n  iVar2 = *param_2;\n  *(undefined4 *)((int)ppuVar7 + -4) = 0;\n  *(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;\n  *(int *)((int)ppuVar7 + -0xc) = iVar2;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;\n  local_64 = local_74;\n  FUN_000513a0();\n  if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    \n                    \n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }\n  *(undefined4 *)((int)ppuVar7 + -8) = 2;\n  *(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;\n  FUN_001f05c0();\n  local_88 = local_60;\n  local_8c = local_64;\n  local_84 = 0xf;\n  if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }\n  if (local_84 < (uint)(local_60 + local_48)) {\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }\n  local_2c = piVar5[2];\nLAB_00226767:\n  local_30 = piVar5[1];\n  *(undefined1 *)(piVar5 + 2) = 0;\n  *piVar5 = (int)piVar6;\n  piVar5[1] = 0;\n  *(int ***)((int)ppuVar7 + -0xc) = &local_34;\n  *(int **)((int)ppuVar7 + -0x10) = param_1;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;\n  FUN_0026c330();\n  if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_74) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }\n  if (local_4c != local_78) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }\n  param_1[3] = (int)piVar1;\n  param_1[2] = local_7c;\n  *param_1 = (int)(local_70 + -0x79a);\n  return;\n}\n\n" (function_definition "void FUN_00226630(int *param_1,int *param_2,int *param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  char *pcVar3;\n  uint uVar4;\n  int *piVar5;\n  int *piVar6;\n  uint **ppuVar7;\n  undefined4 uVar8;\n  undefined1 auStack_90 [4];\n  uint *local_8c;\n  int local_88;\n  uint local_84;\n  uint **local_80;\n  int local_7c;\n  uint *local_78;\n  uint *local_74;\n  undefined **local_70;\n  uint *local_64;\n  int local_60;\n  uint local_5c [4];\n  uint *local_4c;\n  int local_48;\n  uint local_44 [4];\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  local_70 = &__DT_PLTGOT;\n  piVar1 = (int *)param_3[1];\n  local_7c = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    \n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }\n  else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }\n  local_74 = local_5c;\n  iVar2 = *param_2;\n  *(undefined4 *)((int)ppuVar7 + -4) = 0;\n  *(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;\n  *(int *)((int)ppuVar7 + -0xc) = iVar2;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;\n  local_64 = local_74;\n  FUN_000513a0();\n  if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    \n                    \n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }\n  *(undefined4 *)((int)ppuVar7 + -8) = 2;\n  *(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;\n  FUN_001f05c0();\n  local_88 = local_60;\n  local_8c = local_64;\n  local_84 = 0xf;\n  if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }\n  if (local_84 < (uint)(local_60 + local_48)) {\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }\n  local_2c = piVar5[2];\nLAB_00226767:\n  local_30 = piVar5[1];\n  *(undefined1 *)(piVar5 + 2) = 0;\n  *piVar5 = (int)piVar6;\n  piVar5[1] = 0;\n  *(int ***)((int)ppuVar7 + -0xc) = &local_34;\n  *(int **)((int)ppuVar7 + -0x10) = param_1;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;\n  FUN_0026c330();\n  if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_74) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }\n  if (local_4c != local_78) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }\n  param_1[3] = (int)piVar1;\n  param_1[2] = local_7c;\n  *param_1 = (int)(local_70 + -0x79a);\n  return;\n}" primitive_type (function_declarator "FUN_00226630(int *param_1,int *param_2,int *param_3)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  char *pcVar3;\n  uint uVar4;\n  int *piVar5;\n  int *piVar6;\n  uint **ppuVar7;\n  undefined4 uVar8;\n  undefined1 auStack_90 [4];\n  uint *local_8c;\n  int local_88;\n  uint local_84;\n  uint **local_80;\n  int local_7c;\n  uint *local_78;\n  uint *local_74;\n  undefined **local_70;\n  uint *local_64;\n  int local_60;\n  uint local_5c [4];\n  uint *local_4c;\n  int local_48;\n  uint local_44 [4];\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  local_70 = &__DT_PLTGOT;\n  piVar1 = (int *)param_3[1];\n  local_7c = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    \n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }\n  else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }\n  local_74 = local_5c;\n  iVar2 = *param_2;\n  *(undefined4 *)((int)ppuVar7 + -4) = 0;\n  *(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;\n  *(int *)((int)ppuVar7 + -0xc) = iVar2;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;\n  local_64 = local_74;\n  FUN_000513a0();\n  if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    \n                    \n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }\n  *(undefined4 *)((int)ppuVar7 + -8) = 2;\n  *(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;\n  FUN_001f05c0();\n  local_88 = local_60;\n  local_8c = local_64;\n  local_84 = 0xf;\n  if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }\n  if (local_84 < (uint)(local_60 + local_48)) {\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }\n  local_2c = piVar5[2];\nLAB_00226767:\n  local_30 = piVar5[1];\n  *(undefined1 *)(piVar5 + 2) = 0;\n  *piVar5 = (int)piVar6;\n  piVar5[1] = 0;\n  *(int ***)((int)ppuVar7 + -0xc) = &local_34;\n  *(int **)((int)ppuVar7 + -0x10) = param_1;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;\n  FUN_0026c330();\n  if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_74) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }\n  if (local_4c != local_78) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }\n  param_1[3] = (int)piVar1;\n  param_1[2] = local_7c;\n  *param_1 = (int)(local_70 + -0x79a);\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint **ppuVar7;" type_identifier (pointer_declarator "**ppuVar7" * (pointer_declarator "*ppuVar7" * identifier)) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined1 auStack_90 [4];" type_identifier (array_declarator "auStack_90 [4]" identifier [ number_literal ]) ;) (declaration "uint *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "uint **local_80;" type_identifier (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier)) ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "uint *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "uint *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "uint local_5c [4];" type_identifier (array_declarator "local_5c [4]" identifier [ number_literal ]) ;) (declaration "uint *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint local_44 [4];" type_identifier (array_declarator "local_44 [4]" identifier [ number_literal ]) ;) (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 "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & 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_7c = *param_3;" (assignment_expression "local_7c = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    \n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }\n  else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\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_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    \n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }" { (expression_statement "local_80 = &local_4c;" (assignment_expression "local_80 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_78 = local_44;" (assignment_expression "local_78 = local_44" identifier = identifier) ;) (expression_statement "local_44[0] = local_44[0] & 0xffffff00;" (assignment_expression "local_44[0] = local_44[0] & 0xffffff00" (subscript_expression "local_44[0]" identifier [ number_literal ]) = (binary_expression "local_44[0] & 0xffffff00" (subscript_expression "local_44[0]" identifier [ number_literal ]) & number_literal)) ;) (if_statement "if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }" if (parenthesized_expression "(local_7c == 1)" ( (binary_expression "local_7c == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }" { (expression_statement "pcVar3 = "iostream error";" (assignment_expression "pcVar3 = "iostream error"" identifier = (string_literal ""iostream error"" " string_content ")) ;) (expression_statement "uVar8 = 0xe;" (assignment_expression "uVar8 = 0xe" identifier = number_literal) ;) }) (else_clause "else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }" else (compound_statement "{\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }" { (expression_statement "uVar8 = 0xd;" (assignment_expression "uVar8 = 0xd" identifier = number_literal) ;) (expression_statement "pcVar3 = "Unknown error";" (assignment_expression "pcVar3 = "Unknown error"" identifier = (string_literal ""Unknown error"" " string_content ")) ;) }))) (expression_statement "local_4c = local_78;" (assignment_expression "local_4c = local_78" identifier = identifier) ;) (expression_statement "FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);" (call_expression "FUN_001ef9f0(local_80,0,0,pcVar3,uVar8)" identifier (argument_list "(local_80,0,0,pcVar3,uVar8)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "ppuVar7 = &local_8c;" (assignment_expression "ppuVar7 = &local_8c" identifier = (pointer_expression "&local_8c" & identifier)) ;) }) (else_clause "else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }" else (compound_statement "{\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }" { (expression_statement "local_80 = &local_4c;" (assignment_expression "local_80 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "(**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);" (call_expression "(**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c)" (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_80,piVar1,local_7c)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_78 = local_44;" (assignment_expression "local_78 = local_44" identifier = identifier) ;) (expression_statement "ppuVar7 = (uint **)auStack_90;" (assignment_expression "ppuVar7 = (uint **)auStack_90" identifier = (cast_expression "(uint **)auStack_90" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }))) (expression_statement "local_74 = local_5c;" (assignment_expression "local_74 = local_5c" identifier = identifier) ;) (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -4)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -4)" ( (binary_expression "(int)ppuVar7 + -4" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;" (assignment_expression "*(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2" (pointer_expression "*(int *)((int)ppuVar7 + -8)" * (cast_expression "(int *)((int)ppuVar7 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -8)" ( (binary_expression "(int)ppuVar7 + -8" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "*(int *)((int)ppuVar7 + -0xc) = iVar2;" (assignment_expression "*(int *)((int)ppuVar7 + -0xc) = iVar2" (pointer_expression "*(int *)((int)ppuVar7 + -0xc)" * (cast_expression "(int *)((int)ppuVar7 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0xc)" ( (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)((int)ppuVar7 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x10)" * (cast_expression "(uint ***)((int)ppuVar7 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_74;" (assignment_expression "local_64 = local_74" identifier = identifier) ;) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    \n                    \n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }" if (parenthesized_expression "(0x7fffffffU - local_60 < 2)" ( (binary_expression "0x7fffffffU - local_60 < 2" (binary_expression "0x7fffffffU - local_60" number_literal - identifier) < number_literal) )) (compound_statement "{\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    \n                    \n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }" { (expression_statement "*(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;" (assignment_expression "*(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e" (pointer_expression "*(int *)((int)ppuVar7 + -0x10)" * (cast_expression "(int *)((int)ppuVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_70 + -0x10841e" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;" (assignment_expression "*(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0" (pointer_expression "*(undefined1 **)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined1 **)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_002268a0" & identifier)) ;) (expression_statement "FUN_0022c7a0();" (call_expression "FUN_0022c7a0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)((int)ppuVar7 + -8) = 2;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -8) = 2" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -8)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -8)" ( (binary_expression "(int)ppuVar7 + -8" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;" (assignment_expression "*(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7" (pointer_expression "*(int *)((int)ppuVar7 + -0xc)" * (cast_expression "(int *)((int)ppuVar7 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0xc)" ( (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_70 + -0xf00a7" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(uint ***)((int)ppuVar7 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x10)" * (cast_expression "(uint ***)((int)ppuVar7 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001f05c0();" (call_expression "FUN_001f05c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_88 = local_60;" (assignment_expression "local_88 = local_60" identifier = identifier) ;) (expression_statement "local_8c = local_64;" (assignment_expression "local_8c = local_64" identifier = identifier) ;) (expression_statement "local_84 = 0xf;" (assignment_expression "local_84 = 0xf" identifier = number_literal) ;) (if_statement "if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }" if (parenthesized_expression "(local_64 != local_74)" ( (binary_expression "local_64 != local_74" identifier != identifier) )) (compound_statement "{\n    local_84 = local_5c[0];\n  }" { (expression_statement "local_84 = local_5c[0];" (assignment_expression "local_84 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) })) (if_statement "if (local_84 < (uint)(local_60 + local_48)) {\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }" if (parenthesized_expression "(local_84 < (uint)(local_60 + local_48))" ( (binary_expression "local_84 < (uint)(local_60 + local_48)" identifier < (call_expression "(uint)(local_60 + local_48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_60 + local_48)" ( (binary_expression "local_60 + local_48" identifier + identifier) )))) )) (compound_statement "{\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }" { (expression_statement "uVar4 = 0xf;" (assignment_expression "uVar4 = 0xf" identifier = number_literal) ;) (if_statement "if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }" if (parenthesized_expression "(local_4c != local_78)" ( (binary_expression "local_4c != local_78" identifier != identifier) )) (compound_statement "{\n      uVar4 = local_44[0];\n    }" { (expression_statement "uVar4 = local_44[0];" (assignment_expression "uVar4 = local_44[0]" identifier = (subscript_expression "local_44[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;" if (parenthesized_expression "(uVar4 < (uint)(local_60 + local_48))" ( (binary_expression "uVar4 < (uint)(local_60 + local_48)" identifier < (call_expression "(uint)(local_60 + local_48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_60 + local_48)" ( (binary_expression "local_60 + local_48" identifier + identifier) )))) )) (goto_statement "goto LAB_0022673a;" goto statement_identifier ;)) (expression_statement "*(int *)((int)ppuVar7 + -0x10) = local_60;" (assignment_expression "*(int *)((int)ppuVar7 + -0x10) = local_60" (pointer_expression "*(int *)((int)ppuVar7 + -0x10)" * (cast_expression "(int *)((int)ppuVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)((int)ppuVar7 + -0x14) = local_64;" (assignment_expression "*(uint **)((int)ppuVar7 + -0x14) = local_64" (pointer_expression "*(uint **)((int)ppuVar7 + -0x14)" * (cast_expression "(uint **)((int)ppuVar7 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x18)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x18)" ( (binary_expression "(int)ppuVar7 + -0x18" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x1c)" ( (binary_expression "(int)ppuVar7 + -0x1c" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint ***)((int)ppuVar7 + -0x20) = local_80;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x20) = local_80" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x20)" * (cast_expression "(uint ***)((int)ppuVar7 + -0x20)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar7 + -0x20)" ( (binary_expression "(int)ppuVar7 + -0x20" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x24)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x24)" ( (binary_expression "(int)ppuVar7 + -0x24" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar5 = (int *)FUN_001ef9f0();" (assignment_expression "piVar5 = (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 "piVar6 = piVar5 + 2;" (assignment_expression "piVar6 = piVar5 + 2" identifier = (binary_expression "piVar5 + 2" identifier + number_literal)) ;) (expression_statement "local_34 = (int *)*piVar5;" (assignment_expression "local_34 = (int *)*piVar5" identifier = (cast_expression "(int *)*piVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) ;) (if_statement "if (local_34 == piVar6) goto LAB_00226834;" if (parenthesized_expression "(local_34 == piVar6)" ( (binary_expression "local_34 == piVar6" identifier == identifier) )) (goto_statement "goto LAB_00226834;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }" else (compound_statement "{\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }" { (labeled_statement "LAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;" statement_identifier : (expression_statement "*(int *)((int)ppuVar7 + -8) = local_48;" (assignment_expression "*(int *)((int)ppuVar7 + -8) = local_48" (pointer_expression "*(int *)((int)ppuVar7 + -8)" * (cast_expression "(int *)((int)ppuVar7 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -8)" ( (binary_expression "(int)ppuVar7 + -8" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(uint **)((int)ppuVar7 + -0xc) = local_4c;" (assignment_expression "*(uint **)((int)ppuVar7 + -0xc) = local_4c" (pointer_expression "*(uint **)((int)ppuVar7 + -0xc)" * (cast_expression "(uint **)((int)ppuVar7 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0xc)" ( (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)((int)ppuVar7 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x10)" * (cast_expression "(uint ***)((int)ppuVar7 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar5 = (int *)FUN_001f05c0();" (assignment_expression "piVar5 = (int *)FUN_001f05c0()" identifier = (cast_expression "(int *)FUN_001f05c0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f05c0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar6 = piVar5 + 2;" (assignment_expression "piVar6 = piVar5 + 2" identifier = (binary_expression "piVar5 + 2" identifier + number_literal)) ;) (expression_statement "local_34 = (int *)*piVar5;" (assignment_expression "local_34 = (int *)*piVar5" identifier = (cast_expression "(int *)*piVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) ;) (if_statement "if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }" if (parenthesized_expression "(local_34 == piVar6)" ( (binary_expression "local_34 == piVar6" identifier == identifier) )) (compound_statement "{\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }" { (labeled_statement "LAB_00226834:\n      local_34 = &local_2c;" statement_identifier : (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;)) (expression_statement "local_2c = piVar5[2];" (assignment_expression "local_2c = piVar5[2]" identifier = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (expression_statement "local_28 = piVar5[3];" (assignment_expression "local_28 = piVar5[3]" identifier = (subscript_expression "piVar5[3]" identifier [ number_literal ])) ;) (expression_statement "local_24 = piVar5[4];" (assignment_expression "local_24 = piVar5[4]" identifier = (subscript_expression "piVar5[4]" identifier [ number_literal ])) ;) (expression_statement "local_20 = piVar5[5];" (assignment_expression "local_20 = piVar5[5]" identifier = (subscript_expression "piVar5[5]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00226767;" goto statement_identifier ;) })) }))) (expression_statement "local_2c = piVar5[2];" (assignment_expression "local_2c = piVar5[2]" identifier = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00226767:\n  local_30 = piVar5[1];" statement_identifier : (expression_statement "local_30 = piVar5[1];" (assignment_expression "local_30 = piVar5[1]" identifier = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;)) (expression_statement "*(undefined1 *)(piVar5 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar5 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar5 + 2)" * (cast_expression "(undefined1 *)(piVar5 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 2)" ( (binary_expression "piVar5 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar5 = (int)piVar6;" (assignment_expression "*piVar5 = (int)piVar6" (pointer_expression "*piVar5" * identifier) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar5[1] = 0;" (assignment_expression "piVar5[1] = 0" (subscript_expression "piVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int ***)((int)ppuVar7 + -0xc) = &local_34;" (assignment_expression "*(int ***)((int)ppuVar7 + -0xc) = &local_34" (pointer_expression "*(int ***)((int)ppuVar7 + -0xc)" * (cast_expression "(int ***)((int)ppuVar7 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppuVar7 + -0xc)" ( (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(int **)((int)ppuVar7 + -0x10) = param_1;" (assignment_expression "*(int **)((int)ppuVar7 + -0x10) = param_1" (pointer_expression "*(int **)((int)ppuVar7 + -0x10)" * (cast_expression "(int **)((int)ppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (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_2c) {\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "(local_34 != &local_2c)" ( (binary_expression "local_34 != &local_2c" identifier != (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }" { (expression_statement "*(int **)((int)ppuVar7 + -0x10) = local_34;" (assignment_expression "*(int **)((int)ppuVar7 + -0x10) = local_34" (pointer_expression "*(int **)((int)ppuVar7 + -0x10)" * (cast_expression "(int **)((int)ppuVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (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_74) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "(local_64 != local_74)" ( (binary_expression "local_64 != local_74" identifier != identifier) )) (compound_statement "{\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }" { (expression_statement "*(uint **)((int)ppuVar7 + -0x10) = local_64;" (assignment_expression "*(uint **)((int)ppuVar7 + -0x10) = local_64" (pointer_expression "*(uint **)((int)ppuVar7 + -0x10)" * (cast_expression "(uint **)((int)ppuVar7 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (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_4c != local_78) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }" if (parenthesized_expression "(local_4c != local_78)" ( (binary_expression "local_4c != local_78" identifier != identifier) )) (compound_statement "{\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }" { (expression_statement "*(uint **)((int)ppuVar7 + -0x10) = local_4c;" (assignment_expression "*(uint **)((int)ppuVar7 + -0x10) = local_4c" (pointer_expression "*(uint **)((int)ppuVar7 + -0x10)" * (cast_expression "(uint **)((int)ppuVar7 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar7 + -0x10)" ( (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar7 + -0x14)" ( (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" ( (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] = (int)piVar1;" (assignment_expression "param_1[3] = (int)piVar1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[2] = local_7c;" (assignment_expression "param_1[2] = local_7c" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_1 = (int)(local_70 + -0x79a);" (assignment_expression "*param_1 = (int)(local_70 + -0x79a)" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)(local_70 + -0x79a)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_70 + -0x79a)" ( (binary_expression "local_70 + -0x79a" identifier + number_literal) )))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (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 (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (array_declarator IDENT [ LIT ]) ;) (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 = (pointer_expression & 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 ]) = (binary_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 = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = 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) )))) = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (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) )))) = 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (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) ) IDENT)) ;) (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 != (pointer_expression & 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 ( ))) ;) })) (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 ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (return_statement return ;) })))
(function_definition "void FUN_00226630(int *param_1,int *param_2,int *param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  char *pcVar3;\n  uint uVar4;\n  int *piVar5;\n  int *piVar6;\n  uint **ppuVar7;\n  undefined4 uVar8;\n  undefined1 auStack_90 [4];\n  uint *local_8c;\n  int local_88;\n  uint local_84;\n  uint **local_80;\n  int local_7c;\n  uint *local_78;\n  uint *local_74;\n  undefined **local_70;\n  uint *local_64;\n  int local_60;\n  uint local_5c [4];\n  uint *local_4c;\n  int local_48;\n  uint local_44 [4];\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  local_70 = &__DT_PLTGOT;\n  piVar1 = (int *)param_3[1];\n  local_7c = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    \n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }\n  else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }\n  local_74 = local_5c;\n  iVar2 = *param_2;\n  *(undefined4 *)((int)ppuVar7 + -4) = 0;\n  *(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;\n  *(int *)((int)ppuVar7 + -0xc) = iVar2;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;\n  local_64 = local_74;\n  FUN_000513a0();\n  if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    \n                    \n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }\n  *(undefined4 *)((int)ppuVar7 + -8) = 2;\n  *(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;\n  FUN_001f05c0();\n  local_88 = local_60;\n  local_8c = local_64;\n  local_84 = 0xf;\n  if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }\n  if (local_84 < (uint)(local_60 + local_48)) {\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }\n  local_2c = piVar5[2];\nLAB_00226767:\n  local_30 = piVar5[1];\n  *(undefined1 *)(piVar5 + 2) = 0;\n  *piVar5 = (int)piVar6;\n  piVar5[1] = 0;\n  *(int ***)((int)ppuVar7 + -0xc) = &local_34;\n  *(int **)((int)ppuVar7 + -0x10) = param_1;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;\n  FUN_0026c330();\n  if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_74) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }\n  if (local_4c != local_78) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }\n  param_1[3] = (int)piVar1;\n  param_1[2] = local_7c;\n  *param_1 = (int)(local_70 + -0x79a);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00226630(int *param_1,int *param_2,int *param_3)" (identifier "FUN_00226630") (parameter_list "(int *param_1,int *param_2,int *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  char *pcVar3;\n  uint uVar4;\n  int *piVar5;\n  int *piVar6;\n  uint **ppuVar7;\n  undefined4 uVar8;\n  undefined1 auStack_90 [4];\n  uint *local_8c;\n  int local_88;\n  uint local_84;\n  uint **local_80;\n  int local_7c;\n  uint *local_78;\n  uint *local_74;\n  undefined **local_70;\n  uint *local_64;\n  int local_60;\n  uint local_5c [4];\n  uint *local_4c;\n  int local_48;\n  uint local_44 [4];\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  local_70 = &__DT_PLTGOT;\n  piVar1 = (int *)param_3[1];\n  local_7c = *param_3;\n  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    \n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }\n  else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }\n  local_74 = local_5c;\n  iVar2 = *param_2;\n  *(undefined4 *)((int)ppuVar7 + -4) = 0;\n  *(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;\n  *(int *)((int)ppuVar7 + -0xc) = iVar2;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;\n  local_64 = local_74;\n  FUN_000513a0();\n  if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    \n                    \n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }\n  *(undefined4 *)((int)ppuVar7 + -8) = 2;\n  *(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;\n  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;\n  FUN_001f05c0();\n  local_88 = local_60;\n  local_8c = local_64;\n  local_84 = 0xf;\n  if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }\n  if (local_84 < (uint)(local_60 + local_48)) {\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }\n  local_2c = piVar5[2];\nLAB_00226767:\n  local_30 = piVar5[1];\n  *(undefined1 *)(piVar5 + 2) = 0;\n  *piVar5 = (int)piVar6;\n  piVar5[1] = 0;\n  *(int ***)((int)ppuVar7 + -0xc) = &local_34;\n  *(int **)((int)ppuVar7 + -0x10) = param_1;\n                    \n  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;\n  FUN_0026c330();\n  if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }\n  if (local_64 != local_74) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }\n  if (local_4c != local_78) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }\n  param_1[3] = (int)piVar1;\n  param_1[2] = local_7c;\n  *param_1 = (int)(local_70 + -0x79a);\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "uint **ppuVar7;" (type_identifier "uint") (pointer_declarator "**ppuVar7" (* "*") (pointer_declarator "*ppuVar7" (* "*") (identifier "ppuVar7"))) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined1 auStack_90 [4];" (type_identifier "undefined1") (array_declarator "auStack_90 [4]" (identifier "auStack_90") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint *local_8c;" (type_identifier "uint") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")) (; ";")) (declaration "int local_88;" (primitive_type "int") (identifier "local_88") (; ";")) (declaration "uint local_84;" (type_identifier "uint") (identifier "local_84") (; ";")) (declaration "uint **local_80;" (type_identifier "uint") (pointer_declarator "**local_80" (* "*") (pointer_declarator "*local_80" (* "*") (identifier "local_80"))) (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "uint *local_78;" (type_identifier "uint") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "uint *local_74;" (type_identifier "uint") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "undefined **local_70;" (type_identifier "undefined") (pointer_declarator "**local_70" (* "*") (pointer_declarator "*local_70" (* "*") (identifier "local_70"))) (; ";")) (declaration "uint *local_64;" (type_identifier "uint") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "uint local_5c [4];" (type_identifier "uint") (array_declarator "local_5c [4]" (identifier "local_5c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint *local_4c;" (type_identifier "uint") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "uint local_44 [4];" (type_identifier "uint") (array_declarator "local_44 [4]" (identifier "local_44") ([ "[") (number_literal "4") (] "]")) (; ";")) (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 "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" (identifier "local_70") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (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_7c = *param_3;" (assignment_expression "local_7c = *param_3" (identifier "local_7c") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {\n    local_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    \n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }\n  else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\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_80 = &local_4c;\n    local_48 = 0;\n    local_78 = local_44;\n    local_44[0] = local_44[0] & 0xffffff00;\n    if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }\n    local_4c = local_78;\n                    \n    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);\n    ppuVar7 = &local_8c;\n  }" ({ "{") (expression_statement "local_80 = &local_4c;" (assignment_expression "local_80 = &local_4c" (identifier "local_80") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = local_44;" (assignment_expression "local_78 = local_44" (identifier "local_78") (= "=") (identifier "local_44")) (; ";")) (expression_statement "local_44[0] = local_44[0] & 0xffffff00;" (assignment_expression "local_44[0] = local_44[0] & 0xffffff00" (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_44[0] & 0xffffff00" (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xffffff00"))) (; ";")) (if_statement "if (local_7c == 1) {\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }\n    else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }" (if "if") (parenthesized_expression "(local_7c == 1)" (( "(") (binary_expression "local_7c == 1" (identifier "local_7c") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      pcVar3 = "iostream error";\n      uVar8 = 0xe;\n    }" ({ "{") (expression_statement "pcVar3 = "iostream error";" (assignment_expression "pcVar3 = "iostream error"" (identifier "pcVar3") (= "=") (string_literal ""iostream error"" (" """) (string_content "iostream error") (" """))) (; ";")) (expression_statement "uVar8 = 0xe;" (assignment_expression "uVar8 = 0xe" (identifier "uVar8") (= "=") (number_literal "0xe")) (; ";")) (} "}")) (else_clause "else {\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }" (else "else") (compound_statement "{\n      uVar8 = 0xd;\n      pcVar3 = "Unknown error";\n    }" ({ "{") (expression_statement "uVar8 = 0xd;" (assignment_expression "uVar8 = 0xd" (identifier "uVar8") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pcVar3 = "Unknown error";" (assignment_expression "pcVar3 = "Unknown error"" (identifier "pcVar3") (= "=") (string_literal ""Unknown error"" (" """) (string_content "Unknown error") (" """))) (; ";")) (} "}")))) (expression_statement "local_4c = local_78;" (assignment_expression "local_4c = local_78" (identifier "local_4c") (= "=") (identifier "local_78")) (; ";")) (expression_statement "FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);" (call_expression "FUN_001ef9f0(local_80,0,0,pcVar3,uVar8)" (identifier "FUN_001ef9f0") (argument_list "(local_80,0,0,pcVar3,uVar8)" (( "(") (identifier "local_80") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "pcVar3") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "ppuVar7 = &local_8c;" (assignment_expression "ppuVar7 = &local_8c" (identifier "ppuVar7") (= "=") (pointer_expression "&local_8c" (& "&") (identifier "local_8c"))) (; ";")) (} "}")) (else_clause "else {\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }" (else "else") (compound_statement "{\n    local_80 = &local_4c;\n    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);\n    local_78 = local_44;\n    ppuVar7 = (uint **)auStack_90;\n  }" ({ "{") (expression_statement "local_80 = &local_4c;" (assignment_expression "local_80 = &local_4c" (identifier "local_80") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "(**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);" (call_expression "(**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c)" (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_80,piVar1,local_7c)" (( "(") (identifier "local_80") (, ",") (identifier "piVar1") (, ",") (identifier "local_7c") () ")"))) (; ";")) (expression_statement "local_78 = local_44;" (assignment_expression "local_78 = local_44" (identifier "local_78") (= "=") (identifier "local_44")) (; ";")) (expression_statement "ppuVar7 = (uint **)auStack_90;" (assignment_expression "ppuVar7 = (uint **)auStack_90" (identifier "ppuVar7") (= "=") (cast_expression "(uint **)auStack_90" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_90"))) (; ";")) (} "}")))) (expression_statement "local_74 = local_5c;" (assignment_expression "local_74 = local_5c" (identifier "local_74") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" (identifier "iVar2") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppuVar7 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -4)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -4)" (( "(") (binary_expression "(int)ppuVar7 + -4" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;" (assignment_expression "*(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2" (pointer_expression "*(int *)((int)ppuVar7 + -8)" (* "*") (cast_expression "(int *)((int)ppuVar7 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -8)" (( "(") (binary_expression "(int)ppuVar7 + -8" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "iVar2"))) (; ";")) (expression_statement "*(int *)((int)ppuVar7 + -0xc) = iVar2;" (assignment_expression "*(int *)((int)ppuVar7 + -0xc) = iVar2" (pointer_expression "*(int *)((int)ppuVar7 + -0xc)" (* "*") (cast_expression "(int *)((int)ppuVar7 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0xc)" (( "(") (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(uint ***)((int)ppuVar7 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x10)" (* "*") (cast_expression "(uint ***)((int)ppuVar7 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x10)" (( "(") (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_64" (& "&") (identifier "local_64"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x14)" (( "(") (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x2266cc")) (; ";")) (expression_statement "local_64 = local_74;" (assignment_expression "local_64 = local_74" (identifier "local_64") (= "=") (identifier "local_74")) (; ";")) (expression_statement "FUN_000513a0();" (call_expression "FUN_000513a0()" (identifier "FUN_000513a0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (0x7fffffffU - local_60 < 2) {\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    \n                    \n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }" (if "if") (parenthesized_expression "(0x7fffffffU - local_60 < 2)" (( "(") (binary_expression "0x7fffffffU - local_60 < 2" (binary_expression "0x7fffffffU - local_60" (number_literal "0x7fffffffU") (- "-") (identifier "local_60")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;\n                    \n                    \n    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;\n    FUN_0022c7a0();\n  }" ({ "{") (expression_statement "*(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;" (assignment_expression "*(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e" (pointer_expression "*(int *)((int)ppuVar7 + -0x10)" (* "*") (cast_expression "(int *)((int)ppuVar7 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x10)" (( "(") (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_70 + -0x10841e" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (number_literal "-0x10841e"))) (; ";")) (expression_statement "*(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;" (assignment_expression "*(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0" (pointer_expression "*(undefined1 **)((int)ppuVar7 + -0x14)" (* "*") (cast_expression "(undefined1 **)((int)ppuVar7 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x14)" (( "(") (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&LAB_002268a0" (& "&") (identifier "LAB_002268a0"))) (; ";")) (expression_statement "FUN_0022c7a0();" (call_expression "FUN_0022c7a0()" (identifier "FUN_0022c7a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((int)ppuVar7 + -8) = 2;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -8) = 2" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -8)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -8)" (( "(") (binary_expression "(int)ppuVar7 + -8" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;" (assignment_expression "*(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7" (pointer_expression "*(int *)((int)ppuVar7 + -0xc)" (* "*") (cast_expression "(int *)((int)ppuVar7 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0xc)" (( "(") (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "(int)local_70 + -0xf00a7" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (number_literal "-0xf00a7"))) (; ";")) (expression_statement "*(uint ***)((int)ppuVar7 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x10)" (* "*") (cast_expression "(uint ***)((int)ppuVar7 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x10)" (( "(") (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_64" (& "&") (identifier "local_64"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x14)" (( "(") (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x2266f5")) (; ";")) (expression_statement "FUN_001f05c0();" (call_expression "FUN_001f05c0()" (identifier "FUN_001f05c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_88 = local_60;" (assignment_expression "local_88 = local_60" (identifier "local_88") (= "=") (identifier "local_60")) (; ";")) (expression_statement "local_8c = local_64;" (assignment_expression "local_8c = local_64" (identifier "local_8c") (= "=") (identifier "local_64")) (; ";")) (expression_statement "local_84 = 0xf;" (assignment_expression "local_84 = 0xf" (identifier "local_84") (= "=") (number_literal "0xf")) (; ";")) (if_statement "if (local_64 != local_74) {\n    local_84 = local_5c[0];\n  }" (if "if") (parenthesized_expression "(local_64 != local_74)" (( "(") (binary_expression "local_64 != local_74" (identifier "local_64") (!= "!=") (identifier "local_74")) () ")")) (compound_statement "{\n    local_84 = local_5c[0];\n  }" ({ "{") (expression_statement "local_84 = local_5c[0];" (assignment_expression "local_84 = local_5c[0]" (identifier "local_84") (= "=") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}"))) (if_statement "if (local_84 < (uint)(local_60 + local_48)) {\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }\n  else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }" (if "if") (parenthesized_expression "(local_84 < (uint)(local_60 + local_48))" (( "(") (binary_expression "local_84 < (uint)(local_60 + local_48)" (identifier "local_84") (< "<") (call_expression "(uint)(local_60 + local_48)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_60 + local_48)" (( "(") (binary_expression "local_60 + local_48" (identifier "local_60") (+ "+") (identifier "local_48")) () ")")))) () ")")) (compound_statement "{\n    uVar4 = 0xf;\n    if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }\n    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;\n    *(int *)((int)ppuVar7 + -0x10) = local_60;\n    *(uint **)((int)ppuVar7 + -0x14) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;\n    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;\n    *(uint ***)((int)ppuVar7 + -0x20) = local_80;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;\n    piVar5 = (int *)FUN_001ef9f0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) goto LAB_00226834;\n  }" ({ "{") (expression_statement "uVar4 = 0xf;" (assignment_expression "uVar4 = 0xf" (identifier "uVar4") (= "=") (number_literal "0xf")) (; ";")) (if_statement "if (local_4c != local_78) {\n      uVar4 = local_44[0];\n    }" (if "if") (parenthesized_expression "(local_4c != local_78)" (( "(") (binary_expression "local_4c != local_78" (identifier "local_4c") (!= "!=") (identifier "local_78")) () ")")) (compound_statement "{\n      uVar4 = local_44[0];\n    }" ({ "{") (expression_statement "uVar4 = local_44[0];" (assignment_expression "uVar4 = local_44[0]" (identifier "uVar4") (= "=") (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}"))) (if_statement "if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;" (if "if") (parenthesized_expression "(uVar4 < (uint)(local_60 + local_48))" (( "(") (binary_expression "uVar4 < (uint)(local_60 + local_48)" (identifier "uVar4") (< "<") (call_expression "(uint)(local_60 + local_48)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_60 + local_48)" (( "(") (binary_expression "local_60 + local_48" (identifier "local_60") (+ "+") (identifier "local_48")) () ")")))) () ")")) (goto_statement "goto LAB_0022673a;" (goto "goto") (statement_identifier "LAB_0022673a") (; ";"))) (expression_statement "*(int *)((int)ppuVar7 + -0x10) = local_60;" (assignment_expression "*(int *)((int)ppuVar7 + -0x10) = local_60" (pointer_expression "*(int *)((int)ppuVar7 + -0x10)" (* "*") (cast_expression "(int *)((int)ppuVar7 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x10)" (( "(") (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_60")) (; ";")) (expression_statement "*(uint **)((int)ppuVar7 + -0x14) = local_64;" (assignment_expression "*(uint **)((int)ppuVar7 + -0x14) = local_64" (pointer_expression "*(uint **)((int)ppuVar7 + -0x14)" (* "*") (cast_expression "(uint **)((int)ppuVar7 + -0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x14)" (( "(") (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x18) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x18) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x18)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x18)" (( "(") (binary_expression "(int)ppuVar7 + -0x18" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x1c)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x1c)" (( "(") (binary_expression "(int)ppuVar7 + -0x1c" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint ***)((int)ppuVar7 + -0x20) = local_80;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x20) = local_80" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x20)" (* "*") (cast_expression "(uint ***)((int)ppuVar7 + -0x20)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x20)" (( "(") (binary_expression "(int)ppuVar7 + -0x20" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_80")) (; ";")) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x24)" (( "(") (binary_expression "(int)ppuVar7 + -0x24" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x22681e")) (; ";")) (expression_statement "piVar5 = (int *)FUN_001ef9f0();" (assignment_expression "piVar5 = (int *)FUN_001ef9f0()" (identifier "piVar5") (= "=") (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 "piVar6 = piVar5 + 2;" (assignment_expression "piVar6 = piVar5 + 2" (identifier "piVar6") (= "=") (binary_expression "piVar5 + 2" (identifier "piVar5") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_34 = (int *)*piVar5;" (assignment_expression "local_34 = (int *)*piVar5" (identifier "local_34") (= "=") (cast_expression "(int *)*piVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar5" (* "*") (identifier "piVar5")))) (; ";")) (if_statement "if (local_34 == piVar6) goto LAB_00226834;" (if "if") (parenthesized_expression "(local_34 == piVar6)" (( "(") (binary_expression "local_34 == piVar6" (identifier "local_34") (== "==") (identifier "piVar6")) () ")")) (goto_statement "goto LAB_00226834;" (goto "goto") (statement_identifier "LAB_00226834") (; ";"))) (} "}")) (else_clause "else {\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }" (else "else") (compound_statement "{\nLAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;\n    *(uint **)((int)ppuVar7 + -0xc) = local_4c;\n    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;\n                    \n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;\n    piVar5 = (int *)FUN_001f05c0();\n    piVar6 = piVar5 + 2;\n    local_34 = (int *)*piVar5;\n    if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }\n  }" ({ "{") (labeled_statement "LAB_0022673a:\n    *(int *)((int)ppuVar7 + -8) = local_48;" (statement_identifier "LAB_0022673a") (: ":") (expression_statement "*(int *)((int)ppuVar7 + -8) = local_48;" (assignment_expression "*(int *)((int)ppuVar7 + -8) = local_48" (pointer_expression "*(int *)((int)ppuVar7 + -8)" (* "*") (cast_expression "(int *)((int)ppuVar7 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -8)" (( "(") (binary_expression "(int)ppuVar7 + -8" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_48")) (; ";"))) (expression_statement "*(uint **)((int)ppuVar7 + -0xc) = local_4c;" (assignment_expression "*(uint **)((int)ppuVar7 + -0xc) = local_4c" (pointer_expression "*(uint **)((int)ppuVar7 + -0xc)" (* "*") (cast_expression "(uint **)((int)ppuVar7 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar7 + -0xc)" (( "(") (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(uint ***)((int)ppuVar7 + -0x10) = &local_64;" (assignment_expression "*(uint ***)((int)ppuVar7 + -0x10) = &local_64" (pointer_expression "*(uint ***)((int)ppuVar7 + -0x10)" (* "*") (cast_expression "(uint ***)((int)ppuVar7 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x10)" (( "(") (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_64" (& "&") (identifier "local_64"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x14)" (( "(") (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x226748")) (; ";")) (expression_statement "piVar5 = (int *)FUN_001f05c0();" (assignment_expression "piVar5 = (int *)FUN_001f05c0()" (identifier "piVar5") (= "=") (cast_expression "(int *)FUN_001f05c0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001f05c0()" (identifier "FUN_001f05c0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar6 = piVar5 + 2;" (assignment_expression "piVar6 = piVar5 + 2" (identifier "piVar6") (= "=") (binary_expression "piVar5 + 2" (identifier "piVar5") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_34 = (int *)*piVar5;" (assignment_expression "local_34 = (int *)*piVar5" (identifier "local_34") (= "=") (cast_expression "(int *)*piVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar5" (* "*") (identifier "piVar5")))) (; ";")) (if_statement "if (local_34 == piVar6) {\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }" (if "if") (parenthesized_expression "(local_34 == piVar6)" (( "(") (binary_expression "local_34 == piVar6" (identifier "local_34") (== "==") (identifier "piVar6")) () ")")) (compound_statement "{\nLAB_00226834:\n      local_34 = &local_2c;\n      local_2c = piVar5[2];\n      local_28 = piVar5[3];\n      local_24 = piVar5[4];\n      local_20 = piVar5[5];\n      goto LAB_00226767;\n    }" ({ "{") (labeled_statement "LAB_00226834:\n      local_34 = &local_2c;" (statement_identifier "LAB_00226834") (: ":") (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" (identifier "local_34") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";"))) (expression_statement "local_2c = piVar5[2];" (assignment_expression "local_2c = piVar5[2]" (identifier "local_2c") (= "=") (subscript_expression "piVar5[2]" (identifier "piVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_28 = piVar5[3];" (assignment_expression "local_28 = piVar5[3]" (identifier "local_28") (= "=") (subscript_expression "piVar5[3]" (identifier "piVar5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_24 = piVar5[4];" (assignment_expression "local_24 = piVar5[4]" (identifier "local_24") (= "=") (subscript_expression "piVar5[4]" (identifier "piVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_20 = piVar5[5];" (assignment_expression "local_20 = piVar5[5]" (identifier "local_20") (= "=") (subscript_expression "piVar5[5]" (identifier "piVar5") ([ "[") (number_literal "5") (] "]"))) (; ";")) (goto_statement "goto LAB_00226767;" (goto "goto") (statement_identifier "LAB_00226767") (; ";")) (} "}"))) (} "}")))) (expression_statement "local_2c = piVar5[2];" (assignment_expression "local_2c = piVar5[2]" (identifier "local_2c") (= "=") (subscript_expression "piVar5[2]" (identifier "piVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (labeled_statement "LAB_00226767:\n  local_30 = piVar5[1];" (statement_identifier "LAB_00226767") (: ":") (expression_statement "local_30 = piVar5[1];" (assignment_expression "local_30 = piVar5[1]" (identifier "local_30") (= "=") (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "*(undefined1 *)(piVar5 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar5 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar5 + 2)" (* "*") (cast_expression "(undefined1 *)(piVar5 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 2)" (( "(") (binary_expression "piVar5 + 2" (identifier "piVar5") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar5 = (int)piVar6;" (assignment_expression "*piVar5 = (int)piVar6" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "piVar5[1] = 0;" (assignment_expression "piVar5[1] = 0" (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int ***)((int)ppuVar7 + -0xc) = &local_34;" (assignment_expression "*(int ***)((int)ppuVar7 + -0xc) = &local_34" (pointer_expression "*(int ***)((int)ppuVar7 + -0xc)" (* "*") (cast_expression "(int ***)((int)ppuVar7 + -0xc)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppuVar7 + -0xc)" (( "(") (binary_expression "(int)ppuVar7 + -0xc" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(int **)((int)ppuVar7 + -0x10) = param_1;" (assignment_expression "*(int **)((int)ppuVar7 + -0x10) = param_1" (pointer_expression "*(int **)((int)ppuVar7 + -0x10)" (* "*") (cast_expression "(int **)((int)ppuVar7 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x10)" (( "(") (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x14)" (( "(") (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x22678c")) (; ";")) (expression_statement "FUN_0026c330();" (call_expression "FUN_0026c330()" (identifier "FUN_0026c330") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_34 != &local_2c) {\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }" (if "if") (parenthesized_expression "(local_34 != &local_2c)" (( "(") (binary_expression "local_34 != &local_2c" (identifier "local_34") (!= "!=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) () ")")) (compound_statement "{\n    *(int **)((int)ppuVar7 + -0x10) = local_34;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;\n    FUN_001e6db0();\n  }" ({ "{") (expression_statement "*(int **)((int)ppuVar7 + -0x10) = local_34;" (assignment_expression "*(int **)((int)ppuVar7 + -0x10) = local_34" (pointer_expression "*(int **)((int)ppuVar7 + -0x10)" (* "*") (cast_expression "(int **)((int)ppuVar7 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x10)" (( "(") (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x14)" (( "(") (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x2267a2")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_64 != local_74) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }" (if "if") (parenthesized_expression "(local_64 != local_74)" (( "(") (binary_expression "local_64 != local_74" (identifier "local_64") (!= "!=") (identifier "local_74")) () ")")) (compound_statement "{\n    *(uint **)((int)ppuVar7 + -0x10) = local_64;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;\n    FUN_001e6db0();\n  }" ({ "{") (expression_statement "*(uint **)((int)ppuVar7 + -0x10) = local_64;" (assignment_expression "*(uint **)((int)ppuVar7 + -0x10) = local_64" (pointer_expression "*(uint **)((int)ppuVar7 + -0x10)" (* "*") (cast_expression "(uint **)((int)ppuVar7 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x10)" (( "(") (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x14)" (( "(") (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x2267b9")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_4c != local_78) {\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }" (if "if") (parenthesized_expression "(local_4c != local_78)" (( "(") (binary_expression "local_4c != local_78" (identifier "local_4c") (!= "!=") (identifier "local_78")) () ")")) (compound_statement "{\n    *(uint **)((int)ppuVar7 + -0x10) = local_4c;\n    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;\n    FUN_001e6db0();\n  }" ({ "{") (expression_statement "*(uint **)((int)ppuVar7 + -0x10) = local_4c;" (assignment_expression "*(uint **)((int)ppuVar7 + -0x10) = local_4c" (pointer_expression "*(uint **)((int)ppuVar7 + -0x10)" (* "*") (cast_expression "(uint **)((int)ppuVar7 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x10)" (( "(") (binary_expression "(int)ppuVar7 + -0x10" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;" (assignment_expression "*(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0" (pointer_expression "*(undefined4 *)((int)ppuVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppuVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar7 + -0x14)" (( "(") (binary_expression "(int)ppuVar7 + -0x14" (cast_expression "(int)ppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x2267d0")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[3] = (int)piVar1;" (assignment_expression "param_1[3] = (int)piVar1" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int)piVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar1"))) (; ";")) (expression_statement "param_1[2] = local_7c;" (assignment_expression "param_1[2] = local_7c" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "*param_1 = (int)(local_70 + -0x79a);" (assignment_expression "*param_1 = (int)(local_70 + -0x79a)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)(local_70 + -0x79a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_70 + -0x79a)" (( "(") (binary_expression "local_70 + -0x79a" (identifier "local_70") (+ "+") (number_literal "-0x79a")) () ")")))) (; ";")) (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(std::string const&, std::error_code const&) */

void __thiscall
std::ios_base::function_1[abi:cxx11]::function_1
          (type_1 *var_26,type_2 *var_5,type_3 *var_1)

{
  int *piVar1;
  int var_6;
  char *pcVar3;
  int *var_21;
  int *var_23;
  type_4 **ppuVar6;
  type_4 var_20;
  type_5 auStack_90 [4];
  type_4 *local_8c;
  int local_88;
  type_4 var_16;
  type_2 *local_80;
  int var_3;
  type_4 *var_19;
  type_4 *var_15;
  type_6 **var_27;
  type_4 *var_14;
  int var_11;
  type_4 local_5c [4];
  type_4 *var_18;
  int var_17;
  type_4 local_44 [4];
  int *var_22;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  var_27 = &_GLOBAL_OFFSET_TABLE_;
  piVar1 = *(int **)(var_1 + 4);
  var_3 = *(int *)var_1;
  if (*(type_7 **)(*piVar1 + 0x10) == ::(var_2)::io_error_category::message_abi_cxx11_)
  {
    local_80 = (type_2 *)&var_18;
    var_17 = 0;
    var_19 = local_44;
    local_44[0] = local_44[0] & 0xffffff00;
    if (var_3 == 1) {
      pcVar3 = "iostream error";
      var_20 = 0xe;
    }
    else {
      var_20 = 0xd;
      pcVar3 = "Unknown error";
    }
    var_18 = var_19;
                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */
    std::string::var_4(local_80,0,0,pcVar3,var_20);
    ppuVar6 = &local_8c;
  }
  else {
    local_80 = (type_2 *)&var_18;
    (**(type_7 **)(*piVar1 + 0x10))(local_80,piVar1,var_3);
    var_19 = local_44;
    ppuVar6 = (type_4 **)auStack_90;
  }
  var_15 = local_5c;
  var_6 = *(int *)var_5;
  *(type_8 *)((int)ppuVar6 + -4) = 0;
  *(int *)((int)ppuVar6 + -8) = *(int *)(var_5 + 4) + var_6;
  *(int *)((int)ppuVar6 + -0xc) = var_6;
  *(type_4 ***)((int)ppuVar6 + -0x10) = &var_14;
                    /* try { // try from 002266c7 to 002266cb has its CatchHandler @ 002268bc */
  *(type_8 *)((int)ppuVar6 + -0x14) = 0x2266cc;
  var_14 = var_15;
  __cxx11::basic_string<var_8,_std::char_traits<var_8>,_std::var_7<var_8>var_9>::var_10<var_8*>();
  if (0x7fffffffU - var_11 < 2) {
    *(int *)((int)ppuVar6 + -0x10) = (int)var_27 + -0x10841e;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */
    *(type_5 **)((int)ppuVar6 + -0x14) = &LAB_002268a0;
    var_12(*(char **)((int)ppuVar6 + -0x10));
  }
  *(type_8 *)((int)ppuVar6 + -8) = 2;
  *(int *)((int)ppuVar6 + -0xc) = (int)var_27 + -0xf00a7;
  *(type_4 ***)((int)ppuVar6 + -0x10) = &var_14;
                    /* try { // try from 002266f0 to 002266f4 has its CatchHandler @ 002268b5 */
  *(type_8 *)((int)ppuVar6 + -0x14) = 0x2266f5;
  std::string::var_13
            (*(type_2 **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),
             *(type_4 *)((int)ppuVar6 + -8));
  local_88 = var_11;
  local_8c = var_14;
  var_16 = 0xf;
  if (var_14 != var_15) {
    var_16 = local_5c[0];
  }
  if (var_16 < (type_4)(var_11 + var_17)) {
    var_20 = 0xf;
    if (var_18 != var_19) {
      var_20 = local_44[0];
    }
    if (var_20 < (type_4)(var_11 + var_17)) goto LAB_0022673a;
    *(int *)((int)ppuVar6 + -0x10) = var_11;
    *(type_4 **)((int)ppuVar6 + -0x14) = var_14;
    *(type_8 *)((int)ppuVar6 + -0x18) = 0;
    *(type_8 *)((int)ppuVar6 + -0x1c) = 0;
    *(type_2 **)((int)ppuVar6 + -0x20) = local_80;
                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */
    *(type_8 *)((int)ppuVar6 + -0x24) = 0x22681e;
    var_21 = (int *)std::string::var_4
                              (*(type_2 **)((int)ppuVar6 + -0x20),*(type_4 *)((int)ppuVar6 + -0x1c),
                               *(type_4 *)((int)ppuVar6 + -0x18),*(char **)((int)ppuVar6 + -0x14),
                               *(type_4 *)((int)ppuVar6 + -0x10));
    var_23 = var_21 + 2;
    var_22 = (int *)*var_21;
    if (var_22 == var_23) goto LAB_00226834;
  }
  else {
LAB_0022673a:
    *(int *)((int)ppuVar6 + -8) = var_17;
    *(type_4 **)((int)ppuVar6 + -0xc) = var_18;
    *(type_4 ***)((int)ppuVar6 + -0x10) = &var_14;
                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */
    *(type_8 *)((int)ppuVar6 + -0x14) = 0x226748;
    var_21 = (int *)std::string::var_13
                              (*(type_2 **)((int)ppuVar6 + -0x10),*(char **)((int)ppuVar6 + -0xc),
                               *(type_4 *)((int)ppuVar6 + -8));
    var_23 = var_21 + 2;
    var_22 = (int *)*var_21;
    if (var_22 == var_23) {
LAB_00226834:
      var_22 = &local_2c;
      local_2c = var_21[2];
      local_28 = var_21[3];
      local_24 = var_21[4];
      local_20 = var_21[5];
      goto LAB_00226767;
    }
  }
  local_2c = var_21[2];
LAB_00226767:
  local_30 = var_21[1];
  *(type_5 *)(var_21 + 2) = 0;
  *var_21 = (int)var_23;
  var_21[1] = 0;
  *(int ***)((int)ppuVar6 + -0xc) = &var_22;
  *(type_1 **)((int)ppuVar6 + -0x10) = var_26;
                    /* try { // try from 00226787 to 0022678b has its CatchHandler @ 002268a0 */
  *(type_8 *)((int)ppuVar6 + -0x14) = 0x22678c;
  runtime_error::var_24
            (*(var_24 **)((int)ppuVar6 + -0x10),*(type_2 **)((int)ppuVar6 + -0xc));
  if (var_22 != &local_2c) {
    *(int **)((int)ppuVar6 + -0x10) = var_22;
    *(type_8 *)((int)ppuVar6 + -0x14) = 0x2267a2;
    var_25(*(void **)((int)ppuVar6 + -0x10));
  }
  if (var_14 != var_15) {
    *(type_4 **)((int)ppuVar6 + -0x10) = var_14;
    *(type_8 *)((int)ppuVar6 + -0x14) = 0x2267b9;
    var_25(*(void **)((int)ppuVar6 + -0x10));
  }
  if (var_18 != var_19) {
    *(type_4 **)((int)ppuVar6 + -0x10) = var_18;
    *(type_8 *)((int)ppuVar6 + -0x14) = 0x2267d0;
    var_25(*(void **)((int)ppuVar6 + -0x10));
  }
  *(int **)(var_26 + 0xc) = piVar1;
  *(int *)(var_26 + 8) = var_3;
  *(type_6 ***)var_26 = var_27 + -0x79a;
  return;
}


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

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

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

{
  int *piVar1;
  int iVar2;
  char *pcVar3;
  uint uVar4;
  int *piVar5;
  int *piVar6;
  uint **ppuVar7;
  undefined4 uVar8;
  undefined1 auStack_90 [4];
  uint *local_8c;
  int local_88;
  uint local_84;
  uint **local_80;
  int local_7c;
  uint *local_78;
  uint *local_74;
  undefined **local_70;
  uint *local_64;
  int local_60;
  uint local_5c [4];
  uint *local_4c;
  int local_48;
  uint local_44 [4];
  int *local_34;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  local_70 = &__DT_PLTGOT;
  piVar1 = (int *)param_3[1];
  local_7c = *param_3;
  if (*(code **)(*piVar1 + 0x10) == FUN_002262f0) {
    local_80 = &local_4c;
    local_48 = 0;
    local_78 = local_44;
    local_44[0] = local_44[0] & 0xffffff00;
    if (local_7c == 1) {
      pcVar3 = "iostream error";
      uVar8 = 0xe;
    }
    else {
      uVar8 = 0xd;
      pcVar3 = "Unknown error";
    }
    local_4c = local_78;
                    /* try { // try from 0022669e to 002266a2 has its CatchHandler @ 002268ae */
    FUN_001ef9f0(local_80,0,0,pcVar3,uVar8);
    ppuVar7 = &local_8c;
  }
  else {
    local_80 = &local_4c;
    (**(code **)(*piVar1 + 0x10))(local_80,piVar1,local_7c);
    local_78 = local_44;
    ppuVar7 = (uint **)auStack_90;
  }
  local_74 = local_5c;
  iVar2 = *param_2;
  *(undefined4 *)((int)ppuVar7 + -4) = 0;
  *(int *)((int)ppuVar7 + -8) = param_2[1] + iVar2;
  *(int *)((int)ppuVar7 + -0xc) = iVar2;
  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;
                    /* try { // try from 002266c7 to 002266cb has its CatchHandler @ 002268bc */
  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266cc;
  local_64 = local_74;
  FUN_000513a0();
  if (0x7fffffffU - local_60 < 2) {
    *(int *)((int)ppuVar7 + -0x10) = (int)local_70 + -0x10841e;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0022689b to 0022689f has its CatchHandler @ 002268b5 */
    *(undefined1 **)((int)ppuVar7 + -0x14) = &LAB_002268a0;
    FUN_0022c7a0();
  }
  *(undefined4 *)((int)ppuVar7 + -8) = 2;
  *(int *)((int)ppuVar7 + -0xc) = (int)local_70 + -0xf00a7;
  *(uint ***)((int)ppuVar7 + -0x10) = &local_64;
                    /* try { // try from 002266f0 to 002266f4 has its CatchHandler @ 002268b5 */
  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2266f5;
  FUN_001f05c0();
  local_88 = local_60;
  local_8c = local_64;
  local_84 = 0xf;
  if (local_64 != local_74) {
    local_84 = local_5c[0];
  }
  if (local_84 < (uint)(local_60 + local_48)) {
    uVar4 = 0xf;
    if (local_4c != local_78) {
      uVar4 = local_44[0];
    }
    if (uVar4 < (uint)(local_60 + local_48)) goto LAB_0022673a;
    *(int *)((int)ppuVar7 + -0x10) = local_60;
    *(uint **)((int)ppuVar7 + -0x14) = local_64;
    *(undefined4 *)((int)ppuVar7 + -0x18) = 0;
    *(undefined4 *)((int)ppuVar7 + -0x1c) = 0;
    *(uint ***)((int)ppuVar7 + -0x20) = local_80;
                    /* try { // try from 00226819 to 0022681d has its CatchHandler @ 002268a7 */
    *(undefined4 *)((int)ppuVar7 + -0x24) = 0x22681e;
    piVar5 = (int *)FUN_001ef9f0();
    piVar6 = piVar5 + 2;
    local_34 = (int *)*piVar5;
    if (local_34 == piVar6) goto LAB_00226834;
  }
  else {
LAB_0022673a:
    *(int *)((int)ppuVar7 + -8) = local_48;
    *(uint **)((int)ppuVar7 + -0xc) = local_4c;
    *(uint ***)((int)ppuVar7 + -0x10) = &local_64;
                    /* try { // try from 00226743 to 00226747 has its CatchHandler @ 002268a7 */
    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x226748;
    piVar5 = (int *)FUN_001f05c0();
    piVar6 = piVar5 + 2;
    local_34 = (int *)*piVar5;
    if (local_34 == piVar6) {
LAB_00226834:
      local_34 = &local_2c;
      local_2c = piVar5[2];
      local_28 = piVar5[3];
      local_24 = piVar5[4];
      local_20 = piVar5[5];
      goto LAB_00226767;
    }
  }
  local_2c = piVar5[2];
LAB_00226767:
  local_30 = piVar5[1];
  *(undefined1 *)(piVar5 + 2) = 0;
  *piVar5 = (int)piVar6;
  piVar5[1] = 0;
  *(int ***)((int)ppuVar7 + -0xc) = &local_34;
  *(int **)((int)ppuVar7 + -0x10) = param_1;
                    /* try { // try from 00226787 to 0022678b has its CatchHandler @ 002268a0 */
  *(undefined4 *)((int)ppuVar7 + -0x14) = 0x22678c;
  FUN_0026c330();
  if (local_34 != &local_2c) {
    *(int **)((int)ppuVar7 + -0x10) = local_34;
    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267a2;
    FUN_001e6db0();
  }
  if (local_64 != local_74) {
    *(uint **)((int)ppuVar7 + -0x10) = local_64;
    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267b9;
    FUN_001e6db0();
  }
  if (local_4c != local_78) {
    *(uint **)((int)ppuVar7 + -0x10) = local_4c;
    *(undefined4 *)((int)ppuVar7 + -0x14) = 0x2267d0;
    FUN_001e6db0();
  }
  param_1[3] = (int)piVar1;
  param_1[2] = local_7c;
  *param_1 = (int)(local_70 + -0x79a);
  return;
}

