
void sqlite3RenameExprUnmap(Parse *pParse,Expr *pExpr)

{
  u8 uVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  anon_union_4_16_1c331a60_for_u pExpr_00;
  Walker *pWalker;
  int *piVar5;
  WindowRewrite *pWVar6;
  Parse *pPVar7;
  undefined *puVar8;
  code *pcVar9;
  Walker WStack_78;
  Walker *pWStack_5c;
  Parse *pPStack_54;
  undefined *puStack_50;
  code *pcStack_4c;
  Walker sWalker;
  
  puVar2 = PTR___stack_chk_guard_000f5568;
  sWalker.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52c8 + 0x2e64);
  sWalker.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52ec + 0x1b64);
  sWalker.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;
  sWalker.walkerDepth = 0;
  sWalker.eCode = 0;
  sWalker._22_2_ = 0;
  sWalker.u.pNC = (NameContext *)0x0;
  iVar4 = *(int *)PTR___stack_chk_guard_000f5568;
  uVar1 = pParse->eParseMode;
  pParse->eParseMode = '\x03';
  pExpr_00 = (anon_union_4_16_1c331a60_for_u)pParse;
  sWalker.pParse = pParse;
  if (pExpr != (Expr *)0x0) {
    pExpr_00.pNC = (NameContext *)&sWalker;
    walkExpr((Walker *)pExpr_00.pNC,pExpr);
  }
  iVar3 = *(int *)puVar2;
  pParse->eParseMode = uVar1;
  if (iVar4 == iVar3) {
    return;
  }
  pcVar9 = sqlite3ExprReferencesUpdatedColumn;
  puVar8 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  WStack_78.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar8 + 0xc5a08) + 0x145c);
  piVar5 = *(int **)(puVar8 + 0xc5c84);
  puStack_50 = puVar2;
  WStack_78.pParse = (Parse *)0x0;
  WStack_78.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;
  WStack_78.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;
  WStack_78.walkerDepth = 0;
  WStack_78.eCode = 0;
  WStack_78._22_2_ = 0;
  pWStack_5c = (Walker *)*piVar5;
  WStack_78.u = (anon_union_4_16_1c331a60_for_u)pExpr;
  pPStack_54 = pParse;
  pcStack_4c = pcVar9;
  if ((Parse *)pExpr_00.pNC != (Parse *)0x0) {
    walkExpr(&WStack_78,(Expr *)pExpr_00.pNC);
    pExpr = (Expr *)pExpr_00;
  }
  if (pWStack_5c == (Walker *)*piVar5) {
    return;
  }
  pWalker = pWStack_5c;
  (**(code **)(puVar8 + 0xc5c5c))();
  pWVar6 = (pWalker->u).pRewrite;
  pPVar7 = (Parse *)pWVar6->pSubSelect;
  if (pPVar7 != (Parse *)pExpr) {
    pWVar6->pSubSelect = (Select *)pExpr;
    if (((Parse *)pExpr != (Parse *)0x0) &&
       (pWalker->xSelectCallback != (_func_int_Walker_ptr_Select_ptr *)0x0)) {
      sqlite3WalkSelect(pWalker,(Select *)pExpr);
    }
    pWVar6->pSubSelect = (Select *)pPVar7;
    return;
  }
  return;
}



uint FUN_0002f82c(undefined4 ***param_1,undefined4 ***param_2,int param_3)

{
  undefined1 uVar1;
  undefined *puVar2;
  uint uVar3;
  ushort uVar4;
  int iVar5;
  int *piVar6;
  int iVar7;
  undefined4 ***pppuVar8;
  undefined *puVar9;
  code *pcVar10;
  undefined4 uStack_78;
  int iStack_74;
  undefined4 uStack_70;
  undefined4 uStack_6c;
  undefined4 uStack_68;
  undefined4 uStack_64;
  undefined4 **ppuStack_60;
  int iStack_5c;
  undefined4 **ppuStack_54;
  undefined *puStack_50;
  code *pcStack_4c;
  undefined4 **local_30;
  undefined *local_2c;
  undefined *local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 local_1c;
  undefined4 local_18;
  uint local_14;
  
  puVar2 = PTR___stack_chk_guard_000f5568;
  local_2c = PTR_LAB_000f52c8 + 0x2e64;
  local_28 = PTR_LAB_000f52ec + 0x1b64;
  local_24 = 0;
  local_20 = 0;
  local_1c = 0;
  local_18 = 0;
  local_14 = *(uint *)PTR___stack_chk_guard_000f5568;
  uVar1 = *(undefined1 *)(param_1 + 0x33);
  *(undefined1 *)(param_1 + 0x33) = 3;
  pppuVar8 = param_1;
  local_30 = param_1;
  if (param_2 != (undefined4 ***)0x0) {
    pppuVar8 = &local_30;
    FUN_0002f078();
  }
  uVar3 = *(uint *)puVar2;
  *(undefined1 *)(param_1 + 0x33) = uVar1;
  if (local_14 == uVar3) {
    return uVar3;
  }
  pcVar10 = FUN_0002f8e4;
  puVar9 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;
  piVar6 = *(int **)(puVar9 + 0xc5c84);
  puStack_50 = puVar2;
  uStack_78 = 0;
  uStack_70 = 0;
  uStack_6c = 0;
  uStack_68 = 0;
  uStack_64 = 0;
  iStack_5c = *piVar6;
  ppuStack_60 = param_2;
  ppuStack_54 = param_1;
  pcStack_4c = pcVar10;
  if (pppuVar8 == (undefined4 ***)0x0) {
    uStack_64._0_2_ = 0;
  }
  else {
    FUN_0002f078(&uStack_78);
    param_2 = pppuVar8;
  }
  uVar4 = uStack_64._0_2_;
  if (param_3 == 0) {
    uVar4 = uStack_64._0_2_ & 0xfffd;
  }
  if (iStack_5c == *piVar6) {
    return (uint)(uVar4 != 0);
  }
  iVar5 = iStack_5c;
  (**(code **)(puVar9 + 0xc5c5c))();
  iVar7 = *(int *)(iVar5 + 0x18);
  pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);
  if (pppuVar8 != param_2) {
    *(undefined4 ****)(iVar7 + 0x10) = param_2;
    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {
      FUN_0002ee18();
    }
    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;
    return 1;
  }
  return 0;
}


