
void sqlite3ComputeGeneratedColumns(Parse *pParse,int iRegStore,Table *pTab)

{
  ushort uVar1;
  bool bVar2;
  int iVar3;
  code *pcVar4;
  char *pcVar5;
  int iVar6;
  int iVar7;
  Column *pCVar8;
  int iVar9;
  Column *pCVar10;
  Column *pCVar11;
  code *pcVar12;
  code *pcVar13;
  Walker w;
  
  iVar3 = *(int *)PTR___stack_chk_guard_000f6564;
  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(pParse->pVdbe,pTab,iRegStore);
  if ((pTab->tabFlags & 0x40) != 0) goto LAB_00093b60;
  do {
    for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {
      uVar1 = pTab->aCol[iVar9].colFlags;
      if ((uVar1 & 0x60) != 0) {
        pTab->aCol[iVar9].colFlags = uVar1 | 0x80;
      }
    }
    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f62d8 + -0x830);
    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;
    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;
    pParse->iSelfTab = -iRegStore;
    pcVar13 = (code *)(PTR_LAB_000f62d8 + -0x39e0);
    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x10ac);
    pcVar4 = (code *)(PTR_LAB_000f62f4 + 0x35d4);
    w.u.pTab = pTab;
    do {
      bVar2 = false;
      pCVar10 = (Column *)0x0;
      for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {
        pCVar8 = pTab->aCol + iVar9;
        pCVar11 = pCVar10;
        if ((pCVar8->colFlags & 0x80) != 0) {
          pCVar8->colFlags = pCVar8->colFlags | 0x100;
          w.eCode = 0;
          (*pcVar13)(&w,pCVar8->pDflt);
          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;
          pCVar11 = pCVar8;
          if ((w.eCode & 0x80) == 0) {
            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);
            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);
            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;
            bVar2 = true;
            pCVar11 = pCVar10;
          }
        }
        pCVar10 = pCVar11;
      }
      if (pCVar10 == (Column *)0x0) goto LAB_00093b3c;
    } while (bVar2);
    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))
              (pParse,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,pCVar10->zName);
LAB_00093b3c:
    pParse->iSelfTab = 0;
    if (iVar3 == *(int *)PTR___stack_chk_guard_000f6564) {
      return;
    }
    (*(code *)PTR___stack_chk_fail_000f653c)();
LAB_00093b60:
    pcVar5 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(pParse->pVdbe);
    iVar9 = 0;
    if (*pcVar5 == 'Z') {
      iVar7 = *(int *)(pcVar5 + 0x10);
      iVar6 = 0;
      while (*(char *)(iVar7 + iVar6) != '\0') {
        uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9);
        if ((uVar1 & 0x20) == 0) {
          if ((uVar1 & 0x40) != 0) {
            *(char *)(iVar7 + iVar6) = '@';
          }
          iVar6 = iVar6 + 1;
        }
        iVar9 = iVar9 + 0x14;
      }
    }
  } while( true );
}



void FUN_00093a18(int param_1,int param_2,int param_3)

{
  ushort uVar1;
  bool bVar2;
  code *pcVar3;
  char *pcVar4;
  int iVar5;
  int iVar6;
  undefined4 *puVar7;
  int iVar8;
  undefined4 *puVar9;
  undefined4 *puVar10;
  code *pcVar11;
  code *pcVar12;
  undefined1 auStack_48 [4];
  undefined *local_44;
  undefined4 local_40;
  undefined4 local_3c;
  ushort local_34;
  int local_30;
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_000f6564;
  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);
  if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;
  do {
    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {
      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);
      uVar1 = *(ushort *)(iVar5 + 0x10);
      if ((uVar1 & 0x60) != 0) {
        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;
      }
    }
    local_44 = PTR_LAB_000f62d8 + -0x830;
    local_40 = 0;
    local_3c = 0;
    *(int *)(param_1 + 0x34) = -param_2;
    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);
    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);
    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);
    local_30 = param_3;
    do {
      bVar2 = false;
      puVar9 = (undefined4 *)0x0;
      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {
        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));
        puVar10 = puVar9;
        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {
          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;
          local_34 = 0;
          (*pcVar12)(auStack_48,puVar7[1]);
          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;
          puVar10 = puVar7;
          if ((local_34 & 0x80) == 0) {
            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);
            (*pcVar3)(param_1,puVar7,iVar5 + param_2);
            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;
            bVar2 = true;
            puVar10 = puVar9;
          }
        }
        puVar9 = puVar10;
      }
      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;
    } while (bVar2);
    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))
              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);
LAB_00093b3c:
    *(undefined4 *)(param_1 + 0x34) = 0;
    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {
      return;
    }
    (*(code *)PTR___stack_chk_fail_000f653c)();
LAB_00093b60:
    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));
    iVar8 = 0;
    if (*pcVar4 == 'Z') {
      iVar6 = *(int *)(pcVar4 + 0x10);
      iVar5 = 0;
      while (*(char *)(iVar6 + iVar5) != '\0') {
        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);
        if ((uVar1 & 0x20) == 0) {
          if ((uVar1 & 0x40) != 0) {
            *(char *)(iVar6 + iVar5) = '@';
          }
          iVar5 = iVar5 + 1;
        }
        iVar8 = iVar8 + 0x14;
      }
    }
  } while( true );
}


