
void openStatTable(Parse *pParse,int iDb,int iStatCur,char *zWhere,char *zWhereType)

{
  int iVar1;
  Parse *pPVar2;
  code *pcVar3;
  code *pcVar4;
  code *pcVar5;
  code *pcVar6;
  int iVar7;
  Parse *pParse_00;
  int *piVar8;
  Schema *pSVar9;
  HashElem *pHVar10;
  int *piVar11;
  int iVar12;
  int *piVar13;
  u8 *puVar14;
  int iVar15;
  Db *pDVar16;
  int iVar17;
  int *piVar18;
  int *piVar19;
  undefined *puVar20;
  sqlite3 *psVar21;
  int aRoot [3];
  u8 aCreateTbl [3];
  
  iVar1 = *(int *)PTR___stack_chk_guard_0018fecc;
  psVar21 = pParse->db;
  pParse_00 = pParse;
  iVar7 = iDb;
  pPVar2 = (Parse *)(*(code *)(PTR_LAB_0018fc24 + 0x5c1c))();
  puVar20 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;
  if (pPVar2 != (Parse *)0x0) {
    pDVar16 = psVar21->aDb + iDb;
    piVar11 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ee4);
    piVar18 = aRoot;
    puVar14 = aCreateTbl;
    piVar19 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ecc);
    pcVar3 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);
    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x54f4);
    pcVar5 = (code *)(PTR_LAB_0018fc24 + 0x5af8);
    pcVar6 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);
    piVar8 = piVar11;
    piVar13 = piVar18;
    do {
      iVar12 = *piVar8;
      iVar7 = (*pcVar3)(psVar21,iVar12,pDVar16->zDbSName);
      if (iVar7 == 0) {
        if (piVar8[1] != 0) {
          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,
                    pDVar16->zDbSName,iVar12,piVar8[1]);
          *piVar13 = pParse->regRoot;
          *puVar14 = '\x10';
        }
      }
      else {
        iVar7 = *(int *)(iVar7 + 0x1c);
        *piVar13 = iVar7;
        *puVar14 = '\0';
        (*pcVar4)(pParse,iDb,iVar7,1,iVar12);
        if (zWhere == (char *)0x0) {
          if (psVar21->xPreUpdateCallback ==
              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)
              0x0) {
            (*pcVar5)(pPVar2,0x89,iVar7,iDb);
          }
          else {
            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);
          }
        }
        else {
          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,
                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);
        }
      }
      piVar8 = piVar8 + 2;
      piVar13 = piVar13 + 1;
      puVar14 = puVar14 + 1;
    } while (piVar8 != piVar19);
    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x5dc4);
    pcVar5 = (code *)(PTR_LAB_0018fb58 + 0x615c);
    pcVar3 = (code *)(PTR_LAB_0018fc8c + -0x7c98);
    iVar12 = iStatCur;
    do {
      (*pcVar4)(pPVar2,0x6e,iVar12,*piVar18,iDb,3);
      (*pcVar5)(pPVar2,aCreateTbl[iVar12 - iStatCur]);
      iVar7 = *piVar11;
      pParse_00 = pPVar2;
      (*pcVar3)();
      piVar18 = piVar18 + 1;
      iVar12 = iVar12 + 1;
      piVar8 = piVar11 + 3;
      piVar11 = piVar11 + 2;
    } while (*piVar8 != 0);
  }
  if (iVar1 != *(int *)PTR___stack_chk_guard_0018fecc) {
    puVar20 = PTR___stack_chk_fail_0018fea0;
    (*(code *)PTR___stack_chk_fail_0018fea0)();
    pSVar9 = pParse_00->db->aDb[iVar7].pSchema;
    (*(code *)(*(int *)(puVar20 + 0x68754) + -0x63dc))();
    iVar1 = pParse_00->nTab;
    pParse_00->nTab = iVar1 + 3;
    openStatTable(pParse_00,iVar7,iVar1,(char *)0x0,(char *)0x0);
    iVar12 = pParse_00->nMem;
    pHVar10 = (pSVar9->tblHash).first;
    iVar17 = pParse_00->nTab;
    if (pHVar10 != (HashElem *)0x0) {
      iVar15 = *(int *)(puVar20 + 0x68808);
      do {
        (*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17);
        pHVar10 = pHVar10->next;
      } while (pHVar10 != (HashElem *)0x0);
    }
    iVar1 = (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c))(pParse_00);
    if (iVar1 != 0) {
      (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0))(iVar1,0x8f,iVar7);
    }
    return;
  }
  return;
}



void FUN_00127160(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)

{
  int *piVar1;
  code *pcVar2;
  code *pcVar3;
  code *pcVar4;
  code *pcVar5;
  int iVar6;
  int *piVar7;
  int *piVar8;
  int iVar9;
  int *piVar10;
  int iVar11;
  undefined1 *puVar12;
  int iVar13;
  undefined4 *puVar14;
  int *piVar15;
  int *piVar16;
  undefined *puVar17;
  int iVar18;
  int local_3c [3];
  undefined1 local_30 [4];
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;
  iVar18 = *param_1;
  piVar7 = param_1;
  iVar6 = param_2;
  piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();
  puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;
  if (piVar1 != (int *)0x0) {
    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);
    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);
    piVar15 = local_3c;
    puVar12 = local_30;
    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);
    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);
    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);
    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);
    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);
    piVar7 = piVar8;
    piVar10 = piVar15;
    do {
      iVar9 = *piVar7;
      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);
      if (iVar6 == 0) {
        if (piVar7[1] != 0) {
          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9
                    ,piVar7[1]);
          *piVar10 = param_1[0x17];
          *puVar12 = 0x10;
        }
      }
      else {
        iVar6 = *(int *)(iVar6 + 0x1c);
        *piVar10 = iVar6;
        *puVar12 = 0;
        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);
        if (param_4 == 0) {
          if (*(int *)(iVar18 + 0xf0) == 0) {
            (*pcVar4)(piVar1,0x89,iVar6,param_2);
          }
          else {
            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);
          }
        }
        else {
          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9
                    ,param_5,param_4);
        }
      }
      piVar7 = piVar7 + 2;
      piVar10 = piVar10 + 1;
      puVar12 = puVar12 + 1;
    } while (piVar7 != piVar16);
    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);
    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);
    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);
    iVar18 = param_3;
    do {
      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);
      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);
      iVar6 = *piVar8;
      piVar7 = piVar1;
      (*pcVar2)();
      piVar15 = piVar15 + 1;
      iVar18 = iVar18 + 1;
      piVar10 = piVar8 + 3;
      piVar8 = piVar8 + 2;
    } while (*piVar10 != 0);
  }
  if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {
    puVar17 = PTR___stack_chk_fail_0018fea0;
    (*(code *)PTR___stack_chk_fail_0018fea0)();
    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);
    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();
    iVar9 = piVar7[10];
    piVar7[10] = iVar9 + 3;
    FUN_00127160(piVar7,iVar6,iVar9,0,0);
    iVar11 = piVar7[0xb];
    piVar1 = *(int **)(iVar18 + 0x10);
    iVar18 = piVar7[10];
    if (piVar1 != (int *)0x0) {
      iVar13 = *(int *)(puVar17 + 0x68808);
      do {
        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);
        piVar1 = (int *)*piVar1;
      } while (piVar1 != (int *)0x0);
    }
    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);
    if (iVar18 != 0) {
      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);
    }
    return;
  }
  return;
}