lui gp,0xd
addiu gp,gp,-0x258c
addu gp,gp,t9
lw v0,-0x7fd8(gp)
addiu sp,sp,-0x48
addiu v0,v0,0x2e64
sw s1,0x3c(sp)
lw s1,-0x7d38(gp)
sw v0,0x1c(sp)
lw v0,-0x7fb4(gp)
sw s0,0x38(sp)
or s0,a0,zero
sw gp,0x10(sp)
addiu v0,v0,0x1b64
sw ra,0x44(sp)
sw s2,0x40(sp)
sw v0,0x20(sp)
li v0,0x3
sw zero,0x24(sp)
sw zero,0x28(sp)
sw zero,0x2c(sp)
sw zero,0x30(sp)
sw a0,0x18(sp)
lw v1,0x0(s1)
lbu s2,0xcc(a0)
sb v0,0xcc(a0)
sw v1,0x34(sp)
beq a1,zero,0x0002f8b0
_lw t9,-0x7fb4(gp)
addiu t9,t9,-0xf88
bal 0x0002f078
_addiu a0,sp,0x18
lw gp,0x10(sp)
lw v1,0x34(sp)
lw v0,0x0(s1)
bne v1,v0,0x0002f8d8
_sb s2,0xcc(s0)
lw ra,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x48
lw t9,-0x7d60(gp)
jalr t9
_nop
(translation_unit "uint FUN_0002f82c(undefined4 ***param_1,undefined4 ***param_2,int param_3)\n\n{\n  undefined1 uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 ***pppuVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 **ppuStack_60;\n  int iStack_5c;\n  undefined4 **ppuStack_54;\n  undefined *puStack_50;\n  code *pcStack_4c;\n  undefined4 **local_30;\n  undefined *local_2c;\n  undefined *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  uint local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_2c = PTR_LAB_000f52c8 + 0x2e64;\n  local_28 = PTR_LAB_000f52ec + 0x1b64;\n  local_24 = 0;\n  local_20 = 0;\n  local_1c = 0;\n  local_18 = 0;\n  local_14 = *(uint *)PTR___stack_chk_guard_000f5568;\n  uVar1 = *(undefined1 *)(param_1 + 0x33);\n  *(undefined1 *)(param_1 + 0x33) = 3;\n  pppuVar8 = param_1;\n  local_30 = param_1;\n  if (param_2 != (undefined4 ***)0x0) {\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }\n  uVar3 = *(uint *)puVar2;\n  *(undefined1 *)(param_1 + 0x33) = uVar1;\n  if (local_14 == uVar3) {\n    return uVar3;\n  }\n  pcVar10 = FUN_0002f8e4;\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;\n  piVar6 = *(int **)(puVar9 + 0xc5c84);\n  puStack_50 = puVar2;\n  uStack_78 = 0;\n  uStack_70 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  iStack_5c = *piVar6;\n  ppuStack_60 = param_2;\n  ppuStack_54 = param_1;\n  pcStack_4c = pcVar10;\n  if (pppuVar8 == (undefined4 ***)0x0) {\n    uStack_64._0_2_ = 0;\n  }\n  else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }\n  uVar4 = uStack_64._0_2_;\n  if (param_3 == 0) {\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }\n  if (iStack_5c == *piVar6) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = iStack_5c;\n  (**(code **)(puVar9 + 0xc5c5c))();\n  iVar7 = *(int *)(iVar5 + 0x18);\n  pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);\n  if (pppuVar8 != param_2) {\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }\n  return 0;\n}\n\n" (function_definition "uint FUN_0002f82c(undefined4 ***param_1,undefined4 ***param_2,int param_3)\n\n{\n  undefined1 uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 ***pppuVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 **ppuStack_60;\n  int iStack_5c;\n  undefined4 **ppuStack_54;\n  undefined *puStack_50;\n  code *pcStack_4c;\n  undefined4 **local_30;\n  undefined *local_2c;\n  undefined *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  uint local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_2c = PTR_LAB_000f52c8 + 0x2e64;\n  local_28 = PTR_LAB_000f52ec + 0x1b64;\n  local_24 = 0;\n  local_20 = 0;\n  local_1c = 0;\n  local_18 = 0;\n  local_14 = *(uint *)PTR___stack_chk_guard_000f5568;\n  uVar1 = *(undefined1 *)(param_1 + 0x33);\n  *(undefined1 *)(param_1 + 0x33) = 3;\n  pppuVar8 = param_1;\n  local_30 = param_1;\n  if (param_2 != (undefined4 ***)0x0) {\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }\n  uVar3 = *(uint *)puVar2;\n  *(undefined1 *)(param_1 + 0x33) = uVar1;\n  if (local_14 == uVar3) {\n    return uVar3;\n  }\n  pcVar10 = FUN_0002f8e4;\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;\n  piVar6 = *(int **)(puVar9 + 0xc5c84);\n  puStack_50 = puVar2;\n  uStack_78 = 0;\n  uStack_70 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  iStack_5c = *piVar6;\n  ppuStack_60 = param_2;\n  ppuStack_54 = param_1;\n  pcStack_4c = pcVar10;\n  if (pppuVar8 == (undefined4 ***)0x0) {\n    uStack_64._0_2_ = 0;\n  }\n  else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }\n  uVar4 = uStack_64._0_2_;\n  if (param_3 == 0) {\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }\n  if (iStack_5c == *piVar6) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = iStack_5c;\n  (**(code **)(puVar9 + 0xc5c5c))();\n  iVar7 = *(int *)(iVar5 + 0x18);\n  pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);\n  if (pppuVar8 != param_2) {\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_0002f82c(undefined4 ***param_1,undefined4 ***param_2,int param_3)" identifier (parameter_list "(undefined4 ***param_1,undefined4 ***param_2,int param_3)" ( (parameter_declaration "undefined4 ***param_1" type_identifier (pointer_declarator "***param_1" * (pointer_declarator "**param_1" * (pointer_declarator "*param_1" * identifier)))) , (parameter_declaration "undefined4 ***param_2" type_identifier (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier)))) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 ***pppuVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 **ppuStack_60;\n  int iStack_5c;\n  undefined4 **ppuStack_54;\n  undefined *puStack_50;\n  code *pcStack_4c;\n  undefined4 **local_30;\n  undefined *local_2c;\n  undefined *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  uint local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_2c = PTR_LAB_000f52c8 + 0x2e64;\n  local_28 = PTR_LAB_000f52ec + 0x1b64;\n  local_24 = 0;\n  local_20 = 0;\n  local_1c = 0;\n  local_18 = 0;\n  local_14 = *(uint *)PTR___stack_chk_guard_000f5568;\n  uVar1 = *(undefined1 *)(param_1 + 0x33);\n  *(undefined1 *)(param_1 + 0x33) = 3;\n  pppuVar8 = param_1;\n  local_30 = param_1;\n  if (param_2 != (undefined4 ***)0x0) {\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }\n  uVar3 = *(uint *)puVar2;\n  *(undefined1 *)(param_1 + 0x33) = uVar1;\n  if (local_14 == uVar3) {\n    return uVar3;\n  }\n  pcVar10 = FUN_0002f8e4;\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;\n  piVar6 = *(int **)(puVar9 + 0xc5c84);\n  puStack_50 = puVar2;\n  uStack_78 = 0;\n  uStack_70 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  iStack_5c = *piVar6;\n  ppuStack_60 = param_2;\n  ppuStack_54 = param_1;\n  pcStack_4c = pcVar10;\n  if (pppuVar8 == (undefined4 ***)0x0) {\n    uStack_64._0_2_ = 0;\n  }\n  else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }\n  uVar4 = uStack_64._0_2_;\n  if (param_3 == 0) {\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }\n  if (iStack_5c == *piVar6) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = iStack_5c;\n  (**(code **)(puVar9 + 0xc5c5c))();\n  iVar7 = *(int *)(iVar5 + 0x18);\n  pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);\n  if (pppuVar8 != param_2) {\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }\n  return 0;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 ***pppuVar8;" type_identifier (pointer_declarator "***pppuVar8" * (pointer_declarator "**pppuVar8" * (pointer_declarator "*pppuVar8" * identifier))) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 uStack_78;" type_identifier identifier ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined4 uStack_6c;" type_identifier identifier ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "undefined4 uStack_64;" type_identifier identifier ;) (declaration "undefined4 **ppuStack_60;" type_identifier (pointer_declarator "**ppuStack_60" * (pointer_declarator "*ppuStack_60" * identifier)) ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "undefined4 **ppuStack_54;" type_identifier (pointer_declarator "**ppuStack_54" * (pointer_declarator "*ppuStack_54" * identifier)) ;) (declaration "undefined *puStack_50;" type_identifier (pointer_declarator "*puStack_50" * identifier) ;) (declaration "code *pcStack_4c;" type_identifier (pointer_declarator "*pcStack_4c" * identifier) ;) (declaration "undefined4 **local_30;" type_identifier (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "undefined *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "uint local_14;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_2c = PTR_LAB_000f52c8 + 0x2e64;" (assignment_expression "local_2c = PTR_LAB_000f52c8 + 0x2e64" identifier = (binary_expression "PTR_LAB_000f52c8 + 0x2e64" identifier + number_literal)) ;) (expression_statement "local_28 = PTR_LAB_000f52ec + 0x1b64;" (assignment_expression "local_28 = PTR_LAB_000f52ec + 0x1b64" identifier = (binary_expression "PTR_LAB_000f52ec + 0x1b64" identifier + number_literal)) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_1c = 0;" (assignment_expression "local_1c = 0" identifier = number_literal) ;) (expression_statement "local_18 = 0;" (assignment_expression "local_18 = 0" identifier = number_literal) ;) (expression_statement "local_14 = *(uint *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_14 = *(uint *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000f5568" * (cast_expression "(uint *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar1 = *(undefined1 *)(param_1 + 0x33);" (assignment_expression "uVar1 = *(undefined1 *)(param_1 + 0x33)" identifier = (pointer_expression "*(undefined1 *)(param_1 + 0x33)" * (cast_expression "(undefined1 *)(param_1 + 0x33)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x33)" ( (binary_expression "param_1 + 0x33" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x33) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 0x33) = 3" (pointer_expression "*(undefined1 *)(param_1 + 0x33)" * (cast_expression "(undefined1 *)(param_1 + 0x33)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x33)" ( (binary_expression "param_1 + 0x33" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppuVar8 = param_1;" (assignment_expression "pppuVar8 = param_1" identifier = identifier) ;) (expression_statement "local_30 = param_1;" (assignment_expression "local_30 = param_1" identifier = identifier) ;) (if_statement "if (param_2 != (undefined4 ***)0x0) {\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }" if (parenthesized_expression "(param_2 != (undefined4 ***)0x0)" ( (binary_expression "param_2 != (undefined4 ***)0x0" identifier != (cast_expression "(undefined4 ***)0x0" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }" { (expression_statement "pppuVar8 = &local_30;" (assignment_expression "pppuVar8 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "FUN_0002f078();" (call_expression "FUN_0002f078()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar3 = *(uint *)puVar2;" (assignment_expression "uVar3 = *(uint *)puVar2" identifier = (pointer_expression "*(uint *)puVar2" * (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x33) = uVar1;" (assignment_expression "*(undefined1 *)(param_1 + 0x33) = uVar1" (pointer_expression "*(undefined1 *)(param_1 + 0x33)" * (cast_expression "(undefined1 *)(param_1 + 0x33)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x33)" ( (binary_expression "param_1 + 0x33" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_14 == uVar3) {\n    return uVar3;\n  }" if (parenthesized_expression "(local_14 == uVar3)" ( (binary_expression "local_14 == uVar3" identifier == identifier) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "pcVar10 = FUN_0002f8e4;" (assignment_expression "pcVar10 = FUN_0002f8e4" identifier = identifier) ;) (expression_statement "puVar9 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar9 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;" (assignment_expression "iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c" identifier = (binary_expression "*(int *)(puVar9 + 0xc5a08) + 0x145c" (pointer_expression "*(int *)(puVar9 + 0xc5a08)" * (cast_expression "(int *)(puVar9 + 0xc5a08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xc5a08)" ( (binary_expression "puVar9 + 0xc5a08" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "piVar6 = *(int **)(puVar9 + 0xc5c84);" (assignment_expression "piVar6 = *(int **)(puVar9 + 0xc5c84)" identifier = (pointer_expression "*(int **)(puVar9 + 0xc5c84)" * (cast_expression "(int **)(puVar9 + 0xc5c84)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xc5c84)" ( (binary_expression "puVar9 + 0xc5c84" identifier + number_literal) ))))) ;) (expression_statement "puStack_50 = puVar2;" (assignment_expression "puStack_50 = puVar2" identifier = identifier) ;) (expression_statement "uStack_78 = 0;" (assignment_expression "uStack_78 = 0" identifier = number_literal) ;) (expression_statement "uStack_70 = 0;" (assignment_expression "uStack_70 = 0" identifier = number_literal) ;) (expression_statement "uStack_6c = 0;" (assignment_expression "uStack_6c = 0" identifier = number_literal) ;) (expression_statement "uStack_68 = 0;" (assignment_expression "uStack_68 = 0" identifier = number_literal) ;) (expression_statement "uStack_64 = 0;" (assignment_expression "uStack_64 = 0" identifier = number_literal) ;) (expression_statement "iStack_5c = *piVar6;" (assignment_expression "iStack_5c = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "ppuStack_60 = param_2;" (assignment_expression "ppuStack_60 = param_2" identifier = identifier) ;) (expression_statement "ppuStack_54 = param_1;" (assignment_expression "ppuStack_54 = param_1" identifier = identifier) ;) (expression_statement "pcStack_4c = pcVar10;" (assignment_expression "pcStack_4c = pcVar10" identifier = identifier) ;) (if_statement "if (pppuVar8 == (undefined4 ***)0x0) {\n    uStack_64._0_2_ = 0;\n  }\n  else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }" if (parenthesized_expression "(pppuVar8 == (undefined4 ***)0x0)" ( (binary_expression "pppuVar8 == (undefined4 ***)0x0" identifier == (cast_expression "(undefined4 ***)0x0" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n    uStack_64._0_2_ = 0;\n  }" { (expression_statement "uStack_64._0_2_ = 0;" (assignment_expression "uStack_64._0_2_ = 0" (field_expression "uStack_64._0_2_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }" else (compound_statement "{\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }" { (expression_statement "FUN_0002f078(&uStack_78);" (call_expression "FUN_0002f078(&uStack_78)" identifier (argument_list "(&uStack_78)" ( (pointer_expression "&uStack_78" & identifier) ))) ;) (expression_statement "param_2 = pppuVar8;" (assignment_expression "param_2 = pppuVar8" identifier = identifier) ;) }))) (expression_statement "uVar4 = uStack_64._0_2_;" (assignment_expression "uVar4 = uStack_64._0_2_" identifier = (field_expression "uStack_64._0_2_" identifier . field_identifier)) ;) (if_statement "if (param_3 == 0) {\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }" { (expression_statement "uVar4 = uStack_64._0_2_ & 0xfffd;" (assignment_expression "uVar4 = uStack_64._0_2_ & 0xfffd" identifier = (binary_expression "uStack_64._0_2_ & 0xfffd" (field_expression "uStack_64._0_2_" identifier . field_identifier) & number_literal)) ;) })) (if_statement "if (iStack_5c == *piVar6) {\n    return (uint)(uVar4 != 0);\n  }" if (parenthesized_expression "(iStack_5c == *piVar6)" ( (binary_expression "iStack_5c == *piVar6" identifier == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return (uint)(uVar4 != 0);\n  }" { (return_statement "return (uint)(uVar4 != 0);" return (call_expression "(uint)(uVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) ;) })) (expression_statement "iVar5 = iStack_5c;" (assignment_expression "iVar5 = iStack_5c" identifier = identifier) ;) (expression_statement "(**(code **)(puVar9 + 0xc5c5c))();" (call_expression "(**(code **)(puVar9 + 0xc5c5c))()" (parenthesized_expression "(**(code **)(puVar9 + 0xc5c5c))" ( (pointer_expression "**(code **)(puVar9 + 0xc5c5c)" * (pointer_expression "*(code **)(puVar9 + 0xc5c5c)" * (cast_expression "(code **)(puVar9 + 0xc5c5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xc5c5c)" ( (binary_expression "puVar9 + 0xc5c5c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)(iVar5 + 0x18);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x18)" identifier = (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);" (assignment_expression "pppuVar8 = *(undefined4 ****)(iVar7 + 0x10)" identifier = (pointer_expression "*(undefined4 ****)(iVar7 + 0x10)" * (cast_expression "(undefined4 ****)(iVar7 + 0x10)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (pppuVar8 != param_2) {\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }" if (parenthesized_expression "(pppuVar8 != param_2)" ( (binary_expression "pppuVar8 != param_2" identifier != identifier) )) (compound_statement "{\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }" { (expression_statement "*(undefined4 ****)(iVar7 + 0x10) = param_2;" (assignment_expression "*(undefined4 ****)(iVar7 + 0x10) = param_2" (pointer_expression "*(undefined4 ****)(iVar7 + 0x10)" * (cast_expression "(undefined4 ****)(iVar7 + 0x10)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }" if (parenthesized_expression "((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0))" ( (binary_expression "(param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)" (parenthesized_expression "(param_2 != (undefined4 ***)0x0)" ( (binary_expression "param_2 != (undefined4 ***)0x0" identifier != (cast_expression "(undefined4 ***)0x0" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) && (parenthesized_expression "(*(int *)(iVar5 + 8) != 0)" ( (binary_expression "*(int *)(iVar5 + 8) != 0" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      FUN_0002ee18();\n    }" { (expression_statement "FUN_0002ee18();" (call_expression "FUN_0002ee18()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 ****)(iVar7 + 0x10) = pppuVar8;" (assignment_expression "*(undefined4 ****)(iVar7 + 0x10) = pppuVar8" (pointer_expression "*(undefined4 ****)(iVar7 + 0x10)" * (cast_expression "(undefined4 ****)(iVar7 + 0x10)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "void sqlite3RenameExprUnmap(Parse *pParse,Expr *pExpr)\n\n{\n  u8 uVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  anon_union_4_16_1c331a60_for_u pExpr_00;\n  Walker *pWalker;\n  int *piVar5;\n  WindowRewrite *pWVar6;\n  Parse *pPVar7;\n  undefined *puVar8;\n  code *pcVar9;\n  Walker WStack_78;\n  Walker *pWStack_5c;\n  Parse *pPStack_54;\n  undefined *puStack_50;\n  code *pcStack_4c;\n  Walker sWalker;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  sWalker.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52c8 + 0x2e64);\n  sWalker.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52ec + 0x1b64);\n  sWalker.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n  sWalker.walkerDepth = 0;\n  sWalker.eCode = 0;\n  sWalker._22_2_ = 0;\n  sWalker.u.pNC = (NameContext *)0x0;\n  iVar4 = *(int *)PTR___stack_chk_guard_000f5568;\n  uVar1 = pParse->eParseMode;\n  pParse->eParseMode = '\x03';\n  pExpr_00 = (anon_union_4_16_1c331a60_for_u)pParse;\n  sWalker.pParse = pParse;\n  if (pExpr != (Expr *)0x0) {\n    pExpr_00.pNC = (NameContext *)&sWalker;\n    walkExpr((Walker *)pExpr_00.pNC,pExpr);\n  }\n  iVar3 = *(int *)puVar2;\n  pParse->eParseMode = uVar1;\n  if (iVar4 == iVar3) {\n    return;\n  }\n  pcVar9 = sqlite3ExprReferencesUpdatedColumn;\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  WStack_78.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar8 + 0xc5a08) + 0x145c);\n  piVar5 = *(int **)(puVar8 + 0xc5c84);\n  puStack_50 = puVar2;\n  WStack_78.pParse = (Parse *)0x0;\n  WStack_78.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;\n  WStack_78.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n  WStack_78.walkerDepth = 0;\n  WStack_78.eCode = 0;\n  WStack_78._22_2_ = 0;\n  pWStack_5c = (Walker *)*piVar5;\n  WStack_78.u = (anon_union_4_16_1c331a60_for_u)pExpr;\n  pPStack_54 = pParse;\n  pcStack_4c = pcVar9;\n  if ((Parse *)pExpr_00.pNC != (Parse *)0x0) {\n    walkExpr(&WStack_78,(Expr *)pExpr_00.pNC);\n    pExpr = (Expr *)pExpr_00;\n  }\n  if (pWStack_5c == (Walker *)*piVar5) {\n    return;\n  }\n  pWalker = pWStack_5c;\n  (**(code **)(puVar8 + 0xc5c5c))();\n  pWVar6 = (pWalker->u).pRewrite;\n  pPVar7 = (Parse *)pWVar6->pSubSelect;\n  if (pPVar7 != (Parse *)pExpr) {\n    pWVar6->pSubSelect = (Select *)pExpr;\n    if (((Parse *)pExpr != (Parse *)0x0) &&\n       (pWalker->xSelectCallback != (_func_int_Walker_ptr_Select_ptr *)0x0)) {\n      sqlite3WalkSelect(pWalker,(Select *)pExpr);\n    }\n    pWVar6->pSubSelect = (Select *)pPVar7;\n    return;\n  }\n  return;\n}\n\n" (function_definition "void sqlite3RenameExprUnmap(Parse *pParse,Expr *pExpr)\n\n{\n  u8 uVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  anon_union_4_16_1c331a60_for_u pExpr_00;\n  Walker *pWalker;\n  int *piVar5;\n  WindowRewrite *pWVar6;\n  Parse *pPVar7;\n  undefined *puVar8;\n  code *pcVar9;\n  Walker WStack_78;\n  Walker *pWStack_5c;\n  Parse *pPStack_54;\n  undefined *puStack_50;\n  code *pcStack_4c;\n  Walker sWalker;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  sWalker.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52c8 + 0x2e64);\n  sWalker.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52ec + 0x1b64);\n  sWalker.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n  sWalker.walkerDepth = 0;\n  sWalker.eCode = 0;\n  sWalker._22_2_ = 0;\n  sWalker.u.pNC = (NameContext *)0x0;\n  iVar4 = *(int *)PTR___stack_chk_guard_000f5568;\n  uVar1 = pParse->eParseMode;\n  pParse->eParseMode = '\x03';\n  pExpr_00 = (anon_union_4_16_1c331a60_for_u)pParse;\n  sWalker.pParse = pParse;\n  if (pExpr != (Expr *)0x0) {\n    pExpr_00.pNC = (NameContext *)&sWalker;\n    walkExpr((Walker *)pExpr_00.pNC,pExpr);\n  }\n  iVar3 = *(int *)puVar2;\n  pParse->eParseMode = uVar1;\n  if (iVar4 == iVar3) {\n    return;\n  }\n  pcVar9 = sqlite3ExprReferencesUpdatedColumn;\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  WStack_78.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar8 + 0xc5a08) + 0x145c);\n  piVar5 = *(int **)(puVar8 + 0xc5c84);\n  puStack_50 = puVar2;\n  WStack_78.pParse = (Parse *)0x0;\n  WStack_78.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;\n  WStack_78.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n  WStack_78.walkerDepth = 0;\n  WStack_78.eCode = 0;\n  WStack_78._22_2_ = 0;\n  pWStack_5c = (Walker *)*piVar5;\n  WStack_78.u = (anon_union_4_16_1c331a60_for_u)pExpr;\n  pPStack_54 = pParse;\n  pcStack_4c = pcVar9;\n  if ((Parse *)pExpr_00.pNC != (Parse *)0x0) {\n    walkExpr(&WStack_78,(Expr *)pExpr_00.pNC);\n    pExpr = (Expr *)pExpr_00;\n  }\n  if (pWStack_5c == (Walker *)*piVar5) {\n    return;\n  }\n  pWalker = pWStack_5c;\n  (**(code **)(puVar8 + 0xc5c5c))();\n  pWVar6 = (pWalker->u).pRewrite;\n  pPVar7 = (Parse *)pWVar6->pSubSelect;\n  if (pPVar7 != (Parse *)pExpr) {\n    pWVar6->pSubSelect = (Select *)pExpr;\n    if (((Parse *)pExpr != (Parse *)0x0) &&\n       (pWalker->xSelectCallback != (_func_int_Walker_ptr_Select_ptr *)0x0)) {\n      sqlite3WalkSelect(pWalker,(Select *)pExpr);\n    }\n    pWVar6->pSubSelect = (Select *)pPVar7;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "sqlite3RenameExprUnmap(Parse *pParse,Expr *pExpr)" identifier (parameter_list "(Parse *pParse,Expr *pExpr)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "Expr *pExpr" type_identifier (pointer_declarator "*pExpr" * identifier)) ))) (compound_statement "{\n  u8 uVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  anon_union_4_16_1c331a60_for_u pExpr_00;\n  Walker *pWalker;\n  int *piVar5;\n  WindowRewrite *pWVar6;\n  Parse *pPVar7;\n  undefined *puVar8;\n  code *pcVar9;\n  Walker WStack_78;\n  Walker *pWStack_5c;\n  Parse *pPStack_54;\n  undefined *puStack_50;\n  code *pcStack_4c;\n  Walker sWalker;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  sWalker.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52c8 + 0x2e64);\n  sWalker.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52ec + 0x1b64);\n  sWalker.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n  sWalker.walkerDepth = 0;\n  sWalker.eCode = 0;\n  sWalker._22_2_ = 0;\n  sWalker.u.pNC = (NameContext *)0x0;\n  iVar4 = *(int *)PTR___stack_chk_guard_000f5568;\n  uVar1 = pParse->eParseMode;\n  pParse->eParseMode = '\x03';\n  pExpr_00 = (anon_union_4_16_1c331a60_for_u)pParse;\n  sWalker.pParse = pParse;\n  if (pExpr != (Expr *)0x0) {\n    pExpr_00.pNC = (NameContext *)&sWalker;\n    walkExpr((Walker *)pExpr_00.pNC,pExpr);\n  }\n  iVar3 = *(int *)puVar2;\n  pParse->eParseMode = uVar1;\n  if (iVar4 == iVar3) {\n    return;\n  }\n  pcVar9 = sqlite3ExprReferencesUpdatedColumn;\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  WStack_78.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar8 + 0xc5a08) + 0x145c);\n  piVar5 = *(int **)(puVar8 + 0xc5c84);\n  puStack_50 = puVar2;\n  WStack_78.pParse = (Parse *)0x0;\n  WStack_78.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;\n  WStack_78.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n  WStack_78.walkerDepth = 0;\n  WStack_78.eCode = 0;\n  WStack_78._22_2_ = 0;\n  pWStack_5c = (Walker *)*piVar5;\n  WStack_78.u = (anon_union_4_16_1c331a60_for_u)pExpr;\n  pPStack_54 = pParse;\n  pcStack_4c = pcVar9;\n  if ((Parse *)pExpr_00.pNC != (Parse *)0x0) {\n    walkExpr(&WStack_78,(Expr *)pExpr_00.pNC);\n    pExpr = (Expr *)pExpr_00;\n  }\n  if (pWStack_5c == (Walker *)*piVar5) {\n    return;\n  }\n  pWalker = pWStack_5c;\n  (**(code **)(puVar8 + 0xc5c5c))();\n  pWVar6 = (pWalker->u).pRewrite;\n  pPVar7 = (Parse *)pWVar6->pSubSelect;\n  if (pPVar7 != (Parse *)pExpr) {\n    pWVar6->pSubSelect = (Select *)pExpr;\n    if (((Parse *)pExpr != (Parse *)0x0) &&\n       (pWalker->xSelectCallback != (_func_int_Walker_ptr_Select_ptr *)0x0)) {\n      sqlite3WalkSelect(pWalker,(Select *)pExpr);\n    }\n    pWVar6->pSubSelect = (Select *)pPVar7;\n    return;\n  }\n  return;\n}" { (declaration "u8 uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "anon_union_4_16_1c331a60_for_u pExpr_00;" type_identifier identifier ;) (declaration "Walker *pWalker;" type_identifier (pointer_declarator "*pWalker" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "WindowRewrite *pWVar6;" type_identifier (pointer_declarator "*pWVar6" * identifier) ;) (declaration "Parse *pPVar7;" type_identifier (pointer_declarator "*pPVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "Walker WStack_78;" type_identifier identifier ;) (declaration "Walker *pWStack_5c;" type_identifier (pointer_declarator "*pWStack_5c" * identifier) ;) (declaration "Parse *pPStack_54;" type_identifier (pointer_declarator "*pPStack_54" * identifier) ;) (declaration "undefined *puStack_50;" type_identifier (pointer_declarator "*puStack_50" * identifier) ;) (declaration "code *pcStack_4c;" type_identifier (pointer_declarator "*pcStack_4c" * identifier) ;) (declaration "Walker sWalker;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "sWalker.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52c8 + 0x2e64);" (assignment_expression "sWalker.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52c8 + 0x2e64)" (field_expression "sWalker.xExprCallback" identifier . field_identifier) = (cast_expression "(_func_int_Walker_ptr_Expr_ptr *)(PTR_LAB_000f52c8 + 0x2e64)" ( (type_descriptor "_func_int_Walker_ptr_Expr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + 0x2e64)" ( (binary_expression "PTR_LAB_000f52c8 + 0x2e64" identifier + number_literal) )))) ;) (expression_statement "sWalker.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52ec + 0x1b64);" (assignment_expression "sWalker.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52ec + 0x1b64)" (field_expression "sWalker.xSelectCallback" identifier . field_identifier) = (cast_expression "(_func_int_Walker_ptr_Select_ptr *)(PTR_LAB_000f52ec + 0x1b64)" ( (type_descriptor "_func_int_Walker_ptr_Select_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x1b64)" ( (binary_expression "PTR_LAB_000f52ec + 0x1b64" identifier + number_literal) )))) ;) (expression_statement "sWalker.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;" (assignment_expression "sWalker.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0" (field_expression "sWalker.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 "sWalker.walkerDepth = 0;" (assignment_expression "sWalker.walkerDepth = 0" (field_expression "sWalker.walkerDepth" identifier . field_identifier) = number_literal) ;) (expression_statement "sWalker.eCode = 0;" (assignment_expression "sWalker.eCode = 0" (field_expression "sWalker.eCode" identifier . field_identifier) = number_literal) ;) (expression_statement "sWalker._22_2_ = 0;" (assignment_expression "sWalker._22_2_ = 0" (field_expression "sWalker._22_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "sWalker.u.pNC = (NameContext *)0x0;" (assignment_expression "sWalker.u.pNC = (NameContext *)0x0" (field_expression "sWalker.u.pNC" (field_expression "sWalker.u" identifier . field_identifier) . field_identifier) = (cast_expression "(NameContext *)0x0" ( (type_descriptor "NameContext *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "iVar4 = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar1 = pParse->eParseMode;" (assignment_expression "uVar1 = pParse->eParseMode" identifier = (field_expression "pParse->eParseMode" identifier -> field_identifier)) ;) (expression_statement "pParse->eParseMode = '\x03';" (assignment_expression "pParse->eParseMode = '\x03'" (field_expression "pParse->eParseMode" identifier -> field_identifier) = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "pExpr_00 = (anon_union_4_16_1c331a60_for_u)pParse;" (assignment_expression "pExpr_00 = (anon_union_4_16_1c331a60_for_u)pParse" identifier = (cast_expression "(anon_union_4_16_1c331a60_for_u)pParse" ( (type_descriptor "anon_union_4_16_1c331a60_for_u" type_identifier) ) identifier)) ;) (expression_statement "sWalker.pParse = pParse;" (assignment_expression "sWalker.pParse = pParse" (field_expression "sWalker.pParse" identifier . field_identifier) = identifier) ;) (if_statement "if (pExpr != (Expr *)0x0) {\n    pExpr_00.pNC = (NameContext *)&sWalker;\n    walkExpr((Walker *)pExpr_00.pNC,pExpr);\n  }" if (parenthesized_expression "(pExpr != (Expr *)0x0)" ( (binary_expression "pExpr != (Expr *)0x0" identifier != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pExpr_00.pNC = (NameContext *)&sWalker;\n    walkExpr((Walker *)pExpr_00.pNC,pExpr);\n  }" { (expression_statement "pExpr_00.pNC = (NameContext *)&sWalker;" (assignment_expression "pExpr_00.pNC = (NameContext *)&sWalker" (field_expression "pExpr_00.pNC" identifier . field_identifier) = (cast_expression "(NameContext *)&sWalker" ( (type_descriptor "NameContext *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sWalker" & identifier))) ;) (expression_statement "walkExpr((Walker *)pExpr_00.pNC,pExpr);" (call_expression "walkExpr((Walker *)pExpr_00.pNC,pExpr)" identifier (argument_list "((Walker *)pExpr_00.pNC,pExpr)" ( (cast_expression "(Walker *)pExpr_00.pNC" ( (type_descriptor "Walker *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pExpr_00.pNC" identifier . field_identifier)) , identifier ))) ;) })) (expression_statement "iVar3 = *(int *)puVar2;" (assignment_expression "iVar3 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pParse->eParseMode = uVar1;" (assignment_expression "pParse->eParseMode = uVar1" (field_expression "pParse->eParseMode" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar4 == iVar3) {\n    return;\n  }" if (parenthesized_expression "(iVar4 == iVar3)" ( (binary_expression "iVar4 == iVar3" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar9 = sqlite3ExprReferencesUpdatedColumn;" (assignment_expression "pcVar9 = sqlite3ExprReferencesUpdatedColumn" identifier = identifier) ;) (expression_statement "puVar8 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar8 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "WStack_78.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar8 + 0xc5a08) + 0x145c);" (assignment_expression "WStack_78.xExprCallback = (_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar8 + 0xc5a08) + 0x145c)" (field_expression "WStack_78.xExprCallback" identifier . field_identifier) = (cast_expression "(_func_int_Walker_ptr_Expr_ptr *)(*(int *)(puVar8 + 0xc5a08) + 0x145c)" ( (type_descriptor "_func_int_Walker_ptr_Expr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0xc5a08) + 0x145c)" ( (binary_expression "*(int *)(puVar8 + 0xc5a08) + 0x145c" (pointer_expression "*(int *)(puVar8 + 0xc5a08)" * (cast_expression "(int *)(puVar8 + 0xc5a08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xc5a08)" ( (binary_expression "puVar8 + 0xc5a08" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar5 = *(int **)(puVar8 + 0xc5c84);" (assignment_expression "piVar5 = *(int **)(puVar8 + 0xc5c84)" identifier = (pointer_expression "*(int **)(puVar8 + 0xc5c84)" * (cast_expression "(int **)(puVar8 + 0xc5c84)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0xc5c84)" ( (binary_expression "puVar8 + 0xc5c84" identifier + number_literal) ))))) ;) (expression_statement "puStack_50 = puVar2;" (assignment_expression "puStack_50 = puVar2" identifier = identifier) ;) (expression_statement "WStack_78.pParse = (Parse *)0x0;" (assignment_expression "WStack_78.pParse = (Parse *)0x0" (field_expression "WStack_78.pParse" identifier . field_identifier) = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "WStack_78.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0;" (assignment_expression "WStack_78.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)0x0" (field_expression "WStack_78.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 "WStack_78.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;" (assignment_expression "WStack_78.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0" (field_expression "WStack_78.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 "WStack_78.walkerDepth = 0;" (assignment_expression "WStack_78.walkerDepth = 0" (field_expression "WStack_78.walkerDepth" identifier . field_identifier) = number_literal) ;) (expression_statement "WStack_78.eCode = 0;" (assignment_expression "WStack_78.eCode = 0" (field_expression "WStack_78.eCode" identifier . field_identifier) = number_literal) ;) (expression_statement "WStack_78._22_2_ = 0;" (assignment_expression "WStack_78._22_2_ = 0" (field_expression "WStack_78._22_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "pWStack_5c = (Walker *)*piVar5;" (assignment_expression "pWStack_5c = (Walker *)*piVar5" identifier = (cast_expression "(Walker *)*piVar5" ( (type_descriptor "Walker *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) ;) (expression_statement "WStack_78.u = (anon_union_4_16_1c331a60_for_u)pExpr;" (assignment_expression "WStack_78.u = (anon_union_4_16_1c331a60_for_u)pExpr" (field_expression "WStack_78.u" identifier . field_identifier) = (cast_expression "(anon_union_4_16_1c331a60_for_u)pExpr" ( (type_descriptor "anon_union_4_16_1c331a60_for_u" type_identifier) ) identifier)) ;) (expression_statement "pPStack_54 = pParse;" (assignment_expression "pPStack_54 = pParse" identifier = identifier) ;) (expression_statement "pcStack_4c = pcVar9;" (assignment_expression "pcStack_4c = pcVar9" identifier = identifier) ;) (if_statement "if ((Parse *)pExpr_00.pNC != (Parse *)0x0) {\n    walkExpr(&WStack_78,(Expr *)pExpr_00.pNC);\n    pExpr = (Expr *)pExpr_00;\n  }" if (parenthesized_expression "((Parse *)pExpr_00.pNC != (Parse *)0x0)" ( (binary_expression "(Parse *)pExpr_00.pNC != (Parse *)0x0" (cast_expression "(Parse *)pExpr_00.pNC" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pExpr_00.pNC" identifier . field_identifier)) != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    walkExpr(&WStack_78,(Expr *)pExpr_00.pNC);\n    pExpr = (Expr *)pExpr_00;\n  }" { (expression_statement "walkExpr(&WStack_78,(Expr *)pExpr_00.pNC);" (call_expression "walkExpr(&WStack_78,(Expr *)pExpr_00.pNC)" identifier (argument_list "(&WStack_78,(Expr *)pExpr_00.pNC)" ( (pointer_expression "&WStack_78" & identifier) , (cast_expression "(Expr *)pExpr_00.pNC" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pExpr_00.pNC" identifier . field_identifier)) ))) ;) (expression_statement "pExpr = (Expr *)pExpr_00;" (assignment_expression "pExpr = (Expr *)pExpr_00" identifier = (cast_expression "(Expr *)pExpr_00" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (if_statement "if (pWStack_5c == (Walker *)*piVar5) {\n    return;\n  }" if (parenthesized_expression "(pWStack_5c == (Walker *)*piVar5)" ( (binary_expression "pWStack_5c == (Walker *)*piVar5" identifier == (cast_expression "(Walker *)*piVar5" ( (type_descriptor "Walker *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pWalker = pWStack_5c;" (assignment_expression "pWalker = pWStack_5c" identifier = identifier) ;) (expression_statement "(**(code **)(puVar8 + 0xc5c5c))();" (call_expression "(**(code **)(puVar8 + 0xc5c5c))()" (parenthesized_expression "(**(code **)(puVar8 + 0xc5c5c))" ( (pointer_expression "**(code **)(puVar8 + 0xc5c5c)" * (pointer_expression "*(code **)(puVar8 + 0xc5c5c)" * (cast_expression "(code **)(puVar8 + 0xc5c5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0xc5c5c)" ( (binary_expression "puVar8 + 0xc5c5c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pWVar6 = (pWalker->u).pRewrite;" (assignment_expression "pWVar6 = (pWalker->u).pRewrite" identifier = (field_expression "(pWalker->u).pRewrite" (parenthesized_expression "(pWalker->u)" ( (field_expression "pWalker->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pPVar7 = (Parse *)pWVar6->pSubSelect;" (assignment_expression "pPVar7 = (Parse *)pWVar6->pSubSelect" identifier = (cast_expression "(Parse *)pWVar6->pSubSelect" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pWVar6->pSubSelect" identifier -> field_identifier))) ;) (if_statement "if (pPVar7 != (Parse *)pExpr) {\n    pWVar6->pSubSelect = (Select *)pExpr;\n    if (((Parse *)pExpr != (Parse *)0x0) &&\n       (pWalker->xSelectCallback != (_func_int_Walker_ptr_Select_ptr *)0x0)) {\n      sqlite3WalkSelect(pWalker,(Select *)pExpr);\n    }\n    pWVar6->pSubSelect = (Select *)pPVar7;\n    return;\n  }" if (parenthesized_expression "(pPVar7 != (Parse *)pExpr)" ( (binary_expression "pPVar7 != (Parse *)pExpr" identifier != (cast_expression "(Parse *)pExpr" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    pWVar6->pSubSelect = (Select *)pExpr;\n    if (((Parse *)pExpr != (Parse *)0x0) &&\n       (pWalker->xSelectCallback != (_func_int_Walker_ptr_Select_ptr *)0x0)) {\n      sqlite3WalkSelect(pWalker,(Select *)pExpr);\n    }\n    pWVar6->pSubSelect = (Select *)pPVar7;\n    return;\n  }" { (expression_statement "pWVar6->pSubSelect = (Select *)pExpr;" (assignment_expression "pWVar6->pSubSelect = (Select *)pExpr" (field_expression "pWVar6->pSubSelect" identifier -> field_identifier) = (cast_expression "(Select *)pExpr" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((Parse *)pExpr != (Parse *)0x0) &&\n       (pWalker->xSelectCallback != (_func_int_Walker_ptr_Select_ptr *)0x0)) {\n      sqlite3WalkSelect(pWalker,(Select *)pExpr);\n    }" if (parenthesized_expression "(((Parse *)pExpr != (Parse *)0x0) &&\n       (pWalker->xSelectCallback != (_func_int_Walker_ptr_Select_ptr *)0x0))" ( (binary_expression "((Parse *)pExpr != (Parse *)0x0) &&\n       (pWalker->xSelectCallback != (_func_int_Walker_ptr_Select_ptr *)0x0)" (parenthesized_expression "((Parse *)pExpr != (Parse *)0x0)" ( (binary_expression "(Parse *)pExpr != (Parse *)0x0" (cast_expression "(Parse *)pExpr" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pWalker->xSelectCallback != (_func_int_Walker_ptr_Select_ptr *)0x0)" ( (binary_expression "pWalker->xSelectCallback != (_func_int_Walker_ptr_Select_ptr *)0x0" (field_expression "pWalker->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)) ))) )) (compound_statement "{\n      sqlite3WalkSelect(pWalker,(Select *)pExpr);\n    }" { (expression_statement "sqlite3WalkSelect(pWalker,(Select *)pExpr);" (call_expression "sqlite3WalkSelect(pWalker,(Select *)pExpr)" identifier (argument_list "(pWalker,(Select *)pExpr)" ( identifier , (cast_expression "(Select *)pExpr" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "pWVar6->pSubSelect = (Select *)pPVar7;" (assignment_expression "pWVar6->pSubSelect = (Select *)pPVar7" (field_expression "pWVar6->pSubSelect" identifier -> field_identifier) = (cast_expression "(Select *)pPVar7" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "uint FUN_0002f82c(undefined4 ***param_1,undefined4 ***param_2,int param_3)\n\n{\n  undefined1 uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 ***pppuVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 **ppuStack_60;\n  int iStack_5c;\n  undefined4 **ppuStack_54;\n  undefined *puStack_50;\n  code *pcStack_4c;\n  undefined4 **local_30;\n  undefined *local_2c;\n  undefined *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  uint local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_2c = PTR_LAB_000f52c8 + 0x2e64;\n  local_28 = PTR_LAB_000f52ec + 0x1b64;\n  local_24 = 0;\n  local_20 = 0;\n  local_1c = 0;\n  local_18 = 0;\n  local_14 = *(uint *)PTR___stack_chk_guard_000f5568;\n  uVar1 = *(undefined1 *)(param_1 + 0x33);\n  *(undefined1 *)(param_1 + 0x33) = 3;\n  pppuVar8 = param_1;\n  local_30 = param_1;\n  if (param_2 != (undefined4 ***)0x0) {\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }\n  uVar3 = *(uint *)puVar2;\n  *(undefined1 *)(param_1 + 0x33) = uVar1;\n  if (local_14 == uVar3) {\n    return uVar3;\n  }\n  pcVar10 = FUN_0002f8e4;\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;\n  piVar6 = *(int **)(puVar9 + 0xc5c84);\n  puStack_50 = puVar2;\n  uStack_78 = 0;\n  uStack_70 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  iStack_5c = *piVar6;\n  ppuStack_60 = param_2;\n  ppuStack_54 = param_1;\n  pcStack_4c = pcVar10;\n  if (pppuVar8 == (undefined4 ***)0x0) {\n    uStack_64._0_2_ = 0;\n  }\n  else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }\n  uVar4 = uStack_64._0_2_;\n  if (param_3 == 0) {\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }\n  if (iStack_5c == *piVar6) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = iStack_5c;\n  (**(code **)(puVar9 + 0xc5c5c))();\n  iVar7 = *(int *)(iVar5 + 0x18);\n  pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);\n  if (pppuVar8 != param_2) {\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }\n  return 0;\n}\n\n" (function_definition "uint FUN_0002f82c(undefined4 ***param_1,undefined4 ***param_2,int param_3)\n\n{\n  undefined1 uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 ***pppuVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 **ppuStack_60;\n  int iStack_5c;\n  undefined4 **ppuStack_54;\n  undefined *puStack_50;\n  code *pcStack_4c;\n  undefined4 **local_30;\n  undefined *local_2c;\n  undefined *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  uint local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_2c = PTR_LAB_000f52c8 + 0x2e64;\n  local_28 = PTR_LAB_000f52ec + 0x1b64;\n  local_24 = 0;\n  local_20 = 0;\n  local_1c = 0;\n  local_18 = 0;\n  local_14 = *(uint *)PTR___stack_chk_guard_000f5568;\n  uVar1 = *(undefined1 *)(param_1 + 0x33);\n  *(undefined1 *)(param_1 + 0x33) = 3;\n  pppuVar8 = param_1;\n  local_30 = param_1;\n  if (param_2 != (undefined4 ***)0x0) {\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }\n  uVar3 = *(uint *)puVar2;\n  *(undefined1 *)(param_1 + 0x33) = uVar1;\n  if (local_14 == uVar3) {\n    return uVar3;\n  }\n  pcVar10 = FUN_0002f8e4;\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;\n  piVar6 = *(int **)(puVar9 + 0xc5c84);\n  puStack_50 = puVar2;\n  uStack_78 = 0;\n  uStack_70 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  iStack_5c = *piVar6;\n  ppuStack_60 = param_2;\n  ppuStack_54 = param_1;\n  pcStack_4c = pcVar10;\n  if (pppuVar8 == (undefined4 ***)0x0) {\n    uStack_64._0_2_ = 0;\n  }\n  else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }\n  uVar4 = uStack_64._0_2_;\n  if (param_3 == 0) {\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }\n  if (iStack_5c == *piVar6) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = iStack_5c;\n  (**(code **)(puVar9 + 0xc5c5c))();\n  iVar7 = *(int *)(iVar5 + 0x18);\n  pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);\n  if (pppuVar8 != param_2) {\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_0002f82c(undefined4 ***param_1,undefined4 ***param_2,int param_3)" identifier (parameter_list "(undefined4 ***param_1,undefined4 ***param_2,int param_3)" ( (parameter_declaration "undefined4 ***param_1" type_identifier (pointer_declarator "***param_1" * (pointer_declarator "**param_1" * (pointer_declarator "*param_1" * identifier)))) , (parameter_declaration "undefined4 ***param_2" type_identifier (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier)))) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 ***pppuVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 **ppuStack_60;\n  int iStack_5c;\n  undefined4 **ppuStack_54;\n  undefined *puStack_50;\n  code *pcStack_4c;\n  undefined4 **local_30;\n  undefined *local_2c;\n  undefined *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  uint local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_2c = PTR_LAB_000f52c8 + 0x2e64;\n  local_28 = PTR_LAB_000f52ec + 0x1b64;\n  local_24 = 0;\n  local_20 = 0;\n  local_1c = 0;\n  local_18 = 0;\n  local_14 = *(uint *)PTR___stack_chk_guard_000f5568;\n  uVar1 = *(undefined1 *)(param_1 + 0x33);\n  *(undefined1 *)(param_1 + 0x33) = 3;\n  pppuVar8 = param_1;\n  local_30 = param_1;\n  if (param_2 != (undefined4 ***)0x0) {\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }\n  uVar3 = *(uint *)puVar2;\n  *(undefined1 *)(param_1 + 0x33) = uVar1;\n  if (local_14 == uVar3) {\n    return uVar3;\n  }\n  pcVar10 = FUN_0002f8e4;\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;\n  piVar6 = *(int **)(puVar9 + 0xc5c84);\n  puStack_50 = puVar2;\n  uStack_78 = 0;\n  uStack_70 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  iStack_5c = *piVar6;\n  ppuStack_60 = param_2;\n  ppuStack_54 = param_1;\n  pcStack_4c = pcVar10;\n  if (pppuVar8 == (undefined4 ***)0x0) {\n    uStack_64._0_2_ = 0;\n  }\n  else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }\n  uVar4 = uStack_64._0_2_;\n  if (param_3 == 0) {\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }\n  if (iStack_5c == *piVar6) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = iStack_5c;\n  (**(code **)(puVar9 + 0xc5c5c))();\n  iVar7 = *(int *)(iVar5 + 0x18);\n  pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);\n  if (pppuVar8 != param_2) {\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }\n  return 0;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 ***pppuVar8;" type_identifier (pointer_declarator "***pppuVar8" * (pointer_declarator "**pppuVar8" * (pointer_declarator "*pppuVar8" * identifier))) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 uStack_78;" type_identifier identifier ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined4 uStack_6c;" type_identifier identifier ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "undefined4 uStack_64;" type_identifier identifier ;) (declaration "undefined4 **ppuStack_60;" type_identifier (pointer_declarator "**ppuStack_60" * (pointer_declarator "*ppuStack_60" * identifier)) ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "undefined4 **ppuStack_54;" type_identifier (pointer_declarator "**ppuStack_54" * (pointer_declarator "*ppuStack_54" * identifier)) ;) (declaration "undefined *puStack_50;" type_identifier (pointer_declarator "*puStack_50" * identifier) ;) (declaration "code *pcStack_4c;" type_identifier (pointer_declarator "*pcStack_4c" * identifier) ;) (declaration "undefined4 **local_30;" type_identifier (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "undefined *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "uint local_14;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_2c = PTR_LAB_000f52c8 + 0x2e64;" (assignment_expression "local_2c = PTR_LAB_000f52c8 + 0x2e64" identifier = (binary_expression "PTR_LAB_000f52c8 + 0x2e64" identifier + number_literal)) ;) (expression_statement "local_28 = PTR_LAB_000f52ec + 0x1b64;" (assignment_expression "local_28 = PTR_LAB_000f52ec + 0x1b64" identifier = (binary_expression "PTR_LAB_000f52ec + 0x1b64" identifier + number_literal)) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_1c = 0;" (assignment_expression "local_1c = 0" identifier = number_literal) ;) (expression_statement "local_18 = 0;" (assignment_expression "local_18 = 0" identifier = number_literal) ;) (expression_statement "local_14 = *(uint *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_14 = *(uint *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000f5568" * (cast_expression "(uint *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar1 = *(undefined1 *)(param_1 + 0x33);" (assignment_expression "uVar1 = *(undefined1 *)(param_1 + 0x33)" identifier = (pointer_expression "*(undefined1 *)(param_1 + 0x33)" * (cast_expression "(undefined1 *)(param_1 + 0x33)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x33)" ( (binary_expression "param_1 + 0x33" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x33) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 0x33) = 3" (pointer_expression "*(undefined1 *)(param_1 + 0x33)" * (cast_expression "(undefined1 *)(param_1 + 0x33)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x33)" ( (binary_expression "param_1 + 0x33" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppuVar8 = param_1;" (assignment_expression "pppuVar8 = param_1" identifier = identifier) ;) (expression_statement "local_30 = param_1;" (assignment_expression "local_30 = param_1" identifier = identifier) ;) (if_statement "if (param_2 != (undefined4 ***)0x0) {\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }" if (parenthesized_expression "(param_2 != (undefined4 ***)0x0)" ( (binary_expression "param_2 != (undefined4 ***)0x0" identifier != (cast_expression "(undefined4 ***)0x0" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }" { (expression_statement "pppuVar8 = &local_30;" (assignment_expression "pppuVar8 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "FUN_0002f078();" (call_expression "FUN_0002f078()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar3 = *(uint *)puVar2;" (assignment_expression "uVar3 = *(uint *)puVar2" identifier = (pointer_expression "*(uint *)puVar2" * (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x33) = uVar1;" (assignment_expression "*(undefined1 *)(param_1 + 0x33) = uVar1" (pointer_expression "*(undefined1 *)(param_1 + 0x33)" * (cast_expression "(undefined1 *)(param_1 + 0x33)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x33)" ( (binary_expression "param_1 + 0x33" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_14 == uVar3) {\n    return uVar3;\n  }" if (parenthesized_expression "(local_14 == uVar3)" ( (binary_expression "local_14 == uVar3" identifier == identifier) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "pcVar10 = FUN_0002f8e4;" (assignment_expression "pcVar10 = FUN_0002f8e4" identifier = identifier) ;) (expression_statement "puVar9 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar9 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;" (assignment_expression "iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c" identifier = (binary_expression "*(int *)(puVar9 + 0xc5a08) + 0x145c" (pointer_expression "*(int *)(puVar9 + 0xc5a08)" * (cast_expression "(int *)(puVar9 + 0xc5a08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xc5a08)" ( (binary_expression "puVar9 + 0xc5a08" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "piVar6 = *(int **)(puVar9 + 0xc5c84);" (assignment_expression "piVar6 = *(int **)(puVar9 + 0xc5c84)" identifier = (pointer_expression "*(int **)(puVar9 + 0xc5c84)" * (cast_expression "(int **)(puVar9 + 0xc5c84)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xc5c84)" ( (binary_expression "puVar9 + 0xc5c84" identifier + number_literal) ))))) ;) (expression_statement "puStack_50 = puVar2;" (assignment_expression "puStack_50 = puVar2" identifier = identifier) ;) (expression_statement "uStack_78 = 0;" (assignment_expression "uStack_78 = 0" identifier = number_literal) ;) (expression_statement "uStack_70 = 0;" (assignment_expression "uStack_70 = 0" identifier = number_literal) ;) (expression_statement "uStack_6c = 0;" (assignment_expression "uStack_6c = 0" identifier = number_literal) ;) (expression_statement "uStack_68 = 0;" (assignment_expression "uStack_68 = 0" identifier = number_literal) ;) (expression_statement "uStack_64 = 0;" (assignment_expression "uStack_64 = 0" identifier = number_literal) ;) (expression_statement "iStack_5c = *piVar6;" (assignment_expression "iStack_5c = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "ppuStack_60 = param_2;" (assignment_expression "ppuStack_60 = param_2" identifier = identifier) ;) (expression_statement "ppuStack_54 = param_1;" (assignment_expression "ppuStack_54 = param_1" identifier = identifier) ;) (expression_statement "pcStack_4c = pcVar10;" (assignment_expression "pcStack_4c = pcVar10" identifier = identifier) ;) (if_statement "if (pppuVar8 == (undefined4 ***)0x0) {\n    uStack_64._0_2_ = 0;\n  }\n  else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }" if (parenthesized_expression "(pppuVar8 == (undefined4 ***)0x0)" ( (binary_expression "pppuVar8 == (undefined4 ***)0x0" identifier == (cast_expression "(undefined4 ***)0x0" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n    uStack_64._0_2_ = 0;\n  }" { (expression_statement "uStack_64._0_2_ = 0;" (assignment_expression "uStack_64._0_2_ = 0" (field_expression "uStack_64._0_2_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }" else (compound_statement "{\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }" { (expression_statement "FUN_0002f078(&uStack_78);" (call_expression "FUN_0002f078(&uStack_78)" identifier (argument_list "(&uStack_78)" ( (pointer_expression "&uStack_78" & identifier) ))) ;) (expression_statement "param_2 = pppuVar8;" (assignment_expression "param_2 = pppuVar8" identifier = identifier) ;) }))) (expression_statement "uVar4 = uStack_64._0_2_;" (assignment_expression "uVar4 = uStack_64._0_2_" identifier = (field_expression "uStack_64._0_2_" identifier . field_identifier)) ;) (if_statement "if (param_3 == 0) {\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }" { (expression_statement "uVar4 = uStack_64._0_2_ & 0xfffd;" (assignment_expression "uVar4 = uStack_64._0_2_ & 0xfffd" identifier = (binary_expression "uStack_64._0_2_ & 0xfffd" (field_expression "uStack_64._0_2_" identifier . field_identifier) & number_literal)) ;) })) (if_statement "if (iStack_5c == *piVar6) {\n    return (uint)(uVar4 != 0);\n  }" if (parenthesized_expression "(iStack_5c == *piVar6)" ( (binary_expression "iStack_5c == *piVar6" identifier == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return (uint)(uVar4 != 0);\n  }" { (return_statement "return (uint)(uVar4 != 0);" return (call_expression "(uint)(uVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) ;) })) (expression_statement "iVar5 = iStack_5c;" (assignment_expression "iVar5 = iStack_5c" identifier = identifier) ;) (expression_statement "(**(code **)(puVar9 + 0xc5c5c))();" (call_expression "(**(code **)(puVar9 + 0xc5c5c))()" (parenthesized_expression "(**(code **)(puVar9 + 0xc5c5c))" ( (pointer_expression "**(code **)(puVar9 + 0xc5c5c)" * (pointer_expression "*(code **)(puVar9 + 0xc5c5c)" * (cast_expression "(code **)(puVar9 + 0xc5c5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xc5c5c)" ( (binary_expression "puVar9 + 0xc5c5c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)(iVar5 + 0x18);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x18)" identifier = (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);" (assignment_expression "pppuVar8 = *(undefined4 ****)(iVar7 + 0x10)" identifier = (pointer_expression "*(undefined4 ****)(iVar7 + 0x10)" * (cast_expression "(undefined4 ****)(iVar7 + 0x10)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (pppuVar8 != param_2) {\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }" if (parenthesized_expression "(pppuVar8 != param_2)" ( (binary_expression "pppuVar8 != param_2" identifier != identifier) )) (compound_statement "{\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }" { (expression_statement "*(undefined4 ****)(iVar7 + 0x10) = param_2;" (assignment_expression "*(undefined4 ****)(iVar7 + 0x10) = param_2" (pointer_expression "*(undefined4 ****)(iVar7 + 0x10)" * (cast_expression "(undefined4 ****)(iVar7 + 0x10)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }" if (parenthesized_expression "((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0))" ( (binary_expression "(param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)" (parenthesized_expression "(param_2 != (undefined4 ***)0x0)" ( (binary_expression "param_2 != (undefined4 ***)0x0" identifier != (cast_expression "(undefined4 ***)0x0" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) && (parenthesized_expression "(*(int *)(iVar5 + 8) != 0)" ( (binary_expression "*(int *)(iVar5 + 8) != 0" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      FUN_0002ee18();\n    }" { (expression_statement "FUN_0002ee18();" (call_expression "FUN_0002ee18()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 ****)(iVar7 + 0x10) = pppuVar8;" (assignment_expression "*(undefined4 ****)(iVar7 + 0x10) = pppuVar8" (pointer_expression "*(undefined4 ****)(iVar7 + 0x10)" * (cast_expression "(undefined4 ****)(iVar7 + 0x10)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) & LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })))
(function_definition "uint FUN_0002f82c(undefined4 ***param_1,undefined4 ***param_2,int param_3)\n\n{\n  undefined1 uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 ***pppuVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 **ppuStack_60;\n  int iStack_5c;\n  undefined4 **ppuStack_54;\n  undefined *puStack_50;\n  code *pcStack_4c;\n  undefined4 **local_30;\n  undefined *local_2c;\n  undefined *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  uint local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_2c = PTR_LAB_000f52c8 + 0x2e64;\n  local_28 = PTR_LAB_000f52ec + 0x1b64;\n  local_24 = 0;\n  local_20 = 0;\n  local_1c = 0;\n  local_18 = 0;\n  local_14 = *(uint *)PTR___stack_chk_guard_000f5568;\n  uVar1 = *(undefined1 *)(param_1 + 0x33);\n  *(undefined1 *)(param_1 + 0x33) = 3;\n  pppuVar8 = param_1;\n  local_30 = param_1;\n  if (param_2 != (undefined4 ***)0x0) {\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }\n  uVar3 = *(uint *)puVar2;\n  *(undefined1 *)(param_1 + 0x33) = uVar1;\n  if (local_14 == uVar3) {\n    return uVar3;\n  }\n  pcVar10 = FUN_0002f8e4;\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;\n  piVar6 = *(int **)(puVar9 + 0xc5c84);\n  puStack_50 = puVar2;\n  uStack_78 = 0;\n  uStack_70 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  iStack_5c = *piVar6;\n  ppuStack_60 = param_2;\n  ppuStack_54 = param_1;\n  pcStack_4c = pcVar10;\n  if (pppuVar8 == (undefined4 ***)0x0) {\n    uStack_64._0_2_ = 0;\n  }\n  else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }\n  uVar4 = uStack_64._0_2_;\n  if (param_3 == 0) {\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }\n  if (iStack_5c == *piVar6) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = iStack_5c;\n  (**(code **)(puVar9 + 0xc5c5c))();\n  iVar7 = *(int *)(iVar5 + 0x18);\n  pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);\n  if (pppuVar8 != param_2) {\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }\n  return 0;\n}" (type_identifier "uint") (function_declarator "FUN_0002f82c(undefined4 ***param_1,undefined4 ***param_2,int param_3)" (identifier "FUN_0002f82c") (parameter_list "(undefined4 ***param_1,undefined4 ***param_2,int param_3)" (( "(") (parameter_declaration "undefined4 ***param_1" (type_identifier "undefined4") (pointer_declarator "***param_1" (* "*") (pointer_declarator "**param_1" (* "*") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))))) (, ",") (parameter_declaration "undefined4 ***param_2" (type_identifier "undefined4") (pointer_declarator "***param_2" (* "*") (pointer_declarator "**param_2" (* "*") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined1 uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 ***pppuVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 **ppuStack_60;\n  int iStack_5c;\n  undefined4 **ppuStack_54;\n  undefined *puStack_50;\n  code *pcStack_4c;\n  undefined4 **local_30;\n  undefined *local_2c;\n  undefined *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  uint local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_2c = PTR_LAB_000f52c8 + 0x2e64;\n  local_28 = PTR_LAB_000f52ec + 0x1b64;\n  local_24 = 0;\n  local_20 = 0;\n  local_1c = 0;\n  local_18 = 0;\n  local_14 = *(uint *)PTR___stack_chk_guard_000f5568;\n  uVar1 = *(undefined1 *)(param_1 + 0x33);\n  *(undefined1 *)(param_1 + 0x33) = 3;\n  pppuVar8 = param_1;\n  local_30 = param_1;\n  if (param_2 != (undefined4 ***)0x0) {\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }\n  uVar3 = *(uint *)puVar2;\n  *(undefined1 *)(param_1 + 0x33) = uVar1;\n  if (local_14 == uVar3) {\n    return uVar3;\n  }\n  pcVar10 = FUN_0002f8e4;\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;\n  piVar6 = *(int **)(puVar9 + 0xc5c84);\n  puStack_50 = puVar2;\n  uStack_78 = 0;\n  uStack_70 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  iStack_5c = *piVar6;\n  ppuStack_60 = param_2;\n  ppuStack_54 = param_1;\n  pcStack_4c = pcVar10;\n  if (pppuVar8 == (undefined4 ***)0x0) {\n    uStack_64._0_2_ = 0;\n  }\n  else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }\n  uVar4 = uStack_64._0_2_;\n  if (param_3 == 0) {\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }\n  if (iStack_5c == *piVar6) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = iStack_5c;\n  (**(code **)(puVar9 + 0xc5c5c))();\n  iVar7 = *(int *)(iVar5 + 0x18);\n  pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);\n  if (pppuVar8 != param_2) {\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }\n  return 0;\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "ushort uVar4;" (type_identifier "ushort") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 ***pppuVar8;" (type_identifier "undefined4") (pointer_declarator "***pppuVar8" (* "*") (pointer_declarator "**pppuVar8" (* "*") (pointer_declarator "*pppuVar8" (* "*") (identifier "pppuVar8")))) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined4 uStack_78;" (type_identifier "undefined4") (identifier "uStack_78") (; ";")) (declaration "int iStack_74;" (primitive_type "int") (identifier "iStack_74") (; ";")) (declaration "undefined4 uStack_70;" (type_identifier "undefined4") (identifier "uStack_70") (; ";")) (declaration "undefined4 uStack_6c;" (type_identifier "undefined4") (identifier "uStack_6c") (; ";")) (declaration "undefined4 uStack_68;" (type_identifier "undefined4") (identifier "uStack_68") (; ";")) (declaration "undefined4 uStack_64;" (type_identifier "undefined4") (identifier "uStack_64") (; ";")) (declaration "undefined4 **ppuStack_60;" (type_identifier "undefined4") (pointer_declarator "**ppuStack_60" (* "*") (pointer_declarator "*ppuStack_60" (* "*") (identifier "ppuStack_60"))) (; ";")) (declaration "int iStack_5c;" (primitive_type "int") (identifier "iStack_5c") (; ";")) (declaration "undefined4 **ppuStack_54;" (type_identifier "undefined4") (pointer_declarator "**ppuStack_54" (* "*") (pointer_declarator "*ppuStack_54" (* "*") (identifier "ppuStack_54"))) (; ";")) (declaration "undefined *puStack_50;" (type_identifier "undefined") (pointer_declarator "*puStack_50" (* "*") (identifier "puStack_50")) (; ";")) (declaration "code *pcStack_4c;" (type_identifier "code") (pointer_declarator "*pcStack_4c" (* "*") (identifier "pcStack_4c")) (; ";")) (declaration "undefined4 **local_30;" (type_identifier "undefined4") (pointer_declarator "**local_30" (* "*") (pointer_declarator "*local_30" (* "*") (identifier "local_30"))) (; ";")) (declaration "undefined *local_2c;" (type_identifier "undefined") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "undefined *local_28;" (type_identifier "undefined") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 local_1c;" (type_identifier "undefined4") (identifier "local_1c") (; ";")) (declaration "undefined4 local_18;" (type_identifier "undefined4") (identifier "local_18") (; ";")) (declaration "uint local_14;" (type_identifier "uint") (identifier "local_14") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_000f5568")) (; ";")) (expression_statement "local_2c = PTR_LAB_000f52c8 + 0x2e64;" (assignment_expression "local_2c = PTR_LAB_000f52c8 + 0x2e64" (identifier "local_2c") (= "=") (binary_expression "PTR_LAB_000f52c8 + 0x2e64" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "0x2e64"))) (; ";")) (expression_statement "local_28 = PTR_LAB_000f52ec + 0x1b64;" (assignment_expression "local_28 = PTR_LAB_000f52ec + 0x1b64" (identifier "local_28") (= "=") (binary_expression "PTR_LAB_000f52ec + 0x1b64" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x1b64"))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_1c = 0;" (assignment_expression "local_1c = 0" (identifier "local_1c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_18 = 0;" (assignment_expression "local_18 = 0" (identifier "local_18") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_14 = *(uint *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_14 = *(uint *)PTR___stack_chk_guard_000f5568" (identifier "local_14") (= "=") (pointer_expression "*(uint *)PTR___stack_chk_guard_000f5568" (* "*") (cast_expression "(uint *)PTR___stack_chk_guard_000f5568" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000f5568")))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(param_1 + 0x33);" (assignment_expression "uVar1 = *(undefined1 *)(param_1 + 0x33)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(param_1 + 0x33)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x33)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x33)" (( "(") (binary_expression "param_1 + 0x33" (identifier "param_1") (+ "+") (number_literal "0x33")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x33) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 0x33) = 3" (pointer_expression "*(undefined1 *)(param_1 + 0x33)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x33)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x33)" (( "(") (binary_expression "param_1 + 0x33" (identifier "param_1") (+ "+") (number_literal "0x33")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "pppuVar8 = param_1;" (assignment_expression "pppuVar8 = param_1" (identifier "pppuVar8") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_30 = param_1;" (assignment_expression "local_30 = param_1" (identifier "local_30") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (param_2 != (undefined4 ***)0x0) {\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }" (if "if") (parenthesized_expression "(param_2 != (undefined4 ***)0x0)" (( "(") (binary_expression "param_2 != (undefined4 ***)0x0" (identifier "param_2") (!= "!=") (cast_expression "(undefined4 ***)0x0" (( "(") (type_descriptor "undefined4 ***" (type_identifier "undefined4") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pppuVar8 = &local_30;\n    FUN_0002f078();\n  }" ({ "{") (expression_statement "pppuVar8 = &local_30;" (assignment_expression "pppuVar8 = &local_30" (identifier "pppuVar8") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";")) (expression_statement "FUN_0002f078();" (call_expression "FUN_0002f078()" (identifier "FUN_0002f078") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar3 = *(uint *)puVar2;" (assignment_expression "uVar3 = *(uint *)puVar2" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)puVar2" (* "*") (cast_expression "(uint *)puVar2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x33) = uVar1;" (assignment_expression "*(undefined1 *)(param_1 + 0x33) = uVar1" (pointer_expression "*(undefined1 *)(param_1 + 0x33)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x33)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x33)" (( "(") (binary_expression "param_1 + 0x33" (identifier "param_1") (+ "+") (number_literal "0x33")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (if_statement "if (local_14 == uVar3) {\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(local_14 == uVar3)" (( "(") (binary_expression "local_14 == uVar3" (identifier "local_14") (== "==") (identifier "uVar3")) () ")")) (compound_statement "{\n    return uVar3;\n  }" ({ "{") (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "pcVar10 = FUN_0002f8e4;" (assignment_expression "pcVar10 = FUN_0002f8e4" (identifier "pcVar10") (= "=") (identifier "FUN_0002f8e4")) (; ";")) (expression_statement "puVar9 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar9 = PTR___stack_chk_fail_000f5540" (identifier "puVar9") (= "=") (identifier "PTR___stack_chk_fail_000f5540")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000f5540" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000f5540"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;" (assignment_expression "iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c" (identifier "iStack_74") (= "=") (binary_expression "*(int *)(puVar9 + 0xc5a08) + 0x145c" (pointer_expression "*(int *)(puVar9 + 0xc5a08)" (* "*") (cast_expression "(int *)(puVar9 + 0xc5a08)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0xc5a08)" (( "(") (binary_expression "puVar9 + 0xc5a08" (identifier "puVar9") (+ "+") (number_literal "0xc5a08")) () ")")))) (+ "+") (number_literal "0x145c"))) (; ";")) (expression_statement "piVar6 = *(int **)(puVar9 + 0xc5c84);" (assignment_expression "piVar6 = *(int **)(puVar9 + 0xc5c84)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(puVar9 + 0xc5c84)" (* "*") (cast_expression "(int **)(puVar9 + 0xc5c84)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xc5c84)" (( "(") (binary_expression "puVar9 + 0xc5c84" (identifier "puVar9") (+ "+") (number_literal "0xc5c84")) () ")"))))) (; ";")) (expression_statement "puStack_50 = puVar2;" (assignment_expression "puStack_50 = puVar2" (identifier "puStack_50") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "uStack_78 = 0;" (assignment_expression "uStack_78 = 0" (identifier "uStack_78") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_70 = 0;" (assignment_expression "uStack_70 = 0" (identifier "uStack_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_6c = 0;" (assignment_expression "uStack_6c = 0" (identifier "uStack_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_68 = 0;" (assignment_expression "uStack_68 = 0" (identifier "uStack_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_64 = 0;" (assignment_expression "uStack_64 = 0" (identifier "uStack_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_5c = *piVar6;" (assignment_expression "iStack_5c = *piVar6" (identifier "iStack_5c") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "ppuStack_60 = param_2;" (assignment_expression "ppuStack_60 = param_2" (identifier "ppuStack_60") (= "=") (identifier "param_2")) (; ";")) (expression_statement "ppuStack_54 = param_1;" (assignment_expression "ppuStack_54 = param_1" (identifier "ppuStack_54") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcStack_4c = pcVar10;" (assignment_expression "pcStack_4c = pcVar10" (identifier "pcStack_4c") (= "=") (identifier "pcVar10")) (; ";")) (if_statement "if (pppuVar8 == (undefined4 ***)0x0) {\n    uStack_64._0_2_ = 0;\n  }\n  else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }" (if "if") (parenthesized_expression "(pppuVar8 == (undefined4 ***)0x0)" (( "(") (binary_expression "pppuVar8 == (undefined4 ***)0x0" (identifier "pppuVar8") (== "==") (cast_expression "(undefined4 ***)0x0" (( "(") (type_descriptor "undefined4 ***" (type_identifier "undefined4") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uStack_64._0_2_ = 0;\n  }" ({ "{") (expression_statement "uStack_64._0_2_ = 0;" (assignment_expression "uStack_64._0_2_ = 0" (field_expression "uStack_64._0_2_" (identifier "uStack_64") (. ".") (field_identifier "_0_2_")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }" (else "else") (compound_statement "{\n    FUN_0002f078(&uStack_78);\n    param_2 = pppuVar8;\n  }" ({ "{") (expression_statement "FUN_0002f078(&uStack_78);" (call_expression "FUN_0002f078(&uStack_78)" (identifier "FUN_0002f078") (argument_list "(&uStack_78)" (( "(") (pointer_expression "&uStack_78" (& "&") (identifier "uStack_78")) () ")"))) (; ";")) (expression_statement "param_2 = pppuVar8;" (assignment_expression "param_2 = pppuVar8" (identifier "param_2") (= "=") (identifier "pppuVar8")) (; ";")) (} "}")))) (expression_statement "uVar4 = uStack_64._0_2_;" (assignment_expression "uVar4 = uStack_64._0_2_" (identifier "uVar4") (= "=") (field_expression "uStack_64._0_2_" (identifier "uStack_64") (. ".") (field_identifier "_0_2_"))) (; ";")) (if_statement "if (param_3 == 0) {\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = uStack_64._0_2_ & 0xfffd;\n  }" ({ "{") (expression_statement "uVar4 = uStack_64._0_2_ & 0xfffd;" (assignment_expression "uVar4 = uStack_64._0_2_ & 0xfffd" (identifier "uVar4") (= "=") (binary_expression "uStack_64._0_2_ & 0xfffd" (field_expression "uStack_64._0_2_" (identifier "uStack_64") (. ".") (field_identifier "_0_2_")) (& "&") (number_literal "0xfffd"))) (; ";")) (} "}"))) (if_statement "if (iStack_5c == *piVar6) {\n    return (uint)(uVar4 != 0);\n  }" (if "if") (parenthesized_expression "(iStack_5c == *piVar6)" (( "(") (binary_expression "iStack_5c == *piVar6" (identifier "iStack_5c") (== "==") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (compound_statement "{\n    return (uint)(uVar4 != 0);\n  }" ({ "{") (return_statement "return (uint)(uVar4 != 0);" (return "return") (call_expression "(uint)(uVar4 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = iStack_5c;" (assignment_expression "iVar5 = iStack_5c" (identifier "iVar5") (= "=") (identifier "iStack_5c")) (; ";")) (expression_statement "(**(code **)(puVar9 + 0xc5c5c))();" (call_expression "(**(code **)(puVar9 + 0xc5c5c))()" (parenthesized_expression "(**(code **)(puVar9 + 0xc5c5c))" (( "(") (pointer_expression "**(code **)(puVar9 + 0xc5c5c)" (* "*") (pointer_expression "*(code **)(puVar9 + 0xc5c5c)" (* "*") (cast_expression "(code **)(puVar9 + 0xc5c5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xc5c5c)" (( "(") (binary_expression "puVar9 + 0xc5c5c" (identifier "puVar9") (+ "+") (number_literal "0xc5c5c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar5 + 0x18);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x18)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar5 + 0x18)" (* "*") (cast_expression "(int *)(iVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);" (assignment_expression "pppuVar8 = *(undefined4 ****)(iVar7 + 0x10)" (identifier "pppuVar8") (= "=") (pointer_expression "*(undefined4 ****)(iVar7 + 0x10)" (* "*") (cast_expression "(undefined4 ****)(iVar7 + 0x10)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (pppuVar8 != param_2) {\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }" (if "if") (parenthesized_expression "(pppuVar8 != param_2)" (( "(") (binary_expression "pppuVar8 != param_2" (identifier "pppuVar8") (!= "!=") (identifier "param_2")) () ")")) (compound_statement "{\n    *(undefined4 ****)(iVar7 + 0x10) = param_2;\n    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }\n    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;\n    return 1;\n  }" ({ "{") (expression_statement "*(undefined4 ****)(iVar7 + 0x10) = param_2;" (assignment_expression "*(undefined4 ****)(iVar7 + 0x10) = param_2" (pointer_expression "*(undefined4 ****)(iVar7 + 0x10)" (* "*") (cast_expression "(undefined4 ****)(iVar7 + 0x10)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {\n      FUN_0002ee18();\n    }" (if "if") (parenthesized_expression "((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0))" (( "(") (binary_expression "(param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)" (parenthesized_expression "(param_2 != (undefined4 ***)0x0)" (( "(") (binary_expression "param_2 != (undefined4 ***)0x0" (identifier "param_2") (!= "!=") (cast_expression "(undefined4 ***)0x0" (( "(") (type_descriptor "undefined4 ***" (type_identifier "undefined4") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar5 + 8) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 8) != 0" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      FUN_0002ee18();\n    }" ({ "{") (expression_statement "FUN_0002ee18();" (call_expression "FUN_0002ee18()" (identifier "FUN_0002ee18") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 ****)(iVar7 + 0x10) = pppuVar8;" (assignment_expression "*(undefined4 ****)(iVar7 + 0x10) = pppuVar8" (pointer_expression "*(undefined4 ****)(iVar7 + 0x10)" (* "*") (cast_expression "(undefined4 ****)(iVar7 + 0x10)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "pppuVar8")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator 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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (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: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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))) (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_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: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (return_statement (number_literal)))) (return_statement (number_literal)))))

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

{
  undefined1 uVar1;
  undefined *puVar2;
  uint uVar3;
  ushort uVar4;
  int iVar5;
  int *piVar6;
  int iVar7;
  undefined4 ***pppuVar8;
  undefined *puVar9;
  code *pcVar10;
  undefined4 uStack_78;
  int iStack_74;
  undefined4 uStack_70;
  undefined4 uStack_6c;
  undefined4 uStack_68;
  undefined4 uStack_64;
  undefined4 **ppuStack_60;
  int iStack_5c;
  undefined4 **ppuStack_54;
  undefined *puStack_50;
  code *pcStack_4c;
  undefined4 **local_30;
  undefined *local_2c;
  undefined *local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 local_1c;
  undefined4 local_18;
  uint local_14;
  
  puVar2 = PTR___stack_chk_guard_000f5568;
  local_2c = PTR_LAB_000f52c8 + 0x2e64;
  local_28 = PTR_LAB_000f52ec + 0x1b64;
  local_24 = 0;
  local_20 = 0;
  local_1c = 0;
  local_18 = 0;
  local_14 = *(uint *)PTR___stack_chk_guard_000f5568;
  uVar1 = *(undefined1 *)(param_1 + 0x33);
  *(undefined1 *)(param_1 + 0x33) = 3;
  pppuVar8 = param_1;
  local_30 = param_1;
  if (param_2 != (undefined4 ***)0x0) {
    pppuVar8 = &local_30;
    FUN_0002f078();
  }
  uVar3 = *(uint *)puVar2;
  *(undefined1 *)(param_1 + 0x33) = uVar1;
  if (local_14 == uVar3) {
    return uVar3;
  }
  pcVar10 = FUN_0002f8e4;
  puVar9 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  iStack_74 = *(int *)(puVar9 + 0xc5a08) + 0x145c;
  piVar6 = *(int **)(puVar9 + 0xc5c84);
  puStack_50 = puVar2;
  uStack_78 = 0;
  uStack_70 = 0;
  uStack_6c = 0;
  uStack_68 = 0;
  uStack_64 = 0;
  iStack_5c = *piVar6;
  ppuStack_60 = param_2;
  ppuStack_54 = param_1;
  pcStack_4c = pcVar10;
  if (pppuVar8 == (undefined4 ***)0x0) {
    uStack_64._0_2_ = 0;
  }
  else {
    FUN_0002f078(&uStack_78);
    param_2 = pppuVar8;
  }
  uVar4 = uStack_64._0_2_;
  if (param_3 == 0) {
    uVar4 = uStack_64._0_2_ & 0xfffd;
  }
  if (iStack_5c == *piVar6) {
    return (uint)(uVar4 != 0);
  }
  iVar5 = iStack_5c;
  (**(code **)(puVar9 + 0xc5c5c))();
  iVar7 = *(int *)(iVar5 + 0x18);
  pppuVar8 = *(undefined4 ****)(iVar7 + 0x10);
  if (pppuVar8 != param_2) {
    *(undefined4 ****)(iVar7 + 0x10) = param_2;
    if ((param_2 != (undefined4 ***)0x0) && (*(int *)(iVar5 + 8) != 0)) {
      FUN_0002ee18();
    }
    *(undefined4 ****)(iVar7 + 0x10) = pppuVar8;
    return 1;
  }
  return 0;
}