lui gp,0x7
addiu gp,gp,-0x5778
addu gp,gp,t9
addiu sp,sp,-0x68
sw ra,0x64(sp)
sw s8,0x60(sp)
sw s7,0x5c(sp)
sw s6,0x58(sp)
sw s5,0x54(sp)
sw s4,0x50(sp)
sw s3,0x4c(sp)
sw s2,0x48(sp)
sw s1,0x44(sp)
sw s0,0x40(sp)
sw gp,0x10(sp)
or s2,a0,zero
or s7,a1,zero
or s1,a2,zero
lw v0,-0x7d3c(gp)
lw v0,0x0(v0)
sw v0,0x3c(sp)
or a2,a1,zero
or a1,s1,zero
lw a0,0x8(a0)
lw t9,-0x7fb8(gp)
addiu t9,t9,0x5258
jalr t9
_nop
lw gp,0x10(sp)
lw v0,0x24(s1)
andi v0,v0,0x40
bne v0,zero,0x00093b60
_li a1,-0x1
or v0,zero,zero
li a1,0x14
lh v1,0x2a(s1)
slt v1,v0,v1
bne v1,zero,0x00093bd4
_mul a0,v0,a1
sw s1,0x38(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x830
sw v0,0x24(sp)
sw zero,0x28(sp)
sw zero,0x2c(sp)
subu v0,zero,s7
sw v0,0x34(s2)
lw s6,-0x7fc8(gp)
addiu s6,s6,-0x39e0
lw s5,-0x7fc8(gp)
addiu s5,s5,-0x10ac
lw v0,-0x7fac(gp)
addiu v0,v0,0x35d4
sw v0,0x1c(sp)
or s8,zero,zero
or s4,zero,zero
or s3,zero,zero
lh v0,0x2a(s1)
slt v0,s3,v0
bne v0,zero,0x00093bf8
_li s0,0x14
beq s4,zero,0x00093b3c
_nop
bne s8,zero,0x00093af0
_or a0,s2,zero
lw a2,0x0(s4)
lw a1,-0x7fcc(gp)
addiu a1,a1,-0x5ff8
lw t9,-0x7fb0(gp)
addiu t9,t9,-0x2b28
jalr t9
_nop
lw gp,0x10(sp)
sw zero,0x34(s2)
lw v1,0x3c(sp)
lw v0,-0x7d3c(gp)
lw v0,0x0(v0)
beq v1,v0,0x00093ca0
_lw ra,0x64(sp)
lw t9,-0x7d64(gp)
jalr t9
_nop
lw a0,0x8(s2)
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x4aa8
jalr t9
_nop
lw gp,0x10(sp)
lbu a0,0x0(v0)
li v1,0x5a
bne a0,v1,0x00093a9c
_or a0,zero,zero
lw a3,0x10(v0)
or v1,zero,zero
li a2,0x40
addu a1,a3,v1
lb v0,0x0(a1)
beq v0,zero,0x00093aa0
_or v0,zero,zero
lw v0,0x4(s1)
addu v0,v0,a0
lhu v0,0x10(v0)
andi t0,v0,0x20
bne t0,zero,0x00093bcc
_andi v0,v0,0x40
beq v0,zero,0x00093bc8
_nop
sb a2,0x0(a1)
addiu v1,v1,0x1
b 0x00093b94
_addiu a0,a0,0x14
lw v1,0x4(s1)
addu v1,a0,v1
lhu a0,0x10(v1)
andi a2,a0,0x60
beq a2,zero,0x00093bf0
_ori a0,a0,0x80
sh a0,0x10(v1)
b 0x00093aa4
_addiu v0,v0,0x1
lw v0,0x4(s1)
mul v1,s3,s0
addu s0,v1,v0
lhu v0,0x10(s0)
andi v1,v0,0x80
beq v1,zero,0x00093c90
_ori v0,v0,0x100
sh v0,0x10(s0)
sh zero,0x34(sp)
lw a1,0x4(s0)
addiu a0,sp,0x20
or t9,s6,zero
jalr t9
_nop
lw gp,0x10(sp)
lhu v0,0x10(s0)
andi v0,v0,0xfeff
sh v0,0x10(s0)
lhu v0,0x34(sp)
andi v0,v0,0x80
bne v0,zero,0x00093c98
_or a0,s1,zero
seh a1,s3
or t9,s5,zero
jalr t9
_nop
lw gp,0x10(sp)
addu a2,v0,s7
or a1,s0,zero
or a0,s2,zero
lw t9,0x1c(sp)
jalr t9
_nop
lw gp,0x10(sp)
lhu v0,0x10(s0)
andi v0,v0,0xff7f
sh v0,0x10(s0)
li s8,0x1
b 0x00093afc
_addiu s3,s3,0x1
b 0x00093c90
_or s4,s0,zero
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
(translation_unit "void FUN_00093a18(int param_1,int param_2,int param_3)\n\n{\n  ushort uVar1;\n  bool bVar2;\n  code *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  undefined1 auStack_48 [4];\n  undefined *local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  ushort local_34;\n  int local_30;\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000f6564;\n  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);\n  if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;\n  do {\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "void FUN_00093a18(int param_1,int param_2,int param_3)\n\n{\n  ushort uVar1;\n  bool bVar2;\n  code *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  undefined1 auStack_48 [4];\n  undefined *local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  ushort local_34;\n  int local_30;\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000f6564;\n  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);\n  if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;\n  do {\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_00093a18(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  ushort uVar1;\n  bool bVar2;\n  code *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  undefined1 auStack_48 [4];\n  undefined *local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  ushort local_34;\n  int local_30;\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000f6564;\n  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);\n  if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;\n  do {\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  } while( true );\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined1 auStack_48 [4];" type_identifier (array_declarator "auStack_48 [4]" identifier [ number_literal ]) ;) (declaration "undefined *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "ushort local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000f6564;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000f6564" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f6564" * (cast_expression "(int *)PTR___stack_chk_guard_000f6564" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);" (call_expression "(*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_000f62e8 + 0x5258))" ( (pointer_expression "*(code *)(PTR_LAB_000f62e8 + 0x5258)" * (cast_expression "(code *)(PTR_LAB_000f62e8 + 0x5258)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62e8 + 0x5258)" ( (binary_expression "PTR_LAB_000f62e8 + 0x5258" identifier + number_literal) )))) )) (argument_list "(*(undefined4 *)(param_1 + 8),param_3,param_2)" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (if_statement "if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;" if (parenthesized_expression "((*(uint *)(param_3 + 0x24) & 0x40) != 0)" ( (binary_expression "(*(uint *)(param_3 + 0x24) & 0x40) != 0" (parenthesized_expression "(*(uint *)(param_3 + 0x24) & 0x40)" ( (binary_expression "*(uint *)(param_3 + 0x24) & 0x40" (pointer_expression "*(uint *)(param_3 + 0x24)" * (cast_expression "(uint *)(param_3 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00093b60;" goto statement_identifier ;)) (do_statement "do {\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  }" { (for_statement "for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }" for ( (assignment_expression "iVar8 = 0" identifier = number_literal) ; (binary_expression "iVar8 < *(short *)(param_3 + 0x2a)" identifier < (pointer_expression "*(short *)(param_3 + 0x2a)" * (cast_expression "(short *)(param_3 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2a)" ( (binary_expression "param_3 + 0x2a" identifier + number_literal) ))))) ; (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ) (compound_statement "{\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }" { (expression_statement "iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);" (assignment_expression "iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4)" identifier = (binary_expression "iVar8 * 0x14 + *(int *)(param_3 + 4)" (binary_expression "iVar8 * 0x14" identifier * number_literal) + (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = *(ushort *)(iVar5 + 0x10);" (assignment_expression "uVar1 = *(ushort *)(iVar5 + 0x10)" identifier = (pointer_expression "*(ushort *)(iVar5 + 0x10)" * (cast_expression "(ushort *)(iVar5 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }" if (parenthesized_expression "((uVar1 & 0x60) != 0)" ( (binary_expression "(uVar1 & 0x60) != 0" (parenthesized_expression "(uVar1 & 0x60)" ( (binary_expression "uVar1 & 0x60" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }" { (expression_statement "*(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;" (assignment_expression "*(ushort *)(iVar5 + 0x10) = uVar1 | 0x80" (pointer_expression "*(ushort *)(iVar5 + 0x10)" * (cast_expression "(ushort *)(iVar5 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x80" identifier | number_literal)) ;) })) })) (expression_statement "local_44 = PTR_LAB_000f62d8 + -0x830;" (assignment_expression "local_44 = PTR_LAB_000f62d8 + -0x830" identifier = (binary_expression "PTR_LAB_000f62d8 + -0x830" identifier + number_literal)) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x34) = -param_2;" (assignment_expression "*(int *)(param_1 + 0x34) = -param_2" (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = (unary_expression "-param_2" - identifier)) ;) (expression_statement "pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);" (assignment_expression "pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0)" identifier = (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x39e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62d8 + -0x39e0)" ( (binary_expression "PTR_LAB_000f62d8 + -0x39e0" identifier + number_literal) )))) ;) (expression_statement "pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac)" identifier = (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x10ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62d8 + -0x10ac)" ( (binary_expression "PTR_LAB_000f62d8 + -0x10ac" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);" (assignment_expression "pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4)" identifier = (cast_expression "(code *)(PTR_LAB_000f62f4 + 0x35d4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62f4 + 0x35d4)" ( (binary_expression "PTR_LAB_000f62f4 + 0x35d4" identifier + number_literal) )))) ;) (expression_statement "local_30 = param_3;" (assignment_expression "local_30 = param_3" identifier = identifier) ;) (do_statement "do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);" do (compound_statement "{\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "puVar9 = (undefined4 *)0x0;" (assignment_expression "puVar9 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }" for ( (assignment_expression "iVar8 = 0" identifier = number_literal) ; (binary_expression "iVar8 < *(short *)(param_3 + 0x2a)" identifier < (pointer_expression "*(short *)(param_3 + 0x2a)" * (cast_expression "(short *)(param_3 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2a)" ( (binary_expression "param_3 + 0x2a" identifier + number_literal) ))))) ; (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ) (compound_statement "{\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }" { (expression_statement "puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));" (assignment_expression "puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4))" identifier = (cast_expression "(undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 * 0x14 + *(int *)(param_3 + 4))" ( (binary_expression "iVar8 * 0x14 + *(int *)(param_3 + 4)" (binary_expression "iVar8 * 0x14" identifier * number_literal) + (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" identifier = identifier) ;) (if_statement "if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }" if (parenthesized_expression "((*(ushort *)(puVar7 + 4) & 0x80) != 0)" ( (binary_expression "(*(ushort *)(puVar7 + 4) & 0x80) != 0" (parenthesized_expression "(*(ushort *)(puVar7 + 4) & 0x80)" ( (binary_expression "*(ushort *)(puVar7 + 4) & 0x80" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }" { (expression_statement "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;" (assignment_expression "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(ushort *)(puVar7 + 4) | 0x100" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "(*pcVar12)(auStack_48,puVar7[1]);" (call_expression "(*pcVar12)(auStack_48,puVar7[1])" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(auStack_48,puVar7[1])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) ))) ;) (expression_statement "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;" (assignment_expression "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(ushort *)(puVar7 + 4) & 0xfeff" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" identifier = identifier) ;) (if_statement "if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }" if (parenthesized_expression "((local_34 & 0x80) == 0)" ( (binary_expression "(local_34 & 0x80) == 0" (parenthesized_expression "(local_34 & 0x80)" ( (binary_expression "local_34 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }" { (expression_statement "iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);" (assignment_expression "iVar5 = (*pcVar11)(param_3,(int)(short)iVar8)" identifier = (call_expression "(*pcVar11)(param_3,(int)(short)iVar8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(param_3,(int)(short)iVar8)" ( identifier , (cast_expression "(int)(short)iVar8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)iVar8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )))) ;) (expression_statement "(*pcVar3)(param_1,puVar7,iVar5 + param_2);" (call_expression "(*pcVar3)(param_1,puVar7,iVar5 + param_2)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(param_1,puVar7,iVar5 + param_2)" ( identifier , identifier , (binary_expression "iVar5 + param_2" identifier + identifier) ))) ;) (expression_statement "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;" (assignment_expression "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(ushort *)(puVar7 + 4) & 0xff7f" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" identifier = identifier) ;) })) })) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) })) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00093b3c;" goto statement_identifier ;)) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (expression_statement "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);" (call_expression "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))" ( (pointer_expression "*(code *)(PTR_LAB_000f62f0 + -0x2b28)" * (cast_expression "(code *)(PTR_LAB_000f62f0 + -0x2b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62f0 + -0x2b28)" ( (binary_expression "PTR_LAB_000f62f0 + -0x2b28" identifier + number_literal) )))) )) (argument_list "(param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9)" ( identifier , (binary_expression "PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8" identifier + number_literal) , (pointer_expression "*puVar9" * identifier) ))) ;) (labeled_statement "LAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x34) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_000f6564)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_000f6564" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000f6564" * (cast_expression "(int *)PTR___stack_chk_guard_000f6564" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000f653c)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f653c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f653c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f653c" * (cast_expression "(code *)PTR___stack_chk_fail_000f653c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));" statement_identifier : (expression_statement "pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));" (assignment_expression "pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8))" identifier = (cast_expression "(char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8))" (parenthesized_expression "(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))" ( (pointer_expression "*(code *)(PTR_LAB_000f62d8 + -0x4aa8)" * (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x4aa8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62d8 + -0x4aa8)" ( (binary_expression "PTR_LAB_000f62d8 + -0x4aa8" identifier + number_literal) )))) )) (argument_list "(*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))))) ;)) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }" if (parenthesized_expression "(*pcVar4 == 'Z')" ( (binary_expression "*pcVar4 == 'Z'" (pointer_expression "*pcVar4" * identifier) == (char_literal "'Z'" ' character ')) )) (compound_statement "{\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }" { (expression_statement "iVar6 = *(int *)(pcVar4 + 0x10);" (assignment_expression "iVar6 = *(int *)(pcVar4 + 0x10)" identifier = (pointer_expression "*(int *)(pcVar4 + 0x10)" * (cast_expression "(int *)(pcVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x10)" ( (binary_expression "pcVar4 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (while_statement "while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }" while (parenthesized_expression "(*(char *)(iVar6 + iVar5) != '\0')" ( (binary_expression "*(char *)(iVar6 + iVar5) != '\0'" (pointer_expression "*(char *)(iVar6 + iVar5)" * (cast_expression "(char *)(iVar6 + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar5)" ( (binary_expression "iVar6 + iVar5" identifier + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }" { (expression_statement "uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);" (assignment_expression "uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10)" identifier = (pointer_expression "*(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10)" * (cast_expression "(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_3 + 4) + iVar8 + 0x10)" ( (binary_expression "*(int *)(param_3 + 4) + iVar8 + 0x10" (binary_expression "*(int *)(param_3 + 4) + iVar8" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) + identifier) + number_literal) ))))) ;) (if_statement "if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }" if (parenthesized_expression "((uVar1 & 0x20) == 0)" ( (binary_expression "(uVar1 & 0x20) == 0" (parenthesized_expression "(uVar1 & 0x20)" ( (binary_expression "uVar1 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }" { (if_statement "if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }" if (parenthesized_expression "((uVar1 & 0x40) != 0)" ( (binary_expression "(uVar1 & 0x40) != 0" (parenthesized_expression "(uVar1 & 0x40)" ( (binary_expression "uVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            *(char *)(iVar6 + iVar5) = '@';\n          }" { (expression_statement "*(char *)(iVar6 + iVar5) = '@';" (assignment_expression "*(char *)(iVar6 + iVar5) = '@'" (pointer_expression "*(char *)(iVar6 + iVar5)" * (cast_expression "(char *)(iVar6 + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar5)" ( (binary_expression "iVar6 + iVar5" identifier + identifier) )))) = (char_literal "'@'" ' character ')) ;) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar8 = iVar8 + 0x14;" (assignment_expression "iVar8 = iVar8 + 0x14" identifier = (binary_expression "iVar8 + 0x14" identifier + number_literal)) ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void sqlite3ComputeGeneratedColumns(Parse *pParse,int iRegStore,Table *pTab)\n\n{\n  ushort uVar1;\n  bool bVar2;\n  int iVar3;\n  code *pcVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  Column *pCVar8;\n  int iVar9;\n  Column *pCVar10;\n  Column *pCVar11;\n  code *pcVar12;\n  code *pcVar13;\n  Walker w;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_000f6564;\n  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(pParse->pVdbe,pTab,iRegStore);\n  if ((pTab->tabFlags & 0x40) != 0) goto LAB_00093b60;\n  do {\n    for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n      uVar1 = pTab->aCol[iVar9].colFlags;\n      if ((uVar1 & 0x60) != 0) {\n        pTab->aCol[iVar9].colFlags = uVar1 | 0x80;\n      }\n    }\n    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f62d8 + -0x830);\n    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;\n    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    pParse->iSelfTab = -iRegStore;\n    pcVar13 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar4 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    w.u.pTab = pTab;\n    do {\n      bVar2 = false;\n      pCVar10 = (Column *)0x0;\n      for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n        pCVar8 = pTab->aCol + iVar9;\n        pCVar11 = pCVar10;\n        if ((pCVar8->colFlags & 0x80) != 0) {\n          pCVar8->colFlags = pCVar8->colFlags | 0x100;\n          w.eCode = 0;\n          (*pcVar13)(&w,pCVar8->pDflt);\n          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;\n          pCVar11 = pCVar8;\n          if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }\n        }\n        pCVar10 = pCVar11;\n      }\n      if (pCVar10 == (Column *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (pParse,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,pCVar10->zName);\nLAB_00093b3c:\n    pParse->iSelfTab = 0;\n    if (iVar3 == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar5 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(pParse->pVdbe);\n    iVar9 = 0;\n    if (*pcVar5 == 'Z') {\n      iVar7 = *(int *)(pcVar5 + 0x10);\n      iVar6 = 0;\n      while (*(char *)(iVar7 + iVar6) != '\0') {\n        uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }\n          iVar6 = iVar6 + 1;\n        }\n        iVar9 = iVar9 + 0x14;\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "void sqlite3ComputeGeneratedColumns(Parse *pParse,int iRegStore,Table *pTab)\n\n{\n  ushort uVar1;\n  bool bVar2;\n  int iVar3;\n  code *pcVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  Column *pCVar8;\n  int iVar9;\n  Column *pCVar10;\n  Column *pCVar11;\n  code *pcVar12;\n  code *pcVar13;\n  Walker w;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_000f6564;\n  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(pParse->pVdbe,pTab,iRegStore);\n  if ((pTab->tabFlags & 0x40) != 0) goto LAB_00093b60;\n  do {\n    for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n      uVar1 = pTab->aCol[iVar9].colFlags;\n      if ((uVar1 & 0x60) != 0) {\n        pTab->aCol[iVar9].colFlags = uVar1 | 0x80;\n      }\n    }\n    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f62d8 + -0x830);\n    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;\n    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    pParse->iSelfTab = -iRegStore;\n    pcVar13 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar4 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    w.u.pTab = pTab;\n    do {\n      bVar2 = false;\n      pCVar10 = (Column *)0x0;\n      for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n        pCVar8 = pTab->aCol + iVar9;\n        pCVar11 = pCVar10;\n        if ((pCVar8->colFlags & 0x80) != 0) {\n          pCVar8->colFlags = pCVar8->colFlags | 0x100;\n          w.eCode = 0;\n          (*pcVar13)(&w,pCVar8->pDflt);\n          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;\n          pCVar11 = pCVar8;\n          if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }\n        }\n        pCVar10 = pCVar11;\n      }\n      if (pCVar10 == (Column *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (pParse,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,pCVar10->zName);\nLAB_00093b3c:\n    pParse->iSelfTab = 0;\n    if (iVar3 == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar5 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(pParse->pVdbe);\n    iVar9 = 0;\n    if (*pcVar5 == 'Z') {\n      iVar7 = *(int *)(pcVar5 + 0x10);\n      iVar6 = 0;\n      while (*(char *)(iVar7 + iVar6) != '\0') {\n        uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }\n          iVar6 = iVar6 + 1;\n        }\n        iVar9 = iVar9 + 0x14;\n      }\n    }\n  } while( true );\n}" primitive_type (function_declarator "sqlite3ComputeGeneratedColumns(Parse *pParse,int iRegStore,Table *pTab)" identifier (parameter_list "(Parse *pParse,int iRegStore,Table *pTab)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "int iRegStore" primitive_type identifier) , (parameter_declaration "Table *pTab" type_identifier (pointer_declarator "*pTab" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  bool bVar2;\n  int iVar3;\n  code *pcVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  Column *pCVar8;\n  int iVar9;\n  Column *pCVar10;\n  Column *pCVar11;\n  code *pcVar12;\n  code *pcVar13;\n  Walker w;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_000f6564;\n  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(pParse->pVdbe,pTab,iRegStore);\n  if ((pTab->tabFlags & 0x40) != 0) goto LAB_00093b60;\n  do {\n    for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n      uVar1 = pTab->aCol[iVar9].colFlags;\n      if ((uVar1 & 0x60) != 0) {\n        pTab->aCol[iVar9].colFlags = uVar1 | 0x80;\n      }\n    }\n    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f62d8 + -0x830);\n    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;\n    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    pParse->iSelfTab = -iRegStore;\n    pcVar13 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar4 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    w.u.pTab = pTab;\n    do {\n      bVar2 = false;\n      pCVar10 = (Column *)0x0;\n      for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n        pCVar8 = pTab->aCol + iVar9;\n        pCVar11 = pCVar10;\n        if ((pCVar8->colFlags & 0x80) != 0) {\n          pCVar8->colFlags = pCVar8->colFlags | 0x100;\n          w.eCode = 0;\n          (*pcVar13)(&w,pCVar8->pDflt);\n          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;\n          pCVar11 = pCVar8;\n          if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }\n        }\n        pCVar10 = pCVar11;\n      }\n      if (pCVar10 == (Column *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (pParse,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,pCVar10->zName);\nLAB_00093b3c:\n    pParse->iSelfTab = 0;\n    if (iVar3 == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar5 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(pParse->pVdbe);\n    iVar9 = 0;\n    if (*pcVar5 == 'Z') {\n      iVar7 = *(int *)(pcVar5 + 0x10);\n      iVar6 = 0;\n      while (*(char *)(iVar7 + iVar6) != '\0') {\n        uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }\n          iVar6 = iVar6 + 1;\n        }\n        iVar9 = iVar9 + 0x14;\n      }\n    }\n  } while( true );\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "Column *pCVar8;" type_identifier (pointer_declarator "*pCVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "Column *pCVar10;" type_identifier (pointer_declarator "*pCVar10" * identifier) ;) (declaration "Column *pCVar11;" type_identifier (pointer_declarator "*pCVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "Walker w;" type_identifier identifier ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000f6564;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000f6564" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f6564" * (cast_expression "(int *)PTR___stack_chk_guard_000f6564" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)(PTR_LAB_000f62e8 + 0x5258))(pParse->pVdbe,pTab,iRegStore);" (call_expression "(*(code *)(PTR_LAB_000f62e8 + 0x5258))(pParse->pVdbe,pTab,iRegStore)" (parenthesized_expression "(*(code *)(PTR_LAB_000f62e8 + 0x5258))" ( (pointer_expression "*(code *)(PTR_LAB_000f62e8 + 0x5258)" * (cast_expression "(code *)(PTR_LAB_000f62e8 + 0x5258)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62e8 + 0x5258)" ( (binary_expression "PTR_LAB_000f62e8 + 0x5258" identifier + number_literal) )))) )) (argument_list "(pParse->pVdbe,pTab,iRegStore)" ( (field_expression "pParse->pVdbe" identifier -> field_identifier) , identifier , identifier ))) ;) (if_statement "if ((pTab->tabFlags & 0x40) != 0) goto LAB_00093b60;" if (parenthesized_expression "((pTab->tabFlags & 0x40) != 0)" ( (binary_expression "(pTab->tabFlags & 0x40) != 0" (parenthesized_expression "(pTab->tabFlags & 0x40)" ( (binary_expression "pTab->tabFlags & 0x40" (field_expression "pTab->tabFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00093b60;" goto statement_identifier ;)) (do_statement "do {\n    for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n      uVar1 = pTab->aCol[iVar9].colFlags;\n      if ((uVar1 & 0x60) != 0) {\n        pTab->aCol[iVar9].colFlags = uVar1 | 0x80;\n      }\n    }\n    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f62d8 + -0x830);\n    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;\n    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    pParse->iSelfTab = -iRegStore;\n    pcVar13 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar4 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    w.u.pTab = pTab;\n    do {\n      bVar2 = false;\n      pCVar10 = (Column *)0x0;\n      for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n        pCVar8 = pTab->aCol + iVar9;\n        pCVar11 = pCVar10;\n        if ((pCVar8->colFlags & 0x80) != 0) {\n          pCVar8->colFlags = pCVar8->colFlags | 0x100;\n          w.eCode = 0;\n          (*pcVar13)(&w,pCVar8->pDflt);\n          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;\n          pCVar11 = pCVar8;\n          if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }\n        }\n        pCVar10 = pCVar11;\n      }\n      if (pCVar10 == (Column *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (pParse,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,pCVar10->zName);\nLAB_00093b3c:\n    pParse->iSelfTab = 0;\n    if (iVar3 == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar5 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(pParse->pVdbe);\n    iVar9 = 0;\n    if (*pcVar5 == 'Z') {\n      iVar7 = *(int *)(pcVar5 + 0x10);\n      iVar6 = 0;\n      while (*(char *)(iVar7 + iVar6) != '\0') {\n        uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }\n          iVar6 = iVar6 + 1;\n        }\n        iVar9 = iVar9 + 0x14;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n      uVar1 = pTab->aCol[iVar9].colFlags;\n      if ((uVar1 & 0x60) != 0) {\n        pTab->aCol[iVar9].colFlags = uVar1 | 0x80;\n      }\n    }\n    w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f62d8 + -0x830);\n    w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;\n    w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n    pParse->iSelfTab = -iRegStore;\n    pcVar13 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar4 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    w.u.pTab = pTab;\n    do {\n      bVar2 = false;\n      pCVar10 = (Column *)0x0;\n      for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n        pCVar8 = pTab->aCol + iVar9;\n        pCVar11 = pCVar10;\n        if ((pCVar8->colFlags & 0x80) != 0) {\n          pCVar8->colFlags = pCVar8->colFlags | 0x100;\n          w.eCode = 0;\n          (*pcVar13)(&w,pCVar8->pDflt);\n          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;\n          pCVar11 = pCVar8;\n          if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }\n        }\n        pCVar10 = pCVar11;\n      }\n      if (pCVar10 == (Column *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (pParse,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,pCVar10->zName);\nLAB_00093b3c:\n    pParse->iSelfTab = 0;\n    if (iVar3 == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar5 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(pParse->pVdbe);\n    iVar9 = 0;\n    if (*pcVar5 == 'Z') {\n      iVar7 = *(int *)(pcVar5 + 0x10);\n      iVar6 = 0;\n      while (*(char *)(iVar7 + iVar6) != '\0') {\n        uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }\n          iVar6 = iVar6 + 1;\n        }\n        iVar9 = iVar9 + 0x14;\n      }\n    }\n  }" { (for_statement "for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n      uVar1 = pTab->aCol[iVar9].colFlags;\n      if ((uVar1 & 0x60) != 0) {\n        pTab->aCol[iVar9].colFlags = uVar1 | 0x80;\n      }\n    }" for ( (assignment_expression "iVar9 = 0" identifier = number_literal) ; (binary_expression "iVar9 < pTab->nCol" identifier < (field_expression "pTab->nCol" identifier -> field_identifier)) ; (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ) (compound_statement "{\n      uVar1 = pTab->aCol[iVar9].colFlags;\n      if ((uVar1 & 0x60) != 0) {\n        pTab->aCol[iVar9].colFlags = uVar1 | 0x80;\n      }\n    }" { (expression_statement "uVar1 = pTab->aCol[iVar9].colFlags;" (assignment_expression "uVar1 = pTab->aCol[iVar9].colFlags" identifier = (field_expression "pTab->aCol[iVar9].colFlags" (subscript_expression "pTab->aCol[iVar9]" (field_expression "pTab->aCol" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (if_statement "if ((uVar1 & 0x60) != 0) {\n        pTab->aCol[iVar9].colFlags = uVar1 | 0x80;\n      }" if (parenthesized_expression "((uVar1 & 0x60) != 0)" ( (binary_expression "(uVar1 & 0x60) != 0" (parenthesized_expression "(uVar1 & 0x60)" ( (binary_expression "uVar1 & 0x60" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pTab->aCol[iVar9].colFlags = uVar1 | 0x80;\n      }" { (expression_statement "pTab->aCol[iVar9].colFlags = uVar1 | 0x80;" (assignment_expression "pTab->aCol[iVar9].colFlags = uVar1 | 0x80" (field_expression "pTab->aCol[iVar9].colFlags" (subscript_expression "pTab->aCol[iVar9]" (field_expression "pTab->aCol" identifier -> field_identifier) [ identifier ]) . field_identifier) = (binary_expression "uVar1 | 0x80" identifier | number_literal)) ;) })) })) (expression_statement "w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f62d8 + -0x830);" (assignment_expression "w.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f62d8 + -0x830)" (field_expression "w.xExprCallback" identifier . field_identifier) = (cast_expression "(_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f62d8 + -0x830)" ( (type_descriptor "_func_int_Walker_ptr_Expr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62d8 + -0x830)" ( (binary_expression "PTR_LAB_000f62d8 + -0x830" identifier + number_literal) )))) ;) (expression_statement "w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;" (assignment_expression "w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0" (field_expression "w.xSelectCallback" identifier . field_identifier) = (cast_expression "(_func_int_Walker_ptr_Select_ptr *)0x0" ( (type_descriptor "_func_int_Walker_ptr_Select_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;" (assignment_expression "w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0" (field_expression "w.xSelectCallback2" identifier . field_identifier) = (cast_expression "(_func_void_Walker_ptr_Select_ptr *)0x0" ( (type_descriptor "_func_void_Walker_ptr_Select_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pParse->iSelfTab = -iRegStore;" (assignment_expression "pParse->iSelfTab = -iRegStore" (field_expression "pParse->iSelfTab" identifier -> field_identifier) = (unary_expression "-iRegStore" - identifier)) ;) (expression_statement "pcVar13 = (code *)(PTR_LAB_000f62d8 + -0x39e0);" (assignment_expression "pcVar13 = (code *)(PTR_LAB_000f62d8 + -0x39e0)" identifier = (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x39e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62d8 + -0x39e0)" ( (binary_expression "PTR_LAB_000f62d8 + -0x39e0" identifier + number_literal) )))) ;) (expression_statement "pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x10ac);" (assignment_expression "pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x10ac)" identifier = (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x10ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62d8 + -0x10ac)" ( (binary_expression "PTR_LAB_000f62d8 + -0x10ac" identifier + number_literal) )))) ;) (expression_statement "pcVar4 = (code *)(PTR_LAB_000f62f4 + 0x35d4);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_000f62f4 + 0x35d4)" identifier = (cast_expression "(code *)(PTR_LAB_000f62f4 + 0x35d4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62f4 + 0x35d4)" ( (binary_expression "PTR_LAB_000f62f4 + 0x35d4" identifier + number_literal) )))) ;) (expression_statement "w.u.pTab = pTab;" (assignment_expression "w.u.pTab = pTab" (field_expression "w.u.pTab" (field_expression "w.u" identifier . field_identifier) . field_identifier) = identifier) ;) (do_statement "do {\n      bVar2 = false;\n      pCVar10 = (Column *)0x0;\n      for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n        pCVar8 = pTab->aCol + iVar9;\n        pCVar11 = pCVar10;\n        if ((pCVar8->colFlags & 0x80) != 0) {\n          pCVar8->colFlags = pCVar8->colFlags | 0x100;\n          w.eCode = 0;\n          (*pcVar13)(&w,pCVar8->pDflt);\n          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;\n          pCVar11 = pCVar8;\n          if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }\n        }\n        pCVar10 = pCVar11;\n      }\n      if (pCVar10 == (Column *)0x0) goto LAB_00093b3c;\n    } while (bVar2);" do (compound_statement "{\n      bVar2 = false;\n      pCVar10 = (Column *)0x0;\n      for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n        pCVar8 = pTab->aCol + iVar9;\n        pCVar11 = pCVar10;\n        if ((pCVar8->colFlags & 0x80) != 0) {\n          pCVar8->colFlags = pCVar8->colFlags | 0x100;\n          w.eCode = 0;\n          (*pcVar13)(&w,pCVar8->pDflt);\n          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;\n          pCVar11 = pCVar8;\n          if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }\n        }\n        pCVar10 = pCVar11;\n      }\n      if (pCVar10 == (Column *)0x0) goto LAB_00093b3c;\n    }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "pCVar10 = (Column *)0x0;" (assignment_expression "pCVar10 = (Column *)0x0" identifier = (cast_expression "(Column *)0x0" ( (type_descriptor "Column *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (iVar9 = 0; iVar9 < pTab->nCol; iVar9 = iVar9 + 1) {\n        pCVar8 = pTab->aCol + iVar9;\n        pCVar11 = pCVar10;\n        if ((pCVar8->colFlags & 0x80) != 0) {\n          pCVar8->colFlags = pCVar8->colFlags | 0x100;\n          w.eCode = 0;\n          (*pcVar13)(&w,pCVar8->pDflt);\n          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;\n          pCVar11 = pCVar8;\n          if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }\n        }\n        pCVar10 = pCVar11;\n      }" for ( (assignment_expression "iVar9 = 0" identifier = number_literal) ; (binary_expression "iVar9 < pTab->nCol" identifier < (field_expression "pTab->nCol" identifier -> field_identifier)) ; (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ) (compound_statement "{\n        pCVar8 = pTab->aCol + iVar9;\n        pCVar11 = pCVar10;\n        if ((pCVar8->colFlags & 0x80) != 0) {\n          pCVar8->colFlags = pCVar8->colFlags | 0x100;\n          w.eCode = 0;\n          (*pcVar13)(&w,pCVar8->pDflt);\n          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;\n          pCVar11 = pCVar8;\n          if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }\n        }\n        pCVar10 = pCVar11;\n      }" { (expression_statement "pCVar8 = pTab->aCol + iVar9;" (assignment_expression "pCVar8 = pTab->aCol + iVar9" identifier = (binary_expression "pTab->aCol + iVar9" (field_expression "pTab->aCol" identifier -> field_identifier) + identifier)) ;) (expression_statement "pCVar11 = pCVar10;" (assignment_expression "pCVar11 = pCVar10" identifier = identifier) ;) (if_statement "if ((pCVar8->colFlags & 0x80) != 0) {\n          pCVar8->colFlags = pCVar8->colFlags | 0x100;\n          w.eCode = 0;\n          (*pcVar13)(&w,pCVar8->pDflt);\n          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;\n          pCVar11 = pCVar8;\n          if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }\n        }" if (parenthesized_expression "((pCVar8->colFlags & 0x80) != 0)" ( (binary_expression "(pCVar8->colFlags & 0x80) != 0" (parenthesized_expression "(pCVar8->colFlags & 0x80)" ( (binary_expression "pCVar8->colFlags & 0x80" (field_expression "pCVar8->colFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          pCVar8->colFlags = pCVar8->colFlags | 0x100;\n          w.eCode = 0;\n          (*pcVar13)(&w,pCVar8->pDflt);\n          pCVar8->colFlags = pCVar8->colFlags & 0xfeff;\n          pCVar11 = pCVar8;\n          if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }\n        }" { (expression_statement "pCVar8->colFlags = pCVar8->colFlags | 0x100;" (assignment_expression "pCVar8->colFlags = pCVar8->colFlags | 0x100" (field_expression "pCVar8->colFlags" identifier -> field_identifier) = (binary_expression "pCVar8->colFlags | 0x100" (field_expression "pCVar8->colFlags" identifier -> field_identifier) | number_literal)) ;) (expression_statement "w.eCode = 0;" (assignment_expression "w.eCode = 0" (field_expression "w.eCode" identifier . field_identifier) = number_literal) ;) (expression_statement "(*pcVar13)(&w,pCVar8->pDflt);" (call_expression "(*pcVar13)(&w,pCVar8->pDflt)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(&w,pCVar8->pDflt)" ( (pointer_expression "&w" & identifier) , (field_expression "pCVar8->pDflt" identifier -> field_identifier) ))) ;) (expression_statement "pCVar8->colFlags = pCVar8->colFlags & 0xfeff;" (assignment_expression "pCVar8->colFlags = pCVar8->colFlags & 0xfeff" (field_expression "pCVar8->colFlags" identifier -> field_identifier) = (binary_expression "pCVar8->colFlags & 0xfeff" (field_expression "pCVar8->colFlags" identifier -> field_identifier) & number_literal)) ;) (expression_statement "pCVar11 = pCVar8;" (assignment_expression "pCVar11 = pCVar8" identifier = identifier) ;) (if_statement "if ((w.eCode & 0x80) == 0) {\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }" if (parenthesized_expression "((w.eCode & 0x80) == 0)" ( (binary_expression "(w.eCode & 0x80) == 0" (parenthesized_expression "(w.eCode & 0x80)" ( (binary_expression "w.eCode & 0x80" (field_expression "w.eCode" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);\n            (*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);\n            pCVar8->colFlags = pCVar8->colFlags & 0xff7f;\n            bVar2 = true;\n            pCVar11 = pCVar10;\n          }" { (expression_statement "iVar6 = (*pcVar12)(pTab,(int)(short)iVar9);" (assignment_expression "iVar6 = (*pcVar12)(pTab,(int)(short)iVar9)" identifier = (call_expression "(*pcVar12)(pTab,(int)(short)iVar9)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(pTab,(int)(short)iVar9)" ( identifier , (cast_expression "(int)(short)iVar9" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)iVar9" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )))) ;) (expression_statement "(*pcVar4)(pParse,pCVar8,iVar6 + iRegStore);" (call_expression "(*pcVar4)(pParse,pCVar8,iVar6 + iRegStore)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(pParse,pCVar8,iVar6 + iRegStore)" ( identifier , identifier , (binary_expression "iVar6 + iRegStore" identifier + identifier) ))) ;) (expression_statement "pCVar8->colFlags = pCVar8->colFlags & 0xff7f;" (assignment_expression "pCVar8->colFlags = pCVar8->colFlags & 0xff7f" (field_expression "pCVar8->colFlags" identifier -> field_identifier) = (binary_expression "pCVar8->colFlags & 0xff7f" (field_expression "pCVar8->colFlags" identifier -> field_identifier) & number_literal)) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "pCVar11 = pCVar10;" (assignment_expression "pCVar11 = pCVar10" identifier = identifier) ;) })) })) (expression_statement "pCVar10 = pCVar11;" (assignment_expression "pCVar10 = pCVar11" identifier = identifier) ;) })) (if_statement "if (pCVar10 == (Column *)0x0) goto LAB_00093b3c;" if (parenthesized_expression "(pCVar10 == (Column *)0x0)" ( (binary_expression "pCVar10 == (Column *)0x0" identifier == (cast_expression "(Column *)0x0" ( (type_descriptor "Column *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00093b3c;" goto statement_identifier ;)) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (expression_statement "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (pParse,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,pCVar10->zName);" (call_expression "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (pParse,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,pCVar10->zName)" (parenthesized_expression "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))" ( (pointer_expression "*(code *)(PTR_LAB_000f62f0 + -0x2b28)" * (cast_expression "(code *)(PTR_LAB_000f62f0 + -0x2b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62f0 + -0x2b28)" ( (binary_expression "PTR_LAB_000f62f0 + -0x2b28" identifier + number_literal) )))) )) (argument_list "(pParse,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,pCVar10->zName)" ( identifier , (binary_expression "PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8" identifier + number_literal) , (field_expression "pCVar10->zName" identifier -> field_identifier) ))) ;) (labeled_statement "LAB_00093b3c:\n    pParse->iSelfTab = 0;" statement_identifier : (expression_statement "pParse->iSelfTab = 0;" (assignment_expression "pParse->iSelfTab = 0" (field_expression "pParse->iSelfTab" identifier -> field_identifier) = number_literal) ;)) (if_statement "if (iVar3 == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }" if (parenthesized_expression "(iVar3 == *(int *)PTR___stack_chk_guard_000f6564)" ( (binary_expression "iVar3 == *(int *)PTR___stack_chk_guard_000f6564" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000f6564" * (cast_expression "(int *)PTR___stack_chk_guard_000f6564" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000f653c)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f653c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f653c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f653c" * (cast_expression "(code *)PTR___stack_chk_fail_000f653c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00093b60:\n    pcVar5 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(pParse->pVdbe);" statement_identifier : (expression_statement "pcVar5 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(pParse->pVdbe);" (assignment_expression "pcVar5 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(pParse->pVdbe)" identifier = (cast_expression "(char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(pParse->pVdbe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(pParse->pVdbe)" (parenthesized_expression "(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))" ( (pointer_expression "*(code *)(PTR_LAB_000f62d8 + -0x4aa8)" * (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x4aa8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62d8 + -0x4aa8)" ( (binary_expression "PTR_LAB_000f62d8 + -0x4aa8" identifier + number_literal) )))) )) (argument_list "(pParse->pVdbe)" ( (field_expression "pParse->pVdbe" identifier -> field_identifier) ))))) ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (*pcVar5 == 'Z') {\n      iVar7 = *(int *)(pcVar5 + 0x10);\n      iVar6 = 0;\n      while (*(char *)(iVar7 + iVar6) != '\0') {\n        uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }\n          iVar6 = iVar6 + 1;\n        }\n        iVar9 = iVar9 + 0x14;\n      }\n    }" if (parenthesized_expression "(*pcVar5 == 'Z')" ( (binary_expression "*pcVar5 == 'Z'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'Z'" ' character ')) )) (compound_statement "{\n      iVar7 = *(int *)(pcVar5 + 0x10);\n      iVar6 = 0;\n      while (*(char *)(iVar7 + iVar6) != '\0') {\n        uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }\n          iVar6 = iVar6 + 1;\n        }\n        iVar9 = iVar9 + 0x14;\n      }\n    }" { (expression_statement "iVar7 = *(int *)(pcVar5 + 0x10);" (assignment_expression "iVar7 = *(int *)(pcVar5 + 0x10)" identifier = (pointer_expression "*(int *)(pcVar5 + 0x10)" * (cast_expression "(int *)(pcVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0x10)" ( (binary_expression "pcVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (while_statement "while (*(char *)(iVar7 + iVar6) != '\0') {\n        uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }\n          iVar6 = iVar6 + 1;\n        }\n        iVar9 = iVar9 + 0x14;\n      }" while (parenthesized_expression "(*(char *)(iVar7 + iVar6) != '\0')" ( (binary_expression "*(char *)(iVar7 + iVar6) != '\0'" (pointer_expression "*(char *)(iVar7 + iVar6)" * (cast_expression "(char *)(iVar7 + iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar6)" ( (binary_expression "iVar7 + iVar6" identifier + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }\n          iVar6 = iVar6 + 1;\n        }\n        iVar9 = iVar9 + 0x14;\n      }" { (expression_statement "uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9);" (assignment_expression "uVar1 = *(ushort *)((int)&pTab->aCol->colFlags + iVar9)" identifier = (pointer_expression "*(ushort *)((int)&pTab->aCol->colFlags + iVar9)" * (cast_expression "(ushort *)((int)&pTab->aCol->colFlags + iVar9)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTab->aCol->colFlags + iVar9)" ( (binary_expression "(int)&pTab->aCol->colFlags + iVar9" (cast_expression "(int)&pTab->aCol->colFlags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTab->aCol->colFlags" & (field_expression "pTab->aCol->colFlags" (field_expression "pTab->aCol" identifier -> field_identifier) -> field_identifier))) + identifier) ))))) ;) (if_statement "if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }\n          iVar6 = iVar6 + 1;\n        }" if (parenthesized_expression "((uVar1 & 0x20) == 0)" ( (binary_expression "(uVar1 & 0x20) == 0" (parenthesized_expression "(uVar1 & 0x20)" ( (binary_expression "uVar1 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }\n          iVar6 = iVar6 + 1;\n        }" { (if_statement "if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar7 + iVar6) = '@';\n          }" if (parenthesized_expression "((uVar1 & 0x40) != 0)" ( (binary_expression "(uVar1 & 0x40) != 0" (parenthesized_expression "(uVar1 & 0x40)" ( (binary_expression "uVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            *(char *)(iVar7 + iVar6) = '@';\n          }" { (expression_statement "*(char *)(iVar7 + iVar6) = '@';" (assignment_expression "*(char *)(iVar7 + iVar6) = '@'" (pointer_expression "*(char *)(iVar7 + iVar6)" * (cast_expression "(char *)(iVar7 + iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar6)" ( (binary_expression "iVar7 + iVar6" identifier + identifier) )))) = (char_literal "'@'" ' character ')) ;) })) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar9 = iVar9 + 0x14;" (assignment_expression "iVar9 = iVar9 + 0x14" identifier = (binary_expression "iVar9 + 0x14" identifier + number_literal)) ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_00093a18(int param_1,int param_2,int param_3)\n\n{\n  ushort uVar1;\n  bool bVar2;\n  code *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  undefined1 auStack_48 [4];\n  undefined *local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  ushort local_34;\n  int local_30;\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000f6564;\n  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);\n  if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;\n  do {\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "void FUN_00093a18(int param_1,int param_2,int param_3)\n\n{\n  ushort uVar1;\n  bool bVar2;\n  code *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  undefined1 auStack_48 [4];\n  undefined *local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  ushort local_34;\n  int local_30;\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000f6564;\n  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);\n  if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;\n  do {\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_00093a18(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  ushort uVar1;\n  bool bVar2;\n  code *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  undefined1 auStack_48 [4];\n  undefined *local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  ushort local_34;\n  int local_30;\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000f6564;\n  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);\n  if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;\n  do {\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  } while( true );\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined1 auStack_48 [4];" type_identifier (array_declarator "auStack_48 [4]" identifier [ number_literal ]) ;) (declaration "undefined *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "ushort local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000f6564;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000f6564" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f6564" * (cast_expression "(int *)PTR___stack_chk_guard_000f6564" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);" (call_expression "(*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_000f62e8 + 0x5258))" ( (pointer_expression "*(code *)(PTR_LAB_000f62e8 + 0x5258)" * (cast_expression "(code *)(PTR_LAB_000f62e8 + 0x5258)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62e8 + 0x5258)" ( (binary_expression "PTR_LAB_000f62e8 + 0x5258" identifier + number_literal) )))) )) (argument_list "(*(undefined4 *)(param_1 + 8),param_3,param_2)" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (if_statement "if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;" if (parenthesized_expression "((*(uint *)(param_3 + 0x24) & 0x40) != 0)" ( (binary_expression "(*(uint *)(param_3 + 0x24) & 0x40) != 0" (parenthesized_expression "(*(uint *)(param_3 + 0x24) & 0x40)" ( (binary_expression "*(uint *)(param_3 + 0x24) & 0x40" (pointer_expression "*(uint *)(param_3 + 0x24)" * (cast_expression "(uint *)(param_3 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00093b60;" goto statement_identifier ;)) (do_statement "do {\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  }" { (for_statement "for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }" for ( (assignment_expression "iVar8 = 0" identifier = number_literal) ; (binary_expression "iVar8 < *(short *)(param_3 + 0x2a)" identifier < (pointer_expression "*(short *)(param_3 + 0x2a)" * (cast_expression "(short *)(param_3 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2a)" ( (binary_expression "param_3 + 0x2a" identifier + number_literal) ))))) ; (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ) (compound_statement "{\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }" { (expression_statement "iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);" (assignment_expression "iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4)" identifier = (binary_expression "iVar8 * 0x14 + *(int *)(param_3 + 4)" (binary_expression "iVar8 * 0x14" identifier * number_literal) + (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = *(ushort *)(iVar5 + 0x10);" (assignment_expression "uVar1 = *(ushort *)(iVar5 + 0x10)" identifier = (pointer_expression "*(ushort *)(iVar5 + 0x10)" * (cast_expression "(ushort *)(iVar5 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }" if (parenthesized_expression "((uVar1 & 0x60) != 0)" ( (binary_expression "(uVar1 & 0x60) != 0" (parenthesized_expression "(uVar1 & 0x60)" ( (binary_expression "uVar1 & 0x60" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }" { (expression_statement "*(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;" (assignment_expression "*(ushort *)(iVar5 + 0x10) = uVar1 | 0x80" (pointer_expression "*(ushort *)(iVar5 + 0x10)" * (cast_expression "(ushort *)(iVar5 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x80" identifier | number_literal)) ;) })) })) (expression_statement "local_44 = PTR_LAB_000f62d8 + -0x830;" (assignment_expression "local_44 = PTR_LAB_000f62d8 + -0x830" identifier = (binary_expression "PTR_LAB_000f62d8 + -0x830" identifier + number_literal)) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x34) = -param_2;" (assignment_expression "*(int *)(param_1 + 0x34) = -param_2" (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = (unary_expression "-param_2" - identifier)) ;) (expression_statement "pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);" (assignment_expression "pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0)" identifier = (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x39e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62d8 + -0x39e0)" ( (binary_expression "PTR_LAB_000f62d8 + -0x39e0" identifier + number_literal) )))) ;) (expression_statement "pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac)" identifier = (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x10ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62d8 + -0x10ac)" ( (binary_expression "PTR_LAB_000f62d8 + -0x10ac" identifier + number_literal) )))) ;) (expression_statement "pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);" (assignment_expression "pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4)" identifier = (cast_expression "(code *)(PTR_LAB_000f62f4 + 0x35d4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62f4 + 0x35d4)" ( (binary_expression "PTR_LAB_000f62f4 + 0x35d4" identifier + number_literal) )))) ;) (expression_statement "local_30 = param_3;" (assignment_expression "local_30 = param_3" identifier = identifier) ;) (do_statement "do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);" do (compound_statement "{\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "puVar9 = (undefined4 *)0x0;" (assignment_expression "puVar9 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }" for ( (assignment_expression "iVar8 = 0" identifier = number_literal) ; (binary_expression "iVar8 < *(short *)(param_3 + 0x2a)" identifier < (pointer_expression "*(short *)(param_3 + 0x2a)" * (cast_expression "(short *)(param_3 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2a)" ( (binary_expression "param_3 + 0x2a" identifier + number_literal) ))))) ; (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ) (compound_statement "{\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }" { (expression_statement "puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));" (assignment_expression "puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4))" identifier = (cast_expression "(undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 * 0x14 + *(int *)(param_3 + 4))" ( (binary_expression "iVar8 * 0x14 + *(int *)(param_3 + 4)" (binary_expression "iVar8 * 0x14" identifier * number_literal) + (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" identifier = identifier) ;) (if_statement "if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }" if (parenthesized_expression "((*(ushort *)(puVar7 + 4) & 0x80) != 0)" ( (binary_expression "(*(ushort *)(puVar7 + 4) & 0x80) != 0" (parenthesized_expression "(*(ushort *)(puVar7 + 4) & 0x80)" ( (binary_expression "*(ushort *)(puVar7 + 4) & 0x80" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }" { (expression_statement "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;" (assignment_expression "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(ushort *)(puVar7 + 4) | 0x100" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "(*pcVar12)(auStack_48,puVar7[1]);" (call_expression "(*pcVar12)(auStack_48,puVar7[1])" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(auStack_48,puVar7[1])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) ))) ;) (expression_statement "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;" (assignment_expression "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(ushort *)(puVar7 + 4) & 0xfeff" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" identifier = identifier) ;) (if_statement "if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }" if (parenthesized_expression "((local_34 & 0x80) == 0)" ( (binary_expression "(local_34 & 0x80) == 0" (parenthesized_expression "(local_34 & 0x80)" ( (binary_expression "local_34 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }" { (expression_statement "iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);" (assignment_expression "iVar5 = (*pcVar11)(param_3,(int)(short)iVar8)" identifier = (call_expression "(*pcVar11)(param_3,(int)(short)iVar8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(param_3,(int)(short)iVar8)" ( identifier , (cast_expression "(int)(short)iVar8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)iVar8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )))) ;) (expression_statement "(*pcVar3)(param_1,puVar7,iVar5 + param_2);" (call_expression "(*pcVar3)(param_1,puVar7,iVar5 + param_2)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(param_1,puVar7,iVar5 + param_2)" ( identifier , identifier , (binary_expression "iVar5 + param_2" identifier + identifier) ))) ;) (expression_statement "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;" (assignment_expression "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(ushort *)(puVar7 + 4) & 0xff7f" (pointer_expression "*(ushort *)(puVar7 + 4)" * (cast_expression "(ushort *)(puVar7 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" identifier = identifier) ;) })) })) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) })) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00093b3c;" goto statement_identifier ;)) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (expression_statement "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);" (call_expression "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))" ( (pointer_expression "*(code *)(PTR_LAB_000f62f0 + -0x2b28)" * (cast_expression "(code *)(PTR_LAB_000f62f0 + -0x2b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62f0 + -0x2b28)" ( (binary_expression "PTR_LAB_000f62f0 + -0x2b28" identifier + number_literal) )))) )) (argument_list "(param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9)" ( identifier , (binary_expression "PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8" identifier + number_literal) , (pointer_expression "*puVar9" * identifier) ))) ;) (labeled_statement "LAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x34) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_000f6564)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_000f6564" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000f6564" * (cast_expression "(int *)PTR___stack_chk_guard_000f6564" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000f653c)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f653c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f653c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f653c" * (cast_expression "(code *)PTR___stack_chk_fail_000f653c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));" statement_identifier : (expression_statement "pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));" (assignment_expression "pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8))" identifier = (cast_expression "(char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8))" (parenthesized_expression "(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))" ( (pointer_expression "*(code *)(PTR_LAB_000f62d8 + -0x4aa8)" * (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x4aa8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f62d8 + -0x4aa8)" ( (binary_expression "PTR_LAB_000f62d8 + -0x4aa8" identifier + number_literal) )))) )) (argument_list "(*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))))) ;)) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }" if (parenthesized_expression "(*pcVar4 == 'Z')" ( (binary_expression "*pcVar4 == 'Z'" (pointer_expression "*pcVar4" * identifier) == (char_literal "'Z'" ' character ')) )) (compound_statement "{\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }" { (expression_statement "iVar6 = *(int *)(pcVar4 + 0x10);" (assignment_expression "iVar6 = *(int *)(pcVar4 + 0x10)" identifier = (pointer_expression "*(int *)(pcVar4 + 0x10)" * (cast_expression "(int *)(pcVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x10)" ( (binary_expression "pcVar4 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (while_statement "while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }" while (parenthesized_expression "(*(char *)(iVar6 + iVar5) != '\0')" ( (binary_expression "*(char *)(iVar6 + iVar5) != '\0'" (pointer_expression "*(char *)(iVar6 + iVar5)" * (cast_expression "(char *)(iVar6 + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar5)" ( (binary_expression "iVar6 + iVar5" identifier + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }" { (expression_statement "uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);" (assignment_expression "uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10)" identifier = (pointer_expression "*(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10)" * (cast_expression "(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_3 + 4) + iVar8 + 0x10)" ( (binary_expression "*(int *)(param_3 + 4) + iVar8 + 0x10" (binary_expression "*(int *)(param_3 + 4) + iVar8" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) + identifier) + number_literal) ))))) ;) (if_statement "if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }" if (parenthesized_expression "((uVar1 & 0x20) == 0)" ( (binary_expression "(uVar1 & 0x20) == 0" (parenthesized_expression "(uVar1 & 0x20)" ( (binary_expression "uVar1 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }" { (if_statement "if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }" if (parenthesized_expression "((uVar1 & 0x40) != 0)" ( (binary_expression "(uVar1 & 0x40) != 0" (parenthesized_expression "(uVar1 & 0x40)" ( (binary_expression "uVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            *(char *)(iVar6 + iVar5) = '@';\n          }" { (expression_statement "*(char *)(iVar6 + iVar5) = '@';" (assignment_expression "*(char *)(iVar6 + iVar5) = '@'" (pointer_expression "*(char *)(iVar6 + iVar5)" * (cast_expression "(char *)(iVar6 + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar5)" ( (binary_expression "iVar6 + iVar5" identifier + identifier) )))) = (char_literal "'@'" ' character ')) ;) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar8 = iVar8 + 0x14;" (assignment_expression "iVar8 = iVar8 + 0x14" identifier = (binary_expression "iVar8 + 0x14" identifier + number_literal)) ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (unary_expression - 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 (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( IDENT )) ;) (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 , (binary_expression IDENT + LIT) , (pointer_expression * IDENT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (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 IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (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 IDENT + LIT) )))) + IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (char_literal ' character ')) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_00093a18(int param_1,int param_2,int param_3)\n\n{\n  ushort uVar1;\n  bool bVar2;\n  code *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  undefined1 auStack_48 [4];\n  undefined *local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  ushort local_34;\n  int local_30;\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000f6564;\n  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);\n  if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;\n  do {\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_00093a18(int param_1,int param_2,int param_3)" (identifier "FUN_00093a18") (parameter_list "(int param_1,int param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (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")) () ")"))) (compound_statement "{\n  ushort uVar1;\n  bool bVar2;\n  code *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  undefined1 auStack_48 [4];\n  undefined *local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  ushort local_34;\n  int local_30;\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000f6564;\n  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);\n  if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;\n  do {\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  } while( true );\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "undefined1 auStack_48 [4];" (type_identifier "undefined1") (array_declarator "auStack_48 [4]" (identifier "auStack_48") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined *local_44;" (type_identifier "undefined") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "ushort local_34;" (type_identifier "ushort") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000f6564;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000f6564" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000f6564" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000f6564" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000f6564")))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);" (call_expression "(*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_000f62e8 + 0x5258))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f62e8 + 0x5258)" (* "*") (cast_expression "(code *)(PTR_LAB_000f62e8 + 0x5258)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f62e8 + 0x5258)" (( "(") (binary_expression "PTR_LAB_000f62e8 + 0x5258" (identifier "PTR_LAB_000f62e8") (+ "+") (number_literal "0x5258")) () ")")))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 8),param_3,param_2)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "param_3") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;" (if "if") (parenthesized_expression "((*(uint *)(param_3 + 0x24) & 0x40) != 0)" (( "(") (binary_expression "(*(uint *)(param_3 + 0x24) & 0x40) != 0" (parenthesized_expression "(*(uint *)(param_3 + 0x24) & 0x40)" (( "(") (binary_expression "*(uint *)(param_3 + 0x24) & 0x40" (pointer_expression "*(uint *)(param_3 + 0x24)" (* "*") (cast_expression "(uint *)(param_3 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00093b60;" (goto "goto") (statement_identifier "LAB_00093b60") (; ";"))) (do_statement "do {\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  } while( true );" (do "do") (compound_statement "{\n    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }\n    local_44 = PTR_LAB_000f62d8 + -0x830;\n    local_40 = 0;\n    local_3c = 0;\n    *(int *)(param_1 + 0x34) = -param_2;\n    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);\n    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);\n    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);\n    local_30 = param_3;\n    do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);\n    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);\nLAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;\n    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_000f653c)();\nLAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));\n    iVar8 = 0;\n    if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }\n  }" ({ "{") (for_statement "for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }" (for "for") (( "(") (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";") (binary_expression "iVar8 < *(short *)(param_3 + 0x2a)" (identifier "iVar8") (< "<") (pointer_expression "*(short *)(param_3 + 0x2a)" (* "*") (cast_expression "(short *)(param_3 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2a)" (( "(") (binary_expression "param_3 + 0x2a" (identifier "param_3") (+ "+") (number_literal "0x2a")) () ")"))))) (; ";") (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);\n      uVar1 = *(ushort *)(iVar5 + 0x10);\n      if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }\n    }" ({ "{") (expression_statement "iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);" (assignment_expression "iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4)" (identifier "iVar5") (= "=") (binary_expression "iVar8 * 0x14 + *(int *)(param_3 + 4)" (binary_expression "iVar8 * 0x14" (identifier "iVar8") (* "*") (number_literal "0x14")) (+ "+") (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "uVar1 = *(ushort *)(iVar5 + 0x10);" (assignment_expression "uVar1 = *(ushort *)(iVar5 + 0x10)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(iVar5 + 0x10)" (* "*") (cast_expression "(ushort *)(iVar5 + 0x10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((uVar1 & 0x60) != 0) {\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }" (if "if") (parenthesized_expression "((uVar1 & 0x60) != 0)" (( "(") (binary_expression "(uVar1 & 0x60) != 0" (parenthesized_expression "(uVar1 & 0x60)" (( "(") (binary_expression "uVar1 & 0x60" (identifier "uVar1") (& "&") (number_literal "0x60")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;\n      }" ({ "{") (expression_statement "*(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;" (assignment_expression "*(ushort *)(iVar5 + 0x10) = uVar1 | 0x80" (pointer_expression "*(ushort *)(iVar5 + 0x10)" (* "*") (cast_expression "(ushort *)(iVar5 + 0x10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "uVar1 | 0x80" (identifier "uVar1") (| "|") (number_literal "0x80"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_44 = PTR_LAB_000f62d8 + -0x830;" (assignment_expression "local_44 = PTR_LAB_000f62d8 + -0x830" (identifier "local_44") (= "=") (binary_expression "PTR_LAB_000f62d8 + -0x830" (identifier "PTR_LAB_000f62d8") (+ "+") (number_literal "-0x830"))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(param_1 + 0x34) = -param_2;" (assignment_expression "*(int *)(param_1 + 0x34) = -param_2" (pointer_expression "*(int *)(param_1 + 0x34)" (* "*") (cast_expression "(int *)(param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (unary_expression "-param_2" (- "-") (identifier "param_2"))) (; ";")) (expression_statement "pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);" (assignment_expression "pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0)" (identifier "pcVar12") (= "=") (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x39e0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f62d8 + -0x39e0)" (( "(") (binary_expression "PTR_LAB_000f62d8 + -0x39e0" (identifier "PTR_LAB_000f62d8") (+ "+") (number_literal "-0x39e0")) () ")")))) (; ";")) (expression_statement "pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac)" (identifier "pcVar11") (= "=") (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x10ac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f62d8 + -0x10ac)" (( "(") (binary_expression "PTR_LAB_000f62d8 + -0x10ac" (identifier "PTR_LAB_000f62d8") (+ "+") (number_literal "-0x10ac")) () ")")))) (; ";")) (expression_statement "pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);" (assignment_expression "pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4)" (identifier "pcVar3") (= "=") (cast_expression "(code *)(PTR_LAB_000f62f4 + 0x35d4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f62f4 + 0x35d4)" (( "(") (binary_expression "PTR_LAB_000f62f4 + 0x35d4" (identifier "PTR_LAB_000f62f4") (+ "+") (number_literal "0x35d4")) () ")")))) (; ";")) (expression_statement "local_30 = param_3;" (assignment_expression "local_30 = param_3" (identifier "local_30") (= "=") (identifier "param_3")) (; ";")) (do_statement "do {\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    } while (bVar2);" (do "do") (compound_statement "{\n      bVar2 = false;\n      puVar9 = (undefined4 *)0x0;\n      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }\n      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;\n    }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "puVar9 = (undefined4 *)0x0;" (assignment_expression "puVar9 = (undefined4 *)0x0" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (for_statement "for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }" (for "for") (( "(") (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";") (binary_expression "iVar8 < *(short *)(param_3 + 0x2a)" (identifier "iVar8") (< "<") (pointer_expression "*(short *)(param_3 + 0x2a)" (* "*") (cast_expression "(short *)(param_3 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2a)" (( "(") (binary_expression "param_3 + 0x2a" (identifier "param_3") (+ "+") (number_literal "0x2a")) () ")"))))) (; ";") (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));\n        puVar10 = puVar9;\n        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }\n        puVar9 = puVar10;\n      }" ({ "{") (expression_statement "puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));" (assignment_expression "puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4))" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 * 0x14 + *(int *)(param_3 + 4))" (( "(") (binary_expression "iVar8 * 0x14 + *(int *)(param_3 + 4)" (binary_expression "iVar8 * 0x14" (identifier "iVar8") (* "*") (number_literal "0x14")) (+ "+") (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")"))))) () ")")))) (; ";")) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" (identifier "puVar10") (= "=") (identifier "puVar9")) (; ";")) (if_statement "if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }" (if "if") (parenthesized_expression "((*(ushort *)(puVar7 + 4) & 0x80) != 0)" (( "(") (binary_expression "(*(ushort *)(puVar7 + 4) & 0x80) != 0" (parenthesized_expression "(*(ushort *)(puVar7 + 4) & 0x80)" (( "(") (binary_expression "*(ushort *)(puVar7 + 4) & 0x80" (pointer_expression "*(ushort *)(puVar7 + 4)" (* "*") (cast_expression "(ushort *)(puVar7 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;\n          local_34 = 0;\n          (*pcVar12)(auStack_48,puVar7[1]);\n          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;\n          puVar10 = puVar7;\n          if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }\n        }" ({ "{") (expression_statement "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;" (assignment_expression "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100" (pointer_expression "*(ushort *)(puVar7 + 4)" (* "*") (cast_expression "(ushort *)(puVar7 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(ushort *)(puVar7 + 4) | 0x100" (pointer_expression "*(ushort *)(puVar7 + 4)" (* "*") (cast_expression "(ushort *)(puVar7 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (| "|") (number_literal "0x100"))) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*pcVar12)(auStack_48,puVar7[1]);" (call_expression "(*pcVar12)(auStack_48,puVar7[1])" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(auStack_48,puVar7[1])" (( "(") (identifier "auStack_48") (, ",") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;" (assignment_expression "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff" (pointer_expression "*(ushort *)(puVar7 + 4)" (* "*") (cast_expression "(ushort *)(puVar7 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(ushort *)(puVar7 + 4) & 0xfeff" (pointer_expression "*(ushort *)(puVar7 + 4)" (* "*") (cast_expression "(ushort *)(puVar7 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xfeff"))) (; ";")) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" (identifier "puVar10") (= "=") (identifier "puVar7")) (; ";")) (if_statement "if ((local_34 & 0x80) == 0) {\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }" (if "if") (parenthesized_expression "((local_34 & 0x80) == 0)" (( "(") (binary_expression "(local_34 & 0x80) == 0" (parenthesized_expression "(local_34 & 0x80)" (( "(") (binary_expression "local_34 & 0x80" (identifier "local_34") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);\n            (*pcVar3)(param_1,puVar7,iVar5 + param_2);\n            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;\n            bVar2 = true;\n            puVar10 = puVar9;\n          }" ({ "{") (expression_statement "iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);" (assignment_expression "iVar5 = (*pcVar11)(param_3,(int)(short)iVar8)" (identifier "iVar5") (= "=") (call_expression "(*pcVar11)(param_3,(int)(short)iVar8)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(param_3,(int)(short)iVar8)" (( "(") (identifier "param_3") (, ",") (cast_expression "(int)(short)iVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(short)iVar8" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "iVar8"))) () ")")))) (; ";")) (expression_statement "(*pcVar3)(param_1,puVar7,iVar5 + param_2);" (call_expression "(*pcVar3)(param_1,puVar7,iVar5 + param_2)" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "(param_1,puVar7,iVar5 + param_2)" (( "(") (identifier "param_1") (, ",") (identifier "puVar7") (, ",") (binary_expression "iVar5 + param_2" (identifier "iVar5") (+ "+") (identifier "param_2")) () ")"))) (; ";")) (expression_statement "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;" (assignment_expression "*(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f" (pointer_expression "*(ushort *)(puVar7 + 4)" (* "*") (cast_expression "(ushort *)(puVar7 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(ushort *)(puVar7 + 4) & 0xff7f" (pointer_expression "*(ushort *)(puVar7 + 4)" (* "*") (cast_expression "(ushort *)(puVar7 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xff7f"))) (; ";")) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" (identifier "puVar10") (= "=") (identifier "puVar9")) (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" (identifier "puVar9") (= "=") (identifier "puVar10")) (; ";")) (} "}"))) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;" (if "if") (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined4 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00093b3c;" (goto "goto") (statement_identifier "LAB_00093b3c") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);" (call_expression "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))\n              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_000f62f0 + -0x2b28))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f62f0 + -0x2b28)" (* "*") (cast_expression "(code *)(PTR_LAB_000f62f0 + -0x2b28)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f62f0 + -0x2b28)" (( "(") (binary_expression "PTR_LAB_000f62f0 + -0x2b28" (identifier "PTR_LAB_000f62f0") (+ "+") (number_literal "-0x2b28")) () ")")))) () ")")) (argument_list "(param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8" (identifier "PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4") (+ "+") (number_literal "-0x5ff8")) (, ",") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) () ")"))) (; ";")) (labeled_statement "LAB_00093b3c:\n    *(undefined4 *)(param_1 + 0x34) = 0;" (statement_identifier "LAB_00093b3c") (: ":") (expression_statement "*(undefined4 *)(param_1 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x34) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {\n      return;\n    }" (if "if") (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_000f6564)" (( "(") (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_000f6564" (identifier "local_2c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_000f6564" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000f6564" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000f6564")))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_000f653c)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f653c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f653c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000f653c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000f653c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000f653c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00093b60:\n    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));" (statement_identifier "LAB_00093b60") (: ":") (expression_statement "pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));" (assignment_expression "pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8))" (identifier "pcVar4") (= "=") (cast_expression "(char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8))" (parenthesized_expression "(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f62d8 + -0x4aa8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f62d8 + -0x4aa8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f62d8 + -0x4aa8)" (( "(") (binary_expression "PTR_LAB_000f62d8 + -0x4aa8" (identifier "PTR_LAB_000f62d8") (+ "+") (number_literal "-0x4aa8")) () ")")))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 8))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")"))))) (; ";"))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*pcVar4 == 'Z') {\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }" (if "if") (parenthesized_expression "(*pcVar4 == 'Z')" (( "(") (binary_expression "*pcVar4 == 'Z'" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (== "==") (char_literal "'Z'" (' "'") (character "Z") (' "'"))) () ")")) (compound_statement "{\n      iVar6 = *(int *)(pcVar4 + 0x10);\n      iVar5 = 0;\n      while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }\n    }" ({ "{") (expression_statement "iVar6 = *(int *)(pcVar4 + 0x10);" (assignment_expression "iVar6 = *(int *)(pcVar4 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar4 + 0x10)" (* "*") (cast_expression "(int *)(pcVar4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x10)" (( "(") (binary_expression "pcVar4 + 0x10" (identifier "pcVar4") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (while_statement "while (*(char *)(iVar6 + iVar5) != '\0') {\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }" (while "while") (parenthesized_expression "(*(char *)(iVar6 + iVar5) != '\0')" (( "(") (binary_expression "*(char *)(iVar6 + iVar5) != '\0'" (pointer_expression "*(char *)(iVar6 + iVar5)" (* "*") (cast_expression "(char *)(iVar6 + iVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar5)" (( "(") (binary_expression "iVar6 + iVar5" (identifier "iVar6") (+ "+") (identifier "iVar5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);\n        if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }\n        iVar8 = iVar8 + 0x14;\n      }" ({ "{") (expression_statement "uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);" (assignment_expression "uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10)" (* "*") (cast_expression "(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_3 + 4) + iVar8 + 0x10)" (( "(") (binary_expression "*(int *)(param_3 + 4) + iVar8 + 0x10" (binary_expression "*(int *)(param_3 + 4) + iVar8" (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "iVar8")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((uVar1 & 0x20) == 0) {\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }" (if "if") (parenthesized_expression "((uVar1 & 0x20) == 0)" (( "(") (binary_expression "(uVar1 & 0x20) == 0" (parenthesized_expression "(uVar1 & 0x20)" (( "(") (binary_expression "uVar1 & 0x20" (identifier "uVar1") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }\n          iVar5 = iVar5 + 1;\n        }" ({ "{") (if_statement "if ((uVar1 & 0x40) != 0) {\n            *(char *)(iVar6 + iVar5) = '@';\n          }" (if "if") (parenthesized_expression "((uVar1 & 0x40) != 0)" (( "(") (binary_expression "(uVar1 & 0x40) != 0" (parenthesized_expression "(uVar1 & 0x40)" (( "(") (binary_expression "uVar1 & 0x40" (identifier "uVar1") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(char *)(iVar6 + iVar5) = '@';\n          }" ({ "{") (expression_statement "*(char *)(iVar6 + iVar5) = '@';" (assignment_expression "*(char *)(iVar6 + iVar5) = '@'" (pointer_expression "*(char *)(iVar6 + iVar5)" (* "*") (cast_expression "(char *)(iVar6 + iVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar5)" (( "(") (binary_expression "iVar6 + iVar5" (identifier "iVar6") (+ "+") (identifier "iVar5")) () ")")))) (= "=") (char_literal "'@'" (' "'") (character "@") (' "'"))) (; ";")) (} "}"))) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar8 = iVar8 + 0x14;" (assignment_expression "iVar8 = iVar8 + 0x14" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) 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: (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: (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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (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 (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 (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))))) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (unary_expression argument: (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 (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (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: (binary_expression left: (identifier) right: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (identifier))) (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) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement))) (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))) (labeled_statement label: (statement_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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) 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))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_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: (identifier))))) right: (char_literal (escape_sequence)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (char_literal (character)))))) (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 (true))))))

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