lui gp,0x7
addiu gp,gp,0x7c0
addu gp,gp,t9
addiu sp,sp,-0x88
sw ra,0x84(sp)
sw s8,0x80(sp)
sw s7,0x7c(sp)
sw s6,0x78(sp)
sw s5,0x74(sp)
sw s4,0x70(sp)
sw s3,0x6c(sp)
sw s2,0x68(sp)
sw s1,0x64(sp)
sw s0,0x60(sp)
sw gp,0x18(sp)
sw a0,0x24(sp)
sw a1,0x8c(sp)
sw a2,0x90(sp)
sw a3,0x30(sp)
lw v0,0x98(sp)
sw v0,0x38(sp)
lw v0,-0x7a54(gp)
lw v0,0x0(v0)
sw v0,0x5c(sp)
lw s8,0x0(a0)
lw t9,-0x7cfc(gp)
addiu t9,t9,0x5c1c
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x00127438
_sw v0,0x20(sp)
lw v0,0x8c(sp)
sll v0,v0,0x4
lw s5,0x10(s8)
addu s5,s5,v0
lw s1,-0x7fd8(gp)
addiu s1,s1,-0x2ee4
addiu s6,sp,0x4c
addiu s4,sp,0x58
addiu s7,s1,0x18
or s3,s6,zero
or s0,s1,zero
lw v0,-0x7d64(gp)
addiu v0,v0,-0x6fc0
sw v0,0x28(sp)
lw v0,-0x7cfc(gp)
addiu v0,v0,0x54f4
sw v0,0x34(sp)
lw v0,-0x7cfc(gp)
addiu v0,v0,0x5af8
sw v0,0x44(sp)
lw v0,-0x7fc4(gp)
sw v0,0x40(sp)
lw v0,-0x7c50(gp)
addiu v0,v0,0x37ac
b 0x0012729c
_sw v0,0x2c(sp)
lw v0,0x4(s0)
beq v0,zero,0x0012728c
_or a3,s2,zero
lw a2,0x0(s5)
sw v0,0x10(sp)
lw a1,-0x7fc4(gp)
addiu a1,a1,-0x1064
lw s2,0x24(sp)
or a0,s2,zero
lw t9,0x2c(sp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x5c(s2)
sw v0,0x0(s3)
li v0,0x10
sb v0,0x0(s4)
addiu s0,s0,0x8
addiu s3,s3,0x4
beq s0,s7,0x0012738c
_addiu s4,s4,0x1
lw s2,0x0(s0)
lw a2,0x0(s5)
or a1,s2,zero
or a0,s8,zero
lw t9,0x28(sp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x00127248
_li a3,0x1
lw v0,0x1c(v0)
sw v0,0x3c(sp)
sw v0,0x0(s3)
sb zero,0x0(s4)
sw s2,0x10(sp)
or a2,v0,zero
lw a1,0x8c(sp)
lw a0,0x24(sp)
lw t9,0x34(sp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x30(sp)
beq v0,zero,0x00127334
_or a3,s2,zero
lw a2,0x0(s5)
sw v0,0x14(sp)
lw v0,0x38(sp)
sw v0,0x10(sp)
lw a1,-0x7fc4(gp)
addiu a1,a1,-0x1524
lw a0,0x24(sp)
lw t9,0x2c(sp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x00127290
_addiu s0,s0,0x8
lw v0,0xf0(s8)
beq v0,zero,0x00127364
_lw v0,0x40(sp)
lw a2,0x0(s5)
addiu a1,v0,-0x104c
lw a0,0x24(sp)
lw t9,0x2c(sp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x00127290
_addiu s0,s0,0x8
lw a3,0x8c(sp)
lw a2,0x3c(sp)
li a1,0x89
lw a0,0x20(sp)
lw t9,0x44(sp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x00127290
_addiu s0,s0,0x8
lw s4,0x90(sp)
or s0,s4,zero
li s5,0x3
lw s2,-0x7cfc(gp)
addiu s2,s2,0x5dc4
addiu s3,sp,0x58
lw s8,-0x7dc8(gp)
addiu s8,s8,0x615c
lw v0,-0x7c94(gp)
addiu v0,v0,-0x7c98
sw v0,0x24(sp)
sw s5,0x14(sp)
lw v0,0x8c(sp)
sw v0,0x10(sp)
lw a3,0x0(s6)
or a2,s0,zero
li a1,0x6e
lw s7,0x20(sp)
or a0,s7,zero
or t9,s2,zero
jalr t9
_nop
lw gp,0x18(sp)
subu v0,s0,s4
addu v0,s3,v0
lbu a1,0x0(v0)
sw s7,0x20(sp)
or a0,s7,zero
or t9,s8,zero
jalr t9
_nop
lw gp,0x18(sp)
lw a1,0x0(s1)
lw a0,0x20(sp)
lw t9,0x24(sp)
jalr t9
_nop
lw gp,0x18(sp)
addiu s6,s6,0x4
addiu s0,s0,0x1
lw v0,0xc(s1)
bne v0,zero,0x001273b8
_addiu s1,s1,0x8
lw v1,0x5c(sp)
lw v0,-0x7a54(gp)
lw v0,0x0(v0)
bne v1,v0,0x00127478
_lw ra,0x84(sp)
lw s8,0x80(sp)
lw s7,0x7c(sp)
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x88
lw t9,-0x7a80(gp)
jalr t9
_nop
(translation_unit "void FUN_00127160(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  int *piVar1;\n  code *pcVar2;\n  code *pcVar3;\n  code *pcVar4;\n  code *pcVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined *puVar17;\n  int iVar18;\n  int local_3c [3];\n  undefined1 local_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  iVar18 = *param_1;\n  piVar7 = param_1;\n  iVar6 = param_2;\n  piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();\n  puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;\n  if (piVar1 != (int *)0x0) {\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }\n  if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00127160(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  int *piVar1;\n  code *pcVar2;\n  code *pcVar3;\n  code *pcVar4;\n  code *pcVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined *puVar17;\n  int iVar18;\n  int local_3c [3];\n  undefined1 local_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  iVar18 = *param_1;\n  piVar7 = param_1;\n  iVar6 = param_2;\n  piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();\n  puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;\n  if (piVar1 != (int *)0x0) {\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }\n  if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00127160(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)" identifier (parameter_list "(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)" ( (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 "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  code *pcVar2;\n  code *pcVar3;\n  code *pcVar4;\n  code *pcVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined *puVar17;\n  int iVar18;\n  int local_3c [3];\n  undefined1 local_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  iVar18 = *param_1;\n  piVar7 = param_1;\n  iVar6 = param_2;\n  piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();\n  puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;\n  if (piVar1 != (int *)0x0) {\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }\n  if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int local_3c [3];" primitive_type (array_declarator "local_3c [3]" identifier [ number_literal ]) ;) (declaration "undefined1 local_30 [4];" type_identifier (array_declarator "local_30 [4]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0018fecc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0018fecc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar18 = *param_1;" (assignment_expression "iVar18 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "piVar7 = param_1;" (assignment_expression "piVar7 = param_1" identifier = identifier) ;) (expression_statement "iVar6 = param_2;" (assignment_expression "iVar6 = param_2" identifier = identifier) ;) (expression_statement "piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();" (assignment_expression "piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))()" identifier = (cast_expression "(int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))()" (parenthesized_expression "(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))" ( (pointer_expression "*(code *)(PTR_DAT_0018fc24 + 0x5c1c)" * (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x5c1c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018fc24 + 0x5c1c)" ( (binary_expression "PTR_DAT_0018fc24 + 0x5c1c" identifier + number_literal) )))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;" (assignment_expression "puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c" identifier = identifier) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }" { (expression_statement "puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);" (assignment_expression "puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x10) + param_2 * 0x10)" ( (binary_expression "*(int *)(iVar18 + 0x10) + param_2 * 0x10" (pointer_expression "*(int *)(iVar18 + 0x10)" * (cast_expression "(int *)(iVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) + (binary_expression "param_2 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);" (assignment_expression "piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4)" identifier = (cast_expression "(int *)(PTR_DAT_0018f948 + -0x2ee4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018f948 + -0x2ee4)" ( (binary_expression "PTR_DAT_0018f948 + -0x2ee4" identifier + number_literal) )))) ;) (expression_statement "piVar15 = local_3c;" (assignment_expression "piVar15 = local_3c" identifier = identifier) ;) (expression_statement "puVar12 = local_30;" (assignment_expression "puVar12 = local_30" identifier = identifier) ;) (expression_statement "piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);" (assignment_expression "piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc)" identifier = (cast_expression "(int *)(PTR_DAT_0018f948 + -0x2ecc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018f948 + -0x2ecc)" ( (binary_expression "PTR_DAT_0018f948 + -0x2ecc" identifier + number_literal) )))) ;) (expression_statement "pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);" (assignment_expression "pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0)" identifier = (cast_expression "(code *)(PTR_LAB_0018fbbc + -0x6fc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + -0x6fc0)" ( (binary_expression "PTR_LAB_0018fbbc + -0x6fc0" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);" (assignment_expression "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4)" identifier = (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x54f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018fc24 + 0x54f4)" ( (binary_expression "PTR_DAT_0018fc24 + 0x54f4" identifier + number_literal) )))) ;) (expression_statement "pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);" (assignment_expression "pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8)" identifier = (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x5af8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018fc24 + 0x5af8)" ( (binary_expression "PTR_DAT_0018fc24 + 0x5af8" identifier + number_literal) )))) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac)" identifier = (cast_expression "(code *)(PTR_LAB_0018fcd0 + 0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fcd0 + 0x37ac)" ( (binary_expression "PTR_LAB_0018fcd0 + 0x37ac" identifier + number_literal) )))) ;) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" identifier = identifier) ;) (expression_statement "piVar10 = piVar15;" (assignment_expression "piVar10 = piVar15" identifier = identifier) ;) (do_statement "do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);" do (compound_statement "{\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    }" { (expression_statement "iVar9 = *piVar7;" (assignment_expression "iVar9 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);" (assignment_expression "iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14)" identifier = (call_expression "(*pcVar2)(iVar18,iVar9,*puVar14)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(iVar18,iVar9,*puVar14)" ( identifier , identifier , (pointer_expression "*puVar14" * identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }" { (if_statement "if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }" if (parenthesized_expression "(piVar7[1] != 0)" ( (binary_expression "piVar7[1] != 0" (subscript_expression "piVar7[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }" { (expression_statement "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);" (call_expression "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1])" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1])" ( identifier , (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064" identifier + number_literal) , (pointer_expression "*puVar14" * identifier) , identifier , (subscript_expression "piVar7[1]" identifier [ number_literal ]) ))) ;) (expression_statement "*piVar10 = param_1[0x17];" (assignment_expression "*piVar10 = param_1[0x17]" (pointer_expression "*piVar10" * identifier) = (subscript_expression "param_1[0x17]" identifier [ number_literal ])) ;) (expression_statement "*puVar12 = 0x10;" (assignment_expression "*puVar12 = 0x10" (pointer_expression "*puVar12" * identifier) = number_literal) ;) })) }) (else_clause "else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }" else (compound_statement "{\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }" { (expression_statement "iVar6 = *(int *)(iVar6 + 0x1c);" (assignment_expression "iVar6 = *(int *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x1c)" * (cast_expression "(int *)(iVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*piVar10 = iVar6;" (assignment_expression "*piVar10 = iVar6" (pointer_expression "*piVar10" * identifier) = identifier) ;) (expression_statement "*puVar12 = 0;" (assignment_expression "*puVar12 = 0" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "(*pcVar3)(param_1,param_2,iVar6,1,iVar9);" (call_expression "(*pcVar3)(param_1,param_2,iVar6,1,iVar9)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(param_1,param_2,iVar6,1,iVar9)" ( identifier , identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }" { (if_statement "if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }" if (parenthesized_expression "(*(int *)(iVar18 + 0xf0) == 0)" ( (binary_expression "*(int *)(iVar18 + 0xf0) == 0" (pointer_expression "*(int *)(iVar18 + 0xf0)" * (cast_expression "(int *)(iVar18 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xf0)" ( (binary_expression "iVar18 + 0xf0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }" { (expression_statement "(*pcVar4)(piVar1,0x89,iVar6,param_2);" (call_expression "(*pcVar4)(piVar1,0x89,iVar6,param_2)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar1,0x89,iVar6,param_2)" ( identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }" else (compound_statement "{\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }" { (expression_statement "(*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);" (call_expression "(*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(param_1,puVar17 + -0x104c,*puVar14,iVar9)" ( identifier , (binary_expression "puVar17 + -0x104c" identifier + number_literal) , (pointer_expression "*puVar14" * identifier) , identifier ))) ;) }))) }) (else_clause "else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }" else (compound_statement "{\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }" { (expression_statement "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);" (call_expression "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4)" ( identifier , (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524" identifier + number_literal) , (pointer_expression "*puVar14" * identifier) , identifier , identifier , identifier ))) ;) }))) }))) (expression_statement "piVar7 = piVar7 + 2;" (assignment_expression "piVar7 = piVar7 + 2" identifier = (binary_expression "piVar7 + 2" identifier + number_literal)) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar7 != piVar16)" ( (binary_expression "piVar7 != piVar16" identifier != identifier) )) ;) (expression_statement "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);" (assignment_expression "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4)" identifier = (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x5dc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018fc24 + 0x5dc4)" ( (binary_expression "PTR_DAT_0018fc24 + 0x5dc4" identifier + number_literal) )))) ;) (expression_statement "pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c)" identifier = (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x615c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x615c)" ( (binary_expression "PTR_LAB_0018fb58 + 0x615c" identifier + number_literal) )))) ;) (expression_statement "pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);" (assignment_expression "pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98)" identifier = (cast_expression "(code *)(PTR_LAB_0018fc8c + -0x7c98)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc8c + -0x7c98)" ( (binary_expression "PTR_LAB_0018fc8c + -0x7c98" identifier + number_literal) )))) ;) (expression_statement "iVar18 = param_3;" (assignment_expression "iVar18 = param_3" identifier = identifier) ;) (do_statement "do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);" do (compound_statement "{\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    }" { (expression_statement "(*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);" (call_expression "(*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(piVar1,0x6e,iVar18,*piVar15,param_2,3)" ( identifier , number_literal , identifier , (pointer_expression "*piVar15" * identifier) , identifier , number_literal ))) ;) (expression_statement "(*pcVar4)(piVar1,local_30[iVar18 - param_3]);" (call_expression "(*pcVar4)(piVar1,local_30[iVar18 - param_3])" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar1,local_30[iVar18 - param_3])" ( identifier , (subscript_expression "local_30[iVar18 - param_3]" identifier [ (binary_expression "iVar18 - param_3" identifier - identifier) ]) ))) ;) (expression_statement "iVar6 = *piVar8;" (assignment_expression "iVar6 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "piVar7 = piVar1;" (assignment_expression "piVar7 = piVar1" identifier = identifier) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" identifier = (binary_expression "piVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "piVar10 = piVar8 + 3;" (assignment_expression "piVar10 = piVar8 + 3" identifier = (binary_expression "piVar8 + 3" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar8 + 2;" (assignment_expression "piVar8 = piVar8 + 2" identifier = (binary_expression "piVar8 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar10 != 0)" ( (binary_expression "*piVar10 != 0" (pointer_expression "*piVar10" * identifier) != number_literal) )) ;) })) (if_statement "if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }" if (parenthesized_expression "(local_2c != *(int *)PTR___stack_chk_guard_0018fecc)" ( (binary_expression "local_2c != *(int *)PTR___stack_chk_guard_0018fecc" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }" { (expression_statement "puVar17 = PTR___stack_chk_fail_0018fea0;" (assignment_expression "puVar17 = PTR___stack_chk_fail_0018fea0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0018fea0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" * (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);" (assignment_expression "iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" ( (binary_expression "*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc" (binary_expression "*(int *)(*piVar7 + 0x10) + iVar6 * 0x10" (pointer_expression "*(int *)(*piVar7 + 0x10)" * (cast_expression "(int *)(*piVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + 0x10)" ( (binary_expression "*piVar7 + 0x10" (pointer_expression "*piVar7" * identifier) + number_literal) )))) + (binary_expression "iVar6 * 0x10" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "(*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();" (call_expression "(*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))()" (parenthesized_expression "(*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))" ( (pointer_expression "*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc)" * (cast_expression "(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x68754) + -0x63dc)" ( (binary_expression "*(int *)(puVar17 + 0x68754) + -0x63dc" (pointer_expression "*(int *)(puVar17 + 0x68754)" * (cast_expression "(int *)(puVar17 + 0x68754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x68754)" ( (binary_expression "puVar17 + 0x68754" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = piVar7[10];" (assignment_expression "iVar9 = piVar7[10]" identifier = (subscript_expression "piVar7[10]" identifier [ number_literal ])) ;) (expression_statement "piVar7[10] = iVar9 + 3;" (assignment_expression "piVar7[10] = iVar9 + 3" (subscript_expression "piVar7[10]" identifier [ number_literal ]) = (binary_expression "iVar9 + 3" identifier + number_literal)) ;) (expression_statement "FUN_00127160(piVar7,iVar6,iVar9,0,0);" (call_expression "FUN_00127160(piVar7,iVar6,iVar9,0,0)" identifier (argument_list "(piVar7,iVar6,iVar9,0,0)" ( identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "iVar11 = piVar7[0xb];" (assignment_expression "iVar11 = piVar7[0xb]" identifier = (subscript_expression "piVar7[0xb]" identifier [ number_literal ])) ;) (expression_statement "piVar1 = *(int **)(iVar18 + 0x10);" (assignment_expression "piVar1 = *(int **)(iVar18 + 0x10)" identifier = (pointer_expression "*(int **)(iVar18 + 0x10)" * (cast_expression "(int **)(iVar18 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = piVar7[10];" (assignment_expression "iVar18 = piVar7[10]" identifier = (subscript_expression "piVar7[10]" identifier [ number_literal ])) ;) (if_statement "if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }" { (expression_statement "iVar13 = *(int *)(puVar17 + 0x68808);" (assignment_expression "iVar13 = *(int *)(puVar17 + 0x68808)" identifier = (pointer_expression "*(int *)(puVar17 + 0x68808)" * (cast_expression "(int *)(puVar17 + 0x68808)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x68808)" ( (binary_expression "puVar17 + 0x68808" identifier + number_literal) ))))) ;) (do_statement "do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);" do (compound_statement "{\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      }" { (expression_statement "(*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);" (call_expression "(*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18)" (parenthesized_expression "(*(code *)(iVar13 + -0x5a9c))" ( (pointer_expression "*(code *)(iVar13 + -0x5a9c)" * (cast_expression "(code *)(iVar13 + -0x5a9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + -0x5a9c)" ( (binary_expression "iVar13 + -0x5a9c" identifier + number_literal) )))) )) (argument_list "(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18)" ( identifier , (subscript_expression "piVar1[2]" identifier [ number_literal ]) , number_literal , identifier , (binary_expression "iVar11 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "piVar1 = (int *)*piVar1;" (assignment_expression "piVar1 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) }) while (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);" (assignment_expression "iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7)" identifier = (call_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7)" (parenthesized_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))" ( (pointer_expression "*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c)" * (cast_expression "(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x687a0) + 0x5c1c)" ( (binary_expression "*(int *)(puVar17 + 0x687a0) + 0x5c1c" (pointer_expression "*(int *)(puVar17 + 0x687a0)" * (cast_expression "(int *)(puVar17 + 0x687a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x687a0)" ( (binary_expression "puVar17 + 0x687a0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(piVar7)" ( identifier )))) ;) (if_statement "if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }" { (expression_statement "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);" (call_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6)" (parenthesized_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))" ( (pointer_expression "*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0)" * (cast_expression "(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x687a0) + 0x67d0)" ( (binary_expression "*(int *)(puVar17 + 0x687a0) + 0x67d0" (pointer_expression "*(int *)(puVar17 + 0x687a0)" * (cast_expression "(int *)(puVar17 + 0x687a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x687a0)" ( (binary_expression "puVar17 + 0x687a0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar18,0x8f,iVar6)" ( identifier , number_literal , identifier ))) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void openStatTable(Parse *pParse,int iDb,int iStatCur,char *zWhere,char *zWhereType)\n\n{\n  int iVar1;\n  Parse *pPVar2;\n  code *pcVar3;\n  code *pcVar4;\n  code *pcVar5;\n  code *pcVar6;\n  int iVar7;\n  Parse *pParse_00;\n  int *piVar8;\n  Schema *pSVar9;\n  HashElem *pHVar10;\n  int *piVar11;\n  int iVar12;\n  int *piVar13;\n  u8 *puVar14;\n  int iVar15;\n  Db *pDVar16;\n  int iVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined *puVar20;\n  sqlite3 *psVar21;\n  int aRoot [3];\n  u8 aCreateTbl [3];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_0018fecc;\n  psVar21 = pParse->db;\n  pParse_00 = pParse;\n  iVar7 = iDb;\n  pPVar2 = (Parse *)(*(code *)(PTR_LAB_0018fc24 + 0x5c1c))();\n  puVar20 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;\n  if (pPVar2 != (Parse *)0x0) {\n    pDVar16 = psVar21->aDb + iDb;\n    piVar11 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ee4);\n    piVar18 = aRoot;\n    puVar14 = aCreateTbl;\n    piVar19 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ecc);\n    pcVar3 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x54f4);\n    pcVar5 = (code *)(PTR_LAB_0018fc24 + 0x5af8);\n    pcVar6 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar8 = piVar11;\n    piVar13 = piVar18;\n    do {\n      iVar12 = *piVar8;\n      iVar7 = (*pcVar3)(psVar21,iVar12,pDVar16->zDbSName);\n      if (iVar7 == 0) {\n        if (piVar8[1] != 0) {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);\n          *piVar13 = pParse->regRoot;\n          *puVar14 = '\x10';\n        }\n      }\n      else {\n        iVar7 = *(int *)(iVar7 + 0x1c);\n        *piVar13 = iVar7;\n        *puVar14 = '\0';\n        (*pcVar4)(pParse,iDb,iVar7,1,iVar12);\n        if (zWhere == (char *)0x0) {\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }\n        else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }\n      }\n      piVar8 = piVar8 + 2;\n      piVar13 = piVar13 + 1;\n      puVar14 = puVar14 + 1;\n    } while (piVar8 != piVar19);\n    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x5dc4);\n    pcVar5 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar3 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar12 = iStatCur;\n    do {\n      (*pcVar4)(pPVar2,0x6e,iVar12,*piVar18,iDb,3);\n      (*pcVar5)(pPVar2,aCreateTbl[iVar12 - iStatCur]);\n      iVar7 = *piVar11;\n      pParse_00 = pPVar2;\n      (*pcVar3)();\n      piVar18 = piVar18 + 1;\n      iVar12 = iVar12 + 1;\n      piVar8 = piVar11 + 3;\n      piVar11 = piVar11 + 2;\n    } while (*piVar8 != 0);\n  }\n  if (iVar1 != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar20 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    pSVar9 = pParse_00->db->aDb[iVar7].pSchema;\n    (*(code *)(*(int *)(puVar20 + 0x68754) + -0x63dc))();\n    iVar1 = pParse_00->nTab;\n    pParse_00->nTab = iVar1 + 3;\n    openStatTable(pParse_00,iVar7,iVar1,(char *)0x0,(char *)0x0);\n    iVar12 = pParse_00->nMem;\n    pHVar10 = (pSVar9->tblHash).first;\n    iVar17 = pParse_00->nTab;\n    if (pHVar10 != (HashElem *)0x0) {\n      iVar15 = *(int *)(puVar20 + 0x68808);\n      do {\n        (*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17);\n        pHVar10 = pHVar10->next;\n      } while (pHVar10 != (HashElem *)0x0);\n    }\n    iVar1 = (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c))(pParse_00);\n    if (iVar1 != 0) {\n      (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0))(iVar1,0x8f,iVar7);\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void openStatTable(Parse *pParse,int iDb,int iStatCur,char *zWhere,char *zWhereType)\n\n{\n  int iVar1;\n  Parse *pPVar2;\n  code *pcVar3;\n  code *pcVar4;\n  code *pcVar5;\n  code *pcVar6;\n  int iVar7;\n  Parse *pParse_00;\n  int *piVar8;\n  Schema *pSVar9;\n  HashElem *pHVar10;\n  int *piVar11;\n  int iVar12;\n  int *piVar13;\n  u8 *puVar14;\n  int iVar15;\n  Db *pDVar16;\n  int iVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined *puVar20;\n  sqlite3 *psVar21;\n  int aRoot [3];\n  u8 aCreateTbl [3];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_0018fecc;\n  psVar21 = pParse->db;\n  pParse_00 = pParse;\n  iVar7 = iDb;\n  pPVar2 = (Parse *)(*(code *)(PTR_LAB_0018fc24 + 0x5c1c))();\n  puVar20 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;\n  if (pPVar2 != (Parse *)0x0) {\n    pDVar16 = psVar21->aDb + iDb;\n    piVar11 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ee4);\n    piVar18 = aRoot;\n    puVar14 = aCreateTbl;\n    piVar19 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ecc);\n    pcVar3 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x54f4);\n    pcVar5 = (code *)(PTR_LAB_0018fc24 + 0x5af8);\n    pcVar6 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar8 = piVar11;\n    piVar13 = piVar18;\n    do {\n      iVar12 = *piVar8;\n      iVar7 = (*pcVar3)(psVar21,iVar12,pDVar16->zDbSName);\n      if (iVar7 == 0) {\n        if (piVar8[1] != 0) {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);\n          *piVar13 = pParse->regRoot;\n          *puVar14 = '\x10';\n        }\n      }\n      else {\n        iVar7 = *(int *)(iVar7 + 0x1c);\n        *piVar13 = iVar7;\n        *puVar14 = '\0';\n        (*pcVar4)(pParse,iDb,iVar7,1,iVar12);\n        if (zWhere == (char *)0x0) {\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }\n        else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }\n      }\n      piVar8 = piVar8 + 2;\n      piVar13 = piVar13 + 1;\n      puVar14 = puVar14 + 1;\n    } while (piVar8 != piVar19);\n    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x5dc4);\n    pcVar5 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar3 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar12 = iStatCur;\n    do {\n      (*pcVar4)(pPVar2,0x6e,iVar12,*piVar18,iDb,3);\n      (*pcVar5)(pPVar2,aCreateTbl[iVar12 - iStatCur]);\n      iVar7 = *piVar11;\n      pParse_00 = pPVar2;\n      (*pcVar3)();\n      piVar18 = piVar18 + 1;\n      iVar12 = iVar12 + 1;\n      piVar8 = piVar11 + 3;\n      piVar11 = piVar11 + 2;\n    } while (*piVar8 != 0);\n  }\n  if (iVar1 != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar20 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    pSVar9 = pParse_00->db->aDb[iVar7].pSchema;\n    (*(code *)(*(int *)(puVar20 + 0x68754) + -0x63dc))();\n    iVar1 = pParse_00->nTab;\n    pParse_00->nTab = iVar1 + 3;\n    openStatTable(pParse_00,iVar7,iVar1,(char *)0x0,(char *)0x0);\n    iVar12 = pParse_00->nMem;\n    pHVar10 = (pSVar9->tblHash).first;\n    iVar17 = pParse_00->nTab;\n    if (pHVar10 != (HashElem *)0x0) {\n      iVar15 = *(int *)(puVar20 + 0x68808);\n      do {\n        (*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17);\n        pHVar10 = pHVar10->next;\n      } while (pHVar10 != (HashElem *)0x0);\n    }\n    iVar1 = (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c))(pParse_00);\n    if (iVar1 != 0) {\n      (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0))(iVar1,0x8f,iVar7);\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "openStatTable(Parse *pParse,int iDb,int iStatCur,char *zWhere,char *zWhereType)" identifier (parameter_list "(Parse *pParse,int iDb,int iStatCur,char *zWhere,char *zWhereType)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "int iDb" primitive_type identifier) , (parameter_declaration "int iStatCur" primitive_type identifier) , (parameter_declaration "char *zWhere" primitive_type (pointer_declarator "*zWhere" * identifier)) , (parameter_declaration "char *zWhereType" primitive_type (pointer_declarator "*zWhereType" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  Parse *pPVar2;\n  code *pcVar3;\n  code *pcVar4;\n  code *pcVar5;\n  code *pcVar6;\n  int iVar7;\n  Parse *pParse_00;\n  int *piVar8;\n  Schema *pSVar9;\n  HashElem *pHVar10;\n  int *piVar11;\n  int iVar12;\n  int *piVar13;\n  u8 *puVar14;\n  int iVar15;\n  Db *pDVar16;\n  int iVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined *puVar20;\n  sqlite3 *psVar21;\n  int aRoot [3];\n  u8 aCreateTbl [3];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_0018fecc;\n  psVar21 = pParse->db;\n  pParse_00 = pParse;\n  iVar7 = iDb;\n  pPVar2 = (Parse *)(*(code *)(PTR_LAB_0018fc24 + 0x5c1c))();\n  puVar20 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;\n  if (pPVar2 != (Parse *)0x0) {\n    pDVar16 = psVar21->aDb + iDb;\n    piVar11 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ee4);\n    piVar18 = aRoot;\n    puVar14 = aCreateTbl;\n    piVar19 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ecc);\n    pcVar3 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x54f4);\n    pcVar5 = (code *)(PTR_LAB_0018fc24 + 0x5af8);\n    pcVar6 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar8 = piVar11;\n    piVar13 = piVar18;\n    do {\n      iVar12 = *piVar8;\n      iVar7 = (*pcVar3)(psVar21,iVar12,pDVar16->zDbSName);\n      if (iVar7 == 0) {\n        if (piVar8[1] != 0) {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);\n          *piVar13 = pParse->regRoot;\n          *puVar14 = '\x10';\n        }\n      }\n      else {\n        iVar7 = *(int *)(iVar7 + 0x1c);\n        *piVar13 = iVar7;\n        *puVar14 = '\0';\n        (*pcVar4)(pParse,iDb,iVar7,1,iVar12);\n        if (zWhere == (char *)0x0) {\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }\n        else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }\n      }\n      piVar8 = piVar8 + 2;\n      piVar13 = piVar13 + 1;\n      puVar14 = puVar14 + 1;\n    } while (piVar8 != piVar19);\n    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x5dc4);\n    pcVar5 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar3 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar12 = iStatCur;\n    do {\n      (*pcVar4)(pPVar2,0x6e,iVar12,*piVar18,iDb,3);\n      (*pcVar5)(pPVar2,aCreateTbl[iVar12 - iStatCur]);\n      iVar7 = *piVar11;\n      pParse_00 = pPVar2;\n      (*pcVar3)();\n      piVar18 = piVar18 + 1;\n      iVar12 = iVar12 + 1;\n      piVar8 = piVar11 + 3;\n      piVar11 = piVar11 + 2;\n    } while (*piVar8 != 0);\n  }\n  if (iVar1 != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar20 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    pSVar9 = pParse_00->db->aDb[iVar7].pSchema;\n    (*(code *)(*(int *)(puVar20 + 0x68754) + -0x63dc))();\n    iVar1 = pParse_00->nTab;\n    pParse_00->nTab = iVar1 + 3;\n    openStatTable(pParse_00,iVar7,iVar1,(char *)0x0,(char *)0x0);\n    iVar12 = pParse_00->nMem;\n    pHVar10 = (pSVar9->tblHash).first;\n    iVar17 = pParse_00->nTab;\n    if (pHVar10 != (HashElem *)0x0) {\n      iVar15 = *(int *)(puVar20 + 0x68808);\n      do {\n        (*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17);\n        pHVar10 = pHVar10->next;\n      } while (pHVar10 != (HashElem *)0x0);\n    }\n    iVar1 = (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c))(pParse_00);\n    if (iVar1 != 0) {\n      (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0))(iVar1,0x8f,iVar7);\n    }\n    return;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "Parse *pPVar2;" type_identifier (pointer_declarator "*pPVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "Parse *pParse_00;" type_identifier (pointer_declarator "*pParse_00" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "Schema *pSVar9;" type_identifier (pointer_declarator "*pSVar9" * identifier) ;) (declaration "HashElem *pHVar10;" type_identifier (pointer_declarator "*pHVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "u8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "Db *pDVar16;" type_identifier (pointer_declarator "*pDVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "sqlite3 *psVar21;" type_identifier (pointer_declarator "*psVar21" * identifier) ;) (declaration "int aRoot [3];" primitive_type (array_declarator "aRoot [3]" identifier [ number_literal ]) ;) (declaration "u8 aCreateTbl [3];" type_identifier (array_declarator "aCreateTbl [3]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_0018fecc;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_0018fecc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "psVar21 = pParse->db;" (assignment_expression "psVar21 = pParse->db" identifier = (field_expression "pParse->db" identifier -> field_identifier)) ;) (expression_statement "pParse_00 = pParse;" (assignment_expression "pParse_00 = pParse" identifier = identifier) ;) (expression_statement "iVar7 = iDb;" (assignment_expression "iVar7 = iDb" identifier = identifier) ;) (expression_statement "pPVar2 = (Parse *)(*(code *)(PTR_LAB_0018fc24 + 0x5c1c))();" (assignment_expression "pPVar2 = (Parse *)(*(code *)(PTR_LAB_0018fc24 + 0x5c1c))()" identifier = (cast_expression "(Parse *)(*(code *)(PTR_LAB_0018fc24 + 0x5c1c))()" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fc24 + 0x5c1c))()" (parenthesized_expression "(*(code *)(PTR_LAB_0018fc24 + 0x5c1c))" ( (pointer_expression "*(code *)(PTR_LAB_0018fc24 + 0x5c1c)" * (cast_expression "(code *)(PTR_LAB_0018fc24 + 0x5c1c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc24 + 0x5c1c)" ( (binary_expression "PTR_LAB_0018fc24 + 0x5c1c" identifier + number_literal) )))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar20 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;" (assignment_expression "puVar20 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c" identifier = identifier) ;) (if_statement "if (pPVar2 != (Parse *)0x0) {\n    pDVar16 = psVar21->aDb + iDb;\n    piVar11 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ee4);\n    piVar18 = aRoot;\n    puVar14 = aCreateTbl;\n    piVar19 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ecc);\n    pcVar3 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x54f4);\n    pcVar5 = (code *)(PTR_LAB_0018fc24 + 0x5af8);\n    pcVar6 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar8 = piVar11;\n    piVar13 = piVar18;\n    do {\n      iVar12 = *piVar8;\n      iVar7 = (*pcVar3)(psVar21,iVar12,pDVar16->zDbSName);\n      if (iVar7 == 0) {\n        if (piVar8[1] != 0) {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);\n          *piVar13 = pParse->regRoot;\n          *puVar14 = '\x10';\n        }\n      }\n      else {\n        iVar7 = *(int *)(iVar7 + 0x1c);\n        *piVar13 = iVar7;\n        *puVar14 = '\0';\n        (*pcVar4)(pParse,iDb,iVar7,1,iVar12);\n        if (zWhere == (char *)0x0) {\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }\n        else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }\n      }\n      piVar8 = piVar8 + 2;\n      piVar13 = piVar13 + 1;\n      puVar14 = puVar14 + 1;\n    } while (piVar8 != piVar19);\n    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x5dc4);\n    pcVar5 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar3 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar12 = iStatCur;\n    do {\n      (*pcVar4)(pPVar2,0x6e,iVar12,*piVar18,iDb,3);\n      (*pcVar5)(pPVar2,aCreateTbl[iVar12 - iStatCur]);\n      iVar7 = *piVar11;\n      pParse_00 = pPVar2;\n      (*pcVar3)();\n      piVar18 = piVar18 + 1;\n      iVar12 = iVar12 + 1;\n      piVar8 = piVar11 + 3;\n      piVar11 = piVar11 + 2;\n    } while (*piVar8 != 0);\n  }" if (parenthesized_expression "(pPVar2 != (Parse *)0x0)" ( (binary_expression "pPVar2 != (Parse *)0x0" identifier != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pDVar16 = psVar21->aDb + iDb;\n    piVar11 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ee4);\n    piVar18 = aRoot;\n    puVar14 = aCreateTbl;\n    piVar19 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ecc);\n    pcVar3 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x54f4);\n    pcVar5 = (code *)(PTR_LAB_0018fc24 + 0x5af8);\n    pcVar6 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar8 = piVar11;\n    piVar13 = piVar18;\n    do {\n      iVar12 = *piVar8;\n      iVar7 = (*pcVar3)(psVar21,iVar12,pDVar16->zDbSName);\n      if (iVar7 == 0) {\n        if (piVar8[1] != 0) {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);\n          *piVar13 = pParse->regRoot;\n          *puVar14 = '\x10';\n        }\n      }\n      else {\n        iVar7 = *(int *)(iVar7 + 0x1c);\n        *piVar13 = iVar7;\n        *puVar14 = '\0';\n        (*pcVar4)(pParse,iDb,iVar7,1,iVar12);\n        if (zWhere == (char *)0x0) {\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }\n        else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }\n      }\n      piVar8 = piVar8 + 2;\n      piVar13 = piVar13 + 1;\n      puVar14 = puVar14 + 1;\n    } while (piVar8 != piVar19);\n    pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x5dc4);\n    pcVar5 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar3 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar12 = iStatCur;\n    do {\n      (*pcVar4)(pPVar2,0x6e,iVar12,*piVar18,iDb,3);\n      (*pcVar5)(pPVar2,aCreateTbl[iVar12 - iStatCur]);\n      iVar7 = *piVar11;\n      pParse_00 = pPVar2;\n      (*pcVar3)();\n      piVar18 = piVar18 + 1;\n      iVar12 = iVar12 + 1;\n      piVar8 = piVar11 + 3;\n      piVar11 = piVar11 + 2;\n    } while (*piVar8 != 0);\n  }" { (expression_statement "pDVar16 = psVar21->aDb + iDb;" (assignment_expression "pDVar16 = psVar21->aDb + iDb" identifier = (binary_expression "psVar21->aDb + iDb" (field_expression "psVar21->aDb" identifier -> field_identifier) + identifier)) ;) (expression_statement "piVar11 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ee4);" (assignment_expression "piVar11 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ee4)" identifier = (cast_expression "(int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ee4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ee4)" ( (binary_expression "PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ee4" identifier + number_literal) )))) ;) (expression_statement "piVar18 = aRoot;" (assignment_expression "piVar18 = aRoot" identifier = identifier) ;) (expression_statement "puVar14 = aCreateTbl;" (assignment_expression "puVar14 = aCreateTbl" identifier = identifier) ;) (expression_statement "piVar19 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ecc);" (assignment_expression "piVar19 = (int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ecc)" identifier = (cast_expression "(int *)(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ecc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ecc)" ( (binary_expression "PTR_sBegin_ru_stime_tv_sec_0018f948 + -0x2ecc" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);" (assignment_expression "pcVar3 = (code *)(PTR_LAB_0018fbbc + -0x6fc0)" identifier = (cast_expression "(code *)(PTR_LAB_0018fbbc + -0x6fc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + -0x6fc0)" ( (binary_expression "PTR_LAB_0018fbbc + -0x6fc0" identifier + number_literal) )))) ;) (expression_statement "pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x54f4);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x54f4)" identifier = (cast_expression "(code *)(PTR_LAB_0018fc24 + 0x54f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc24 + 0x54f4)" ( (binary_expression "PTR_LAB_0018fc24 + 0x54f4" identifier + number_literal) )))) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_0018fc24 + 0x5af8);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_0018fc24 + 0x5af8)" identifier = (cast_expression "(code *)(PTR_LAB_0018fc24 + 0x5af8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc24 + 0x5af8)" ( (binary_expression "PTR_LAB_0018fc24 + 0x5af8" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_0018fcd0 + 0x37ac)" identifier = (cast_expression "(code *)(PTR_LAB_0018fcd0 + 0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fcd0 + 0x37ac)" ( (binary_expression "PTR_LAB_0018fcd0 + 0x37ac" identifier + number_literal) )))) ;) (expression_statement "piVar8 = piVar11;" (assignment_expression "piVar8 = piVar11" identifier = identifier) ;) (expression_statement "piVar13 = piVar18;" (assignment_expression "piVar13 = piVar18" identifier = identifier) ;) (do_statement "do {\n      iVar12 = *piVar8;\n      iVar7 = (*pcVar3)(psVar21,iVar12,pDVar16->zDbSName);\n      if (iVar7 == 0) {\n        if (piVar8[1] != 0) {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);\n          *piVar13 = pParse->regRoot;\n          *puVar14 = '\x10';\n        }\n      }\n      else {\n        iVar7 = *(int *)(iVar7 + 0x1c);\n        *piVar13 = iVar7;\n        *puVar14 = '\0';\n        (*pcVar4)(pParse,iDb,iVar7,1,iVar12);\n        if (zWhere == (char *)0x0) {\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }\n        else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }\n      }\n      piVar8 = piVar8 + 2;\n      piVar13 = piVar13 + 1;\n      puVar14 = puVar14 + 1;\n    } while (piVar8 != piVar19);" do (compound_statement "{\n      iVar12 = *piVar8;\n      iVar7 = (*pcVar3)(psVar21,iVar12,pDVar16->zDbSName);\n      if (iVar7 == 0) {\n        if (piVar8[1] != 0) {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);\n          *piVar13 = pParse->regRoot;\n          *puVar14 = '\x10';\n        }\n      }\n      else {\n        iVar7 = *(int *)(iVar7 + 0x1c);\n        *piVar13 = iVar7;\n        *puVar14 = '\0';\n        (*pcVar4)(pParse,iDb,iVar7,1,iVar12);\n        if (zWhere == (char *)0x0) {\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }\n        else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }\n      }\n      piVar8 = piVar8 + 2;\n      piVar13 = piVar13 + 1;\n      puVar14 = puVar14 + 1;\n    }" { (expression_statement "iVar12 = *piVar8;" (assignment_expression "iVar12 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "iVar7 = (*pcVar3)(psVar21,iVar12,pDVar16->zDbSName);" (assignment_expression "iVar7 = (*pcVar3)(psVar21,iVar12,pDVar16->zDbSName)" identifier = (call_expression "(*pcVar3)(psVar21,iVar12,pDVar16->zDbSName)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(psVar21,iVar12,pDVar16->zDbSName)" ( identifier , identifier , (field_expression "pDVar16->zDbSName" identifier -> field_identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n        if (piVar8[1] != 0) {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);\n          *piVar13 = pParse->regRoot;\n          *puVar14 = '\x10';\n        }\n      }\n      else {\n        iVar7 = *(int *)(iVar7 + 0x1c);\n        *piVar13 = iVar7;\n        *puVar14 = '\0';\n        (*pcVar4)(pParse,iDb,iVar7,1,iVar12);\n        if (zWhere == (char *)0x0) {\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }\n        else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        if (piVar8[1] != 0) {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);\n          *piVar13 = pParse->regRoot;\n          *puVar14 = '\x10';\n        }\n      }" { (if_statement "if (piVar8[1] != 0) {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);\n          *piVar13 = pParse->regRoot;\n          *puVar14 = '\x10';\n        }" if (parenthesized_expression "(piVar8[1] != 0)" ( (binary_expression "piVar8[1] != 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);\n          *piVar13 = pParse->regRoot;\n          *puVar14 = '\x10';\n        }" { (expression_statement "(*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1]);" (call_expression "(*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1])" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,\n                    pDVar16->zDbSName,iVar12,piVar8[1])" ( identifier , (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064" identifier + number_literal) , (field_expression "pDVar16->zDbSName" identifier -> field_identifier) , identifier , (subscript_expression "piVar8[1]" identifier [ number_literal ]) ))) ;) (expression_statement "*piVar13 = pParse->regRoot;" (assignment_expression "*piVar13 = pParse->regRoot" (pointer_expression "*piVar13" * identifier) = (field_expression "pParse->regRoot" identifier -> field_identifier)) ;) (expression_statement "*puVar14 = '\x10';" (assignment_expression "*puVar14 = '\x10'" (pointer_expression "*puVar14" * identifier) = (char_literal "'\x10'" ' escape_sequence ')) ;) })) }) (else_clause "else {\n        iVar7 = *(int *)(iVar7 + 0x1c);\n        *piVar13 = iVar7;\n        *puVar14 = '\0';\n        (*pcVar4)(pParse,iDb,iVar7,1,iVar12);\n        if (zWhere == (char *)0x0) {\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }\n        else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }\n      }" else (compound_statement "{\n        iVar7 = *(int *)(iVar7 + 0x1c);\n        *piVar13 = iVar7;\n        *puVar14 = '\0';\n        (*pcVar4)(pParse,iDb,iVar7,1,iVar12);\n        if (zWhere == (char *)0x0) {\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }\n        else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }\n      }" { (expression_statement "iVar7 = *(int *)(iVar7 + 0x1c);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*piVar13 = iVar7;" (assignment_expression "*piVar13 = iVar7" (pointer_expression "*piVar13" * identifier) = identifier) ;) (expression_statement "*puVar14 = '\0';" (assignment_expression "*puVar14 = '\0'" (pointer_expression "*puVar14" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*pcVar4)(pParse,iDb,iVar7,1,iVar12);" (call_expression "(*pcVar4)(pParse,iDb,iVar7,1,iVar12)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(pParse,iDb,iVar7,1,iVar12)" ( identifier , identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (zWhere == (char *)0x0) {\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }\n        else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }" if (parenthesized_expression "(zWhere == (char *)0x0)" ( (binary_expression "zWhere == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }\n        }" { (if_statement "if (psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0) {\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }\n          else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }" if (parenthesized_expression "(psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0)" ( (binary_expression "psVar21->xPreUpdateCallback ==\n              (_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0" (field_expression "psVar21->xPreUpdateCallback" identifier -> field_identifier) == (cast_expression "(_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *)\n              0x0" ( (type_descriptor "_func_void_void_ptr_sqlite3_ptr_int_char_ptr_char_ptr_sqlite3_int64_sqlite3_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (*pcVar5)(pPVar2,0x89,iVar7,iDb);\n          }" { (expression_statement "(*pcVar5)(pPVar2,0x89,iVar7,iDb);" (call_expression "(*pcVar5)(pPVar2,0x89,iVar7,iDb)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(pPVar2,0x89,iVar7,iDb)" ( identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }" else (compound_statement "{\n            (*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);\n          }" { (expression_statement "(*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12);" (call_expression "(*pcVar6)(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(pParse,puVar20 + -0x104c,pDVar16->zDbSName,iVar12)" ( identifier , (binary_expression "puVar20 + -0x104c" identifier + number_literal) , (field_expression "pDVar16->zDbSName" identifier -> field_identifier) , identifier ))) ;) }))) }) (else_clause "else {\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }" else (compound_statement "{\n          (*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);\n        }" { (expression_statement "(*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere);" (call_expression "(*pcVar6)(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(pParse,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,\n                    pDVar16->zDbSName,iVar12,zWhereType,zWhere)" ( identifier , (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524" identifier + number_literal) , (field_expression "pDVar16->zDbSName" identifier -> field_identifier) , identifier , identifier , identifier ))) ;) }))) }))) (expression_statement "piVar8 = piVar8 + 2;" (assignment_expression "piVar8 = piVar8 + 2" identifier = (binary_expression "piVar8 + 2" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar13 + 1;" (assignment_expression "piVar13 = piVar13 + 1" identifier = (binary_expression "piVar13 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar14 + 1;" (assignment_expression "puVar14 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar8 != piVar19)" ( (binary_expression "piVar8 != piVar19" identifier != identifier) )) ;) (expression_statement "pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x5dc4);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_0018fc24 + 0x5dc4)" identifier = (cast_expression "(code *)(PTR_LAB_0018fc24 + 0x5dc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc24 + 0x5dc4)" ( (binary_expression "PTR_LAB_0018fc24 + 0x5dc4" identifier + number_literal) )))) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_0018fb58 + 0x615c);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_0018fb58 + 0x615c)" identifier = (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x615c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x615c)" ( (binary_expression "PTR_LAB_0018fb58 + 0x615c" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = (code *)(PTR_LAB_0018fc8c + -0x7c98);" (assignment_expression "pcVar3 = (code *)(PTR_LAB_0018fc8c + -0x7c98)" identifier = (cast_expression "(code *)(PTR_LAB_0018fc8c + -0x7c98)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc8c + -0x7c98)" ( (binary_expression "PTR_LAB_0018fc8c + -0x7c98" identifier + number_literal) )))) ;) (expression_statement "iVar12 = iStatCur;" (assignment_expression "iVar12 = iStatCur" identifier = identifier) ;) (do_statement "do {\n      (*pcVar4)(pPVar2,0x6e,iVar12,*piVar18,iDb,3);\n      (*pcVar5)(pPVar2,aCreateTbl[iVar12 - iStatCur]);\n      iVar7 = *piVar11;\n      pParse_00 = pPVar2;\n      (*pcVar3)();\n      piVar18 = piVar18 + 1;\n      iVar12 = iVar12 + 1;\n      piVar8 = piVar11 + 3;\n      piVar11 = piVar11 + 2;\n    } while (*piVar8 != 0);" do (compound_statement "{\n      (*pcVar4)(pPVar2,0x6e,iVar12,*piVar18,iDb,3);\n      (*pcVar5)(pPVar2,aCreateTbl[iVar12 - iStatCur]);\n      iVar7 = *piVar11;\n      pParse_00 = pPVar2;\n      (*pcVar3)();\n      piVar18 = piVar18 + 1;\n      iVar12 = iVar12 + 1;\n      piVar8 = piVar11 + 3;\n      piVar11 = piVar11 + 2;\n    }" { (expression_statement "(*pcVar4)(pPVar2,0x6e,iVar12,*piVar18,iDb,3);" (call_expression "(*pcVar4)(pPVar2,0x6e,iVar12,*piVar18,iDb,3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(pPVar2,0x6e,iVar12,*piVar18,iDb,3)" ( identifier , number_literal , identifier , (pointer_expression "*piVar18" * identifier) , identifier , number_literal ))) ;) (expression_statement "(*pcVar5)(pPVar2,aCreateTbl[iVar12 - iStatCur]);" (call_expression "(*pcVar5)(pPVar2,aCreateTbl[iVar12 - iStatCur])" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(pPVar2,aCreateTbl[iVar12 - iStatCur])" ( identifier , (subscript_expression "aCreateTbl[iVar12 - iStatCur]" identifier [ (binary_expression "iVar12 - iStatCur" identifier - identifier) ]) ))) ;) (expression_statement "iVar7 = *piVar11;" (assignment_expression "iVar7 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "pParse_00 = pPVar2;" (assignment_expression "pParse_00 = pPVar2" identifier = identifier) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar18 = piVar18 + 1;" (assignment_expression "piVar18 = piVar18 + 1" identifier = (binary_expression "piVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar11 + 3;" (assignment_expression "piVar8 = piVar11 + 3" identifier = (binary_expression "piVar11 + 3" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 2;" (assignment_expression "piVar11 = piVar11 + 2" identifier = (binary_expression "piVar11 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar8 != 0)" ( (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal) )) ;) })) (if_statement "if (iVar1 != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar20 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    pSVar9 = pParse_00->db->aDb[iVar7].pSchema;\n    (*(code *)(*(int *)(puVar20 + 0x68754) + -0x63dc))();\n    iVar1 = pParse_00->nTab;\n    pParse_00->nTab = iVar1 + 3;\n    openStatTable(pParse_00,iVar7,iVar1,(char *)0x0,(char *)0x0);\n    iVar12 = pParse_00->nMem;\n    pHVar10 = (pSVar9->tblHash).first;\n    iVar17 = pParse_00->nTab;\n    if (pHVar10 != (HashElem *)0x0) {\n      iVar15 = *(int *)(puVar20 + 0x68808);\n      do {\n        (*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17);\n        pHVar10 = pHVar10->next;\n      } while (pHVar10 != (HashElem *)0x0);\n    }\n    iVar1 = (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c))(pParse_00);\n    if (iVar1 != 0) {\n      (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0))(iVar1,0x8f,iVar7);\n    }\n    return;\n  }" if (parenthesized_expression "(iVar1 != *(int *)PTR___stack_chk_guard_0018fecc)" ( (binary_expression "iVar1 != *(int *)PTR___stack_chk_guard_0018fecc" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    puVar20 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    pSVar9 = pParse_00->db->aDb[iVar7].pSchema;\n    (*(code *)(*(int *)(puVar20 + 0x68754) + -0x63dc))();\n    iVar1 = pParse_00->nTab;\n    pParse_00->nTab = iVar1 + 3;\n    openStatTable(pParse_00,iVar7,iVar1,(char *)0x0,(char *)0x0);\n    iVar12 = pParse_00->nMem;\n    pHVar10 = (pSVar9->tblHash).first;\n    iVar17 = pParse_00->nTab;\n    if (pHVar10 != (HashElem *)0x0) {\n      iVar15 = *(int *)(puVar20 + 0x68808);\n      do {\n        (*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17);\n        pHVar10 = pHVar10->next;\n      } while (pHVar10 != (HashElem *)0x0);\n    }\n    iVar1 = (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c))(pParse_00);\n    if (iVar1 != 0) {\n      (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0))(iVar1,0x8f,iVar7);\n    }\n    return;\n  }" { (expression_statement "puVar20 = PTR___stack_chk_fail_0018fea0;" (assignment_expression "puVar20 = PTR___stack_chk_fail_0018fea0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0018fea0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" * (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pSVar9 = pParse_00->db->aDb[iVar7].pSchema;" (assignment_expression "pSVar9 = pParse_00->db->aDb[iVar7].pSchema" identifier = (field_expression "pParse_00->db->aDb[iVar7].pSchema" (subscript_expression "pParse_00->db->aDb[iVar7]" (field_expression "pParse_00->db->aDb" (field_expression "pParse_00->db" identifier -> field_identifier) -> field_identifier) [ identifier ]) . field_identifier)) ;) (expression_statement "(*(code *)(*(int *)(puVar20 + 0x68754) + -0x63dc))();" (call_expression "(*(code *)(*(int *)(puVar20 + 0x68754) + -0x63dc))()" (parenthesized_expression "(*(code *)(*(int *)(puVar20 + 0x68754) + -0x63dc))" ( (pointer_expression "*(code *)(*(int *)(puVar20 + 0x68754) + -0x63dc)" * (cast_expression "(code *)(*(int *)(puVar20 + 0x68754) + -0x63dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + 0x68754) + -0x63dc)" ( (binary_expression "*(int *)(puVar20 + 0x68754) + -0x63dc" (pointer_expression "*(int *)(puVar20 + 0x68754)" * (cast_expression "(int *)(puVar20 + 0x68754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x68754)" ( (binary_expression "puVar20 + 0x68754" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = pParse_00->nTab;" (assignment_expression "iVar1 = pParse_00->nTab" identifier = (field_expression "pParse_00->nTab" identifier -> field_identifier)) ;) (expression_statement "pParse_00->nTab = iVar1 + 3;" (assignment_expression "pParse_00->nTab = iVar1 + 3" (field_expression "pParse_00->nTab" identifier -> field_identifier) = (binary_expression "iVar1 + 3" identifier + number_literal)) ;) (expression_statement "openStatTable(pParse_00,iVar7,iVar1,(char *)0x0,(char *)0x0);" (call_expression "openStatTable(pParse_00,iVar7,iVar1,(char *)0x0,(char *)0x0)" identifier (argument_list "(pParse_00,iVar7,iVar1,(char *)0x0,(char *)0x0)" ( identifier , identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "iVar12 = pParse_00->nMem;" (assignment_expression "iVar12 = pParse_00->nMem" identifier = (field_expression "pParse_00->nMem" identifier -> field_identifier)) ;) (expression_statement "pHVar10 = (pSVar9->tblHash).first;" (assignment_expression "pHVar10 = (pSVar9->tblHash).first" identifier = (field_expression "(pSVar9->tblHash).first" (parenthesized_expression "(pSVar9->tblHash)" ( (field_expression "pSVar9->tblHash" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar17 = pParse_00->nTab;" (assignment_expression "iVar17 = pParse_00->nTab" identifier = (field_expression "pParse_00->nTab" identifier -> field_identifier)) ;) (if_statement "if (pHVar10 != (HashElem *)0x0) {\n      iVar15 = *(int *)(puVar20 + 0x68808);\n      do {\n        (*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17);\n        pHVar10 = pHVar10->next;\n      } while (pHVar10 != (HashElem *)0x0);\n    }" if (parenthesized_expression "(pHVar10 != (HashElem *)0x0)" ( (binary_expression "pHVar10 != (HashElem *)0x0" identifier != (cast_expression "(HashElem *)0x0" ( (type_descriptor "HashElem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar15 = *(int *)(puVar20 + 0x68808);\n      do {\n        (*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17);\n        pHVar10 = pHVar10->next;\n      } while (pHVar10 != (HashElem *)0x0);\n    }" { (expression_statement "iVar15 = *(int *)(puVar20 + 0x68808);" (assignment_expression "iVar15 = *(int *)(puVar20 + 0x68808)" identifier = (pointer_expression "*(int *)(puVar20 + 0x68808)" * (cast_expression "(int *)(puVar20 + 0x68808)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x68808)" ( (binary_expression "puVar20 + 0x68808" identifier + number_literal) ))))) ;) (do_statement "do {\n        (*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17);\n        pHVar10 = pHVar10->next;\n      } while (pHVar10 != (HashElem *)0x0);" do (compound_statement "{\n        (*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17);\n        pHVar10 = pHVar10->next;\n      }" { (expression_statement "(*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17);" (call_expression "(*(code *)(iVar15 + -0x5a9c))(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17)" (parenthesized_expression "(*(code *)(iVar15 + -0x5a9c))" ( (pointer_expression "*(code *)(iVar15 + -0x5a9c)" * (cast_expression "(code *)(iVar15 + -0x5a9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x5a9c)" ( (binary_expression "iVar15 + -0x5a9c" identifier + number_literal) )))) )) (argument_list "(pParse_00,pHVar10->data,0,iVar1,iVar12 + 1,iVar17)" ( identifier , (field_expression "pHVar10->data" identifier -> field_identifier) , number_literal , identifier , (binary_expression "iVar12 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "pHVar10 = pHVar10->next;" (assignment_expression "pHVar10 = pHVar10->next" identifier = (field_expression "pHVar10->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pHVar10 != (HashElem *)0x0)" ( (binary_expression "pHVar10 != (HashElem *)0x0" identifier != (cast_expression "(HashElem *)0x0" ( (type_descriptor "HashElem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "iVar1 = (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c))(pParse_00);" (assignment_expression "iVar1 = (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c))(pParse_00)" identifier = (call_expression "(*(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c))(pParse_00)" (parenthesized_expression "(*(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c))" ( (pointer_expression "*(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c)" * (cast_expression "(code *)(*(int *)(puVar20 + 0x687a0) + 0x5c1c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + 0x687a0) + 0x5c1c)" ( (binary_expression "*(int *)(puVar20 + 0x687a0) + 0x5c1c" (pointer_expression "*(int *)(puVar20 + 0x687a0)" * (cast_expression "(int *)(puVar20 + 0x687a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x687a0)" ( (binary_expression "puVar20 + 0x687a0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pParse_00)" ( identifier )))) ;) (if_statement "if (iVar1 != 0) {\n      (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0))(iVar1,0x8f,iVar7);\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0))(iVar1,0x8f,iVar7);\n    }" { (expression_statement "(*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0))(iVar1,0x8f,iVar7);" (call_expression "(*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0))(iVar1,0x8f,iVar7)" (parenthesized_expression "(*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0))" ( (pointer_expression "*(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0)" * (cast_expression "(code *)(*(int *)(puVar20 + 0x687a0) + 0x67d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + 0x687a0) + 0x67d0)" ( (binary_expression "*(int *)(puVar20 + 0x687a0) + 0x67d0" (pointer_expression "*(int *)(puVar20 + 0x687a0)" * (cast_expression "(int *)(puVar20 + 0x687a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x687a0)" ( (binary_expression "puVar20 + 0x687a0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar1,0x8f,iVar7)" ( identifier , number_literal , identifier ))) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00127160(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  int *piVar1;\n  code *pcVar2;\n  code *pcVar3;\n  code *pcVar4;\n  code *pcVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined *puVar17;\n  int iVar18;\n  int local_3c [3];\n  undefined1 local_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  iVar18 = *param_1;\n  piVar7 = param_1;\n  iVar6 = param_2;\n  piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();\n  puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;\n  if (piVar1 != (int *)0x0) {\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }\n  if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00127160(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  int *piVar1;\n  code *pcVar2;\n  code *pcVar3;\n  code *pcVar4;\n  code *pcVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined *puVar17;\n  int iVar18;\n  int local_3c [3];\n  undefined1 local_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  iVar18 = *param_1;\n  piVar7 = param_1;\n  iVar6 = param_2;\n  piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();\n  puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;\n  if (piVar1 != (int *)0x0) {\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }\n  if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00127160(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)" identifier (parameter_list "(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)" ( (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 "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  code *pcVar2;\n  code *pcVar3;\n  code *pcVar4;\n  code *pcVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined *puVar17;\n  int iVar18;\n  int local_3c [3];\n  undefined1 local_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  iVar18 = *param_1;\n  piVar7 = param_1;\n  iVar6 = param_2;\n  piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();\n  puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;\n  if (piVar1 != (int *)0x0) {\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }\n  if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int local_3c [3];" primitive_type (array_declarator "local_3c [3]" identifier [ number_literal ]) ;) (declaration "undefined1 local_30 [4];" type_identifier (array_declarator "local_30 [4]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0018fecc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0018fecc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar18 = *param_1;" (assignment_expression "iVar18 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "piVar7 = param_1;" (assignment_expression "piVar7 = param_1" identifier = identifier) ;) (expression_statement "iVar6 = param_2;" (assignment_expression "iVar6 = param_2" identifier = identifier) ;) (expression_statement "piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();" (assignment_expression "piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))()" identifier = (cast_expression "(int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))()" (parenthesized_expression "(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))" ( (pointer_expression "*(code *)(PTR_DAT_0018fc24 + 0x5c1c)" * (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x5c1c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018fc24 + 0x5c1c)" ( (binary_expression "PTR_DAT_0018fc24 + 0x5c1c" identifier + number_literal) )))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;" (assignment_expression "puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c" identifier = identifier) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }" { (expression_statement "puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);" (assignment_expression "puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x10) + param_2 * 0x10)" ( (binary_expression "*(int *)(iVar18 + 0x10) + param_2 * 0x10" (pointer_expression "*(int *)(iVar18 + 0x10)" * (cast_expression "(int *)(iVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) + (binary_expression "param_2 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);" (assignment_expression "piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4)" identifier = (cast_expression "(int *)(PTR_DAT_0018f948 + -0x2ee4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018f948 + -0x2ee4)" ( (binary_expression "PTR_DAT_0018f948 + -0x2ee4" identifier + number_literal) )))) ;) (expression_statement "piVar15 = local_3c;" (assignment_expression "piVar15 = local_3c" identifier = identifier) ;) (expression_statement "puVar12 = local_30;" (assignment_expression "puVar12 = local_30" identifier = identifier) ;) (expression_statement "piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);" (assignment_expression "piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc)" identifier = (cast_expression "(int *)(PTR_DAT_0018f948 + -0x2ecc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018f948 + -0x2ecc)" ( (binary_expression "PTR_DAT_0018f948 + -0x2ecc" identifier + number_literal) )))) ;) (expression_statement "pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);" (assignment_expression "pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0)" identifier = (cast_expression "(code *)(PTR_LAB_0018fbbc + -0x6fc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + -0x6fc0)" ( (binary_expression "PTR_LAB_0018fbbc + -0x6fc0" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);" (assignment_expression "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4)" identifier = (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x54f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018fc24 + 0x54f4)" ( (binary_expression "PTR_DAT_0018fc24 + 0x54f4" identifier + number_literal) )))) ;) (expression_statement "pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);" (assignment_expression "pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8)" identifier = (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x5af8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018fc24 + 0x5af8)" ( (binary_expression "PTR_DAT_0018fc24 + 0x5af8" identifier + number_literal) )))) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac)" identifier = (cast_expression "(code *)(PTR_LAB_0018fcd0 + 0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fcd0 + 0x37ac)" ( (binary_expression "PTR_LAB_0018fcd0 + 0x37ac" identifier + number_literal) )))) ;) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" identifier = identifier) ;) (expression_statement "piVar10 = piVar15;" (assignment_expression "piVar10 = piVar15" identifier = identifier) ;) (do_statement "do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);" do (compound_statement "{\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    }" { (expression_statement "iVar9 = *piVar7;" (assignment_expression "iVar9 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);" (assignment_expression "iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14)" identifier = (call_expression "(*pcVar2)(iVar18,iVar9,*puVar14)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(iVar18,iVar9,*puVar14)" ( identifier , identifier , (pointer_expression "*puVar14" * identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }" { (if_statement "if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }" if (parenthesized_expression "(piVar7[1] != 0)" ( (binary_expression "piVar7[1] != 0" (subscript_expression "piVar7[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }" { (expression_statement "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);" (call_expression "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1])" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1])" ( identifier , (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064" identifier + number_literal) , (pointer_expression "*puVar14" * identifier) , identifier , (subscript_expression "piVar7[1]" identifier [ number_literal ]) ))) ;) (expression_statement "*piVar10 = param_1[0x17];" (assignment_expression "*piVar10 = param_1[0x17]" (pointer_expression "*piVar10" * identifier) = (subscript_expression "param_1[0x17]" identifier [ number_literal ])) ;) (expression_statement "*puVar12 = 0x10;" (assignment_expression "*puVar12 = 0x10" (pointer_expression "*puVar12" * identifier) = number_literal) ;) })) }) (else_clause "else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }" else (compound_statement "{\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }" { (expression_statement "iVar6 = *(int *)(iVar6 + 0x1c);" (assignment_expression "iVar6 = *(int *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x1c)" * (cast_expression "(int *)(iVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*piVar10 = iVar6;" (assignment_expression "*piVar10 = iVar6" (pointer_expression "*piVar10" * identifier) = identifier) ;) (expression_statement "*puVar12 = 0;" (assignment_expression "*puVar12 = 0" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "(*pcVar3)(param_1,param_2,iVar6,1,iVar9);" (call_expression "(*pcVar3)(param_1,param_2,iVar6,1,iVar9)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(param_1,param_2,iVar6,1,iVar9)" ( identifier , identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }" { (if_statement "if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }" if (parenthesized_expression "(*(int *)(iVar18 + 0xf0) == 0)" ( (binary_expression "*(int *)(iVar18 + 0xf0) == 0" (pointer_expression "*(int *)(iVar18 + 0xf0)" * (cast_expression "(int *)(iVar18 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xf0)" ( (binary_expression "iVar18 + 0xf0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }" { (expression_statement "(*pcVar4)(piVar1,0x89,iVar6,param_2);" (call_expression "(*pcVar4)(piVar1,0x89,iVar6,param_2)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar1,0x89,iVar6,param_2)" ( identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }" else (compound_statement "{\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }" { (expression_statement "(*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);" (call_expression "(*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(param_1,puVar17 + -0x104c,*puVar14,iVar9)" ( identifier , (binary_expression "puVar17 + -0x104c" identifier + number_literal) , (pointer_expression "*puVar14" * identifier) , identifier ))) ;) }))) }) (else_clause "else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }" else (compound_statement "{\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }" { (expression_statement "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);" (call_expression "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4)" ( identifier , (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524" identifier + number_literal) , (pointer_expression "*puVar14" * identifier) , identifier , identifier , identifier ))) ;) }))) }))) (expression_statement "piVar7 = piVar7 + 2;" (assignment_expression "piVar7 = piVar7 + 2" identifier = (binary_expression "piVar7 + 2" identifier + number_literal)) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar7 != piVar16)" ( (binary_expression "piVar7 != piVar16" identifier != identifier) )) ;) (expression_statement "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);" (assignment_expression "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4)" identifier = (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x5dc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018fc24 + 0x5dc4)" ( (binary_expression "PTR_DAT_0018fc24 + 0x5dc4" identifier + number_literal) )))) ;) (expression_statement "pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c)" identifier = (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x615c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x615c)" ( (binary_expression "PTR_LAB_0018fb58 + 0x615c" identifier + number_literal) )))) ;) (expression_statement "pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);" (assignment_expression "pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98)" identifier = (cast_expression "(code *)(PTR_LAB_0018fc8c + -0x7c98)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc8c + -0x7c98)" ( (binary_expression "PTR_LAB_0018fc8c + -0x7c98" identifier + number_literal) )))) ;) (expression_statement "iVar18 = param_3;" (assignment_expression "iVar18 = param_3" identifier = identifier) ;) (do_statement "do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);" do (compound_statement "{\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    }" { (expression_statement "(*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);" (call_expression "(*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(piVar1,0x6e,iVar18,*piVar15,param_2,3)" ( identifier , number_literal , identifier , (pointer_expression "*piVar15" * identifier) , identifier , number_literal ))) ;) (expression_statement "(*pcVar4)(piVar1,local_30[iVar18 - param_3]);" (call_expression "(*pcVar4)(piVar1,local_30[iVar18 - param_3])" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar1,local_30[iVar18 - param_3])" ( identifier , (subscript_expression "local_30[iVar18 - param_3]" identifier [ (binary_expression "iVar18 - param_3" identifier - identifier) ]) ))) ;) (expression_statement "iVar6 = *piVar8;" (assignment_expression "iVar6 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "piVar7 = piVar1;" (assignment_expression "piVar7 = piVar1" identifier = identifier) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" identifier = (binary_expression "piVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "piVar10 = piVar8 + 3;" (assignment_expression "piVar10 = piVar8 + 3" identifier = (binary_expression "piVar8 + 3" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar8 + 2;" (assignment_expression "piVar8 = piVar8 + 2" identifier = (binary_expression "piVar8 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar10 != 0)" ( (binary_expression "*piVar10 != 0" (pointer_expression "*piVar10" * identifier) != number_literal) )) ;) })) (if_statement "if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }" if (parenthesized_expression "(local_2c != *(int *)PTR___stack_chk_guard_0018fecc)" ( (binary_expression "local_2c != *(int *)PTR___stack_chk_guard_0018fecc" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }" { (expression_statement "puVar17 = PTR___stack_chk_fail_0018fea0;" (assignment_expression "puVar17 = PTR___stack_chk_fail_0018fea0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0018fea0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" * (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);" (assignment_expression "iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" ( (binary_expression "*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc" (binary_expression "*(int *)(*piVar7 + 0x10) + iVar6 * 0x10" (pointer_expression "*(int *)(*piVar7 + 0x10)" * (cast_expression "(int *)(*piVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + 0x10)" ( (binary_expression "*piVar7 + 0x10" (pointer_expression "*piVar7" * identifier) + number_literal) )))) + (binary_expression "iVar6 * 0x10" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "(*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();" (call_expression "(*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))()" (parenthesized_expression "(*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))" ( (pointer_expression "*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc)" * (cast_expression "(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x68754) + -0x63dc)" ( (binary_expression "*(int *)(puVar17 + 0x68754) + -0x63dc" (pointer_expression "*(int *)(puVar17 + 0x68754)" * (cast_expression "(int *)(puVar17 + 0x68754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x68754)" ( (binary_expression "puVar17 + 0x68754" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = piVar7[10];" (assignment_expression "iVar9 = piVar7[10]" identifier = (subscript_expression "piVar7[10]" identifier [ number_literal ])) ;) (expression_statement "piVar7[10] = iVar9 + 3;" (assignment_expression "piVar7[10] = iVar9 + 3" (subscript_expression "piVar7[10]" identifier [ number_literal ]) = (binary_expression "iVar9 + 3" identifier + number_literal)) ;) (expression_statement "FUN_00127160(piVar7,iVar6,iVar9,0,0);" (call_expression "FUN_00127160(piVar7,iVar6,iVar9,0,0)" identifier (argument_list "(piVar7,iVar6,iVar9,0,0)" ( identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "iVar11 = piVar7[0xb];" (assignment_expression "iVar11 = piVar7[0xb]" identifier = (subscript_expression "piVar7[0xb]" identifier [ number_literal ])) ;) (expression_statement "piVar1 = *(int **)(iVar18 + 0x10);" (assignment_expression "piVar1 = *(int **)(iVar18 + 0x10)" identifier = (pointer_expression "*(int **)(iVar18 + 0x10)" * (cast_expression "(int **)(iVar18 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = piVar7[10];" (assignment_expression "iVar18 = piVar7[10]" identifier = (subscript_expression "piVar7[10]" identifier [ number_literal ])) ;) (if_statement "if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }" { (expression_statement "iVar13 = *(int *)(puVar17 + 0x68808);" (assignment_expression "iVar13 = *(int *)(puVar17 + 0x68808)" identifier = (pointer_expression "*(int *)(puVar17 + 0x68808)" * (cast_expression "(int *)(puVar17 + 0x68808)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x68808)" ( (binary_expression "puVar17 + 0x68808" identifier + number_literal) ))))) ;) (do_statement "do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);" do (compound_statement "{\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      }" { (expression_statement "(*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);" (call_expression "(*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18)" (parenthesized_expression "(*(code *)(iVar13 + -0x5a9c))" ( (pointer_expression "*(code *)(iVar13 + -0x5a9c)" * (cast_expression "(code *)(iVar13 + -0x5a9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + -0x5a9c)" ( (binary_expression "iVar13 + -0x5a9c" identifier + number_literal) )))) )) (argument_list "(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18)" ( identifier , (subscript_expression "piVar1[2]" identifier [ number_literal ]) , number_literal , identifier , (binary_expression "iVar11 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "piVar1 = (int *)*piVar1;" (assignment_expression "piVar1 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) }) while (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);" (assignment_expression "iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7)" identifier = (call_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7)" (parenthesized_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))" ( (pointer_expression "*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c)" * (cast_expression "(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x687a0) + 0x5c1c)" ( (binary_expression "*(int *)(puVar17 + 0x687a0) + 0x5c1c" (pointer_expression "*(int *)(puVar17 + 0x687a0)" * (cast_expression "(int *)(puVar17 + 0x687a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x687a0)" ( (binary_expression "puVar17 + 0x687a0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(piVar7)" ( identifier )))) ;) (if_statement "if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }" { (expression_statement "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);" (call_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6)" (parenthesized_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))" ( (pointer_expression "*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0)" * (cast_expression "(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x687a0) + 0x67d0)" ( (binary_expression "*(int *)(puVar17 + 0x687a0) + 0x67d0" (pointer_expression "*(int *)(puVar17 + 0x687a0)" * (cast_expression "(int *)(puVar17 + 0x687a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x687a0)" ( (binary_expression "puVar17 + 0x687a0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar18,0x8f,iVar6)" ( identifier , number_literal , identifier ))) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , IDENT , IDENT , IDENT ))) ;) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * IDENT) , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (subscript_expression IDENT [ (binary_expression IDENT - IDENT) ]) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , LIT , IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT ))) ;) })) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_00127160(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  int *piVar1;\n  code *pcVar2;\n  code *pcVar3;\n  code *pcVar4;\n  code *pcVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined *puVar17;\n  int iVar18;\n  int local_3c [3];\n  undefined1 local_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  iVar18 = *param_1;\n  piVar7 = param_1;\n  iVar6 = param_2;\n  piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();\n  puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;\n  if (piVar1 != (int *)0x0) {\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }\n  if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00127160(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)" (identifier "FUN_00127160") (parameter_list "(int *param_1,int param_2,int param_3,int param_4,undefined4 param_5)" (( "(") (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 "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")"))) (compound_statement "{\n  int *piVar1;\n  code *pcVar2;\n  code *pcVar3;\n  code *pcVar4;\n  code *pcVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined *puVar17;\n  int iVar18;\n  int local_3c [3];\n  undefined1 local_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  iVar18 = *param_1;\n  piVar7 = param_1;\n  iVar6 = param_2;\n  piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();\n  puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;\n  if (piVar1 != (int *)0x0) {\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }\n  if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "code *pcVar5;" (type_identifier "code") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (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 "undefined1 *puVar12;" (type_identifier "undefined1") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "undefined *puVar17;" (type_identifier "undefined") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int local_3c [3];" (primitive_type "int") (array_declarator "local_3c [3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined1 local_30 [4];" (type_identifier "undefined1") (array_declarator "local_30 [4]" (identifier "local_30") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0018fecc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0018fecc" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0018fecc")))) (; ";")) (expression_statement "iVar18 = *param_1;" (assignment_expression "iVar18 = *param_1" (identifier "iVar18") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "piVar7 = param_1;" (assignment_expression "piVar7 = param_1" (identifier "piVar7") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar6 = param_2;" (assignment_expression "iVar6 = param_2" (identifier "iVar6") (= "=") (identifier "param_2")) (; ";")) (expression_statement "piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();" (assignment_expression "piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))()" (identifier "piVar1") (= "=") (cast_expression "(int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))()" (parenthesized_expression "(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))" (( "(") (pointer_expression "*(code *)(PTR_DAT_0018fc24 + 0x5c1c)" (* "*") (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x5c1c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0018fc24 + 0x5c1c)" (( "(") (binary_expression "PTR_DAT_0018fc24 + 0x5c1c" (identifier "PTR_DAT_0018fc24") (+ "+") (number_literal "0x5c1c")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;" (assignment_expression "puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c" (identifier "puVar17") (= "=") (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c")) (; ";")) (if_statement "if (piVar1 != (int *)0x0) {\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }" (if "if") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);\n    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);\n    piVar15 = local_3c;\n    puVar12 = local_30;\n    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);\n    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);\n    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);\n    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);\n    piVar7 = piVar8;\n    piVar10 = piVar15;\n    do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);\n    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);\n    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);\n    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);\n    iVar18 = param_3;\n    do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);\n  }" ({ "{") (expression_statement "puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);" (assignment_expression "puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10)" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0x10) + param_2 * 0x10)" (( "(") (binary_expression "*(int *)(iVar18 + 0x10) + param_2 * 0x10" (pointer_expression "*(int *)(iVar18 + 0x10)" (* "*") (cast_expression "(int *)(iVar18 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x10)" (( "(") (binary_expression "iVar18 + 0x10" (identifier "iVar18") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "param_2 * 0x10" (identifier "param_2") (* "*") (number_literal "0x10"))) () ")")))) (; ";")) (expression_statement "piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);" (assignment_expression "piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4)" (identifier "piVar8") (= "=") (cast_expression "(int *)(PTR_DAT_0018f948 + -0x2ee4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0018f948 + -0x2ee4)" (( "(") (binary_expression "PTR_DAT_0018f948 + -0x2ee4" (identifier "PTR_DAT_0018f948") (+ "+") (number_literal "-0x2ee4")) () ")")))) (; ";")) (expression_statement "piVar15 = local_3c;" (assignment_expression "piVar15 = local_3c" (identifier "piVar15") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar12 = local_30;" (assignment_expression "puVar12 = local_30" (identifier "puVar12") (= "=") (identifier "local_30")) (; ";")) (expression_statement "piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);" (assignment_expression "piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc)" (identifier "piVar16") (= "=") (cast_expression "(int *)(PTR_DAT_0018f948 + -0x2ecc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0018f948 + -0x2ecc)" (( "(") (binary_expression "PTR_DAT_0018f948 + -0x2ecc" (identifier "PTR_DAT_0018f948") (+ "+") (number_literal "-0x2ecc")) () ")")))) (; ";")) (expression_statement "pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);" (assignment_expression "pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0)" (identifier "pcVar2") (= "=") (cast_expression "(code *)(PTR_LAB_0018fbbc + -0x6fc0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbbc + -0x6fc0)" (( "(") (binary_expression "PTR_LAB_0018fbbc + -0x6fc0" (identifier "PTR_LAB_0018fbbc") (+ "+") (number_literal "-0x6fc0")) () ")")))) (; ";")) (expression_statement "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);" (assignment_expression "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4)" (identifier "pcVar3") (= "=") (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x54f4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0018fc24 + 0x54f4)" (( "(") (binary_expression "PTR_DAT_0018fc24 + 0x54f4" (identifier "PTR_DAT_0018fc24") (+ "+") (number_literal "0x54f4")) () ")")))) (; ";")) (expression_statement "pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);" (assignment_expression "pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8)" (identifier "pcVar4") (= "=") (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x5af8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0018fc24 + 0x5af8)" (( "(") (binary_expression "PTR_DAT_0018fc24 + 0x5af8" (identifier "PTR_DAT_0018fc24") (+ "+") (number_literal "0x5af8")) () ")")))) (; ";")) (expression_statement "pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac)" (identifier "pcVar5") (= "=") (cast_expression "(code *)(PTR_LAB_0018fcd0 + 0x37ac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fcd0 + 0x37ac)" (( "(") (binary_expression "PTR_LAB_0018fcd0 + 0x37ac" (identifier "PTR_LAB_0018fcd0") (+ "+") (number_literal "0x37ac")) () ")")))) (; ";")) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" (identifier "piVar7") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "piVar10 = piVar15;" (assignment_expression "piVar10 = piVar15" (identifier "piVar10") (= "=") (identifier "piVar15")) (; ";")) (do_statement "do {\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    } while (piVar7 != piVar16);" (do "do") (compound_statement "{\n      iVar9 = *piVar7;\n      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);\n      if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }\n      piVar7 = piVar7 + 2;\n      piVar10 = piVar10 + 1;\n      puVar12 = puVar12 + 1;\n    }" ({ "{") (expression_statement "iVar9 = *piVar7;" (assignment_expression "iVar9 = *piVar7" (identifier "iVar9") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);" (assignment_expression "iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14)" (identifier "iVar6") (= "=") (call_expression "(*pcVar2)(iVar18,iVar9,*puVar14)" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "(iVar18,iVar9,*puVar14)" (( "(") (identifier "iVar18") (, ",") (identifier "iVar9") (, ",") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }\n      else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }\n      }" ({ "{") (if_statement "if (piVar7[1] != 0) {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }" (if "if") (parenthesized_expression "(piVar7[1] != 0)" (( "(") (binary_expression "piVar7[1] != 0" (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);\n          *piVar10 = param_1[0x17];\n          *puVar12 = 0x10;\n        }" ({ "{") (expression_statement "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1]);" (call_expression "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1])" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9\n                    ,piVar7[1])" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (number_literal "-0x1064")) (, ",") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (, ",") (identifier "iVar9") (, ",") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "*piVar10 = param_1[0x17];" (assignment_expression "*piVar10 = param_1[0x17]" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (subscript_expression "param_1[0x17]" (identifier "param_1") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "*puVar12 = 0x10;" (assignment_expression "*puVar12 = 0x10" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (number_literal "0x10")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }" (else "else") (compound_statement "{\n        iVar6 = *(int *)(iVar6 + 0x1c);\n        *piVar10 = iVar6;\n        *puVar12 = 0;\n        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);\n        if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }\n      }" ({ "{") (expression_statement "iVar6 = *(int *)(iVar6 + 0x1c);" (assignment_expression "iVar6 = *(int *)(iVar6 + 0x1c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar6 + 0x1c)" (* "*") (cast_expression "(int *)(iVar6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*piVar10 = iVar6;" (assignment_expression "*piVar10 = iVar6" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*puVar12 = 0;" (assignment_expression "*puVar12 = 0" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*pcVar3)(param_1,param_2,iVar6,1,iVar9);" (call_expression "(*pcVar3)(param_1,param_2,iVar6,1,iVar9)" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "(param_1,param_2,iVar6,1,iVar9)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "iVar6") (, ",") (number_literal "1") (, ",") (identifier "iVar9") () ")"))) (; ";")) (if_statement "if (param_4 == 0) {\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }\n        else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }\n        }" ({ "{") (if_statement "if (*(int *)(iVar18 + 0xf0) == 0) {\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }\n          else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar18 + 0xf0) == 0)" (( "(") (binary_expression "*(int *)(iVar18 + 0xf0) == 0" (pointer_expression "*(int *)(iVar18 + 0xf0)" (* "*") (cast_expression "(int *)(iVar18 + 0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xf0)" (( "(") (binary_expression "iVar18 + 0xf0" (identifier "iVar18") (+ "+") (number_literal "0xf0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            (*pcVar4)(piVar1,0x89,iVar6,param_2);\n          }" ({ "{") (expression_statement "(*pcVar4)(piVar1,0x89,iVar6,param_2);" (call_expression "(*pcVar4)(piVar1,0x89,iVar6,param_2)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar1,0x89,iVar6,param_2)" (( "(") (identifier "piVar1") (, ",") (number_literal "0x89") (, ",") (identifier "iVar6") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }" (else "else") (compound_statement "{\n            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);\n          }" ({ "{") (expression_statement "(*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);" (call_expression "(*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9)" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "(param_1,puVar17 + -0x104c,*puVar14,iVar9)" (( "(") (identifier "param_1") (, ",") (binary_expression "puVar17 + -0x104c" (identifier "puVar17") (+ "+") (number_literal "-0x104c")) (, ",") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (, ",") (identifier "iVar9") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }" (else "else") (compound_statement "{\n          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);\n        }" ({ "{") (expression_statement "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4);" (call_expression "(*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4)" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9\n                    ,param_5,param_4)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (number_literal "-0x1524")) (, ",") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (, ",") (identifier "iVar9") (, ",") (identifier "param_5") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "piVar7 = piVar7 + 2;" (assignment_expression "piVar7 = piVar7 + 2" (identifier "piVar7") (= "=") (binary_expression "piVar7 + 2" (identifier "piVar7") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" (identifier "piVar10") (= "=") (binary_expression "piVar10 + 1" (identifier "piVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar7 != piVar16)" (( "(") (binary_expression "piVar7 != piVar16" (identifier "piVar7") (!= "!=") (identifier "piVar16")) () ")")) (; ";")) (expression_statement "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);" (assignment_expression "pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4)" (identifier "pcVar3") (= "=") (cast_expression "(code *)(PTR_DAT_0018fc24 + 0x5dc4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0018fc24 + 0x5dc4)" (( "(") (binary_expression "PTR_DAT_0018fc24 + 0x5dc4" (identifier "PTR_DAT_0018fc24") (+ "+") (number_literal "0x5dc4")) () ")")))) (; ";")) (expression_statement "pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c)" (identifier "pcVar4") (= "=") (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x615c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fb58 + 0x615c)" (( "(") (binary_expression "PTR_LAB_0018fb58 + 0x615c" (identifier "PTR_LAB_0018fb58") (+ "+") (number_literal "0x615c")) () ")")))) (; ";")) (expression_statement "pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);" (assignment_expression "pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98)" (identifier "pcVar2") (= "=") (cast_expression "(code *)(PTR_LAB_0018fc8c + -0x7c98)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fc8c + -0x7c98)" (( "(") (binary_expression "PTR_LAB_0018fc8c + -0x7c98" (identifier "PTR_LAB_0018fc8c") (+ "+") (number_literal "-0x7c98")) () ")")))) (; ";")) (expression_statement "iVar18 = param_3;" (assignment_expression "iVar18 = param_3" (identifier "iVar18") (= "=") (identifier "param_3")) (; ";")) (do_statement "do {\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    } while (*piVar10 != 0);" (do "do") (compound_statement "{\n      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);\n      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);\n      iVar6 = *piVar8;\n      piVar7 = piVar1;\n      (*pcVar2)();\n      piVar15 = piVar15 + 1;\n      iVar18 = iVar18 + 1;\n      piVar10 = piVar8 + 3;\n      piVar8 = piVar8 + 2;\n    }" ({ "{") (expression_statement "(*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);" (call_expression "(*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3)" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "(piVar1,0x6e,iVar18,*piVar15,param_2,3)" (( "(") (identifier "piVar1") (, ",") (number_literal "0x6e") (, ",") (identifier "iVar18") (, ",") (pointer_expression "*piVar15" (* "*") (identifier "piVar15")) (, ",") (identifier "param_2") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "(*pcVar4)(piVar1,local_30[iVar18 - param_3]);" (call_expression "(*pcVar4)(piVar1,local_30[iVar18 - param_3])" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar1,local_30[iVar18 - param_3])" (( "(") (identifier "piVar1") (, ",") (subscript_expression "local_30[iVar18 - param_3]" (identifier "local_30") ([ "[") (binary_expression "iVar18 - param_3" (identifier "iVar18") (- "-") (identifier "param_3")) (] "]")) () ")"))) (; ";")) (expression_statement "iVar6 = *piVar8;" (assignment_expression "iVar6 = *piVar8" (identifier "iVar6") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (expression_statement "piVar7 = piVar1;" (assignment_expression "piVar7 = piVar1" (identifier "piVar7") (= "=") (identifier "piVar1")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" (identifier "piVar15") (= "=") (binary_expression "piVar15 + 1" (identifier "piVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar10 = piVar8 + 3;" (assignment_expression "piVar10 = piVar8 + 3" (identifier "piVar10") (= "=") (binary_expression "piVar8 + 3" (identifier "piVar8") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "piVar8 = piVar8 + 2;" (assignment_expression "piVar8 = piVar8 + 2" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 2" (identifier "piVar8") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar10 != 0)" (( "(") (binary_expression "*piVar10 != 0" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (if_statement "if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(local_2c != *(int *)PTR___stack_chk_guard_0018fecc)" (( "(") (binary_expression "local_2c != *(int *)PTR___stack_chk_guard_0018fecc" (identifier "local_2c") (!= "!=") (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0018fecc")))) () ")")) (compound_statement "{\n    puVar17 = PTR___stack_chk_fail_0018fea0;\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);\n    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();\n    iVar9 = piVar7[10];\n    piVar7[10] = iVar9 + 3;\n    FUN_00127160(piVar7,iVar6,iVar9,0,0);\n    iVar11 = piVar7[0xb];\n    piVar1 = *(int **)(iVar18 + 0x10);\n    iVar18 = piVar7[10];\n    if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }\n    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);\n    if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }\n    return;\n  }" ({ "{") (expression_statement "puVar17 = PTR___stack_chk_fail_0018fea0;" (assignment_expression "puVar17 = PTR___stack_chk_fail_0018fea0" (identifier "puVar17") (= "=") (identifier "PTR___stack_chk_fail_0018fea0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0018fea0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0018fea0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);" (assignment_expression "iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc)" (( "(") (binary_expression "*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc" (binary_expression "*(int *)(*piVar7 + 0x10) + iVar6 * 0x10" (pointer_expression "*(int *)(*piVar7 + 0x10)" (* "*") (cast_expression "(int *)(*piVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar7 + 0x10)" (( "(") (binary_expression "*piVar7 + 0x10" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "iVar6 * 0x10" (identifier "iVar6") (* "*") (number_literal "0x10"))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "(*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();" (call_expression "(*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))()" (parenthesized_expression "(*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc)" (* "*") (cast_expression "(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar17 + 0x68754) + -0x63dc)" (( "(") (binary_expression "*(int *)(puVar17 + 0x68754) + -0x63dc" (pointer_expression "*(int *)(puVar17 + 0x68754)" (* "*") (cast_expression "(int *)(puVar17 + 0x68754)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x68754)" (( "(") (binary_expression "puVar17 + 0x68754" (identifier "puVar17") (+ "+") (number_literal "0x68754")) () ")")))) (+ "+") (number_literal "-0x63dc")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar9 = piVar7[10];" (assignment_expression "iVar9 = piVar7[10]" (identifier "iVar9") (= "=") (subscript_expression "piVar7[10]" (identifier "piVar7") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "piVar7[10] = iVar9 + 3;" (assignment_expression "piVar7[10] = iVar9 + 3" (subscript_expression "piVar7[10]" (identifier "piVar7") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "iVar9 + 3" (identifier "iVar9") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "FUN_00127160(piVar7,iVar6,iVar9,0,0);" (call_expression "FUN_00127160(piVar7,iVar6,iVar9,0,0)" (identifier "FUN_00127160") (argument_list "(piVar7,iVar6,iVar9,0,0)" (( "(") (identifier "piVar7") (, ",") (identifier "iVar6") (, ",") (identifier "iVar9") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar11 = piVar7[0xb];" (assignment_expression "iVar11 = piVar7[0xb]" (identifier "iVar11") (= "=") (subscript_expression "piVar7[0xb]" (identifier "piVar7") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "piVar1 = *(int **)(iVar18 + 0x10);" (assignment_expression "piVar1 = *(int **)(iVar18 + 0x10)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(iVar18 + 0x10)" (* "*") (cast_expression "(int **)(iVar18 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 0x10)" (( "(") (binary_expression "iVar18 + 0x10" (identifier "iVar18") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar18 = piVar7[10];" (assignment_expression "iVar18 = piVar7[10]" (identifier "iVar18") (= "=") (subscript_expression "piVar7[10]" (identifier "piVar7") ([ "[") (number_literal "10") (] "]"))) (; ";")) (if_statement "if (piVar1 != (int *)0x0) {\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }" (if "if") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar13 = *(int *)(puVar17 + 0x68808);\n      do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);\n    }" ({ "{") (expression_statement "iVar13 = *(int *)(puVar17 + 0x68808);" (assignment_expression "iVar13 = *(int *)(puVar17 + 0x68808)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar17 + 0x68808)" (* "*") (cast_expression "(int *)(puVar17 + 0x68808)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x68808)" (( "(") (binary_expression "puVar17 + 0x68808" (identifier "puVar17") (+ "+") (number_literal "0x68808")) () ")"))))) (; ";")) (do_statement "do {\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      } while (piVar1 != (int *)0x0);" (do "do") (compound_statement "{\n        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);\n        piVar1 = (int *)*piVar1;\n      }" ({ "{") (expression_statement "(*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);" (call_expression "(*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18)" (parenthesized_expression "(*(code *)(iVar13 + -0x5a9c))" (( "(") (pointer_expression "*(code *)(iVar13 + -0x5a9c)" (* "*") (cast_expression "(code *)(iVar13 + -0x5a9c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + -0x5a9c)" (( "(") (binary_expression "iVar13 + -0x5a9c" (identifier "iVar13") (+ "+") (number_literal "-0x5a9c")) () ")")))) () ")")) (argument_list "(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18)" (( "(") (identifier "piVar7") (, ",") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") (, ",") (identifier "iVar9") (, ",") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1")) (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "piVar1 = (int *)*piVar1;" (assignment_expression "piVar1 = (int *)*piVar1" (identifier "piVar1") (= "=") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);" (assignment_expression "iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7)" (identifier "iVar18") (= "=") (call_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7)" (parenthesized_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c)" (* "*") (cast_expression "(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar17 + 0x687a0) + 0x5c1c)" (( "(") (binary_expression "*(int *)(puVar17 + 0x687a0) + 0x5c1c" (pointer_expression "*(int *)(puVar17 + 0x687a0)" (* "*") (cast_expression "(int *)(puVar17 + 0x687a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x687a0)" (( "(") (binary_expression "puVar17 + 0x687a0" (identifier "puVar17") (+ "+") (number_literal "0x687a0")) () ")")))) (+ "+") (number_literal "0x5c1c")) () ")")))) () ")")) (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")")))) (; ";")) (if_statement "if (iVar18 != 0) {\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);\n    }" ({ "{") (expression_statement "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);" (call_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6)" (parenthesized_expression "(*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0)" (* "*") (cast_expression "(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar17 + 0x687a0) + 0x67d0)" (( "(") (binary_expression "*(int *)(puVar17 + 0x687a0) + 0x67d0" (pointer_expression "*(int *)(puVar17 + 0x687a0)" (* "*") (cast_expression "(int *)(puVar17 + 0x687a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x687a0)" (( "(") (binary_expression "puVar17 + 0x687a0" (identifier "puVar17") (+ "+") (number_literal "0x687a0")) () ")")))) (+ "+") (number_literal "0x67d0")) () ")")))) () ")")) (argument_list "(iVar18,0x8f,iVar6)" (( "(") (identifier "iVar18") (, ",") (number_literal "0x8f") (, ",") (identifier "iVar6") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (identifier))) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (identifier) (pointer_expression argument: (identifier)) (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (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)) value: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (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: (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: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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))))))) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) arguments: (argument_list (identifier) (number_literal) (identifier)))))) (return_statement))) (return_statement))))

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

{
  int *piVar1;
  code *pcVar2;
  code *pcVar3;
  code *pcVar4;
  code *pcVar5;
  int iVar6;
  int *piVar7;
  int *piVar8;
  int iVar9;
  int *piVar10;
  int iVar11;
  undefined1 *puVar12;
  int iVar13;
  undefined4 *puVar14;
  int *piVar15;
  int *piVar16;
  undefined *puVar17;
  int iVar18;
  int local_3c [3];
  undefined1 local_30 [4];
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;
  iVar18 = *param_1;
  piVar7 = param_1;
  iVar6 = param_2;
  piVar1 = (int *)(*(code *)(PTR_DAT_0018fc24 + 0x5c1c))();
  puVar17 = PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c;
  if (piVar1 != (int *)0x0) {
    puVar14 = (undefined4 *)(*(int *)(iVar18 + 0x10) + param_2 * 0x10);
    piVar8 = (int *)(PTR_DAT_0018f948 + -0x2ee4);
    piVar15 = local_3c;
    puVar12 = local_30;
    piVar16 = (int *)(PTR_DAT_0018f948 + -0x2ecc);
    pcVar2 = (code *)(PTR_LAB_0018fbbc + -0x6fc0);
    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x54f4);
    pcVar4 = (code *)(PTR_DAT_0018fc24 + 0x5af8);
    pcVar5 = (code *)(PTR_LAB_0018fcd0 + 0x37ac);
    piVar7 = piVar8;
    piVar10 = piVar15;
    do {
      iVar9 = *piVar7;
      iVar6 = (*pcVar2)(iVar18,iVar9,*puVar14);
      if (iVar6 == 0) {
        if (piVar7[1] != 0) {
          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1064,*puVar14,iVar9
                    ,piVar7[1]);
          *piVar10 = param_1[0x17];
          *puVar12 = 0x10;
        }
      }
      else {
        iVar6 = *(int *)(iVar6 + 0x1c);
        *piVar10 = iVar6;
        *puVar12 = 0;
        (*pcVar3)(param_1,param_2,iVar6,1,iVar9);
        if (param_4 == 0) {
          if (*(int *)(iVar18 + 0xf0) == 0) {
            (*pcVar4)(piVar1,0x89,iVar6,param_2);
          }
          else {
            (*pcVar5)(param_1,puVar17 + -0x104c,*puVar14,iVar9);
          }
        }
        else {
          (*pcVar5)(param_1,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x1524,*puVar14,iVar9
                    ,param_5,param_4);
        }
      }
      piVar7 = piVar7 + 2;
      piVar10 = piVar10 + 1;
      puVar12 = puVar12 + 1;
    } while (piVar7 != piVar16);
    pcVar3 = (code *)(PTR_DAT_0018fc24 + 0x5dc4);
    pcVar4 = (code *)(PTR_LAB_0018fb58 + 0x615c);
    pcVar2 = (code *)(PTR_LAB_0018fc8c + -0x7c98);
    iVar18 = param_3;
    do {
      (*pcVar3)(piVar1,0x6e,iVar18,*piVar15,param_2,3);
      (*pcVar4)(piVar1,local_30[iVar18 - param_3]);
      iVar6 = *piVar8;
      piVar7 = piVar1;
      (*pcVar2)();
      piVar15 = piVar15 + 1;
      iVar18 = iVar18 + 1;
      piVar10 = piVar8 + 3;
      piVar8 = piVar8 + 2;
    } while (*piVar10 != 0);
  }
  if (local_2c != *(int *)PTR___stack_chk_guard_0018fecc) {
    puVar17 = PTR___stack_chk_fail_0018fea0;
    (*(code *)PTR___stack_chk_fail_0018fea0)();
    iVar18 = *(int *)(*(int *)(*piVar7 + 0x10) + iVar6 * 0x10 + 0xc);
    (*(code *)(*(int *)(puVar17 + 0x68754) + -0x63dc))();
    iVar9 = piVar7[10];
    piVar7[10] = iVar9 + 3;
    MASKED(piVar7,iVar6,iVar9,0,0);
    iVar11 = piVar7[0xb];
    piVar1 = *(int **)(iVar18 + 0x10);
    iVar18 = piVar7[10];
    if (piVar1 != (int *)0x0) {
      iVar13 = *(int *)(puVar17 + 0x68808);
      do {
        (*(code *)(iVar13 + -0x5a9c))(piVar7,piVar1[2],0,iVar9,iVar11 + 1,iVar18);
        piVar1 = (int *)*piVar1;
      } while (piVar1 != (int *)0x0);
    }
    iVar18 = (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x5c1c))(piVar7);
    if (iVar18 != 0) {
      (*(code *)(*(int *)(puVar17 + 0x687a0) + 0x67d0))(iVar18,0x8f,iVar6);
    }
    return;
  }
  return;
}

