
/* std::messages<wchar_t>::do_get(int, int, int, std::wstring const&) const */

int std::messages<wchar_t>::do_get(int param_1,int param_2,int param_3,wstring *param_4)

{
  undefined1 *puVar1;
  Catalogs *this;
  int iVar2;
  codecvt *pcVar3;
  int iVar4;
  undefined4 uVar5;
  int *piVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int *piVar10;
  int iVar11;
  int iVar12;
  int *piVar13;
  undefined4 uVar14;
  int in_t9;
  int *in_stack_00000014;
  int aiStack_60 [4];
  int local_50 [4];
  int *local_40;
  undefined1 auStack_3c [4];
  undefined1 auStack_38 [8];
  undefined1 *local_30;
  
  local_50[0] = in_t9 + 0x134420;
  if ((-1 < param_3) && (*(int *)(*in_stack_00000014 + -0xc) != 0)) {
    this = (Catalogs *)get_catalogs();
    iVar2 = Catalogs::_M_get(this,param_3);
    if (iVar2 != 0) {
      local_30 = auStack_3c;
      pcVar3 = use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));
      local_50[2] = 0;
      local_50[3] = 0;
      iVar11 = *(int *)(*in_stack_00000014 + -0xc);
      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);
      iVar4 = iVar4 * iVar11;
      iVar8 = *in_stack_00000014;
      iVar9 = *(int *)pcVar3;
      iVar7 = *(int *)(iVar8 + -0xc);
      iVar11 = -(iVar4 + 8U & 0xfffffff8);
      iVar12 = (int)local_50 + iVar11;
      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;
      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;
      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;
      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;
      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);
      *(undefined1 *)local_40 = 0;
      uVar14 = *(undefined4 *)(iVar2 + 4);
      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));
      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);
      (**(code **)(local_50[0] + -0x3714))(uVar5);
      if (iVar12 != iVar2) {
        local_50[2] = 0;
        local_50[3] = 0;
        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);
        puVar1 = local_30;
        iVar8 = *(int *)pcVar3;
        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);
        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);
        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;
        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;
        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;
        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;
        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);
        if (local_40 == piVar10) {
          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;
        }
        else {
          iVar2 = (int)local_40 - (int)piVar10 >> 2;
          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);
          piVar13 = piVar6 + 3;
          if (iVar2 == 1) {
            piVar6[3] = *piVar10;
          }
          else {
            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);
          }
          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {
            *(int **)param_1 = piVar13;
          }
          else {
            piVar6[2] = 0;
            *piVar6 = iVar2;
            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;
            *(int **)param_1 = piVar13;
          }
        }
        return param_1;
      }
    }
  }
  (**(code **)(local_50[0] + -0x7f80))(param_1,in_stack_00000014);
  return param_1;
}



int * FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,
                  int *param_6)

{
  undefined1 *puVar1;
  Catalogs *this;
  int iVar2;
  codecvt *pcVar3;
  int iVar4;
  undefined4 uVar5;
  int *piVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int *piVar10;
  int iVar11;
  int iVar12;
  int *piVar13;
  undefined4 uVar14;
  int in_t9;
  int aiStack_60 [4];
  int local_50 [4];
  int *local_40;
  undefined1 auStack_3c [4];
  undefined1 auStack_38 [8];
  undefined1 *local_30;
  
  local_50[0] = in_t9 + 0x134420;
  if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {
    this = (Catalogs *)std::get_catalogs();
    iVar2 = std::Catalogs::_M_get(this,param_3);
    if (iVar2 != 0) {
      local_30 = auStack_3c;
      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));
      local_50[2] = 0;
      local_50[3] = 0;
      iVar11 = *(int *)(*param_6 + -0xc);
      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);
      iVar4 = iVar4 * iVar11;
      iVar8 = *param_6;
      iVar9 = *(int *)pcVar3;
      iVar7 = *(int *)(iVar8 + -0xc);
      iVar11 = -(iVar4 + 8U & 0xfffffff8);
      iVar12 = (int)local_50 + iVar11;
      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;
      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;
      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;
      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;
      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);
      *(undefined1 *)local_40 = 0;
      uVar14 = *(undefined4 *)(iVar2 + 4);
      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));
      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);
      (**(code **)(local_50[0] + -0x3714))(uVar5);
      if (iVar12 != iVar2) {
        local_50[2] = 0;
        local_50[3] = 0;
        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);
        puVar1 = local_30;
        iVar8 = *(int *)pcVar3;
        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);
        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);
        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;
        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;
        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;
        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;
        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);
        if (local_40 == piVar10) {
          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;
        }
        else {
          iVar2 = (int)local_40 - (int)piVar10 >> 2;
          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);
          piVar13 = piVar6 + 3;
          if (iVar2 == 1) {
            piVar6[3] = *piVar10;
          }
          else {
            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);
          }
          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {
            *param_1 = (int)piVar13;
          }
          else {
            piVar6[2] = 0;
            *piVar6 = iVar2;
            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;
            *param_1 = (int)piVar13;
          }
        }
        return param_1;
      }
    }
  }
  (**(code **)(local_50[0] + -0x7f80))(param_1,param_6);
  return param_1;
}