{
  ushort uVar1;
  bool bVar2;
  code *pcVar3;
  char *pcVar4;
  int iVar5;
  int iVar6;
  undefined4 *puVar7;
  int iVar8;
  undefined4 *puVar9;
  undefined4 *puVar10;
  code *pcVar11;
  code *pcVar12;
  undefined1 auStack_48 [4];
  undefined *local_44;
  undefined4 local_40;
  undefined4 local_3c;
  ushort local_34;
  int local_30;
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_000f6564;
  (*(code *)(PTR_LAB_000f62e8 + 0x5258))(*(undefined4 *)(param_1 + 8),param_3,param_2);
  if ((*(uint *)(param_3 + 0x24) & 0x40) != 0) goto LAB_00093b60;
  do {
    for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {
      iVar5 = iVar8 * 0x14 + *(int *)(param_3 + 4);
      uVar1 = *(ushort *)(iVar5 + 0x10);
      if ((uVar1 & 0x60) != 0) {
        *(ushort *)(iVar5 + 0x10) = uVar1 | 0x80;
      }
    }
    local_44 = PTR_LAB_000f62d8 + -0x830;
    local_40 = 0;
    local_3c = 0;
    *(int *)(param_1 + 0x34) = -param_2;
    pcVar12 = (code *)(PTR_LAB_000f62d8 + -0x39e0);
    pcVar11 = (code *)(PTR_LAB_000f62d8 + -0x10ac);
    pcVar3 = (code *)(PTR_LAB_000f62f4 + 0x35d4);
    local_30 = param_3;
    do {
      bVar2 = false;
      puVar9 = (undefined4 *)0x0;
      for (iVar8 = 0; iVar8 < *(short *)(param_3 + 0x2a); iVar8 = iVar8 + 1) {
        puVar7 = (undefined4 *)(iVar8 * 0x14 + *(int *)(param_3 + 4));
        puVar10 = puVar9;
        if ((*(ushort *)(puVar7 + 4) & 0x80) != 0) {
          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) | 0x100;
          local_34 = 0;
          (*pcVar12)(auStack_48,puVar7[1]);
          *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xfeff;
          puVar10 = puVar7;
          if ((local_34 & 0x80) == 0) {
            iVar5 = (*pcVar11)(param_3,(int)(short)iVar8);
            (*pcVar3)(param_1,puVar7,iVar5 + param_2);
            *(ushort *)(puVar7 + 4) = *(ushort *)(puVar7 + 4) & 0xff7f;
            bVar2 = true;
            puVar10 = puVar9;
          }
        }
        puVar9 = puVar10;
      }
      if (puVar9 == (undefined4 *)0x0) goto LAB_00093b3c;
    } while (bVar2);
    (*(code *)(PTR_LAB_000f62f0 + -0x2b28))
              (param_1,PTR_s_EFIRSTFOLLOWINGFROMFULLIMITIFORD_000f62d4 + -0x5ff8,*puVar9);
LAB_00093b3c:
    *(undefined4 *)(param_1 + 0x34) = 0;
    if (local_2c == *(int *)PTR___stack_chk_guard_000f6564) {
      return;
    }
    (*(code *)PTR___stack_chk_fail_000f653c)();
LAB_00093b60:
    pcVar4 = (char *)(*(code *)(PTR_LAB_000f62d8 + -0x4aa8))(*(undefined4 *)(param_1 + 8));
    iVar8 = 0;
    if (*pcVar4 == 'Z') {
      iVar6 = *(int *)(pcVar4 + 0x10);
      iVar5 = 0;
      while (*(char *)(iVar6 + iVar5) != '\0') {
        uVar1 = *(ushort *)(*(int *)(param_3 + 4) + iVar8 + 0x10);
        if ((uVar1 & 0x20) == 0) {
          if ((uVar1 & 0x40) != 0) {
            *(char *)(iVar6 + iVar5) = '@';
          }
          iVar5 = iVar5 + 1;
        }
        iVar8 = iVar8 + 0x14;
      }
    }
  } while( true );
}