lui gp,0x13
addiu gp,gp,0x4420
addu gp,gp,t9
addiu sp,sp,-0x70
sw s8,0x68(sp)
or s8,sp,zero
sw s1,0x4c(sp)
sw s0,0x48(sp)
or s0,a0,zero
sw ra,0x6c(sp)
sw s7,0x64(sp)
sw s6,0x60(sp)
sw s5,0x5c(sp)
sw s4,0x58(sp)
sw s3,0x54(sp)
sw s2,0x50(sp)
sw gp,0x20(sp)
bltz a2,0x00394e7c
_lw s1,0x84(s8)
lw v0,0x0(s1)
lw v0,-0xc(v0)
bne v0,zero,0x00394ec4
_lw t9,-0x3ad8(gp)
lw t9,-0x7f80(gp)
or a1,s1,zero
jalr t9
_or a0,s0,zero
or sp,s8,zero
or v0,s0,zero
lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
or s6,a1,zero
bal 0x0038d89c
_sw a2,0x78(s8)
lw gp,0x20(s8)
or a0,v0,zero
lw a2,0x78(s8)
lw t9,-0x3acc(gp)
bal 0x0038d750
_or a1,a2,zero
lw gp,0x20(s8)
beq v0,zero,0x00394e7c
_or s3,v0,zero
lw t9,-0x3d8c(gp)
addiu a0,v0,0x8
addiu v0,s8,0x34
addiu s4,s8,0x30
sw v0,0x40(s8)
bal 0x0039d7dc
_addiu s5,s8,0x28
lw v1,0x0(s1)
or s7,v0,zero
sw zero,0x28(s8)
or a0,v0,zero
sw zero,0x2c(s8)
lw v0,0x0(v0)
lw t9,0x20(v0)
jalr t9
_lw s2,-0xc(v1)
or a1,s5,zero
mul v0,v0,s2
lw t1,0x0(s1)
lw t2,0x0(s7)
or a0,s7,zero
or a2,t1,zero
lw a3,-0xc(t1)
addiu v1,v0,0x8
sll a3,a3,0x2
srl v1,v1,0x3
sll v1,v1,0x3
subu sp,sp,v1
lw v1,0x40(s8)
addiu s2,sp,0x20
sw v1,0x10(sp)
addu v0,s2,v0
sw s4,0x1c(sp)
sw s2,0x14(sp)
sw v0,0x18(sp)
lw t9,0x8(t2)
jalr t9
_addu a3,t1,a3
lw v0,0x30(s8)
lw gp,0x20(s8)
sb zero,0x0(v0)
lw t9,-0x3714(gp)
lw a0,0x8(s6)
jalr t9
_lw s6,0x4(s3)
or a1,s2,zero
lw gp,0x20(s8)
or a0,s6,zero
lw t9,-0x35d0(gp)
jalr t9
_or s6,v0,zero
or a0,s6,zero
lw gp,0x20(s8)
lw t9,-0x3714(gp)
jalr t9
_or s6,v0,zero
beq s2,s6,0x00394e7c
_lw gp,0x20(s8)
lw t9,-0x36a4(gp)
or a0,s6,zero
sw zero,0x28(s8)
jalr t9
_sw zero,0x2c(s8)
or a2,s6,zero
addiu v1,v0,0x1
lw t0,0x0(s7)
addu a3,s6,v0
sll v0,v1,0x2
or a1,s5,zero
addiu v1,v0,0x7
addiu v0,v0,-0x4
srl v1,v1,0x3
sll v1,v1,0x3
subu sp,sp,v1
lw v1,0x40(s8)
addiu s1,sp,0x20
sw s4,0x1c(sp)
addu v0,s1,v0
sw s1,0x14(sp)
sw v1,0x10(sp)
sw v0,0x18(sp)
lw t9,0x10(t0)
jalr t9
_or a0,s7,zero
lw v0,0x30(s8)
beq v0,s1,0x003950f4
_lw gp,0x20(s8)
subu s3,v0,s1
lw t9,-0x3ac8(gp)
addiu a2,s8,0x38
sra s5,s3,0x2
or a1,zero,zero
jalr t9
_or a0,s5,zero
li v1,0x1
lw gp,0x20(s8)
or s4,v0,zero
beq s5,v1,0x00395104
_addiu s2,v0,0xc
lw t9,-0x35fc(gp)
or a2,s5,zero
or a1,s1,zero
jalr t9
_or a0,s2,zero
lw gp,0x20(s8)
lw v0,-0x7f04(gp)
bne s4,v0,0x003950e0
_addu v0,s4,s3
sw s2,0x0(s0)
or sp,s8,zero
or v0,s0,zero
lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
sw zero,0x8(s4)
sw s5,0x0(s4)
sw zero,0xc(v0)
b 0x003950a8
_sw s2,0x0(s0)
lw s2,-0x7f04(gp)
addiu s2,s2,0xc
b 0x003950a8
_sw s2,0x0(s0)
lw v0,0x0(s1)
b 0x00395098
_sw v0,0xc(s4)
(translation_unit "int * FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)\n\n{\n  undefined1 *puVar1;\n  Catalogs *this;\n  int iVar2;\n  codecvt *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  int in_t9;\n  int aiStack_60 [4];\n  int local_50 [4];\n  int *local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [8];\n  undefined1 *local_30;\n  \n  local_50[0] = in_t9 + 0x134420;\n  if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }\n  (**(code **)(local_50[0] + -0x7f80))(param_1,param_6);\n  return param_1;\n}\n\n" (function_definition "int * FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)\n\n{\n  undefined1 *puVar1;\n  Catalogs *this;\n  int iVar2;\n  codecvt *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  int in_t9;\n  int aiStack_60 [4];\n  int local_50 [4];\n  int *local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [8];\n  undefined1 *local_30;\n  \n  local_50[0] = in_t9 + 0x134420;\n  if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }\n  (**(code **)(local_50[0] + -0x7f80))(param_1,param_6);\n  return param_1;\n}" primitive_type (pointer_declarator "* FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)" * (function_declarator "FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)" identifier (parameter_list "(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) )))) (compound_statement "{\n  undefined1 *puVar1;\n  Catalogs *this;\n  int iVar2;\n  codecvt *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  int in_t9;\n  int aiStack_60 [4];\n  int local_50 [4];\n  int *local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [8];\n  undefined1 *local_30;\n  \n  local_50[0] = in_t9 + 0x134420;\n  if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }\n  (**(code **)(local_50[0] + -0x7f80))(param_1,param_6);\n  return param_1;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "Catalogs *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "codecvt *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "int aiStack_60 [4];" primitive_type (array_declarator "aiStack_60 [4]" identifier [ number_literal ]) ;) (declaration "int local_50 [4];" primitive_type (array_declarator "local_50 [4]" identifier [ number_literal ]) ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined1 auStack_3c [4];" type_identifier (array_declarator "auStack_3c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_38 [8];" type_identifier (array_declarator "auStack_38 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (expression_statement "local_50[0] = in_t9 + 0x134420;" (assignment_expression "local_50[0] = in_t9 + 0x134420" (subscript_expression "local_50[0]" identifier [ number_literal ]) = (binary_expression "in_t9 + 0x134420" identifier + number_literal)) ;) (if_statement "if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }" if (parenthesized_expression "((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0))" ( (binary_expression "(-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)" (parenthesized_expression "(-1 < param_3)" ( (binary_expression "-1 < param_3" number_literal < identifier) )) && (parenthesized_expression "(*(int *)(*param_6 + -0xc) != 0)" ( (binary_expression "*(int *)(*param_6 + -0xc) != 0" (pointer_expression "*(int *)(*param_6 + -0xc)" * (cast_expression "(int *)(*param_6 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + -0xc)" ( (binary_expression "*param_6 + -0xc" (pointer_expression "*param_6" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }" { (ERROR "this = (Catalogs *)std::" (assignment_expression "this = (Catalogs *)std" identifier = (cast_expression "(Catalogs *)std" ( (type_descriptor "Catalogs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "get_catalogs();" (call_expression "get_catalogs()" identifier (argument_list "()" ( ))) ;) (ERROR "iVar2 = std::" (assignment_expression "iVar2 = std" identifier = identifier) : :) (labeled_statement "Catalogs::_M_get(this,param_3);" statement_identifier : (ERROR ":" :) (expression_statement "_M_get(this,param_3);" (call_expression "_M_get(this,param_3)" identifier (argument_list "(this,param_3)" ( identifier , identifier ))) ;)) (if_statement "if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }" { (expression_statement "local_30 = auStack_3c;" (assignment_expression "local_30 = auStack_3c" identifier = identifier) ;) (expression_statement "pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));" (comma_expression "pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8))" (binary_expression "pcVar3 = std::use_facet<std::codecvt<wchar_t" (binary_expression "pcVar3 = std::use_facet<std" (assignment_expression "pcVar3 = std" identifier = identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::codecvt" : : identifier) < identifier) , (comma_expression "char,__mbstate_t>>((locale *)(iVar2 + 8))" identifier , (binary_expression "__mbstate_t>>((locale *)(iVar2 + 8))" identifier >> (parenthesized_expression "((locale *)(iVar2 + 8))" ( (cast_expression "(locale *)(iVar2 + 8)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))) ))))) ;) (expression_statement "local_50[2] = 0;" (assignment_expression "local_50[2] = 0" (subscript_expression "local_50[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_50[3] = 0;" (assignment_expression "local_50[3] = 0" (subscript_expression "local_50[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar11 = *(int *)(*param_6 + -0xc);" (assignment_expression "iVar11 = *(int *)(*param_6 + -0xc)" identifier = (pointer_expression "*(int *)(*param_6 + -0xc)" * (cast_expression "(int *)(*param_6 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + -0xc)" ( (binary_expression "*param_6 + -0xc" (pointer_expression "*param_6" * identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3)" identifier = (call_expression "(**(code **)(*(int *)pcVar3 + 0x20))(pcVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar3 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar3 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar3 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar3 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar3 + 0x20)" ( (binary_expression "*(int *)pcVar3 + 0x20" (pointer_expression "*(int *)pcVar3" * (cast_expression "(int *)pcVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "iVar4 = iVar4 * iVar11;" (assignment_expression "iVar4 = iVar4 * iVar11" identifier = (binary_expression "iVar4 * iVar11" identifier * identifier)) ;) (expression_statement "iVar8 = *param_6;" (assignment_expression "iVar8 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "iVar9 = *(int *)pcVar3;" (assignment_expression "iVar9 = *(int *)pcVar3" identifier = (pointer_expression "*(int *)pcVar3" * (cast_expression "(int *)pcVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = *(int *)(iVar8 + -0xc);" (assignment_expression "iVar7 = *(int *)(iVar8 + -0xc)" identifier = (pointer_expression "*(int *)(iVar8 + -0xc)" * (cast_expression "(int *)(iVar8 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0xc)" ( (binary_expression "iVar8 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = -(iVar4 + 8U & 0xfffffff8);" (assignment_expression "iVar11 = -(iVar4 + 8U & 0xfffffff8)" identifier = (unary_expression "-(iVar4 + 8U & 0xfffffff8)" - (parenthesized_expression "(iVar4 + 8U & 0xfffffff8)" ( (binary_expression "iVar4 + 8U & 0xfffffff8" (binary_expression "iVar4 + 8U" identifier + number_literal) & number_literal) )))) ;) (expression_statement "iVar12 = (int)local_50 + iVar11;" (assignment_expression "iVar12 = (int)local_50 + iVar11" identifier = (binary_expression "(int)local_50 + iVar11" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(undefined1 **)((int)aiStack_60 + iVar11) = local_30;" (assignment_expression "*(undefined1 **)((int)aiStack_60 + iVar11) = local_30" (pointer_expression "*(undefined1 **)((int)aiStack_60 + iVar11)" * (cast_expression "(undefined1 **)((int)aiStack_60 + iVar11)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar11)" ( (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;" (assignment_expression "*(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40" (pointer_expression "*(int ***)((int)aiStack_60 + iVar11 + 0xc)" * (cast_expression "(int ***)((int)aiStack_60 + iVar11 + 0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)aiStack_60 + iVar11 + 0xc)" ( (binary_expression "(int)aiStack_60 + iVar11 + 0xc" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "*(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;" (assignment_expression "*(int *)((int)aiStack_60 + iVar11 + 4) = iVar12" (pointer_expression "*(int *)((int)aiStack_60 + iVar11 + 4)" * (cast_expression "(int *)((int)aiStack_60 + iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar11 + 4)" ( (binary_expression "(int)aiStack_60 + iVar11 + 4" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;" (assignment_expression "*(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4" (pointer_expression "*(int *)((int)aiStack_60 + iVar11 + 8)" * (cast_expression "(int *)((int)aiStack_60 + iVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar11 + 8)" ( (binary_expression "(int)aiStack_60 + iVar11 + 8" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (binary_expression "iVar12 + iVar4" identifier + identifier)) ;) (expression_statement "(**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);" (call_expression "(**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4)" (parenthesized_expression "(**(code **)(iVar9 + 8))" ( (pointer_expression "**(code **)(iVar9 + 8)" * (pointer_expression "*(code **)(iVar9 + 8)" * (cast_expression "(code **)(iVar9 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) )) (argument_list "(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4)" ( identifier , (binary_expression "local_50 + 2" identifier + number_literal) , identifier , (binary_expression "iVar8 + iVar7 * 4" identifier + (binary_expression "iVar7 * 4" identifier * number_literal)) ))) ;) (expression_statement "*(undefined1 *)local_40 = 0;" (assignment_expression "*(undefined1 *)local_40 = 0" (pointer_expression "*(undefined1 *)local_40" * (cast_expression "(undefined1 *)local_40" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar2 + 4);" (assignment_expression "uVar14 = *(undefined4 *)(iVar2 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 4)" * (cast_expression "(undefined4 *)(iVar2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));" (assignment_expression "uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8))" identifier = (call_expression "(**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8))" (parenthesized_expression "(**(code **)(local_50[0] + -0x3714))" ( (pointer_expression "**(code **)(local_50[0] + -0x3714)" * (pointer_expression "*(code **)(local_50[0] + -0x3714)" * (cast_expression "(code **)(local_50[0] + -0x3714)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x3714)" ( (binary_expression "local_50[0] + -0x3714" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_2 + 8))" ( (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);" (assignment_expression "iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12)" identifier = (call_expression "(**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12)" (parenthesized_expression "(**(code **)(local_50[0] + -0x35d0))" ( (pointer_expression "**(code **)(local_50[0] + -0x35d0)" * (pointer_expression "*(code **)(local_50[0] + -0x35d0)" * (cast_expression "(code **)(local_50[0] + -0x35d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x35d0)" ( (binary_expression "local_50[0] + -0x35d0" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(uVar14,iVar12)" ( identifier , identifier )))) ;) (expression_statement "(**(code **)(local_50[0] + -0x3714))(uVar5);" (call_expression "(**(code **)(local_50[0] + -0x3714))(uVar5)" (parenthesized_expression "(**(code **)(local_50[0] + -0x3714))" ( (pointer_expression "**(code **)(local_50[0] + -0x3714)" * (pointer_expression "*(code **)(local_50[0] + -0x3714)" * (cast_expression "(code **)(local_50[0] + -0x3714)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x3714)" ( (binary_expression "local_50[0] + -0x3714" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }" if (parenthesized_expression "(iVar12 != iVar2)" ( (binary_expression "iVar12 != iVar2" identifier != identifier) )) (compound_statement "{\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }" { (expression_statement "local_50[2] = 0;" (assignment_expression "local_50[2] = 0" (subscript_expression "local_50[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_50[3] = 0;" (assignment_expression "local_50[3] = 0" (subscript_expression "local_50[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);" (assignment_expression "iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2)" identifier = (call_expression "(**(code **)(local_50[0] + -0x36a4))(iVar2)" (parenthesized_expression "(**(code **)(local_50[0] + -0x36a4))" ( (pointer_expression "**(code **)(local_50[0] + -0x36a4)" * (pointer_expression "*(code **)(local_50[0] + -0x36a4)" * (cast_expression "(code **)(local_50[0] + -0x36a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x36a4)" ( (binary_expression "local_50[0] + -0x36a4" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "puVar1 = local_30;" (assignment_expression "puVar1 = local_30" identifier = identifier) ;) (expression_statement "iVar8 = *(int *)pcVar3;" (assignment_expression "iVar8 = *(int *)pcVar3" identifier = (pointer_expression "*(int *)pcVar3" * (cast_expression "(int *)pcVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((iVar7 + 1) * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((iVar7 + 1) * 4 + 7U & 0xfffffff8)" ( (binary_expression "(iVar7 + 1) * 4 + 7U & 0xfffffff8" (binary_expression "(iVar7 + 1) * 4 + 7U" (binary_expression "(iVar7 + 1) * 4" (parenthesized_expression "(iVar7 + 1)" ( (binary_expression "iVar7 + 1" identifier + number_literal) )) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "piVar10 = (int *)((int)local_50 + iVar4 + iVar11);" (assignment_expression "piVar10 = (int *)((int)local_50 + iVar4 + iVar11)" identifier = (cast_expression "(int *)((int)local_50 + iVar4 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + iVar4 + iVar11)" ( (binary_expression "(int)local_50 + iVar4 + iVar11" (binary_expression "(int)local_50 + iVar4" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) ;) (expression_statement "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;" (assignment_expression "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40" (pointer_expression "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc)" * (cast_expression "(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 0xc)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 0xc" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) + number_literal) )))) = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;" (assignment_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10" (pointer_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar4 + iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 4)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 4" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;" (assignment_expression "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1" (pointer_expression "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11)" * (cast_expression "(undefined1 **)((int)aiStack_60 + iVar4 + iVar11)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;" (assignment_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7" (pointer_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8)" * (cast_expression "(int **)((int)aiStack_60 + iVar4 + iVar11 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 8)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 8" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) + number_literal) )))) = (binary_expression "piVar10 + iVar7" identifier + identifier)) ;) (expression_statement "(**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);" (call_expression "(**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7)" (parenthesized_expression "(**(code **)(iVar8 + 0x10))" ( (pointer_expression "**(code **)(iVar8 + 0x10)" * (pointer_expression "*(code **)(iVar8 + 0x10)" * (cast_expression "(code **)(iVar8 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) ))))) )) (argument_list "(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7)" ( identifier , (binary_expression "local_50 + 2" identifier + number_literal) , identifier , (binary_expression "iVar2 + iVar7" identifier + identifier) ))) ;) (if_statement "if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }" if (parenthesized_expression "(local_40 == piVar10)" ( (binary_expression "local_40 == piVar10" identifier == identifier) )) (compound_statement "{\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }" { (expression_statement "*param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;" (assignment_expression "*param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc" (pointer_expression "*param_1" * identifier) = (binary_expression "*(int *)(local_50[0] + -0x7f04) + 0xc" (pointer_expression "*(int *)(local_50[0] + -0x7f04)" * (cast_expression "(int *)(local_50[0] + -0x7f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50[0] + -0x7f04)" ( (binary_expression "local_50[0] + -0x7f04" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }" else (compound_statement "{\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }" { (expression_statement "iVar2 = (int)local_40 - (int)piVar10 >> 2;" (assignment_expression "iVar2 = (int)local_40 - (int)piVar10 >> 2" identifier = (binary_expression "(int)local_40 - (int)piVar10 >> 2" (binary_expression "(int)local_40 - (int)piVar10" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);" (assignment_expression "piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" identifier = (cast_expression "(int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" (parenthesized_expression "(**(code **)(local_50[0] + -0x3ac8))" ( (pointer_expression "**(code **)(local_50[0] + -0x3ac8)" * (pointer_expression "*(code **)(local_50[0] + -0x3ac8)" * (cast_expression "(code **)(local_50[0] + -0x3ac8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x3ac8)" ( (binary_expression "local_50[0] + -0x3ac8" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(iVar2,0,auStack_38)" ( identifier , number_literal , identifier ))))) ;) (expression_statement "piVar13 = piVar6 + 3;" (assignment_expression "piVar13 = piVar6 + 3" identifier = (binary_expression "piVar6 + 3" identifier + number_literal)) ;) (if_statement "if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n            piVar6[3] = *piVar10;\n          }" { (expression_statement "piVar6[3] = *piVar10;" (assignment_expression "piVar6[3] = *piVar10" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = (pointer_expression "*piVar10" * identifier)) ;) }) (else_clause "else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" else (compound_statement "{\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" { (expression_statement "(**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);" (call_expression "(**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2)" (parenthesized_expression "(**(code **)(local_50[0] + -0x35fc))" ( (pointer_expression "**(code **)(local_50[0] + -0x35fc)" * (pointer_expression "*(code **)(local_50[0] + -0x35fc)" * (cast_expression "(code **)(local_50[0] + -0x35fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x35fc)" ( (binary_expression "local_50[0] + -0x35fc" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar13,piVar10,iVar2)" ( identifier , identifier , identifier ))) ;) }))) (if_statement "if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }" if (parenthesized_expression "(piVar6 == *(int **)(local_50[0] + -0x7f04))" ( (binary_expression "piVar6 == *(int **)(local_50[0] + -0x7f04)" identifier == (pointer_expression "*(int **)(local_50[0] + -0x7f04)" * (cast_expression "(int **)(local_50[0] + -0x7f04)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7f04)" ( (binary_expression "local_50[0] + -0x7f04" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n            *param_1 = (int)piVar13;\n          }" { (expression_statement "*param_1 = (int)piVar13;" (assignment_expression "*param_1 = (int)piVar13" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }" else (compound_statement "{\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }" { (expression_statement "piVar6[2] = 0;" (assignment_expression "piVar6[2] = 0" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar6 = iVar2;" (assignment_expression "*piVar6 = iVar2" (pointer_expression "*piVar6" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;" (assignment_expression "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0" (pointer_expression "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" * (cast_expression "(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" ( (binary_expression "(int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc" (binary_expression "(int)piVar6 + ((int)local_40 - (int)piVar10)" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_40 - (int)piVar10)" ( (binary_expression "(int)local_40 - (int)piVar10" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + number_literal) )))) = number_literal) ;) (expression_statement "*param_1 = (int)piVar13;" (assignment_expression "*param_1 = (int)piVar13" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }))) (return_statement "return param_1;" return identifier ;) })) })) })) (expression_statement "(**(code **)(local_50[0] + -0x7f80))(param_1,param_6);" (call_expression "(**(code **)(local_50[0] + -0x7f80))(param_1,param_6)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7f80))" ( (pointer_expression "**(code **)(local_50[0] + -0x7f80)" * (pointer_expression "*(code **)(local_50[0] + -0x7f80)" * (cast_expression "(code **)(local_50[0] + -0x7f80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7f80)" ( (binary_expression "local_50[0] + -0x7f80" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,param_6)" ( identifier , identifier ))) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* std::messages<wchar_t>::do_get(int, int, int, std::wstring const&) const */\n\nint std::messages<wchar_t>::do_get(int param_1,int param_2,int param_3,wstring *param_4)\n\n{\n  undefined1 *puVar1;\n  Catalogs *this;\n  int iVar2;\n  codecvt *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  int in_t9;\n  int *in_stack_00000014;\n  int aiStack_60 [4];\n  int local_50 [4];\n  int *local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [8];\n  undefined1 *local_30;\n  \n  local_50[0] = in_t9 + 0x134420;\n  if ((-1 < param_3) && (*(int *)(*in_stack_00000014 + -0xc) != 0)) {\n    this = (Catalogs *)get_catalogs();\n    iVar2 = Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*in_stack_00000014 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *in_stack_00000014;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }\n  (**(code **)(local_50[0] + -0x7f80))(param_1,in_stack_00000014);\n  return param_1;\n}\n\n" comment (function_definition "int std::messages<wchar_t>::do_get(int param_1,int param_2,int param_3,wstring *param_4)\n\n{\n  undefined1 *puVar1;\n  Catalogs *this;\n  int iVar2;\n  codecvt *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  int in_t9;\n  int *in_stack_00000014;\n  int aiStack_60 [4];\n  int local_50 [4];\n  int *local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [8];\n  undefined1 *local_30;\n  \n  local_50[0] = in_t9 + 0x134420;\n  if ((-1 < param_3) && (*(int *)(*in_stack_00000014 + -0xc) != 0)) {\n    this = (Catalogs *)get_catalogs();\n    iVar2 = Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*in_stack_00000014 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *in_stack_00000014;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }\n  (**(code **)(local_50[0] + -0x7f80))(param_1,in_stack_00000014);\n  return param_1;\n}" primitive_type (ERROR "std::messages<wchar_t>::" identifier : : identifier < identifier > : :) (function_declarator "do_get(int param_1,int param_2,int param_3,wstring *param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,wstring *param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "wstring *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined1 *puVar1;\n  Catalogs *this;\n  int iVar2;\n  codecvt *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  int in_t9;\n  int *in_stack_00000014;\n  int aiStack_60 [4];\n  int local_50 [4];\n  int *local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [8];\n  undefined1 *local_30;\n  \n  local_50[0] = in_t9 + 0x134420;\n  if ((-1 < param_3) && (*(int *)(*in_stack_00000014 + -0xc) != 0)) {\n    this = (Catalogs *)get_catalogs();\n    iVar2 = Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*in_stack_00000014 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *in_stack_00000014;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }\n  (**(code **)(local_50[0] + -0x7f80))(param_1,in_stack_00000014);\n  return param_1;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "Catalogs *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "codecvt *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "int *in_stack_00000014;" primitive_type (pointer_declarator "*in_stack_00000014" * identifier) ;) (declaration "int aiStack_60 [4];" primitive_type (array_declarator "aiStack_60 [4]" identifier [ number_literal ]) ;) (declaration "int local_50 [4];" primitive_type (array_declarator "local_50 [4]" identifier [ number_literal ]) ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined1 auStack_3c [4];" type_identifier (array_declarator "auStack_3c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_38 [8];" type_identifier (array_declarator "auStack_38 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (expression_statement "local_50[0] = in_t9 + 0x134420;" (assignment_expression "local_50[0] = in_t9 + 0x134420" (subscript_expression "local_50[0]" identifier [ number_literal ]) = (binary_expression "in_t9 + 0x134420" identifier + number_literal)) ;) (if_statement "if ((-1 < param_3) && (*(int *)(*in_stack_00000014 + -0xc) != 0)) {\n    this = (Catalogs *)get_catalogs();\n    iVar2 = Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*in_stack_00000014 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *in_stack_00000014;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }" if (parenthesized_expression "((-1 < param_3) && (*(int *)(*in_stack_00000014 + -0xc) != 0))" ( (binary_expression "(-1 < param_3) && (*(int *)(*in_stack_00000014 + -0xc) != 0)" (parenthesized_expression "(-1 < param_3)" ( (binary_expression "-1 < param_3" number_literal < identifier) )) && (parenthesized_expression "(*(int *)(*in_stack_00000014 + -0xc) != 0)" ( (binary_expression "*(int *)(*in_stack_00000014 + -0xc) != 0" (pointer_expression "*(int *)(*in_stack_00000014 + -0xc)" * (cast_expression "(int *)(*in_stack_00000014 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*in_stack_00000014 + -0xc)" ( (binary_expression "*in_stack_00000014 + -0xc" (pointer_expression "*in_stack_00000014" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    this = (Catalogs *)get_catalogs();\n    iVar2 = Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*in_stack_00000014 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *in_stack_00000014;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }" { (expression_statement "this = (Catalogs *)get_catalogs();" (assignment_expression "this = (Catalogs *)get_catalogs()" identifier = (cast_expression "(Catalogs *)get_catalogs()" ( (type_descriptor "Catalogs *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_catalogs()" identifier (argument_list "()" ( ))))) ;) (ERROR "iVar2 = Catalogs::" (assignment_expression "iVar2 = Catalogs" identifier = identifier) : :) (expression_statement "_M_get(this,param_3);" (call_expression "_M_get(this,param_3)" identifier (argument_list "(this,param_3)" ( identifier , identifier ))) ;) (if_statement "if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*in_stack_00000014 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *in_stack_00000014;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }\n        return param_1;\n      }\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      local_30 = auStack_3c;\n      pcVar3 = use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*in_stack_00000014 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *in_stack_00000014;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }\n        return param_1;\n      }\n    }" { (expression_statement "local_30 = auStack_3c;" (assignment_expression "local_30 = auStack_3c" identifier = identifier) ;) (expression_statement "pcVar3 = use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));" (comma_expression "pcVar3 = use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8))" (binary_expression "pcVar3 = use_facet<std::codecvt<wchar_t" (assignment_expression "pcVar3 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::codecvt" : : identifier) < identifier) , (comma_expression "char,__mbstate_t>>((locale *)(iVar2 + 8))" identifier , (binary_expression "__mbstate_t>>((locale *)(iVar2 + 8))" identifier >> (parenthesized_expression "((locale *)(iVar2 + 8))" ( (cast_expression "(locale *)(iVar2 + 8)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))) ))))) ;) (expression_statement "local_50[2] = 0;" (assignment_expression "local_50[2] = 0" (subscript_expression "local_50[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_50[3] = 0;" (assignment_expression "local_50[3] = 0" (subscript_expression "local_50[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar11 = *(int *)(*in_stack_00000014 + -0xc);" (assignment_expression "iVar11 = *(int *)(*in_stack_00000014 + -0xc)" identifier = (pointer_expression "*(int *)(*in_stack_00000014 + -0xc)" * (cast_expression "(int *)(*in_stack_00000014 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*in_stack_00000014 + -0xc)" ( (binary_expression "*in_stack_00000014 + -0xc" (pointer_expression "*in_stack_00000014" * identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3)" identifier = (call_expression "(**(code **)(*(int *)pcVar3 + 0x20))(pcVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar3 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar3 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar3 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar3 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar3 + 0x20)" ( (binary_expression "*(int *)pcVar3 + 0x20" (pointer_expression "*(int *)pcVar3" * (cast_expression "(int *)pcVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "iVar4 = iVar4 * iVar11;" (assignment_expression "iVar4 = iVar4 * iVar11" identifier = (binary_expression "iVar4 * iVar11" identifier * identifier)) ;) (expression_statement "iVar8 = *in_stack_00000014;" (assignment_expression "iVar8 = *in_stack_00000014" identifier = (pointer_expression "*in_stack_00000014" * identifier)) ;) (expression_statement "iVar9 = *(int *)pcVar3;" (assignment_expression "iVar9 = *(int *)pcVar3" identifier = (pointer_expression "*(int *)pcVar3" * (cast_expression "(int *)pcVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = *(int *)(iVar8 + -0xc);" (assignment_expression "iVar7 = *(int *)(iVar8 + -0xc)" identifier = (pointer_expression "*(int *)(iVar8 + -0xc)" * (cast_expression "(int *)(iVar8 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0xc)" ( (binary_expression "iVar8 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = -(iVar4 + 8U & 0xfffffff8);" (assignment_expression "iVar11 = -(iVar4 + 8U & 0xfffffff8)" identifier = (unary_expression "-(iVar4 + 8U & 0xfffffff8)" - (parenthesized_expression "(iVar4 + 8U & 0xfffffff8)" ( (binary_expression "iVar4 + 8U & 0xfffffff8" (binary_expression "iVar4 + 8U" identifier + number_literal) & number_literal) )))) ;) (expression_statement "iVar12 = (int)local_50 + iVar11;" (assignment_expression "iVar12 = (int)local_50 + iVar11" identifier = (binary_expression "(int)local_50 + iVar11" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(undefined1 **)((int)aiStack_60 + iVar11) = local_30;" (assignment_expression "*(undefined1 **)((int)aiStack_60 + iVar11) = local_30" (pointer_expression "*(undefined1 **)((int)aiStack_60 + iVar11)" * (cast_expression "(undefined1 **)((int)aiStack_60 + iVar11)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar11)" ( (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;" (assignment_expression "*(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40" (pointer_expression "*(int ***)((int)aiStack_60 + iVar11 + 0xc)" * (cast_expression "(int ***)((int)aiStack_60 + iVar11 + 0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)aiStack_60 + iVar11 + 0xc)" ( (binary_expression "(int)aiStack_60 + iVar11 + 0xc" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "*(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;" (assignment_expression "*(int *)((int)aiStack_60 + iVar11 + 4) = iVar12" (pointer_expression "*(int *)((int)aiStack_60 + iVar11 + 4)" * (cast_expression "(int *)((int)aiStack_60 + iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar11 + 4)" ( (binary_expression "(int)aiStack_60 + iVar11 + 4" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;" (assignment_expression "*(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4" (pointer_expression "*(int *)((int)aiStack_60 + iVar11 + 8)" * (cast_expression "(int *)((int)aiStack_60 + iVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar11 + 8)" ( (binary_expression "(int)aiStack_60 + iVar11 + 8" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (binary_expression "iVar12 + iVar4" identifier + identifier)) ;) (expression_statement "(**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);" (call_expression "(**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4)" (parenthesized_expression "(**(code **)(iVar9 + 8))" ( (pointer_expression "**(code **)(iVar9 + 8)" * (pointer_expression "*(code **)(iVar9 + 8)" * (cast_expression "(code **)(iVar9 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) )) (argument_list "(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4)" ( identifier , (binary_expression "local_50 + 2" identifier + number_literal) , identifier , (binary_expression "iVar8 + iVar7 * 4" identifier + (binary_expression "iVar7 * 4" identifier * number_literal)) ))) ;) (expression_statement "*(undefined1 *)local_40 = 0;" (assignment_expression "*(undefined1 *)local_40 = 0" (pointer_expression "*(undefined1 *)local_40" * (cast_expression "(undefined1 *)local_40" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar2 + 4);" (assignment_expression "uVar14 = *(undefined4 *)(iVar2 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 4)" * (cast_expression "(undefined4 *)(iVar2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));" (assignment_expression "uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8))" identifier = (call_expression "(**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8))" (parenthesized_expression "(**(code **)(local_50[0] + -0x3714))" ( (pointer_expression "**(code **)(local_50[0] + -0x3714)" * (pointer_expression "*(code **)(local_50[0] + -0x3714)" * (cast_expression "(code **)(local_50[0] + -0x3714)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x3714)" ( (binary_expression "local_50[0] + -0x3714" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_2 + 8))" ( (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);" (assignment_expression "iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12)" identifier = (call_expression "(**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12)" (parenthesized_expression "(**(code **)(local_50[0] + -0x35d0))" ( (pointer_expression "**(code **)(local_50[0] + -0x35d0)" * (pointer_expression "*(code **)(local_50[0] + -0x35d0)" * (cast_expression "(code **)(local_50[0] + -0x35d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x35d0)" ( (binary_expression "local_50[0] + -0x35d0" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(uVar14,iVar12)" ( identifier , identifier )))) ;) (expression_statement "(**(code **)(local_50[0] + -0x3714))(uVar5);" (call_expression "(**(code **)(local_50[0] + -0x3714))(uVar5)" (parenthesized_expression "(**(code **)(local_50[0] + -0x3714))" ( (pointer_expression "**(code **)(local_50[0] + -0x3714)" * (pointer_expression "*(code **)(local_50[0] + -0x3714)" * (cast_expression "(code **)(local_50[0] + -0x3714)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x3714)" ( (binary_expression "local_50[0] + -0x3714" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }\n        return param_1;\n      }" if (parenthesized_expression "(iVar12 != iVar2)" ( (binary_expression "iVar12 != iVar2" identifier != identifier) )) (compound_statement "{\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }\n        return param_1;\n      }" { (expression_statement "local_50[2] = 0;" (assignment_expression "local_50[2] = 0" (subscript_expression "local_50[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_50[3] = 0;" (assignment_expression "local_50[3] = 0" (subscript_expression "local_50[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);" (assignment_expression "iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2)" identifier = (call_expression "(**(code **)(local_50[0] + -0x36a4))(iVar2)" (parenthesized_expression "(**(code **)(local_50[0] + -0x36a4))" ( (pointer_expression "**(code **)(local_50[0] + -0x36a4)" * (pointer_expression "*(code **)(local_50[0] + -0x36a4)" * (cast_expression "(code **)(local_50[0] + -0x36a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x36a4)" ( (binary_expression "local_50[0] + -0x36a4" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "puVar1 = local_30;" (assignment_expression "puVar1 = local_30" identifier = identifier) ;) (expression_statement "iVar8 = *(int *)pcVar3;" (assignment_expression "iVar8 = *(int *)pcVar3" identifier = (pointer_expression "*(int *)pcVar3" * (cast_expression "(int *)pcVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((iVar7 + 1) * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((iVar7 + 1) * 4 + 7U & 0xfffffff8)" ( (binary_expression "(iVar7 + 1) * 4 + 7U & 0xfffffff8" (binary_expression "(iVar7 + 1) * 4 + 7U" (binary_expression "(iVar7 + 1) * 4" (parenthesized_expression "(iVar7 + 1)" ( (binary_expression "iVar7 + 1" identifier + number_literal) )) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "piVar10 = (int *)((int)local_50 + iVar4 + iVar11);" (assignment_expression "piVar10 = (int *)((int)local_50 + iVar4 + iVar11)" identifier = (cast_expression "(int *)((int)local_50 + iVar4 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + iVar4 + iVar11)" ( (binary_expression "(int)local_50 + iVar4 + iVar11" (binary_expression "(int)local_50 + iVar4" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) ;) (expression_statement "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;" (assignment_expression "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40" (pointer_expression "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc)" * (cast_expression "(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 0xc)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 0xc" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) + number_literal) )))) = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;" (assignment_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10" (pointer_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar4 + iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 4)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 4" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;" (assignment_expression "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1" (pointer_expression "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11)" * (cast_expression "(undefined1 **)((int)aiStack_60 + iVar4 + iVar11)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;" (assignment_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7" (pointer_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8)" * (cast_expression "(int **)((int)aiStack_60 + iVar4 + iVar11 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 8)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 8" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) + number_literal) )))) = (binary_expression "piVar10 + iVar7" identifier + identifier)) ;) (expression_statement "(**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);" (call_expression "(**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7)" (parenthesized_expression "(**(code **)(iVar8 + 0x10))" ( (pointer_expression "**(code **)(iVar8 + 0x10)" * (pointer_expression "*(code **)(iVar8 + 0x10)" * (cast_expression "(code **)(iVar8 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) ))))) )) (argument_list "(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7)" ( identifier , (binary_expression "local_50 + 2" identifier + number_literal) , identifier , (binary_expression "iVar2 + iVar7" identifier + identifier) ))) ;) (if_statement "if (local_40 == piVar10) {\n          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }" if (parenthesized_expression "(local_40 == piVar10)" ( (binary_expression "local_40 == piVar10" identifier == identifier) )) (compound_statement "{\n          *(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }" { (expression_statement "*(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;" (assignment_expression "*(int *)param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(int *)(local_50[0] + -0x7f04) + 0xc" (pointer_expression "*(int *)(local_50[0] + -0x7f04)" * (cast_expression "(int *)(local_50[0] + -0x7f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50[0] + -0x7f04)" ( (binary_expression "local_50[0] + -0x7f04" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }" else (compound_statement "{\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }\n        }" { (expression_statement "iVar2 = (int)local_40 - (int)piVar10 >> 2;" (assignment_expression "iVar2 = (int)local_40 - (int)piVar10 >> 2" identifier = (binary_expression "(int)local_40 - (int)piVar10 >> 2" (binary_expression "(int)local_40 - (int)piVar10" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);" (assignment_expression "piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" identifier = (cast_expression "(int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" (parenthesized_expression "(**(code **)(local_50[0] + -0x3ac8))" ( (pointer_expression "**(code **)(local_50[0] + -0x3ac8)" * (pointer_expression "*(code **)(local_50[0] + -0x3ac8)" * (cast_expression "(code **)(local_50[0] + -0x3ac8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x3ac8)" ( (binary_expression "local_50[0] + -0x3ac8" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(iVar2,0,auStack_38)" ( identifier , number_literal , identifier ))))) ;) (expression_statement "piVar13 = piVar6 + 3;" (assignment_expression "piVar13 = piVar6 + 3" identifier = (binary_expression "piVar6 + 3" identifier + number_literal)) ;) (if_statement "if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n            piVar6[3] = *piVar10;\n          }" { (expression_statement "piVar6[3] = *piVar10;" (assignment_expression "piVar6[3] = *piVar10" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = (pointer_expression "*piVar10" * identifier)) ;) }) (else_clause "else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" else (compound_statement "{\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" { (expression_statement "(**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);" (call_expression "(**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2)" (parenthesized_expression "(**(code **)(local_50[0] + -0x35fc))" ( (pointer_expression "**(code **)(local_50[0] + -0x35fc)" * (pointer_expression "*(code **)(local_50[0] + -0x35fc)" * (cast_expression "(code **)(local_50[0] + -0x35fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x35fc)" ( (binary_expression "local_50[0] + -0x35fc" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar13,piVar10,iVar2)" ( identifier , identifier , identifier ))) ;) }))) (if_statement "if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *(int **)param_1 = piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }" if (parenthesized_expression "(piVar6 == *(int **)(local_50[0] + -0x7f04))" ( (binary_expression "piVar6 == *(int **)(local_50[0] + -0x7f04)" identifier == (pointer_expression "*(int **)(local_50[0] + -0x7f04)" * (cast_expression "(int **)(local_50[0] + -0x7f04)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7f04)" ( (binary_expression "local_50[0] + -0x7f04" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n            *(int **)param_1 = piVar13;\n          }" { (expression_statement "*(int **)param_1 = piVar13;" (assignment_expression "*(int **)param_1 = piVar13" (pointer_expression "*(int **)param_1" * (cast_expression "(int **)param_1" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) }) (else_clause "else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }" else (compound_statement "{\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *(int **)param_1 = piVar13;\n          }" { (expression_statement "piVar6[2] = 0;" (assignment_expression "piVar6[2] = 0" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar6 = iVar2;" (assignment_expression "*piVar6 = iVar2" (pointer_expression "*piVar6" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;" (assignment_expression "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0" (pointer_expression "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" * (cast_expression "(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" ( (binary_expression "(int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc" (binary_expression "(int)piVar6 + ((int)local_40 - (int)piVar10)" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_40 - (int)piVar10)" ( (binary_expression "(int)local_40 - (int)piVar10" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)param_1 = piVar13;" (assignment_expression "*(int **)param_1 = piVar13" (pointer_expression "*(int **)param_1" * (cast_expression "(int **)param_1" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) }))) }))) (return_statement "return param_1;" return identifier ;) })) })) })) (expression_statement "(**(code **)(local_50[0] + -0x7f80))(param_1,in_stack_00000014);" (call_expression "(**(code **)(local_50[0] + -0x7f80))(param_1,in_stack_00000014)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7f80))" ( (pointer_expression "**(code **)(local_50[0] + -0x7f80)" * (pointer_expression "*(code **)(local_50[0] + -0x7f80)" * (cast_expression "(code **)(local_50[0] + -0x7f80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7f80)" ( (binary_expression "local_50[0] + -0x7f80" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,in_stack_00000014)" ( identifier , identifier ))) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "int * FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)\n\n{\n  undefined1 *puVar1;\n  Catalogs *this;\n  int iVar2;\n  codecvt *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  int in_t9;\n  int aiStack_60 [4];\n  int local_50 [4];\n  int *local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [8];\n  undefined1 *local_30;\n  \n  local_50[0] = in_t9 + 0x134420;\n  if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }\n  (**(code **)(local_50[0] + -0x7f80))(param_1,param_6);\n  return param_1;\n}\n\n" (function_definition "int * FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)\n\n{\n  undefined1 *puVar1;\n  Catalogs *this;\n  int iVar2;\n  codecvt *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  int in_t9;\n  int aiStack_60 [4];\n  int local_50 [4];\n  int *local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [8];\n  undefined1 *local_30;\n  \n  local_50[0] = in_t9 + 0x134420;\n  if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }\n  (**(code **)(local_50[0] + -0x7f80))(param_1,param_6);\n  return param_1;\n}" primitive_type (pointer_declarator "* FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)" * (function_declarator "FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)" identifier (parameter_list "(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) )))) (compound_statement "{\n  undefined1 *puVar1;\n  Catalogs *this;\n  int iVar2;\n  codecvt *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  int in_t9;\n  int aiStack_60 [4];\n  int local_50 [4];\n  int *local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [8];\n  undefined1 *local_30;\n  \n  local_50[0] = in_t9 + 0x134420;\n  if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }\n  (**(code **)(local_50[0] + -0x7f80))(param_1,param_6);\n  return param_1;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "Catalogs *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "codecvt *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "int aiStack_60 [4];" primitive_type (array_declarator "aiStack_60 [4]" identifier [ number_literal ]) ;) (declaration "int local_50 [4];" primitive_type (array_declarator "local_50 [4]" identifier [ number_literal ]) ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined1 auStack_3c [4];" type_identifier (array_declarator "auStack_3c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_38 [8];" type_identifier (array_declarator "auStack_38 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (expression_statement "local_50[0] = in_t9 + 0x134420;" (assignment_expression "local_50[0] = in_t9 + 0x134420" (subscript_expression "local_50[0]" identifier [ number_literal ]) = (binary_expression "in_t9 + 0x134420" identifier + number_literal)) ;) (if_statement "if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }" if (parenthesized_expression "((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0))" ( (binary_expression "(-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)" (parenthesized_expression "(-1 < param_3)" ( (binary_expression "-1 < param_3" number_literal < identifier) )) && (parenthesized_expression "(*(int *)(*param_6 + -0xc) != 0)" ( (binary_expression "*(int *)(*param_6 + -0xc) != 0" (pointer_expression "*(int *)(*param_6 + -0xc)" * (cast_expression "(int *)(*param_6 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + -0xc)" ( (binary_expression "*param_6 + -0xc" (pointer_expression "*param_6" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }" { (ERROR "this = (Catalogs *)std::" (assignment_expression "this = (Catalogs *)std" identifier = (cast_expression "(Catalogs *)std" ( (type_descriptor "Catalogs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "get_catalogs();" (call_expression "get_catalogs()" identifier (argument_list "()" ( ))) ;) (ERROR "iVar2 = std::" (assignment_expression "iVar2 = std" identifier = identifier) : :) (labeled_statement "Catalogs::_M_get(this,param_3);" statement_identifier : (ERROR ":" :) (expression_statement "_M_get(this,param_3);" (call_expression "_M_get(this,param_3)" identifier (argument_list "(this,param_3)" ( identifier , identifier ))) ;)) (if_statement "if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }" { (expression_statement "local_30 = auStack_3c;" (assignment_expression "local_30 = auStack_3c" identifier = identifier) ;) (expression_statement "pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));" (comma_expression "pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8))" (binary_expression "pcVar3 = std::use_facet<std::codecvt<wchar_t" (binary_expression "pcVar3 = std::use_facet<std" (assignment_expression "pcVar3 = std" identifier = identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::codecvt" : : identifier) < identifier) , (comma_expression "char,__mbstate_t>>((locale *)(iVar2 + 8))" identifier , (binary_expression "__mbstate_t>>((locale *)(iVar2 + 8))" identifier >> (parenthesized_expression "((locale *)(iVar2 + 8))" ( (cast_expression "(locale *)(iVar2 + 8)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))) ))))) ;) (expression_statement "local_50[2] = 0;" (assignment_expression "local_50[2] = 0" (subscript_expression "local_50[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_50[3] = 0;" (assignment_expression "local_50[3] = 0" (subscript_expression "local_50[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar11 = *(int *)(*param_6 + -0xc);" (assignment_expression "iVar11 = *(int *)(*param_6 + -0xc)" identifier = (pointer_expression "*(int *)(*param_6 + -0xc)" * (cast_expression "(int *)(*param_6 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + -0xc)" ( (binary_expression "*param_6 + -0xc" (pointer_expression "*param_6" * identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3)" identifier = (call_expression "(**(code **)(*(int *)pcVar3 + 0x20))(pcVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar3 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar3 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar3 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar3 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar3 + 0x20)" ( (binary_expression "*(int *)pcVar3 + 0x20" (pointer_expression "*(int *)pcVar3" * (cast_expression "(int *)pcVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "iVar4 = iVar4 * iVar11;" (assignment_expression "iVar4 = iVar4 * iVar11" identifier = (binary_expression "iVar4 * iVar11" identifier * identifier)) ;) (expression_statement "iVar8 = *param_6;" (assignment_expression "iVar8 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "iVar9 = *(int *)pcVar3;" (assignment_expression "iVar9 = *(int *)pcVar3" identifier = (pointer_expression "*(int *)pcVar3" * (cast_expression "(int *)pcVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = *(int *)(iVar8 + -0xc);" (assignment_expression "iVar7 = *(int *)(iVar8 + -0xc)" identifier = (pointer_expression "*(int *)(iVar8 + -0xc)" * (cast_expression "(int *)(iVar8 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0xc)" ( (binary_expression "iVar8 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = -(iVar4 + 8U & 0xfffffff8);" (assignment_expression "iVar11 = -(iVar4 + 8U & 0xfffffff8)" identifier = (unary_expression "-(iVar4 + 8U & 0xfffffff8)" - (parenthesized_expression "(iVar4 + 8U & 0xfffffff8)" ( (binary_expression "iVar4 + 8U & 0xfffffff8" (binary_expression "iVar4 + 8U" identifier + number_literal) & number_literal) )))) ;) (expression_statement "iVar12 = (int)local_50 + iVar11;" (assignment_expression "iVar12 = (int)local_50 + iVar11" identifier = (binary_expression "(int)local_50 + iVar11" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(undefined1 **)((int)aiStack_60 + iVar11) = local_30;" (assignment_expression "*(undefined1 **)((int)aiStack_60 + iVar11) = local_30" (pointer_expression "*(undefined1 **)((int)aiStack_60 + iVar11)" * (cast_expression "(undefined1 **)((int)aiStack_60 + iVar11)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar11)" ( (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;" (assignment_expression "*(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40" (pointer_expression "*(int ***)((int)aiStack_60 + iVar11 + 0xc)" * (cast_expression "(int ***)((int)aiStack_60 + iVar11 + 0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)aiStack_60 + iVar11 + 0xc)" ( (binary_expression "(int)aiStack_60 + iVar11 + 0xc" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "*(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;" (assignment_expression "*(int *)((int)aiStack_60 + iVar11 + 4) = iVar12" (pointer_expression "*(int *)((int)aiStack_60 + iVar11 + 4)" * (cast_expression "(int *)((int)aiStack_60 + iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar11 + 4)" ( (binary_expression "(int)aiStack_60 + iVar11 + 4" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;" (assignment_expression "*(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4" (pointer_expression "*(int *)((int)aiStack_60 + iVar11 + 8)" * (cast_expression "(int *)((int)aiStack_60 + iVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar11 + 8)" ( (binary_expression "(int)aiStack_60 + iVar11 + 8" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (binary_expression "iVar12 + iVar4" identifier + identifier)) ;) (expression_statement "(**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);" (call_expression "(**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4)" (parenthesized_expression "(**(code **)(iVar9 + 8))" ( (pointer_expression "**(code **)(iVar9 + 8)" * (pointer_expression "*(code **)(iVar9 + 8)" * (cast_expression "(code **)(iVar9 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) )) (argument_list "(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4)" ( identifier , (binary_expression "local_50 + 2" identifier + number_literal) , identifier , (binary_expression "iVar8 + iVar7 * 4" identifier + (binary_expression "iVar7 * 4" identifier * number_literal)) ))) ;) (expression_statement "*(undefined1 *)local_40 = 0;" (assignment_expression "*(undefined1 *)local_40 = 0" (pointer_expression "*(undefined1 *)local_40" * (cast_expression "(undefined1 *)local_40" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar2 + 4);" (assignment_expression "uVar14 = *(undefined4 *)(iVar2 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 4)" * (cast_expression "(undefined4 *)(iVar2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));" (assignment_expression "uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8))" identifier = (call_expression "(**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8))" (parenthesized_expression "(**(code **)(local_50[0] + -0x3714))" ( (pointer_expression "**(code **)(local_50[0] + -0x3714)" * (pointer_expression "*(code **)(local_50[0] + -0x3714)" * (cast_expression "(code **)(local_50[0] + -0x3714)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x3714)" ( (binary_expression "local_50[0] + -0x3714" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_2 + 8))" ( (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);" (assignment_expression "iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12)" identifier = (call_expression "(**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12)" (parenthesized_expression "(**(code **)(local_50[0] + -0x35d0))" ( (pointer_expression "**(code **)(local_50[0] + -0x35d0)" * (pointer_expression "*(code **)(local_50[0] + -0x35d0)" * (cast_expression "(code **)(local_50[0] + -0x35d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x35d0)" ( (binary_expression "local_50[0] + -0x35d0" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(uVar14,iVar12)" ( identifier , identifier )))) ;) (expression_statement "(**(code **)(local_50[0] + -0x3714))(uVar5);" (call_expression "(**(code **)(local_50[0] + -0x3714))(uVar5)" (parenthesized_expression "(**(code **)(local_50[0] + -0x3714))" ( (pointer_expression "**(code **)(local_50[0] + -0x3714)" * (pointer_expression "*(code **)(local_50[0] + -0x3714)" * (cast_expression "(code **)(local_50[0] + -0x3714)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x3714)" ( (binary_expression "local_50[0] + -0x3714" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }" if (parenthesized_expression "(iVar12 != iVar2)" ( (binary_expression "iVar12 != iVar2" identifier != identifier) )) (compound_statement "{\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }" { (expression_statement "local_50[2] = 0;" (assignment_expression "local_50[2] = 0" (subscript_expression "local_50[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_50[3] = 0;" (assignment_expression "local_50[3] = 0" (subscript_expression "local_50[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);" (assignment_expression "iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2)" identifier = (call_expression "(**(code **)(local_50[0] + -0x36a4))(iVar2)" (parenthesized_expression "(**(code **)(local_50[0] + -0x36a4))" ( (pointer_expression "**(code **)(local_50[0] + -0x36a4)" * (pointer_expression "*(code **)(local_50[0] + -0x36a4)" * (cast_expression "(code **)(local_50[0] + -0x36a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x36a4)" ( (binary_expression "local_50[0] + -0x36a4" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "puVar1 = local_30;" (assignment_expression "puVar1 = local_30" identifier = identifier) ;) (expression_statement "iVar8 = *(int *)pcVar3;" (assignment_expression "iVar8 = *(int *)pcVar3" identifier = (pointer_expression "*(int *)pcVar3" * (cast_expression "(int *)pcVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((iVar7 + 1) * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((iVar7 + 1) * 4 + 7U & 0xfffffff8)" ( (binary_expression "(iVar7 + 1) * 4 + 7U & 0xfffffff8" (binary_expression "(iVar7 + 1) * 4 + 7U" (binary_expression "(iVar7 + 1) * 4" (parenthesized_expression "(iVar7 + 1)" ( (binary_expression "iVar7 + 1" identifier + number_literal) )) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "piVar10 = (int *)((int)local_50 + iVar4 + iVar11);" (assignment_expression "piVar10 = (int *)((int)local_50 + iVar4 + iVar11)" identifier = (cast_expression "(int *)((int)local_50 + iVar4 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + iVar4 + iVar11)" ( (binary_expression "(int)local_50 + iVar4 + iVar11" (binary_expression "(int)local_50 + iVar4" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) ;) (expression_statement "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;" (assignment_expression "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40" (pointer_expression "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc)" * (cast_expression "(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 0xc)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 0xc" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) + number_literal) )))) = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;" (assignment_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10" (pointer_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar4 + iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 4)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 4" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;" (assignment_expression "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1" (pointer_expression "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11)" * (cast_expression "(undefined1 **)((int)aiStack_60 + iVar4 + iVar11)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;" (assignment_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7" (pointer_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8)" * (cast_expression "(int **)((int)aiStack_60 + iVar4 + iVar11 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 8)" ( (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 8" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) + number_literal) )))) = (binary_expression "piVar10 + iVar7" identifier + identifier)) ;) (expression_statement "(**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);" (call_expression "(**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7)" (parenthesized_expression "(**(code **)(iVar8 + 0x10))" ( (pointer_expression "**(code **)(iVar8 + 0x10)" * (pointer_expression "*(code **)(iVar8 + 0x10)" * (cast_expression "(code **)(iVar8 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) ))))) )) (argument_list "(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7)" ( identifier , (binary_expression "local_50 + 2" identifier + number_literal) , identifier , (binary_expression "iVar2 + iVar7" identifier + identifier) ))) ;) (if_statement "if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }" if (parenthesized_expression "(local_40 == piVar10)" ( (binary_expression "local_40 == piVar10" identifier == identifier) )) (compound_statement "{\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }" { (expression_statement "*param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;" (assignment_expression "*param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc" (pointer_expression "*param_1" * identifier) = (binary_expression "*(int *)(local_50[0] + -0x7f04) + 0xc" (pointer_expression "*(int *)(local_50[0] + -0x7f04)" * (cast_expression "(int *)(local_50[0] + -0x7f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50[0] + -0x7f04)" ( (binary_expression "local_50[0] + -0x7f04" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }" else (compound_statement "{\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }" { (expression_statement "iVar2 = (int)local_40 - (int)piVar10 >> 2;" (assignment_expression "iVar2 = (int)local_40 - (int)piVar10 >> 2" identifier = (binary_expression "(int)local_40 - (int)piVar10 >> 2" (binary_expression "(int)local_40 - (int)piVar10" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);" (assignment_expression "piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" identifier = (cast_expression "(int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" (parenthesized_expression "(**(code **)(local_50[0] + -0x3ac8))" ( (pointer_expression "**(code **)(local_50[0] + -0x3ac8)" * (pointer_expression "*(code **)(local_50[0] + -0x3ac8)" * (cast_expression "(code **)(local_50[0] + -0x3ac8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x3ac8)" ( (binary_expression "local_50[0] + -0x3ac8" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(iVar2,0,auStack_38)" ( identifier , number_literal , identifier ))))) ;) (expression_statement "piVar13 = piVar6 + 3;" (assignment_expression "piVar13 = piVar6 + 3" identifier = (binary_expression "piVar6 + 3" identifier + number_literal)) ;) (if_statement "if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n            piVar6[3] = *piVar10;\n          }" { (expression_statement "piVar6[3] = *piVar10;" (assignment_expression "piVar6[3] = *piVar10" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = (pointer_expression "*piVar10" * identifier)) ;) }) (else_clause "else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" else (compound_statement "{\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" { (expression_statement "(**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);" (call_expression "(**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2)" (parenthesized_expression "(**(code **)(local_50[0] + -0x35fc))" ( (pointer_expression "**(code **)(local_50[0] + -0x35fc)" * (pointer_expression "*(code **)(local_50[0] + -0x35fc)" * (cast_expression "(code **)(local_50[0] + -0x35fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x35fc)" ( (binary_expression "local_50[0] + -0x35fc" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar13,piVar10,iVar2)" ( identifier , identifier , identifier ))) ;) }))) (if_statement "if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }" if (parenthesized_expression "(piVar6 == *(int **)(local_50[0] + -0x7f04))" ( (binary_expression "piVar6 == *(int **)(local_50[0] + -0x7f04)" identifier == (pointer_expression "*(int **)(local_50[0] + -0x7f04)" * (cast_expression "(int **)(local_50[0] + -0x7f04)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7f04)" ( (binary_expression "local_50[0] + -0x7f04" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n            *param_1 = (int)piVar13;\n          }" { (expression_statement "*param_1 = (int)piVar13;" (assignment_expression "*param_1 = (int)piVar13" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }" else (compound_statement "{\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }" { (expression_statement "piVar6[2] = 0;" (assignment_expression "piVar6[2] = 0" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar6 = iVar2;" (assignment_expression "*piVar6 = iVar2" (pointer_expression "*piVar6" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;" (assignment_expression "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0" (pointer_expression "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" * (cast_expression "(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" ( (binary_expression "(int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc" (binary_expression "(int)piVar6 + ((int)local_40 - (int)piVar10)" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_40 - (int)piVar10)" ( (binary_expression "(int)local_40 - (int)piVar10" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + number_literal) )))) = number_literal) ;) (expression_statement "*param_1 = (int)piVar13;" (assignment_expression "*param_1 = (int)piVar13" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }))) (return_statement "return param_1;" return identifier ;) })) })) })) (expression_statement "(**(code **)(local_50[0] + -0x7f80))(param_1,param_6);" (call_expression "(**(code **)(local_50[0] + -0x7f80))(param_1,param_6)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7f80))" ( (pointer_expression "**(code **)(local_50[0] + -0x7f80)" * (pointer_expression "*(code **)(local_50[0] + -0x7f80)" * (cast_expression "(code **)(local_50[0] + -0x7f80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7f80)" ( (binary_expression "local_50[0] + -0x7f80" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,param_6)" ( identifier , identifier ))) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) ))) )) (compound_statement { (ERROR (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) : :) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (ERROR (assignment_expression IDENT = IDENT) : :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (comma_expression (binary_expression (binary_expression (assignment_expression IDENT = IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) < IDENT) , (comma_expression IDENT , (binary_expression IDENT >> (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = (binary_expression IDENT + 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 IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + (binary_expression IDENT * LIT)) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , 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 (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + 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 (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + IDENT) + LIT) )))) = (binary_expression IDENT + 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 IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (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 (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) }))) (return_statement return 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 (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (return_statement return IDENT ;) })))
(function_definition "int * FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)\n\n{\n  undefined1 *puVar1;\n  Catalogs *this;\n  int iVar2;\n  codecvt *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  int in_t9;\n  int aiStack_60 [4];\n  int local_50 [4];\n  int *local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [8];\n  undefined1 *local_30;\n  \n  local_50[0] = in_t9 + 0x134420;\n  if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }\n  (**(code **)(local_50[0] + -0x7f80))(param_1,param_6);\n  return param_1;\n}" (primitive_type "int") (pointer_declarator "* FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)" (* "*") (function_declarator "FUN_00394e20(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)" (identifier "FUN_00394e20") (parameter_list "(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                  int *param_6)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "int *param_6" (primitive_type "int") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")")))) (compound_statement "{\n  undefined1 *puVar1;\n  Catalogs *this;\n  int iVar2;\n  codecvt *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  int in_t9;\n  int aiStack_60 [4];\n  int local_50 [4];\n  int *local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [8];\n  undefined1 *local_30;\n  \n  local_50[0] = in_t9 + 0x134420;\n  if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }\n  (**(code **)(local_50[0] + -0x7f80))(param_1,param_6);\n  return param_1;\n}" ({ "{") (declaration "undefined1 *puVar1;" (type_identifier "undefined1") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "Catalogs *this;" (type_identifier "Catalogs") (pointer_declarator "*this" (* "*") (identifier "this")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "codecvt *pcVar3;" (type_identifier "codecvt") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "int in_t9;" (primitive_type "int") (identifier "in_t9") (; ";")) (declaration "int aiStack_60 [4];" (primitive_type "int") (array_declarator "aiStack_60 [4]" (identifier "aiStack_60") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_50 [4];" (primitive_type "int") (array_declarator "local_50 [4]" (identifier "local_50") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int *local_40;" (primitive_type "int") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "undefined1 auStack_3c [4];" (type_identifier "undefined1") (array_declarator "auStack_3c [4]" (identifier "auStack_3c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_38 [8];" (type_identifier "undefined1") (array_declarator "auStack_38 [8]" (identifier "auStack_38") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined1 *local_30;" (type_identifier "undefined1") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (expression_statement "local_50[0] = in_t9 + 0x134420;" (assignment_expression "local_50[0] = in_t9 + 0x134420" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "in_t9 + 0x134420" (identifier "in_t9") (+ "+") (number_literal "0x134420"))) (; ";")) (if_statement "if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0))" (( "(") (binary_expression "(-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)" (parenthesized_expression "(-1 < param_3)" (( "(") (binary_expression "-1 < param_3" (number_literal "-1") (< "<") (identifier "param_3")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*param_6 + -0xc) != 0)" (( "(") (binary_expression "*(int *)(*param_6 + -0xc) != 0" (pointer_expression "*(int *)(*param_6 + -0xc)" (* "*") (cast_expression "(int *)(*param_6 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_6 + -0xc)" (( "(") (binary_expression "*param_6 + -0xc" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (+ "+") (number_literal "-0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    this = (Catalogs *)std::get_catalogs();\n    iVar2 = std::Catalogs::_M_get(this,param_3);\n    if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }\n  }" ({ "{") (ERROR "this = (Catalogs *)std::" (assignment_expression "this = (Catalogs *)std" (identifier "this") (= "=") (cast_expression "(Catalogs *)std" (( "(") (type_descriptor "Catalogs *" (type_identifier "Catalogs") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "std"))) (: ":") (: ":")) (expression_statement "get_catalogs();" (call_expression "get_catalogs()" (identifier "get_catalogs") (argument_list "()" (( "(") () ")"))) (; ";")) (ERROR "iVar2 = std::" (assignment_expression "iVar2 = std" (identifier "iVar2") (= "=") (identifier "std")) (: ":") (: ":")) (labeled_statement "Catalogs::_M_get(this,param_3);" (statement_identifier "Catalogs") (: ":") (ERROR ":" (: ":")) (expression_statement "_M_get(this,param_3);" (call_expression "_M_get(this,param_3)" (identifier "_M_get") (argument_list "(this,param_3)" (( "(") (identifier "this") (, ",") (identifier "param_3") () ")"))) (; ";"))) (if_statement "if (iVar2 != 0) {\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_30 = auStack_3c;\n      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));\n      local_50[2] = 0;\n      local_50[3] = 0;\n      iVar11 = *(int *)(*param_6 + -0xc);\n      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);\n      iVar4 = iVar4 * iVar11;\n      iVar8 = *param_6;\n      iVar9 = *(int *)pcVar3;\n      iVar7 = *(int *)(iVar8 + -0xc);\n      iVar11 = -(iVar4 + 8U & 0xfffffff8);\n      iVar12 = (int)local_50 + iVar11;\n      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;\n      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;\n      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;\n      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;\n      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);\n      *(undefined1 *)local_40 = 0;\n      uVar14 = *(undefined4 *)(iVar2 + 4);\n      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));\n      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);\n      (**(code **)(local_50[0] + -0x3714))(uVar5);\n      if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }\n    }" ({ "{") (expression_statement "local_30 = auStack_3c;" (assignment_expression "local_30 = auStack_3c" (identifier "local_30") (= "=") (identifier "auStack_3c")) (; ";")) (expression_statement "pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));" (comma_expression "pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8))" (binary_expression "pcVar3 = std::use_facet<std::codecvt<wchar_t" (binary_expression "pcVar3 = std::use_facet<std" (assignment_expression "pcVar3 = std" (identifier "pcVar3") (= "=") (identifier "std")) (ERROR "::use_facet" (: ":") (: ":") (identifier "use_facet")) (< "<") (identifier "std")) (ERROR "::codecvt" (: ":") (: ":") (identifier "codecvt")) (< "<") (identifier "wchar_t")) (, ",") (comma_expression "char,__mbstate_t>>((locale *)(iVar2 + 8))" (identifier "char") (, ",") (binary_expression "__mbstate_t>>((locale *)(iVar2 + 8))" (identifier "__mbstate_t") (>> ">>") (parenthesized_expression "((locale *)(iVar2 + 8))" (( "(") (cast_expression "(locale *)(iVar2 + 8)" (( "(") (type_descriptor "locale *" (type_identifier "locale") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))) () ")"))))) (; ";")) (expression_statement "local_50[2] = 0;" (assignment_expression "local_50[2] = 0" (subscript_expression "local_50[2]" (identifier "local_50") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50[3] = 0;" (assignment_expression "local_50[3] = 0" (subscript_expression "local_50[3]" (identifier "local_50") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = *(int *)(*param_6 + -0xc);" (assignment_expression "iVar11 = *(int *)(*param_6 + -0xc)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(*param_6 + -0xc)" (* "*") (cast_expression "(int *)(*param_6 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_6 + -0xc)" (( "(") (binary_expression "*param_6 + -0xc" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (+ "+") (number_literal "-0xc")) () ")"))))) (; ";")) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*(int *)pcVar3 + 0x20))(pcVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar3 + 0x20))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar3 + 0x20)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar3 + 0x20)" (* "*") (cast_expression "(code **)(*(int *)pcVar3 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar3 + 0x20)" (( "(") (binary_expression "*(int *)pcVar3 + 0x20" (pointer_expression "*(int *)pcVar3" (* "*") (cast_expression "(int *)pcVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar3"))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")")))) (; ";")) (expression_statement "iVar4 = iVar4 * iVar11;" (assignment_expression "iVar4 = iVar4 * iVar11" (identifier "iVar4") (= "=") (binary_expression "iVar4 * iVar11" (identifier "iVar4") (* "*") (identifier "iVar11"))) (; ";")) (expression_statement "iVar8 = *param_6;" (assignment_expression "iVar8 = *param_6" (identifier "iVar8") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (expression_statement "iVar9 = *(int *)pcVar3;" (assignment_expression "iVar9 = *(int *)pcVar3" (identifier "iVar9") (= "=") (pointer_expression "*(int *)pcVar3" (* "*") (cast_expression "(int *)pcVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar3")))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar8 + -0xc);" (assignment_expression "iVar7 = *(int *)(iVar8 + -0xc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar8 + -0xc)" (* "*") (cast_expression "(int *)(iVar8 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0xc)" (( "(") (binary_expression "iVar8 + -0xc" (identifier "iVar8") (+ "+") (number_literal "-0xc")) () ")"))))) (; ";")) (expression_statement "iVar11 = -(iVar4 + 8U & 0xfffffff8);" (assignment_expression "iVar11 = -(iVar4 + 8U & 0xfffffff8)" (identifier "iVar11") (= "=") (unary_expression "-(iVar4 + 8U & 0xfffffff8)" (- "-") (parenthesized_expression "(iVar4 + 8U & 0xfffffff8)" (( "(") (binary_expression "iVar4 + 8U & 0xfffffff8" (binary_expression "iVar4 + 8U" (identifier "iVar4") (+ "+") (number_literal "8U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "iVar12 = (int)local_50 + iVar11;" (assignment_expression "iVar12 = (int)local_50 + iVar11" (identifier "iVar12") (= "=") (binary_expression "(int)local_50 + iVar11" (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")) (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "*(undefined1 **)((int)aiStack_60 + iVar11) = local_30;" (assignment_expression "*(undefined1 **)((int)aiStack_60 + iVar11) = local_30" (pointer_expression "*(undefined1 **)((int)aiStack_60 + iVar11)" (* "*") (cast_expression "(undefined1 **)((int)aiStack_60 + iVar11)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar11)" (( "(") (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar11")) () ")")))) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;" (assignment_expression "*(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40" (pointer_expression "*(int ***)((int)aiStack_60 + iVar11 + 0xc)" (* "*") (cast_expression "(int ***)((int)aiStack_60 + iVar11 + 0xc)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar11 + 0xc)" (( "(") (binary_expression "(int)aiStack_60 + iVar11 + 0xc" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar11")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";")) (expression_statement "*(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;" (assignment_expression "*(int *)((int)aiStack_60 + iVar11 + 4) = iVar12" (pointer_expression "*(int *)((int)aiStack_60 + iVar11 + 4)" (* "*") (cast_expression "(int *)((int)aiStack_60 + iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar11 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar11 + 4" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar11")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;" (assignment_expression "*(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4" (pointer_expression "*(int *)((int)aiStack_60 + iVar11 + 8)" (* "*") (cast_expression "(int *)((int)aiStack_60 + iVar11 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar11 + 8)" (( "(") (binary_expression "(int)aiStack_60 + iVar11 + 8" (binary_expression "(int)aiStack_60 + iVar11" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar11")) (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "iVar12 + iVar4" (identifier "iVar12") (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "(**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);" (call_expression "(**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4)" (parenthesized_expression "(**(code **)(iVar9 + 8))" (( "(") (pointer_expression "**(code **)(iVar9 + 8)" (* "*") (pointer_expression "*(code **)(iVar9 + 8)" (* "*") (cast_expression "(code **)(iVar9 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4)" (( "(") (identifier "pcVar3") (, ",") (binary_expression "local_50 + 2" (identifier "local_50") (+ "+") (number_literal "2")) (, ",") (identifier "iVar8") (, ",") (binary_expression "iVar8 + iVar7 * 4" (identifier "iVar8") (+ "+") (binary_expression "iVar7 * 4" (identifier "iVar7") (* "*") (number_literal "4"))) () ")"))) (; ";")) (expression_statement "*(undefined1 *)local_40 = 0;" (assignment_expression "*(undefined1 *)local_40 = 0" (pointer_expression "*(undefined1 *)local_40" (* "*") (cast_expression "(undefined1 *)local_40" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_40"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = *(undefined4 *)(iVar2 + 4);" (assignment_expression "uVar14 = *(undefined4 *)(iVar2 + 4)" (identifier "uVar14") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));" (assignment_expression "uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8))" (identifier "uVar5") (= "=") (call_expression "(**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8))" (parenthesized_expression "(**(code **)(local_50[0] + -0x3714))" (( "(") (pointer_expression "**(code **)(local_50[0] + -0x3714)" (* "*") (pointer_expression "*(code **)(local_50[0] + -0x3714)" (* "*") (cast_expression "(code **)(local_50[0] + -0x3714)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50[0] + -0x3714)" (( "(") (binary_expression "local_50[0] + -0x3714" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x3714")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(param_2 + 8))" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 8)" (* "*") (cast_expression "(undefined4 *)(param_2 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);" (assignment_expression "iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12)" (parenthesized_expression "(**(code **)(local_50[0] + -0x35d0))" (( "(") (pointer_expression "**(code **)(local_50[0] + -0x35d0)" (* "*") (pointer_expression "*(code **)(local_50[0] + -0x35d0)" (* "*") (cast_expression "(code **)(local_50[0] + -0x35d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50[0] + -0x35d0)" (( "(") (binary_expression "local_50[0] + -0x35d0" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x35d0")) () ")"))))) () ")")) (argument_list "(uVar14,iVar12)" (( "(") (identifier "uVar14") (, ",") (identifier "iVar12") () ")")))) (; ";")) (expression_statement "(**(code **)(local_50[0] + -0x3714))(uVar5);" (call_expression "(**(code **)(local_50[0] + -0x3714))(uVar5)" (parenthesized_expression "(**(code **)(local_50[0] + -0x3714))" (( "(") (pointer_expression "**(code **)(local_50[0] + -0x3714)" (* "*") (pointer_expression "*(code **)(local_50[0] + -0x3714)" (* "*") (cast_expression "(code **)(local_50[0] + -0x3714)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50[0] + -0x3714)" (( "(") (binary_expression "local_50[0] + -0x3714" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x3714")) () ")"))))) () ")")) (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (if_statement "if (iVar12 != iVar2) {\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }" (if "if") (parenthesized_expression "(iVar12 != iVar2)" (( "(") (binary_expression "iVar12 != iVar2" (identifier "iVar12") (!= "!=") (identifier "iVar2")) () ")")) (compound_statement "{\n        local_50[2] = 0;\n        local_50[3] = 0;\n        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);\n        puVar1 = local_30;\n        iVar8 = *(int *)pcVar3;\n        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);\n        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);\n        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;\n        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;\n        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;\n        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);\n        if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }\n        return param_1;\n      }" ({ "{") (expression_statement "local_50[2] = 0;" (assignment_expression "local_50[2] = 0" (subscript_expression "local_50[2]" (identifier "local_50") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50[3] = 0;" (assignment_expression "local_50[3] = 0" (subscript_expression "local_50[3]" (identifier "local_50") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);" (assignment_expression "iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(local_50[0] + -0x36a4))(iVar2)" (parenthesized_expression "(**(code **)(local_50[0] + -0x36a4))" (( "(") (pointer_expression "**(code **)(local_50[0] + -0x36a4)" (* "*") (pointer_expression "*(code **)(local_50[0] + -0x36a4)" (* "*") (cast_expression "(code **)(local_50[0] + -0x36a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50[0] + -0x36a4)" (( "(") (binary_expression "local_50[0] + -0x36a4" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x36a4")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "puVar1 = local_30;" (assignment_expression "puVar1 = local_30" (identifier "puVar1") (= "=") (identifier "local_30")) (; ";")) (expression_statement "iVar8 = *(int *)pcVar3;" (assignment_expression "iVar8 = *(int *)pcVar3" (identifier "iVar8") (= "=") (pointer_expression "*(int *)pcVar3" (* "*") (cast_expression "(int *)pcVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar3")))) (; ";")) (expression_statement "iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8)" (identifier "iVar4") (= "=") (unary_expression "-((iVar7 + 1) * 4 + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "((iVar7 + 1) * 4 + 7U & 0xfffffff8)" (( "(") (binary_expression "(iVar7 + 1) * 4 + 7U & 0xfffffff8" (binary_expression "(iVar7 + 1) * 4 + 7U" (binary_expression "(iVar7 + 1) * 4" (parenthesized_expression "(iVar7 + 1)" (( "(") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "piVar10 = (int *)((int)local_50 + iVar4 + iVar11);" (assignment_expression "piVar10 = (int *)((int)local_50 + iVar4 + iVar11)" (identifier "piVar10") (= "=") (cast_expression "(int *)((int)local_50 + iVar4 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_50 + iVar4 + iVar11)" (( "(") (binary_expression "(int)local_50 + iVar4 + iVar11" (binary_expression "(int)local_50 + iVar4" (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")) (+ "+") (identifier "iVar4")) (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (expression_statement "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;" (assignment_expression "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40" (pointer_expression "*(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc)" (* "*") (cast_expression "(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 0xc)" (( "(") (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 0xc" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar4")) (+ "+") (identifier "iVar11")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;" (assignment_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10" (pointer_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar4 + iVar11 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 4" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar4")) (+ "+") (identifier "iVar11")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;" (assignment_expression "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1" (pointer_expression "*(undefined1 **)((int)aiStack_60 + iVar4 + iVar11)" (* "*") (cast_expression "(undefined1 **)((int)aiStack_60 + iVar4 + iVar11)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11)" (( "(") (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar4")) (+ "+") (identifier "iVar11")) () ")")))) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;" (assignment_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7" (pointer_expression "*(int **)((int)aiStack_60 + iVar4 + iVar11 + 8)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar4 + iVar11 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar4 + iVar11 + 8)" (( "(") (binary_expression "(int)aiStack_60 + iVar4 + iVar11 + 8" (binary_expression "(int)aiStack_60 + iVar4 + iVar11" (binary_expression "(int)aiStack_60 + iVar4" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar4")) (+ "+") (identifier "iVar11")) (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "piVar10 + iVar7" (identifier "piVar10") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "(**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);" (call_expression "(**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7)" (parenthesized_expression "(**(code **)(iVar8 + 0x10))" (( "(") (pointer_expression "**(code **)(iVar8 + 0x10)" (* "*") (pointer_expression "*(code **)(iVar8 + 0x10)" (* "*") (cast_expression "(code **)(iVar8 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7)" (( "(") (identifier "pcVar3") (, ",") (binary_expression "local_50 + 2" (identifier "local_50") (+ "+") (number_literal "2")) (, ",") (identifier "iVar2") (, ",") (binary_expression "iVar2 + iVar7" (identifier "iVar2") (+ "+") (identifier "iVar7")) () ")"))) (; ";")) (if_statement "if (local_40 == piVar10) {\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }\n        else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }" (if "if") (parenthesized_expression "(local_40 == piVar10)" (( "(") (binary_expression "local_40 == piVar10" (identifier "local_40") (== "==") (identifier "piVar10")) () ")")) (compound_statement "{\n          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;\n        }" ({ "{") (expression_statement "*param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;" (assignment_expression "*param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "*(int *)(local_50[0] + -0x7f04) + 0xc" (pointer_expression "*(int *)(local_50[0] + -0x7f04)" (* "*") (cast_expression "(int *)(local_50[0] + -0x7f04)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50[0] + -0x7f04)" (( "(") (binary_expression "local_50[0] + -0x7f04" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x7f04")) () ")")))) (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (else_clause "else {\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }" (else "else") (compound_statement "{\n          iVar2 = (int)local_40 - (int)piVar10 >> 2;\n          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);\n          piVar13 = piVar6 + 3;\n          if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }\n          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }\n        }" ({ "{") (expression_statement "iVar2 = (int)local_40 - (int)piVar10 >> 2;" (assignment_expression "iVar2 = (int)local_40 - (int)piVar10 >> 2" (identifier "iVar2") (= "=") (binary_expression "(int)local_40 - (int)piVar10 >> 2" (binary_expression "(int)local_40 - (int)piVar10" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (- "-") (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10"))) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);" (assignment_expression "piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" (identifier "piVar6") (= "=") (cast_expression "(int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38)" (parenthesized_expression "(**(code **)(local_50[0] + -0x3ac8))" (( "(") (pointer_expression "**(code **)(local_50[0] + -0x3ac8)" (* "*") (pointer_expression "*(code **)(local_50[0] + -0x3ac8)" (* "*") (cast_expression "(code **)(local_50[0] + -0x3ac8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50[0] + -0x3ac8)" (( "(") (binary_expression "local_50[0] + -0x3ac8" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x3ac8")) () ")"))))) () ")")) (argument_list "(iVar2,0,auStack_38)" (( "(") (identifier "iVar2") (, ",") (number_literal "0") (, ",") (identifier "auStack_38") () ")"))))) (; ";")) (expression_statement "piVar13 = piVar6 + 3;" (assignment_expression "piVar13 = piVar6 + 3" (identifier "piVar13") (= "=") (binary_expression "piVar6 + 3" (identifier "piVar6") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (iVar2 == 1) {\n            piVar6[3] = *piVar10;\n          }\n          else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" (if "if") (parenthesized_expression "(iVar2 == 1)" (( "(") (binary_expression "iVar2 == 1" (identifier "iVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            piVar6[3] = *piVar10;\n          }" ({ "{") (expression_statement "piVar6[3] = *piVar10;" (assignment_expression "piVar6[3] = *piVar10" (subscript_expression "piVar6[3]" (identifier "piVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (} "}")) (else_clause "else {\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" (else "else") (compound_statement "{\n            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);\n          }" ({ "{") (expression_statement "(**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);" (call_expression "(**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2)" (parenthesized_expression "(**(code **)(local_50[0] + -0x35fc))" (( "(") (pointer_expression "**(code **)(local_50[0] + -0x35fc)" (* "*") (pointer_expression "*(code **)(local_50[0] + -0x35fc)" (* "*") (cast_expression "(code **)(local_50[0] + -0x35fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50[0] + -0x35fc)" (( "(") (binary_expression "local_50[0] + -0x35fc" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x35fc")) () ")"))))) () ")")) (argument_list "(piVar13,piVar10,iVar2)" (( "(") (identifier "piVar13") (, ",") (identifier "piVar10") (, ",") (identifier "iVar2") () ")"))) (; ";")) (} "}")))) (if_statement "if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {\n            *param_1 = (int)piVar13;\n          }\n          else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }" (if "if") (parenthesized_expression "(piVar6 == *(int **)(local_50[0] + -0x7f04))" (( "(") (binary_expression "piVar6 == *(int **)(local_50[0] + -0x7f04)" (identifier "piVar6") (== "==") (pointer_expression "*(int **)(local_50[0] + -0x7f04)" (* "*") (cast_expression "(int **)(local_50[0] + -0x7f04)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50[0] + -0x7f04)" (( "(") (binary_expression "local_50[0] + -0x7f04" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x7f04")) () ")"))))) () ")")) (compound_statement "{\n            *param_1 = (int)piVar13;\n          }" ({ "{") (expression_statement "*param_1 = (int)piVar13;" (assignment_expression "*param_1 = (int)piVar13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))) (; ";")) (} "}")) (else_clause "else {\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }" (else "else") (compound_statement "{\n            piVar6[2] = 0;\n            *piVar6 = iVar2;\n            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;\n            *param_1 = (int)piVar13;\n          }" ({ "{") (expression_statement "piVar6[2] = 0;" (assignment_expression "piVar6[2] = 0" (subscript_expression "piVar6[2]" (identifier "piVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar6 = iVar2;" (assignment_expression "*piVar6 = iVar2" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;" (assignment_expression "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0" (pointer_expression "*(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc)" (( "(") (binary_expression "(int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc" (binary_expression "(int)piVar6 + ((int)local_40 - (int)piVar10)" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (parenthesized_expression "((int)local_40 - (int)piVar10)" (( "(") (binary_expression "(int)local_40 - (int)piVar10" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (- "-") (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10"))) () ")"))) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = (int)piVar13;" (assignment_expression "*param_1 = (int)piVar13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))) (; ";")) (} "}")))) (} "}")))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "(**(code **)(local_50[0] + -0x7f80))(param_1,param_6);" (call_expression "(**(code **)(local_50[0] + -0x7f80))(param_1,param_6)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7f80))" (( "(") (pointer_expression "**(code **)(local_50[0] + -0x7f80)" (* "*") (pointer_expression "*(code **)(local_50[0] + -0x7f80)" (* "*") (cast_expression "(code **)(local_50[0] + -0x7f80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50[0] + -0x7f80)" (( "(") (binary_expression "local_50[0] + -0x7f80" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x7f80")) () ")"))))) () ")")) (argument_list "(param_1,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_6") () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

/* std::messages<wchar_t>::do_get(int, int, int, std::wstring const&) const */

int var_7::messages<var_8>::function_1(int param_1,int var_17,int var_2,type_1 *param_4)

{
  type_2 *puVar1;
  type_3 *this;
  int var_5;
  type_4 *pcVar3;
  int var_10;
  type_5 uVar5;
  int *var_20;
  int var_16;
  int var_12;
  int var_14;
  int *var_18;
  int var_11;
  int var_13;
  int *piVar13;
  type_5 uVar14;
  int var_1;
  int *in_stack_00000014;
  int aiStack_60 [4];
  int var_15 [4];
  int *var_19;
  type_2 auStack_3c [4];
  type_2 auStack_38 [8];
  type_2 *local_30;
  
  var_15[0] = var_1 + 0x134420;
  if ((-1 < var_2) && (*(int *)(*in_stack_00000014 + -0xc) != 0)) {
    this = (type_3 *)var_3();
    var_5 = type_3::var_4(this,var_2);
    if (var_5 != 0) {
      local_30 = auStack_3c;
      pcVar3 = var_6<var_7::type_4<var_8,char,var_9>>((type_6 *)(var_5 + 8));
      var_15[2] = 0;
      var_15[3] = 0;
      var_11 = *(int *)(*in_stack_00000014 + -0xc);
      var_10 = (**(type_7 **)(*(int *)pcVar3 + 0x20))(pcVar3);
      var_10 = var_10 * var_11;
      var_12 = *in_stack_00000014;
      var_14 = *(int *)pcVar3;
      var_16 = *(int *)(var_12 + -0xc);
      var_11 = -(var_10 + 8U & 0xfffffff8);
      var_13 = (int)var_15 + var_11;
      *(type_2 **)((int)aiStack_60 + var_11) = local_30;
      *(int ***)((int)aiStack_60 + var_11 + 0xc) = &var_19;
      *(int *)((int)aiStack_60 + var_11 + 4) = var_13;
      *(int *)((int)aiStack_60 + var_11 + 8) = var_13 + var_10;
      (**(type_7 **)(var_14 + 8))(pcVar3,var_15 + 2,var_12,var_12 + var_16 * 4);
      *(type_2 *)var_19 = 0;
      uVar14 = *(type_5 *)(var_5 + 4);
      uVar5 = (**(type_7 **)(var_15[0] + -0x3714))(*(type_5 *)(var_17 + 8));
      var_5 = (**(type_7 **)(var_15[0] + -0x35d0))(uVar14,var_13);
      (**(type_7 **)(var_15[0] + -0x3714))(uVar5);
      if (var_13 != var_5) {
        var_15[2] = 0;
        var_15[3] = 0;
        var_16 = (**(type_7 **)(var_15[0] + -0x36a4))(var_5);
        puVar1 = local_30;
        var_12 = *(int *)pcVar3;
        var_10 = -((var_16 + 1) * 4 + 7U & 0xfffffff8);
        var_18 = (int *)((int)var_15 + var_10 + var_11);
        *(int ***)((int)aiStack_60 + var_10 + var_11 + 0xc) = &var_19;
        *(int **)((int)aiStack_60 + var_10 + var_11 + 4) = var_18;
        *(type_2 **)((int)aiStack_60 + var_10 + var_11) = puVar1;
        *(int **)((int)aiStack_60 + var_10 + var_11 + 8) = var_18 + var_16;
        (**(type_7 **)(var_12 + 0x10))(pcVar3,var_15 + 2,var_5,var_5 + var_16);
        if (var_19 == var_18) {
          *(int *)param_1 = *(int *)(var_15[0] + -0x7f04) + 0xc;
        }
        else {
          var_5 = (int)var_19 - (int)var_18 >> 2;
          var_20 = (int *)(**(type_7 **)(var_15[0] + -0x3ac8))(var_5,0,auStack_38);
          piVar13 = var_20 + 3;
          if (var_5 == 1) {
            var_20[3] = *var_18;
          }
          else {
            (**(type_7 **)(var_15[0] + -0x35fc))(piVar13,var_18,var_5);
          }
          if (var_20 == *(int **)(var_15[0] + -0x7f04)) {
            *(int **)param_1 = piVar13;
          }
          else {
            var_20[2] = 0;
            *var_20 = var_5;
            *(type_5 *)((int)var_20 + ((int)var_19 - (int)var_18) + 0xc) = 0;
            *(int **)param_1 = piVar13;
          }
        }
        return param_1;
      }
    }
  }
  (**(type_7 **)(var_15[0] + -0x7f80))(param_1,in_stack_00000014);
  return param_1;
}


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

int * MASKED(int *param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5,
                  int *param_6)

{
  undefined1 *puVar1;
  Catalogs *this;
  int iVar2;
  codecvt *pcVar3;
  int iVar4;
  undefined4 uVar5;
  int *piVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int *piVar10;
  int iVar11;
  int iVar12;
  int *piVar13;
  undefined4 uVar14;
  int in_t9;
  int aiStack_60 [4];
  int local_50 [4];
  int *local_40;
  undefined1 auStack_3c [4];
  undefined1 auStack_38 [8];
  undefined1 *local_30;
  
  local_50[0] = in_t9 + 0x134420;
  if ((-1 < param_3) && (*(int *)(*param_6 + -0xc) != 0)) {
    this = (Catalogs *)std::get_catalogs();
    iVar2 = std::Catalogs::_M_get(this,param_3);
    if (iVar2 != 0) {
      local_30 = auStack_3c;
      pcVar3 = std::use_facet<std::codecvt<wchar_t,char,__mbstate_t>>((locale *)(iVar2 + 8));
      local_50[2] = 0;
      local_50[3] = 0;
      iVar11 = *(int *)(*param_6 + -0xc);
      iVar4 = (**(code **)(*(int *)pcVar3 + 0x20))(pcVar3);
      iVar4 = iVar4 * iVar11;
      iVar8 = *param_6;
      iVar9 = *(int *)pcVar3;
      iVar7 = *(int *)(iVar8 + -0xc);
      iVar11 = -(iVar4 + 8U & 0xfffffff8);
      iVar12 = (int)local_50 + iVar11;
      *(undefined1 **)((int)aiStack_60 + iVar11) = local_30;
      *(int ***)((int)aiStack_60 + iVar11 + 0xc) = &local_40;
      *(int *)((int)aiStack_60 + iVar11 + 4) = iVar12;
      *(int *)((int)aiStack_60 + iVar11 + 8) = iVar12 + iVar4;
      (**(code **)(iVar9 + 8))(pcVar3,local_50 + 2,iVar8,iVar8 + iVar7 * 4);
      *(undefined1 *)local_40 = 0;
      uVar14 = *(undefined4 *)(iVar2 + 4);
      uVar5 = (**(code **)(local_50[0] + -0x3714))(*(undefined4 *)(param_2 + 8));
      iVar2 = (**(code **)(local_50[0] + -0x35d0))(uVar14,iVar12);
      (**(code **)(local_50[0] + -0x3714))(uVar5);
      if (iVar12 != iVar2) {
        local_50[2] = 0;
        local_50[3] = 0;
        iVar7 = (**(code **)(local_50[0] + -0x36a4))(iVar2);
        puVar1 = local_30;
        iVar8 = *(int *)pcVar3;
        iVar4 = -((iVar7 + 1) * 4 + 7U & 0xfffffff8);
        piVar10 = (int *)((int)local_50 + iVar4 + iVar11);
        *(int ***)((int)aiStack_60 + iVar4 + iVar11 + 0xc) = &local_40;
        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 4) = piVar10;
        *(undefined1 **)((int)aiStack_60 + iVar4 + iVar11) = puVar1;
        *(int **)((int)aiStack_60 + iVar4 + iVar11 + 8) = piVar10 + iVar7;
        (**(code **)(iVar8 + 0x10))(pcVar3,local_50 + 2,iVar2,iVar2 + iVar7);
        if (local_40 == piVar10) {
          *param_1 = *(int *)(local_50[0] + -0x7f04) + 0xc;
        }
        else {
          iVar2 = (int)local_40 - (int)piVar10 >> 2;
          piVar6 = (int *)(**(code **)(local_50[0] + -0x3ac8))(iVar2,0,auStack_38);
          piVar13 = piVar6 + 3;
          if (iVar2 == 1) {
            piVar6[3] = *piVar10;
          }
          else {
            (**(code **)(local_50[0] + -0x35fc))(piVar13,piVar10,iVar2);
          }
          if (piVar6 == *(int **)(local_50[0] + -0x7f04)) {
            *param_1 = (int)piVar13;
          }
          else {
            piVar6[2] = 0;
            *piVar6 = iVar2;
            *(undefined4 *)((int)piVar6 + ((int)local_40 - (int)piVar10) + 0xc) = 0;
            *param_1 = (int)piVar13;
          }
        }
        return param_1;
      }
    }
  }
  (**(code **)(local_50[0] + -0x7f80))(param_1,param_6);
  return param_1;
}

