
int sqlite3changeset_concat(int nLeft,void *pLeft,int nRight,void *pRight,int *pnOut,void **ppOut)

{
  undefined *puVar1;
  int iVar2;
  undefined1 *puVar3;
  _func_int_void_ptr_void_ptr_int_ptr *xInput;
  int *pIn;
  void **xInput_00;
  void *pIn_00;
  undefined4 *puVar4;
  undefined *puVar5;
  code *pcVar6;
  sqlite3_changegroup *psStack_70;
  undefined4 *puStack_6c;
  undefined *puStack_68;
  int *piStack_64;
  void **ppvStack_60;
  int iStack_5c;
  void *pvStack_58;
  int iStack_54;
  void *pvStack_50;
  code *pcStack_4c;
  void *pvStack_34;
  sqlite3_changegroup *pGrp;
  _func_int_void_ptr_void_ptr_int_ptr *p_Stack_24;
  
  puVar1 = PTR___stack_chk_guard_0015ba2c;
  p_Stack_24 = *(_func_int_void_ptr_void_ptr_int_ptr **)PTR___stack_chk_guard_0015ba2c;
  pIn = (int *)pLeft;
  xInput_00 = (void **)nRight;
  pIn_00 = pRight;
  iVar2 = sqlite3changegroup_new(&pGrp);
  if (((iVar2 == 0) &&
      (pIn = (int *)nLeft, xInput_00 = (void **)pLeft,
      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0)) &&
     (pIn = (int *)nRight, xInput_00 = (void **)pRight,
     iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight), iVar2 == 0)) {
    pIn = pnOut;
    xInput_00 = ppOut;
    iVar2 = sqlite3changegroup_output(pGrp,pnOut,ppOut);
  }
  sqlite3changegroup_delete(pGrp);
  if (p_Stack_24 == *(_func_int_void_ptr_void_ptr_int_ptr **)puVar1) {
    return iVar2;
  }
  pcVar6 = sqlite3changeset_concat_strm;
  xInput = p_Stack_24;
  puVar5 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  puStack_68 = puVar1;
  ppvStack_60 = ppOut;
  piStack_64 = pnOut;
  puVar4 = *(undefined4 **)(puVar5 + 0x285a4);
  puStack_6c = (undefined4 *)*puVar4;
  iStack_5c = nRight;
  pvStack_58 = pRight;
  iStack_54 = nLeft;
  pvStack_50 = pLeft;
  pcStack_4c = pcVar6;
  iVar2 = sqlite3changegroup_new(&psStack_70);
  if (((iVar2 == 0) && (iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn), iVar2 == 0)) &&
     (iVar2 = sqlite3changegroup_add_strm
                        (psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00),
     iVar2 == 0)) {
    iVar2 = sqlite3changegroup_output_strm
                      (psStack_70,(_func_int_void_ptr_void_ptr_int *)&_gp,pvStack_34);
  }
  sqlite3changegroup_delete(psStack_70);
  if (puStack_6c == (undefined4 *)*puVar4) {
    return iVar2;
  }
  pcVar6 = *(code **)(puVar5 + 0x28588);
  puVar4 = puStack_6c;
  (*pcVar6)();
  puVar3 = (undefined1 *)(**(code **)(pcVar6 + 0x2809c))(0xc);
  if (puVar3 != (undefined1 *)0x0) {
    *puVar3 = 0;
    puVar3[1] = 0;
    puVar3[2] = 0;
    puVar3[3] = 0;
    puVar3[4] = 0;
    puVar3[5] = 0;
    puVar3[6] = 0;
    puVar3[7] = 0;
    puVar3[8] = 0;
    puVar3[9] = 0;
    puVar3[10] = 0;
    puVar3[0xb] = 0;
    *puVar4 = puVar3;
    return 0;
  }
  *puVar4 = 0;
  return 7;
}



int FUN_0013336c(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
                undefined4 param_5,undefined4 param_6)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  undefined1 *puVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 *puVar8;
  undefined *puVar9;
  code *pcVar10;
  undefined4 uVar11;
  undefined4 local_70;
  undefined4 *local_6c;
  undefined *local_68;
  undefined4 local_64;
  undefined4 local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_34;
  undefined4 local_28;
  int local_24;
  
  puVar1 = PTR___stack_chk_guard_0015ba2c;
  local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;
  uVar5 = param_2;
  uVar6 = param_3;
  uVar7 = param_4;
  iVar2 = sqlite3changegroup_new(&local_28);
  if (((iVar2 == 0) &&
      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),
      iVar2 == 0)) &&
     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),
     iVar2 == 0)) {
    uVar5 = param_5;
    uVar6 = param_6;
    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);
  }
  sqlite3changegroup_delete(local_28);
  if (local_24 == *(int *)puVar1) {
    return iVar2;
  }
  uVar11 = 0x133488;
  iVar2 = local_24;
  puVar9 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  local_68 = puVar1;
  local_60 = param_6;
  local_64 = param_5;
  puVar8 = *(undefined4 **)(puVar9 + 0x285a4);
  local_6c = (undefined4 *)*puVar8;
  local_5c = param_3;
  local_58 = param_4;
  local_54 = param_1;
  local_50 = param_2;
  local_4c = uVar11;
  iVar3 = sqlite3changegroup_new(&local_70);
  if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&
     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {
    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);
  }
  sqlite3changegroup_delete(local_70);
  if (local_6c == (undefined4 *)*puVar8) {
    return iVar3;
  }
  pcVar10 = *(code **)(puVar9 + 0x28588);
  puVar8 = local_6c;
  (*pcVar10)();
  puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);
  if (puVar4 != (undefined1 *)0x0) {
    *puVar4 = 0;
    puVar4[1] = 0;
    puVar4[2] = 0;
    puVar4[3] = 0;
    puVar4[4] = 0;
    puVar4[5] = 0;
    puVar4[6] = 0;
    puVar4[7] = 0;
    puVar4[8] = 0;
    puVar4[9] = 0;
    puVar4[10] = 0;
    puVar4[0xb] = 0;
    *puVar8 = puVar4;
    return 0;
  }
  *puVar8 = 0;
  return 7;
}


lui gp,0x3
addiu gp,gp,0x244
addu gp,gp,t9
addiu sp,sp,-0x48
lw t9,-0x7c7c(gp)
sw s0,0x28(sp)
sw gp,0x10(sp)
sw s6,0x40(sp)
or s6,a1,zero
sw s5,0x3c(sp)
or s5,a0,zero
sw s4,0x38(sp)
addiu a0,sp,0x20
sw s3,0x34(sp)
or s4,a3,zero
sw s2,0x30(sp)
or s3,a2,zero
sw s1,0x2c(sp)
sw ra,0x44(sp)
lw s0,-0x7b84(gp)
lw s1,0x58(sp)
lw s2,0x5c(sp)
lw v0,0x0(s0)
sw v0,0x24(sp)
bal 0x00133074
_nop
beq v0,zero,0x00133428
_lw gp,0x10(sp)
lw t9,-0x7c78(gp)
lw a0,0x20(sp)
bal 0x00133310
_sw v0,0x1c(sp)
lw a0,0x24(sp)
lw v1,0x0(s0)
lw gp,0x10(sp)
bne a0,v1,0x0013347c
_lw v0,0x1c(sp)
lw ra,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x48
lw t9,-0x7c74(gp)
or a2,s6,zero
lw a0,0x20(sp)
bal 0x0013310c
_or a1,s5,zero
bne v0,zero,0x001333dc
_lw gp,0x10(sp)
lw t9,-0x7c74(gp)
or a2,s4,zero
lw a0,0x20(sp)
bal 0x0013310c
_or a1,s3,zero
bne v0,zero,0x001333dc
_lw gp,0x10(sp)
lw t9,-0x7c70(gp)
or a2,s2,zero
lw a0,0x20(sp)
bal 0x001331c4
_or a1,s1,zero
b 0x001333dc
_lw gp,0x10(sp)
lw t9,-0x7ba0(gp)
jalr t9
_nop
lui gp,0x3
addiu gp,gp,0x128
addu gp,gp,t9
addiu sp,sp,-0x48
lw t9,-0x7c7c(gp)
sw s0,0x28(sp)
sw gp,0x10(sp)
sw s6,0x40(sp)
or s6,a1,zero
sw s5,0x3c(sp)
or s5,a0,zero
sw s4,0x38(sp)
addiu a0,sp,0x20
sw s3,0x34(sp)
or s4,a3,zero
sw s2,0x30(sp)
or s3,a2,zero
sw s1,0x2c(sp)
sw ra,0x44(sp)
lw s0,-0x7b84(gp)
lw s1,0x58(sp)
lw s2,0x5c(sp)
lw v0,0x0(s0)
sw v0,0x24(sp)
bal 0x00133074
_nop
beq v0,zero,0x00133544
_lw gp,0x10(sp)
lw t9,-0x7c78(gp)
lw a0,0x20(sp)
bal 0x00133310
_sw v0,0x1c(sp)
lw a0,0x24(sp)
lw v1,0x0(s0)
lw gp,0x10(sp)
bne a0,v1,0x00133598
_lw v0,0x1c(sp)
lw ra,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x48
lw t9,-0x7c6c(gp)
or a2,s6,zero
lw a0,0x20(sp)
bal 0x00133210
_or a1,s5,zero
bne v0,zero,0x001334f8
_lw gp,0x10(sp)
lw t9,-0x7c6c(gp)
or a2,s4,zero
lw a0,0x20(sp)
bal 0x00133210
_or a1,s3,zero
bne v0,zero,0x001334f8
_lw gp,0x10(sp)
lw t9,-0x7c68(gp)
or a2,s2,zero
lw a0,0x20(sp)
bal 0x001332c8
_or a1,s1,zero
b 0x001334f8
_lw gp,0x10(sp)
lw t9,-0x7ba0(gp)
jalr t9
_nop
lui gp,0x3
addiu gp,gp,0xc
addu gp,gp,t9
addiu sp,sp,-0x20
lw t9,-0x7f70(gp)
sw s0,0x18(sp)
or s0,a0,zero
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_li a0,0xc
beq v0,zero,0x00133620
_or v1,zero,zero
sb zero,0x0(v0)
sb zero,0x1(v0)
sb zero,0x2(v0)
sb zero,0x3(v0)
sb zero,0x4(v0)
sb zero,0x5(v0)
sb zero,0x6(v0)
sb zero,0x7(v0)
sb zero,0x8(v0)
sb zero,0x9(v0)
sb zero,0xa(v0)
sb zero,0xb(v0)
sw v0,0x0(s0)
or v0,v1,zero
lw ra,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x20
sw v0,0x0(s0)
li v1,0x7
lw ra,0x1c(sp)
lw s0,0x18(sp)
or v0,v1,zero
jr ra
_addiu sp,sp,0x20
(translation_unit "int FUN_0013336c(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uVar11;\n  undefined4 local_70;\n  undefined4 *local_6c;\n  undefined *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_34;\n  undefined4 local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar5 = param_2;\n  uVar6 = param_3;\n  uVar7 = param_4;\n  iVar2 = sqlite3changegroup_new(&local_28);\n  if (((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)) {\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }\n  sqlite3changegroup_delete(local_28);\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  uVar11 = 0x133488;\n  iVar2 = local_24;\n  puVar9 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_68 = puVar1;\n  local_60 = param_6;\n  local_64 = param_5;\n  puVar8 = *(undefined4 **)(puVar9 + 0x285a4);\n  local_6c = (undefined4 *)*puVar8;\n  local_5c = param_3;\n  local_58 = param_4;\n  local_54 = param_1;\n  local_50 = param_2;\n  local_4c = uVar11;\n  iVar3 = sqlite3changegroup_new(&local_70);\n  if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }\n  sqlite3changegroup_delete(local_70);\n  if (local_6c == (undefined4 *)*puVar8) {\n    return iVar3;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x28588);\n  puVar8 = local_6c;\n  (*pcVar10)();\n  puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);\n  if (puVar4 != (undefined1 *)0x0) {\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }\n  *puVar8 = 0;\n  return 7;\n}\n\n" (function_definition "int FUN_0013336c(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uVar11;\n  undefined4 local_70;\n  undefined4 *local_6c;\n  undefined *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_34;\n  undefined4 local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar5 = param_2;\n  uVar6 = param_3;\n  uVar7 = param_4;\n  iVar2 = sqlite3changegroup_new(&local_28);\n  if (((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)) {\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }\n  sqlite3changegroup_delete(local_28);\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  uVar11 = 0x133488;\n  iVar2 = local_24;\n  puVar9 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_68 = puVar1;\n  local_60 = param_6;\n  local_64 = param_5;\n  puVar8 = *(undefined4 **)(puVar9 + 0x285a4);\n  local_6c = (undefined4 *)*puVar8;\n  local_5c = param_3;\n  local_58 = param_4;\n  local_54 = param_1;\n  local_50 = param_2;\n  local_4c = uVar11;\n  iVar3 = sqlite3changegroup_new(&local_70);\n  if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }\n  sqlite3changegroup_delete(local_70);\n  if (local_6c == (undefined4 *)*puVar8) {\n    return iVar3;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x28588);\n  puVar8 = local_6c;\n  (*pcVar10)();\n  puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);\n  if (puVar4 != (undefined1 *)0x0) {\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }\n  *puVar8 = 0;\n  return 7;\n}" primitive_type (function_declarator "FUN_0013336c(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uVar11;\n  undefined4 local_70;\n  undefined4 *local_6c;\n  undefined *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_34;\n  undefined4 local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar5 = param_2;\n  uVar6 = param_3;\n  uVar7 = param_4;\n  iVar2 = sqlite3changegroup_new(&local_28);\n  if (((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)) {\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }\n  sqlite3changegroup_delete(local_28);\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  uVar11 = 0x133488;\n  iVar2 = local_24;\n  puVar9 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_68 = puVar1;\n  local_60 = param_6;\n  local_64 = param_5;\n  puVar8 = *(undefined4 **)(puVar9 + 0x285a4);\n  local_6c = (undefined4 *)*puVar8;\n  local_5c = param_3;\n  local_58 = param_4;\n  local_54 = param_1;\n  local_50 = param_2;\n  local_4c = uVar11;\n  iVar3 = sqlite3changegroup_new(&local_70);\n  if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }\n  sqlite3changegroup_delete(local_70);\n  if (local_6c == (undefined4 *)*puVar8) {\n    return iVar3;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x28588);\n  puVar8 = local_6c;\n  (*pcVar10)();\n  puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);\n  if (puVar4 != (undefined1 *)0x0) {\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }\n  *puVar8 = 0;\n  return 7;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" identifier = identifier) ;) (expression_statement "uVar6 = param_3;" (assignment_expression "uVar6 = param_3" identifier = identifier) ;) (expression_statement "uVar7 = param_4;" (assignment_expression "uVar7 = param_4" identifier = identifier) ;) (expression_statement "iVar2 = sqlite3changegroup_new(&local_28);" (assignment_expression "iVar2 = sqlite3changegroup_new(&local_28)" identifier = (call_expression "sqlite3changegroup_new(&local_28)" identifier (argument_list "(&local_28)" ( (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)) {\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }" if (parenthesized_expression "(((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0))" ( (binary_expression "((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)" (parenthesized_expression "((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0))" ( (binary_expression "(iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)" ( (comma_expression "uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0" (assignment_expression "uVar5 = param_1" identifier = identifier) , (comma_expression "uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0" (assignment_expression "uVar6 = param_2" identifier = identifier) , (comma_expression "iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0" (assignment_expression "iVar2 = sqlite3changegroup_add(local_28,param_1,param_2)" identifier = (call_expression "sqlite3changegroup_add(local_28,param_1,param_2)" identifier (argument_list "(local_28,param_1,param_2)" ( identifier , identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)))) ))) )) && (parenthesized_expression "(uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)" ( (comma_expression "uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0" (assignment_expression "uVar5 = param_3" identifier = identifier) , (comma_expression "uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0" (assignment_expression "uVar6 = param_4" identifier = identifier) , (comma_expression "iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0" (assignment_expression "iVar2 = sqlite3changegroup_add(local_28,param_3,param_4)" identifier = (call_expression "sqlite3changegroup_add(local_28,param_3,param_4)" identifier (argument_list "(local_28,param_3,param_4)" ( identifier , identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)))) ))) )) (compound_statement "{\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }" { (expression_statement "uVar5 = param_5;" (assignment_expression "uVar5 = param_5" identifier = identifier) ;) (expression_statement "uVar6 = param_6;" (assignment_expression "uVar6 = param_6" identifier = identifier) ;) (expression_statement "iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);" (assignment_expression "iVar2 = sqlite3changegroup_output(local_28,param_5,param_6)" identifier = (call_expression "sqlite3changegroup_output(local_28,param_5,param_6)" identifier (argument_list "(local_28,param_5,param_6)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "sqlite3changegroup_delete(local_28);" (call_expression "sqlite3changegroup_delete(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (if_statement "if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar1)" ( (binary_expression "local_24 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "uVar11 = 0x133488;" (assignment_expression "uVar11 = 0x133488" identifier = number_literal) ;) (expression_statement "iVar2 = local_24;" (assignment_expression "iVar2 = local_24" identifier = identifier) ;) (expression_statement "puVar9 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar9 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_68 = puVar1;" (assignment_expression "local_68 = puVar1" identifier = identifier) ;) (expression_statement "local_60 = param_6;" (assignment_expression "local_60 = param_6" identifier = identifier) ;) (expression_statement "local_64 = param_5;" (assignment_expression "local_64 = param_5" identifier = identifier) ;) (expression_statement "puVar8 = *(undefined4 **)(puVar9 + 0x285a4);" (assignment_expression "puVar8 = *(undefined4 **)(puVar9 + 0x285a4)" identifier = (pointer_expression "*(undefined4 **)(puVar9 + 0x285a4)" * (cast_expression "(undefined4 **)(puVar9 + 0x285a4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x285a4)" ( (binary_expression "puVar9 + 0x285a4" identifier + number_literal) ))))) ;) (expression_statement "local_6c = (undefined4 *)*puVar8;" (assignment_expression "local_6c = (undefined4 *)*puVar8" identifier = (cast_expression "(undefined4 *)*puVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "local_5c = param_3;" (assignment_expression "local_5c = param_3" identifier = identifier) ;) (expression_statement "local_58 = param_4;" (assignment_expression "local_58 = param_4" identifier = identifier) ;) (expression_statement "local_54 = param_1;" (assignment_expression "local_54 = param_1" identifier = identifier) ;) (expression_statement "local_50 = param_2;" (assignment_expression "local_50 = param_2" identifier = identifier) ;) (expression_statement "local_4c = uVar11;" (assignment_expression "local_4c = uVar11" identifier = identifier) ;) (expression_statement "iVar3 = sqlite3changegroup_new(&local_70);" (assignment_expression "iVar3 = sqlite3changegroup_new(&local_70)" identifier = (call_expression "sqlite3changegroup_new(&local_70)" identifier (argument_list "(&local_70)" ( (pointer_expression "&local_70" & identifier) )))) ;) (if_statement "if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }" if (parenthesized_expression "(((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0))" ( (binary_expression "((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)" (parenthesized_expression "((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0))" ( (binary_expression "(iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)" ( (comma_expression "iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0" (assignment_expression "iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5)" identifier = (call_expression "sqlite3changegroup_add_strm(local_70,iVar2,uVar5)" identifier (argument_list "(local_70,iVar2,uVar5)" ( identifier , identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)" ( (comma_expression "iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0" (assignment_expression "iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7)" identifier = (call_expression "sqlite3changegroup_add_strm(local_70,uVar6,uVar7)" identifier (argument_list "(local_70,uVar6,uVar7)" ( identifier , identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }" { (expression_statement "iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);" (assignment_expression "iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34)" identifier = (call_expression "sqlite3changegroup_output_strm(local_70,&_gp_1,local_34)" identifier (argument_list "(local_70,&_gp_1,local_34)" ( identifier , (pointer_expression "&_gp_1" & identifier) , identifier )))) ;) })) (expression_statement "sqlite3changegroup_delete(local_70);" (call_expression "sqlite3changegroup_delete(local_70)" identifier (argument_list "(local_70)" ( identifier ))) ;) (if_statement "if (local_6c == (undefined4 *)*puVar8) {\n    return iVar3;\n  }" if (parenthesized_expression "(local_6c == (undefined4 *)*puVar8)" ( (binary_expression "local_6c == (undefined4 *)*puVar8" identifier == (cast_expression "(undefined4 *)*puVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pcVar10 = *(code **)(puVar9 + 0x28588);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0x28588)" identifier = (pointer_expression "*(code **)(puVar9 + 0x28588)" * (cast_expression "(code **)(puVar9 + 0x28588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x28588)" ( (binary_expression "puVar9 + 0x28588" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = local_6c;" (assignment_expression "puVar8 = local_6c" identifier = identifier) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc)" identifier = (cast_expression "(undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar10 + 0x2809c))(0xc)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2809c))" ( (pointer_expression "**(code **)(pcVar10 + 0x2809c)" * (pointer_expression "*(code **)(pcVar10 + 0x2809c)" * (cast_expression "(code **)(pcVar10 + 0x2809c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2809c)" ( (binary_expression "pcVar10 + 0x2809c" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (if_statement "if (puVar4 != (undefined1 *)0x0) {\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }" if (parenthesized_expression "(puVar4 != (undefined1 *)0x0)" ( (binary_expression "puVar4 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }" { (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 0;" (assignment_expression "puVar4[6] = 0" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[7] = 0;" (assignment_expression "puVar4[7] = 0" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[9] = 0;" (assignment_expression "puVar4[9] = 0" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[0xb] = 0;" (assignment_expression "puVar4[0xb] = 0" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar8 = puVar4;" (assignment_expression "*puVar8 = puVar4" (pointer_expression "*puVar8" * identifier) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (return_statement "return 7;" return number_literal ;) })))
(translation_unit "int sqlite3changeset_concat(int nLeft,void *pLeft,int nRight,void *pRight,int *pnOut,void **ppOut)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  _func_int_void_ptr_void_ptr_int_ptr *xInput;\n  int *pIn;\n  void **xInput_00;\n  void *pIn_00;\n  undefined4 *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  sqlite3_changegroup *psStack_70;\n  undefined4 *puStack_6c;\n  undefined *puStack_68;\n  int *piStack_64;\n  void **ppvStack_60;\n  int iStack_5c;\n  void *pvStack_58;\n  int iStack_54;\n  void *pvStack_50;\n  code *pcStack_4c;\n  void *pvStack_34;\n  sqlite3_changegroup *pGrp;\n  _func_int_void_ptr_void_ptr_int_ptr *p_Stack_24;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  p_Stack_24 = *(_func_int_void_ptr_void_ptr_int_ptr **)PTR___stack_chk_guard_0015ba2c;\n  pIn = (int *)pLeft;\n  xInput_00 = (void **)nRight;\n  pIn_00 = pRight;\n  iVar2 = sqlite3changegroup_new(&pGrp);\n  if (((iVar2 == 0) &&\n      (pIn = (int *)nLeft, xInput_00 = (void **)pLeft,\n      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0)) &&\n     (pIn = (int *)nRight, xInput_00 = (void **)pRight,\n     iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight), iVar2 == 0)) {\n    pIn = pnOut;\n    xInput_00 = ppOut;\n    iVar2 = sqlite3changegroup_output(pGrp,pnOut,ppOut);\n  }\n  sqlite3changegroup_delete(pGrp);\n  if (p_Stack_24 == *(_func_int_void_ptr_void_ptr_int_ptr **)puVar1) {\n    return iVar2;\n  }\n  pcVar6 = sqlite3changeset_concat_strm;\n  xInput = p_Stack_24;\n  puVar5 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puStack_68 = puVar1;\n  ppvStack_60 = ppOut;\n  piStack_64 = pnOut;\n  puVar4 = *(undefined4 **)(puVar5 + 0x285a4);\n  puStack_6c = (undefined4 *)*puVar4;\n  iStack_5c = nRight;\n  pvStack_58 = pRight;\n  iStack_54 = nLeft;\n  pvStack_50 = pLeft;\n  pcStack_4c = pcVar6;\n  iVar2 = sqlite3changegroup_new(&psStack_70);\n  if (((iVar2 == 0) && (iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn), iVar2 == 0)) &&\n     (iVar2 = sqlite3changegroup_add_strm\n                        (psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00),\n     iVar2 == 0)) {\n    iVar2 = sqlite3changegroup_output_strm\n                      (psStack_70,(_func_int_void_ptr_void_ptr_int *)&_gp,pvStack_34);\n  }\n  sqlite3changegroup_delete(psStack_70);\n  if (puStack_6c == (undefined4 *)*puVar4) {\n    return iVar2;\n  }\n  pcVar6 = *(code **)(puVar5 + 0x28588);\n  puVar4 = puStack_6c;\n  (*pcVar6)();\n  puVar3 = (undefined1 *)(**(code **)(pcVar6 + 0x2809c))(0xc);\n  if (puVar3 != (undefined1 *)0x0) {\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 0;\n    puVar3[10] = 0;\n    puVar3[0xb] = 0;\n    *puVar4 = puVar3;\n    return 0;\n  }\n  *puVar4 = 0;\n  return 7;\n}\n\n" (function_definition "int sqlite3changeset_concat(int nLeft,void *pLeft,int nRight,void *pRight,int *pnOut,void **ppOut)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  _func_int_void_ptr_void_ptr_int_ptr *xInput;\n  int *pIn;\n  void **xInput_00;\n  void *pIn_00;\n  undefined4 *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  sqlite3_changegroup *psStack_70;\n  undefined4 *puStack_6c;\n  undefined *puStack_68;\n  int *piStack_64;\n  void **ppvStack_60;\n  int iStack_5c;\n  void *pvStack_58;\n  int iStack_54;\n  void *pvStack_50;\n  code *pcStack_4c;\n  void *pvStack_34;\n  sqlite3_changegroup *pGrp;\n  _func_int_void_ptr_void_ptr_int_ptr *p_Stack_24;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  p_Stack_24 = *(_func_int_void_ptr_void_ptr_int_ptr **)PTR___stack_chk_guard_0015ba2c;\n  pIn = (int *)pLeft;\n  xInput_00 = (void **)nRight;\n  pIn_00 = pRight;\n  iVar2 = sqlite3changegroup_new(&pGrp);\n  if (((iVar2 == 0) &&\n      (pIn = (int *)nLeft, xInput_00 = (void **)pLeft,\n      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0)) &&\n     (pIn = (int *)nRight, xInput_00 = (void **)pRight,\n     iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight), iVar2 == 0)) {\n    pIn = pnOut;\n    xInput_00 = ppOut;\n    iVar2 = sqlite3changegroup_output(pGrp,pnOut,ppOut);\n  }\n  sqlite3changegroup_delete(pGrp);\n  if (p_Stack_24 == *(_func_int_void_ptr_void_ptr_int_ptr **)puVar1) {\n    return iVar2;\n  }\n  pcVar6 = sqlite3changeset_concat_strm;\n  xInput = p_Stack_24;\n  puVar5 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puStack_68 = puVar1;\n  ppvStack_60 = ppOut;\n  piStack_64 = pnOut;\n  puVar4 = *(undefined4 **)(puVar5 + 0x285a4);\n  puStack_6c = (undefined4 *)*puVar4;\n  iStack_5c = nRight;\n  pvStack_58 = pRight;\n  iStack_54 = nLeft;\n  pvStack_50 = pLeft;\n  pcStack_4c = pcVar6;\n  iVar2 = sqlite3changegroup_new(&psStack_70);\n  if (((iVar2 == 0) && (iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn), iVar2 == 0)) &&\n     (iVar2 = sqlite3changegroup_add_strm\n                        (psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00),\n     iVar2 == 0)) {\n    iVar2 = sqlite3changegroup_output_strm\n                      (psStack_70,(_func_int_void_ptr_void_ptr_int *)&_gp,pvStack_34);\n  }\n  sqlite3changegroup_delete(psStack_70);\n  if (puStack_6c == (undefined4 *)*puVar4) {\n    return iVar2;\n  }\n  pcVar6 = *(code **)(puVar5 + 0x28588);\n  puVar4 = puStack_6c;\n  (*pcVar6)();\n  puVar3 = (undefined1 *)(**(code **)(pcVar6 + 0x2809c))(0xc);\n  if (puVar3 != (undefined1 *)0x0) {\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 0;\n    puVar3[10] = 0;\n    puVar3[0xb] = 0;\n    *puVar4 = puVar3;\n    return 0;\n  }\n  *puVar4 = 0;\n  return 7;\n}" primitive_type (function_declarator "sqlite3changeset_concat(int nLeft,void *pLeft,int nRight,void *pRight,int *pnOut,void **ppOut)" identifier (parameter_list "(int nLeft,void *pLeft,int nRight,void *pRight,int *pnOut,void **ppOut)" ( (parameter_declaration "int nLeft" primitive_type identifier) , (parameter_declaration "void *pLeft" primitive_type (pointer_declarator "*pLeft" * identifier)) , (parameter_declaration "int nRight" primitive_type identifier) , (parameter_declaration "void *pRight" primitive_type (pointer_declarator "*pRight" * identifier)) , (parameter_declaration "int *pnOut" primitive_type (pointer_declarator "*pnOut" * identifier)) , (parameter_declaration "void **ppOut" primitive_type (pointer_declarator "**ppOut" * (pointer_declarator "*ppOut" * identifier))) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  _func_int_void_ptr_void_ptr_int_ptr *xInput;\n  int *pIn;\n  void **xInput_00;\n  void *pIn_00;\n  undefined4 *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  sqlite3_changegroup *psStack_70;\n  undefined4 *puStack_6c;\n  undefined *puStack_68;\n  int *piStack_64;\n  void **ppvStack_60;\n  int iStack_5c;\n  void *pvStack_58;\n  int iStack_54;\n  void *pvStack_50;\n  code *pcStack_4c;\n  void *pvStack_34;\n  sqlite3_changegroup *pGrp;\n  _func_int_void_ptr_void_ptr_int_ptr *p_Stack_24;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  p_Stack_24 = *(_func_int_void_ptr_void_ptr_int_ptr **)PTR___stack_chk_guard_0015ba2c;\n  pIn = (int *)pLeft;\n  xInput_00 = (void **)nRight;\n  pIn_00 = pRight;\n  iVar2 = sqlite3changegroup_new(&pGrp);\n  if (((iVar2 == 0) &&\n      (pIn = (int *)nLeft, xInput_00 = (void **)pLeft,\n      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0)) &&\n     (pIn = (int *)nRight, xInput_00 = (void **)pRight,\n     iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight), iVar2 == 0)) {\n    pIn = pnOut;\n    xInput_00 = ppOut;\n    iVar2 = sqlite3changegroup_output(pGrp,pnOut,ppOut);\n  }\n  sqlite3changegroup_delete(pGrp);\n  if (p_Stack_24 == *(_func_int_void_ptr_void_ptr_int_ptr **)puVar1) {\n    return iVar2;\n  }\n  pcVar6 = sqlite3changeset_concat_strm;\n  xInput = p_Stack_24;\n  puVar5 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puStack_68 = puVar1;\n  ppvStack_60 = ppOut;\n  piStack_64 = pnOut;\n  puVar4 = *(undefined4 **)(puVar5 + 0x285a4);\n  puStack_6c = (undefined4 *)*puVar4;\n  iStack_5c = nRight;\n  pvStack_58 = pRight;\n  iStack_54 = nLeft;\n  pvStack_50 = pLeft;\n  pcStack_4c = pcVar6;\n  iVar2 = sqlite3changegroup_new(&psStack_70);\n  if (((iVar2 == 0) && (iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn), iVar2 == 0)) &&\n     (iVar2 = sqlite3changegroup_add_strm\n                        (psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00),\n     iVar2 == 0)) {\n    iVar2 = sqlite3changegroup_output_strm\n                      (psStack_70,(_func_int_void_ptr_void_ptr_int *)&_gp,pvStack_34);\n  }\n  sqlite3changegroup_delete(psStack_70);\n  if (puStack_6c == (undefined4 *)*puVar4) {\n    return iVar2;\n  }\n  pcVar6 = *(code **)(puVar5 + 0x28588);\n  puVar4 = puStack_6c;\n  (*pcVar6)();\n  puVar3 = (undefined1 *)(**(code **)(pcVar6 + 0x2809c))(0xc);\n  if (puVar3 != (undefined1 *)0x0) {\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 0;\n    puVar3[10] = 0;\n    puVar3[0xb] = 0;\n    *puVar4 = puVar3;\n    return 0;\n  }\n  *puVar4 = 0;\n  return 7;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "_func_int_void_ptr_void_ptr_int_ptr *xInput;" type_identifier (pointer_declarator "*xInput" * identifier) ;) (declaration "int *pIn;" primitive_type (pointer_declarator "*pIn" * identifier) ;) (declaration "void **xInput_00;" primitive_type (pointer_declarator "**xInput_00" * (pointer_declarator "*xInput_00" * identifier)) ;) (declaration "void *pIn_00;" primitive_type (pointer_declarator "*pIn_00" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "sqlite3_changegroup *psStack_70;" type_identifier (pointer_declarator "*psStack_70" * identifier) ;) (declaration "undefined4 *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "undefined *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "int *piStack_64;" primitive_type (pointer_declarator "*piStack_64" * identifier) ;) (declaration "void **ppvStack_60;" primitive_type (pointer_declarator "**ppvStack_60" * (pointer_declarator "*ppvStack_60" * identifier)) ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "void *pvStack_58;" primitive_type (pointer_declarator "*pvStack_58" * identifier) ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "void *pvStack_50;" primitive_type (pointer_declarator "*pvStack_50" * identifier) ;) (declaration "code *pcStack_4c;" type_identifier (pointer_declarator "*pcStack_4c" * identifier) ;) (declaration "void *pvStack_34;" primitive_type (pointer_declarator "*pvStack_34" * identifier) ;) (declaration "sqlite3_changegroup *pGrp;" type_identifier (pointer_declarator "*pGrp" * identifier) ;) (declaration "_func_int_void_ptr_void_ptr_int_ptr *p_Stack_24;" type_identifier (pointer_declarator "*p_Stack_24" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "p_Stack_24 = *(_func_int_void_ptr_void_ptr_int_ptr **)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "p_Stack_24 = *(_func_int_void_ptr_void_ptr_int_ptr **)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(_func_int_void_ptr_void_ptr_int_ptr **)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(_func_int_void_ptr_void_ptr_int_ptr **)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "_func_int_void_ptr_void_ptr_int_ptr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pIn = (int *)pLeft;" (assignment_expression "pIn = (int *)pLeft" identifier = (cast_expression "(int *)pLeft" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "xInput_00 = (void **)nRight;" (assignment_expression "xInput_00 = (void **)nRight" identifier = (cast_expression "(void **)nRight" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pIn_00 = pRight;" (assignment_expression "pIn_00 = pRight" identifier = identifier) ;) (expression_statement "iVar2 = sqlite3changegroup_new(&pGrp);" (assignment_expression "iVar2 = sqlite3changegroup_new(&pGrp)" identifier = (call_expression "sqlite3changegroup_new(&pGrp)" identifier (argument_list "(&pGrp)" ( (pointer_expression "&pGrp" & identifier) )))) ;) (if_statement "if (((iVar2 == 0) &&\n      (pIn = (int *)nLeft, xInput_00 = (void **)pLeft,\n      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0)) &&\n     (pIn = (int *)nRight, xInput_00 = (void **)pRight,\n     iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight), iVar2 == 0)) {\n    pIn = pnOut;\n    xInput_00 = ppOut;\n    iVar2 = sqlite3changegroup_output(pGrp,pnOut,ppOut);\n  }" if (parenthesized_expression "(((iVar2 == 0) &&\n      (pIn = (int *)nLeft, xInput_00 = (void **)pLeft,\n      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0)) &&\n     (pIn = (int *)nRight, xInput_00 = (void **)pRight,\n     iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight), iVar2 == 0))" ( (binary_expression "((iVar2 == 0) &&\n      (pIn = (int *)nLeft, xInput_00 = (void **)pLeft,\n      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0)) &&\n     (pIn = (int *)nRight, xInput_00 = (void **)pRight,\n     iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight), iVar2 == 0)" (parenthesized_expression "((iVar2 == 0) &&\n      (pIn = (int *)nLeft, xInput_00 = (void **)pLeft,\n      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0))" ( (binary_expression "(iVar2 == 0) &&\n      (pIn = (int *)nLeft, xInput_00 = (void **)pLeft,\n      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(pIn = (int *)nLeft, xInput_00 = (void **)pLeft,\n      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0)" ( (comma_expression "pIn = (int *)nLeft, xInput_00 = (void **)pLeft,\n      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0" (assignment_expression "pIn = (int *)nLeft" identifier = (cast_expression "(int *)nLeft" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "xInput_00 = (void **)pLeft,\n      iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0" (assignment_expression "xInput_00 = (void **)pLeft" identifier = (cast_expression "(void **)pLeft" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (comma_expression "iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft), iVar2 == 0" (assignment_expression "iVar2 = sqlite3changegroup_add(pGrp,nLeft,pLeft)" identifier = (call_expression "sqlite3changegroup_add(pGrp,nLeft,pLeft)" identifier (argument_list "(pGrp,nLeft,pLeft)" ( identifier , identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)))) ))) )) && (parenthesized_expression "(pIn = (int *)nRight, xInput_00 = (void **)pRight,\n     iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight), iVar2 == 0)" ( (comma_expression "pIn = (int *)nRight, xInput_00 = (void **)pRight,\n     iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight), iVar2 == 0" (assignment_expression "pIn = (int *)nRight" identifier = (cast_expression "(int *)nRight" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "xInput_00 = (void **)pRight,\n     iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight), iVar2 == 0" (assignment_expression "xInput_00 = (void **)pRight" identifier = (cast_expression "(void **)pRight" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (comma_expression "iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight), iVar2 == 0" (assignment_expression "iVar2 = sqlite3changegroup_add(pGrp,nRight,pRight)" identifier = (call_expression "sqlite3changegroup_add(pGrp,nRight,pRight)" identifier (argument_list "(pGrp,nRight,pRight)" ( identifier , identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)))) ))) )) (compound_statement "{\n    pIn = pnOut;\n    xInput_00 = ppOut;\n    iVar2 = sqlite3changegroup_output(pGrp,pnOut,ppOut);\n  }" { (expression_statement "pIn = pnOut;" (assignment_expression "pIn = pnOut" identifier = identifier) ;) (expression_statement "xInput_00 = ppOut;" (assignment_expression "xInput_00 = ppOut" identifier = identifier) ;) (expression_statement "iVar2 = sqlite3changegroup_output(pGrp,pnOut,ppOut);" (assignment_expression "iVar2 = sqlite3changegroup_output(pGrp,pnOut,ppOut)" identifier = (call_expression "sqlite3changegroup_output(pGrp,pnOut,ppOut)" identifier (argument_list "(pGrp,pnOut,ppOut)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "sqlite3changegroup_delete(pGrp);" (call_expression "sqlite3changegroup_delete(pGrp)" identifier (argument_list "(pGrp)" ( identifier ))) ;) (if_statement "if (p_Stack_24 == *(_func_int_void_ptr_void_ptr_int_ptr **)puVar1) {\n    return iVar2;\n  }" if (parenthesized_expression "(p_Stack_24 == *(_func_int_void_ptr_void_ptr_int_ptr **)puVar1)" ( (binary_expression "p_Stack_24 == *(_func_int_void_ptr_void_ptr_int_ptr **)puVar1" identifier == (pointer_expression "*(_func_int_void_ptr_void_ptr_int_ptr **)puVar1" * (cast_expression "(_func_int_void_ptr_void_ptr_int_ptr **)puVar1" ( (type_descriptor "_func_int_void_ptr_void_ptr_int_ptr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar6 = sqlite3changeset_concat_strm;" (assignment_expression "pcVar6 = sqlite3changeset_concat_strm" identifier = identifier) ;) (expression_statement "xInput = p_Stack_24;" (assignment_expression "xInput = p_Stack_24" identifier = identifier) ;) (expression_statement "puVar5 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar5 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_68 = puVar1;" (assignment_expression "puStack_68 = puVar1" identifier = identifier) ;) (expression_statement "ppvStack_60 = ppOut;" (assignment_expression "ppvStack_60 = ppOut" identifier = identifier) ;) (expression_statement "piStack_64 = pnOut;" (assignment_expression "piStack_64 = pnOut" identifier = identifier) ;) (expression_statement "puVar4 = *(undefined4 **)(puVar5 + 0x285a4);" (assignment_expression "puVar4 = *(undefined4 **)(puVar5 + 0x285a4)" identifier = (pointer_expression "*(undefined4 **)(puVar5 + 0x285a4)" * (cast_expression "(undefined4 **)(puVar5 + 0x285a4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x285a4)" ( (binary_expression "puVar5 + 0x285a4" identifier + number_literal) ))))) ;) (expression_statement "puStack_6c = (undefined4 *)*puVar4;" (assignment_expression "puStack_6c = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "iStack_5c = nRight;" (assignment_expression "iStack_5c = nRight" identifier = identifier) ;) (expression_statement "pvStack_58 = pRight;" (assignment_expression "pvStack_58 = pRight" identifier = identifier) ;) (expression_statement "iStack_54 = nLeft;" (assignment_expression "iStack_54 = nLeft" identifier = identifier) ;) (expression_statement "pvStack_50 = pLeft;" (assignment_expression "pvStack_50 = pLeft" identifier = identifier) ;) (expression_statement "pcStack_4c = pcVar6;" (assignment_expression "pcStack_4c = pcVar6" identifier = identifier) ;) (expression_statement "iVar2 = sqlite3changegroup_new(&psStack_70);" (assignment_expression "iVar2 = sqlite3changegroup_new(&psStack_70)" identifier = (call_expression "sqlite3changegroup_new(&psStack_70)" identifier (argument_list "(&psStack_70)" ( (pointer_expression "&psStack_70" & identifier) )))) ;) (if_statement "if (((iVar2 == 0) && (iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn), iVar2 == 0)) &&\n     (iVar2 = sqlite3changegroup_add_strm\n                        (psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00),\n     iVar2 == 0)) {\n    iVar2 = sqlite3changegroup_output_strm\n                      (psStack_70,(_func_int_void_ptr_void_ptr_int *)&_gp,pvStack_34);\n  }" if (parenthesized_expression "(((iVar2 == 0) && (iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn), iVar2 == 0)) &&\n     (iVar2 = sqlite3changegroup_add_strm\n                        (psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00),\n     iVar2 == 0))" ( (binary_expression "((iVar2 == 0) && (iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn), iVar2 == 0)) &&\n     (iVar2 = sqlite3changegroup_add_strm\n                        (psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00),\n     iVar2 == 0)" (parenthesized_expression "((iVar2 == 0) && (iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn), iVar2 == 0))" ( (binary_expression "(iVar2 == 0) && (iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn), iVar2 == 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn), iVar2 == 0)" ( (comma_expression "iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn), iVar2 == 0" (assignment_expression "iVar2 = sqlite3changegroup_add_strm(psStack_70,xInput,pIn)" identifier = (call_expression "sqlite3changegroup_add_strm(psStack_70,xInput,pIn)" identifier (argument_list "(psStack_70,xInput,pIn)" ( identifier , identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar2 = sqlite3changegroup_add_strm\n                        (psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00),\n     iVar2 == 0)" ( (comma_expression "iVar2 = sqlite3changegroup_add_strm\n                        (psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00),\n     iVar2 == 0" (assignment_expression "iVar2 = sqlite3changegroup_add_strm\n                        (psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00)" identifier = (call_expression "sqlite3changegroup_add_strm\n                        (psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00)" identifier (argument_list "(psStack_70,(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00,pIn_00)" ( identifier , (cast_expression "(_func_int_void_ptr_void_ptr_int_ptr *)xInput_00" ( (type_descriptor "_func_int_void_ptr_void_ptr_int_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar2 = sqlite3changegroup_output_strm\n                      (psStack_70,(_func_int_void_ptr_void_ptr_int *)&_gp,pvStack_34);\n  }" { (expression_statement "iVar2 = sqlite3changegroup_output_strm\n                      (psStack_70,(_func_int_void_ptr_void_ptr_int *)&_gp,pvStack_34);" (assignment_expression "iVar2 = sqlite3changegroup_output_strm\n                      (psStack_70,(_func_int_void_ptr_void_ptr_int *)&_gp,pvStack_34)" identifier = (call_expression "sqlite3changegroup_output_strm\n                      (psStack_70,(_func_int_void_ptr_void_ptr_int *)&_gp,pvStack_34)" identifier (argument_list "(psStack_70,(_func_int_void_ptr_void_ptr_int *)&_gp,pvStack_34)" ( identifier , (cast_expression "(_func_int_void_ptr_void_ptr_int *)&_gp" ( (type_descriptor "_func_int_void_ptr_void_ptr_int *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&_gp" & identifier)) , identifier )))) ;) })) (expression_statement "sqlite3changegroup_delete(psStack_70);" (call_expression "sqlite3changegroup_delete(psStack_70)" identifier (argument_list "(psStack_70)" ( identifier ))) ;) (if_statement "if (puStack_6c == (undefined4 *)*puVar4) {\n    return iVar2;\n  }" if (parenthesized_expression "(puStack_6c == (undefined4 *)*puVar4)" ( (binary_expression "puStack_6c == (undefined4 *)*puVar4" identifier == (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar6 = *(code **)(puVar5 + 0x28588);" (assignment_expression "pcVar6 = *(code **)(puVar5 + 0x28588)" identifier = (pointer_expression "*(code **)(puVar5 + 0x28588)" * (cast_expression "(code **)(puVar5 + 0x28588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x28588)" ( (binary_expression "puVar5 + 0x28588" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = puStack_6c;" (assignment_expression "puVar4 = puStack_6c" identifier = identifier) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar3 = (undefined1 *)(**(code **)(pcVar6 + 0x2809c))(0xc);" (assignment_expression "puVar3 = (undefined1 *)(**(code **)(pcVar6 + 0x2809c))(0xc)" identifier = (cast_expression "(undefined1 *)(**(code **)(pcVar6 + 0x2809c))(0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar6 + 0x2809c))(0xc)" (parenthesized_expression "(**(code **)(pcVar6 + 0x2809c))" ( (pointer_expression "**(code **)(pcVar6 + 0x2809c)" * (pointer_expression "*(code **)(pcVar6 + 0x2809c)" * (cast_expression "(code **)(pcVar6 + 0x2809c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x2809c)" ( (binary_expression "pcVar6 + 0x2809c" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 0;\n    puVar3[10] = 0;\n    puVar3[0xb] = 0;\n    *puVar4 = puVar3;\n    return 0;\n  }" if (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" ( (binary_expression "puVar3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *puVar3 = 0;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0;\n    puVar3[6] = 0;\n    puVar3[7] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 0;\n    puVar3[10] = 0;\n    puVar3[0xb] = 0;\n    *puVar4 = puVar3;\n    return 0;\n  }" { (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[5] = 0;" (assignment_expression "puVar3[5] = 0" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0;" (assignment_expression "puVar3[6] = 0" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[7] = 0;" (assignment_expression "puVar3[7] = 0" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[9] = 0;" (assignment_expression "puVar3[9] = 0" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb] = 0;" (assignment_expression "puVar3[0xb] = 0" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar4 = puVar3;" (assignment_expression "*puVar4 = puVar3" (pointer_expression "*puVar4" * identifier) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (return_statement "return 7;" return number_literal ;) })))
(translation_unit "int FUN_0013336c(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uVar11;\n  undefined4 local_70;\n  undefined4 *local_6c;\n  undefined *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_34;\n  undefined4 local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar5 = param_2;\n  uVar6 = param_3;\n  uVar7 = param_4;\n  iVar2 = sqlite3changegroup_new(&local_28);\n  if (((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)) {\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }\n  sqlite3changegroup_delete(local_28);\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  uVar11 = 0x133488;\n  iVar2 = local_24;\n  puVar9 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_68 = puVar1;\n  local_60 = param_6;\n  local_64 = param_5;\n  puVar8 = *(undefined4 **)(puVar9 + 0x285a4);\n  local_6c = (undefined4 *)*puVar8;\n  local_5c = param_3;\n  local_58 = param_4;\n  local_54 = param_1;\n  local_50 = param_2;\n  local_4c = uVar11;\n  iVar3 = sqlite3changegroup_new(&local_70);\n  if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }\n  sqlite3changegroup_delete(local_70);\n  if (local_6c == (undefined4 *)*puVar8) {\n    return iVar3;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x28588);\n  puVar8 = local_6c;\n  (*pcVar10)();\n  puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);\n  if (puVar4 != (undefined1 *)0x0) {\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }\n  *puVar8 = 0;\n  return 7;\n}\n\n" (function_definition "int FUN_0013336c(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uVar11;\n  undefined4 local_70;\n  undefined4 *local_6c;\n  undefined *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_34;\n  undefined4 local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar5 = param_2;\n  uVar6 = param_3;\n  uVar7 = param_4;\n  iVar2 = sqlite3changegroup_new(&local_28);\n  if (((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)) {\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }\n  sqlite3changegroup_delete(local_28);\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  uVar11 = 0x133488;\n  iVar2 = local_24;\n  puVar9 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_68 = puVar1;\n  local_60 = param_6;\n  local_64 = param_5;\n  puVar8 = *(undefined4 **)(puVar9 + 0x285a4);\n  local_6c = (undefined4 *)*puVar8;\n  local_5c = param_3;\n  local_58 = param_4;\n  local_54 = param_1;\n  local_50 = param_2;\n  local_4c = uVar11;\n  iVar3 = sqlite3changegroup_new(&local_70);\n  if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }\n  sqlite3changegroup_delete(local_70);\n  if (local_6c == (undefined4 *)*puVar8) {\n    return iVar3;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x28588);\n  puVar8 = local_6c;\n  (*pcVar10)();\n  puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);\n  if (puVar4 != (undefined1 *)0x0) {\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }\n  *puVar8 = 0;\n  return 7;\n}" primitive_type (function_declarator "FUN_0013336c(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uVar11;\n  undefined4 local_70;\n  undefined4 *local_6c;\n  undefined *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_34;\n  undefined4 local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar5 = param_2;\n  uVar6 = param_3;\n  uVar7 = param_4;\n  iVar2 = sqlite3changegroup_new(&local_28);\n  if (((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)) {\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }\n  sqlite3changegroup_delete(local_28);\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  uVar11 = 0x133488;\n  iVar2 = local_24;\n  puVar9 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_68 = puVar1;\n  local_60 = param_6;\n  local_64 = param_5;\n  puVar8 = *(undefined4 **)(puVar9 + 0x285a4);\n  local_6c = (undefined4 *)*puVar8;\n  local_5c = param_3;\n  local_58 = param_4;\n  local_54 = param_1;\n  local_50 = param_2;\n  local_4c = uVar11;\n  iVar3 = sqlite3changegroup_new(&local_70);\n  if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }\n  sqlite3changegroup_delete(local_70);\n  if (local_6c == (undefined4 *)*puVar8) {\n    return iVar3;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x28588);\n  puVar8 = local_6c;\n  (*pcVar10)();\n  puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);\n  if (puVar4 != (undefined1 *)0x0) {\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }\n  *puVar8 = 0;\n  return 7;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" identifier = identifier) ;) (expression_statement "uVar6 = param_3;" (assignment_expression "uVar6 = param_3" identifier = identifier) ;) (expression_statement "uVar7 = param_4;" (assignment_expression "uVar7 = param_4" identifier = identifier) ;) (expression_statement "iVar2 = sqlite3changegroup_new(&local_28);" (assignment_expression "iVar2 = sqlite3changegroup_new(&local_28)" identifier = (call_expression "sqlite3changegroup_new(&local_28)" identifier (argument_list "(&local_28)" ( (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)) {\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }" if (parenthesized_expression "(((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0))" ( (binary_expression "((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)" (parenthesized_expression "((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0))" ( (binary_expression "(iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)" ( (comma_expression "uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0" (assignment_expression "uVar5 = param_1" identifier = identifier) , (comma_expression "uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0" (assignment_expression "uVar6 = param_2" identifier = identifier) , (comma_expression "iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0" (assignment_expression "iVar2 = sqlite3changegroup_add(local_28,param_1,param_2)" identifier = (call_expression "sqlite3changegroup_add(local_28,param_1,param_2)" identifier (argument_list "(local_28,param_1,param_2)" ( identifier , identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)))) ))) )) && (parenthesized_expression "(uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)" ( (comma_expression "uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0" (assignment_expression "uVar5 = param_3" identifier = identifier) , (comma_expression "uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0" (assignment_expression "uVar6 = param_4" identifier = identifier) , (comma_expression "iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0" (assignment_expression "iVar2 = sqlite3changegroup_add(local_28,param_3,param_4)" identifier = (call_expression "sqlite3changegroup_add(local_28,param_3,param_4)" identifier (argument_list "(local_28,param_3,param_4)" ( identifier , identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)))) ))) )) (compound_statement "{\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }" { (expression_statement "uVar5 = param_5;" (assignment_expression "uVar5 = param_5" identifier = identifier) ;) (expression_statement "uVar6 = param_6;" (assignment_expression "uVar6 = param_6" identifier = identifier) ;) (expression_statement "iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);" (assignment_expression "iVar2 = sqlite3changegroup_output(local_28,param_5,param_6)" identifier = (call_expression "sqlite3changegroup_output(local_28,param_5,param_6)" identifier (argument_list "(local_28,param_5,param_6)" ( identifier , identifier , identifier )))) ;) })) (expression_statement "sqlite3changegroup_delete(local_28);" (call_expression "sqlite3changegroup_delete(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (if_statement "if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar1)" ( (binary_expression "local_24 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "uVar11 = 0x133488;" (assignment_expression "uVar11 = 0x133488" identifier = number_literal) ;) (expression_statement "iVar2 = local_24;" (assignment_expression "iVar2 = local_24" identifier = identifier) ;) (expression_statement "puVar9 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar9 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_68 = puVar1;" (assignment_expression "local_68 = puVar1" identifier = identifier) ;) (expression_statement "local_60 = param_6;" (assignment_expression "local_60 = param_6" identifier = identifier) ;) (expression_statement "local_64 = param_5;" (assignment_expression "local_64 = param_5" identifier = identifier) ;) (expression_statement "puVar8 = *(undefined4 **)(puVar9 + 0x285a4);" (assignment_expression "puVar8 = *(undefined4 **)(puVar9 + 0x285a4)" identifier = (pointer_expression "*(undefined4 **)(puVar9 + 0x285a4)" * (cast_expression "(undefined4 **)(puVar9 + 0x285a4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x285a4)" ( (binary_expression "puVar9 + 0x285a4" identifier + number_literal) ))))) ;) (expression_statement "local_6c = (undefined4 *)*puVar8;" (assignment_expression "local_6c = (undefined4 *)*puVar8" identifier = (cast_expression "(undefined4 *)*puVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "local_5c = param_3;" (assignment_expression "local_5c = param_3" identifier = identifier) ;) (expression_statement "local_58 = param_4;" (assignment_expression "local_58 = param_4" identifier = identifier) ;) (expression_statement "local_54 = param_1;" (assignment_expression "local_54 = param_1" identifier = identifier) ;) (expression_statement "local_50 = param_2;" (assignment_expression "local_50 = param_2" identifier = identifier) ;) (expression_statement "local_4c = uVar11;" (assignment_expression "local_4c = uVar11" identifier = identifier) ;) (expression_statement "iVar3 = sqlite3changegroup_new(&local_70);" (assignment_expression "iVar3 = sqlite3changegroup_new(&local_70)" identifier = (call_expression "sqlite3changegroup_new(&local_70)" identifier (argument_list "(&local_70)" ( (pointer_expression "&local_70" & identifier) )))) ;) (if_statement "if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }" if (parenthesized_expression "(((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0))" ( (binary_expression "((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)" (parenthesized_expression "((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0))" ( (binary_expression "(iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)" ( (comma_expression "iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0" (assignment_expression "iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5)" identifier = (call_expression "sqlite3changegroup_add_strm(local_70,iVar2,uVar5)" identifier (argument_list "(local_70,iVar2,uVar5)" ( identifier , identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)" ( (comma_expression "iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0" (assignment_expression "iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7)" identifier = (call_expression "sqlite3changegroup_add_strm(local_70,uVar6,uVar7)" identifier (argument_list "(local_70,uVar6,uVar7)" ( identifier , identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }" { (expression_statement "iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);" (assignment_expression "iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34)" identifier = (call_expression "sqlite3changegroup_output_strm(local_70,&_gp_1,local_34)" identifier (argument_list "(local_70,&_gp_1,local_34)" ( identifier , (pointer_expression "&_gp_1" & identifier) , identifier )))) ;) })) (expression_statement "sqlite3changegroup_delete(local_70);" (call_expression "sqlite3changegroup_delete(local_70)" identifier (argument_list "(local_70)" ( identifier ))) ;) (if_statement "if (local_6c == (undefined4 *)*puVar8) {\n    return iVar3;\n  }" if (parenthesized_expression "(local_6c == (undefined4 *)*puVar8)" ( (binary_expression "local_6c == (undefined4 *)*puVar8" identifier == (cast_expression "(undefined4 *)*puVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pcVar10 = *(code **)(puVar9 + 0x28588);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0x28588)" identifier = (pointer_expression "*(code **)(puVar9 + 0x28588)" * (cast_expression "(code **)(puVar9 + 0x28588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x28588)" ( (binary_expression "puVar9 + 0x28588" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = local_6c;" (assignment_expression "puVar8 = local_6c" identifier = identifier) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc)" identifier = (cast_expression "(undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar10 + 0x2809c))(0xc)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2809c))" ( (pointer_expression "**(code **)(pcVar10 + 0x2809c)" * (pointer_expression "*(code **)(pcVar10 + 0x2809c)" * (cast_expression "(code **)(pcVar10 + 0x2809c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2809c)" ( (binary_expression "pcVar10 + 0x2809c" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (if_statement "if (puVar4 != (undefined1 *)0x0) {\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }" if (parenthesized_expression "(puVar4 != (undefined1 *)0x0)" ( (binary_expression "puVar4 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }" { (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 0;" (assignment_expression "puVar4[6] = 0" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[7] = 0;" (assignment_expression "puVar4[7] = 0" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[9] = 0;" (assignment_expression "puVar4[9] = 0" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[0xb] = 0;" (assignment_expression "puVar4[0xb] = 0" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar8 = puVar4;" (assignment_expression "*puVar8 = puVar4" (pointer_expression "*puVar8" * identifier) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (return_statement "return 7;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;) })))
(function_definition "int FUN_0013336c(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                undefined4 param_5,undefined4 param_6)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uVar11;\n  undefined4 local_70;\n  undefined4 *local_6c;\n  undefined *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_34;\n  undefined4 local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar5 = param_2;\n  uVar6 = param_3;\n  uVar7 = param_4;\n  iVar2 = sqlite3changegroup_new(&local_28);\n  if (((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)) {\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }\n  sqlite3changegroup_delete(local_28);\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  uVar11 = 0x133488;\n  iVar2 = local_24;\n  puVar9 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_68 = puVar1;\n  local_60 = param_6;\n  local_64 = param_5;\n  puVar8 = *(undefined4 **)(puVar9 + 0x285a4);\n  local_6c = (undefined4 *)*puVar8;\n  local_5c = param_3;\n  local_58 = param_4;\n  local_54 = param_1;\n  local_50 = param_2;\n  local_4c = uVar11;\n  iVar3 = sqlite3changegroup_new(&local_70);\n  if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }\n  sqlite3changegroup_delete(local_70);\n  if (local_6c == (undefined4 *)*puVar8) {\n    return iVar3;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x28588);\n  puVar8 = local_6c;\n  (*pcVar10)();\n  puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);\n  if (puVar4 != (undefined1 *)0x0) {\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }\n  *puVar8 = 0;\n  return 7;\n}" (primitive_type "int") (function_declarator "FUN_0013336c(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                undefined4 param_5,undefined4 param_6)" (identifier "FUN_0013336c") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                undefined4 param_5,undefined4 param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 uVar11;\n  undefined4 local_70;\n  undefined4 *local_6c;\n  undefined *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_34;\n  undefined4 local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar5 = param_2;\n  uVar6 = param_3;\n  uVar7 = param_4;\n  iVar2 = sqlite3changegroup_new(&local_28);\n  if (((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)) {\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }\n  sqlite3changegroup_delete(local_28);\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  uVar11 = 0x133488;\n  iVar2 = local_24;\n  puVar9 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_68 = puVar1;\n  local_60 = param_6;\n  local_64 = param_5;\n  puVar8 = *(undefined4 **)(puVar9 + 0x285a4);\n  local_6c = (undefined4 *)*puVar8;\n  local_5c = param_3;\n  local_58 = param_4;\n  local_54 = param_1;\n  local_50 = param_2;\n  local_4c = uVar11;\n  iVar3 = sqlite3changegroup_new(&local_70);\n  if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }\n  sqlite3changegroup_delete(local_70);\n  if (local_6c == (undefined4 *)*puVar8) {\n    return iVar3;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x28588);\n  puVar8 = local_6c;\n  (*pcVar10)();\n  puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);\n  if (puVar4 != (undefined1 *)0x0) {\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }\n  *puVar8 = 0;\n  return 7;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined1 *puVar4;" (type_identifier "undefined1") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined4 local_70;" (type_identifier "undefined4") (identifier "local_70") (; ";")) (declaration "undefined4 *local_6c;" (type_identifier "undefined4") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "undefined *local_68;" (type_identifier "undefined") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0015ba2c" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0015ba2c")) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0015ba2c" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0015ba2c")))) (; ";")) (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" (identifier "uVar5") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar6 = param_3;" (assignment_expression "uVar6 = param_3" (identifier "uVar6") (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar7 = param_4;" (assignment_expression "uVar7 = param_4" (identifier "uVar7") (= "=") (identifier "param_4")) (; ";")) (expression_statement "iVar2 = sqlite3changegroup_new(&local_28);" (assignment_expression "iVar2 = sqlite3changegroup_new(&local_28)" (identifier "iVar2") (= "=") (call_expression "sqlite3changegroup_new(&local_28)" (identifier "sqlite3changegroup_new") (argument_list "(&local_28)" (( "(") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")")))) (; ";")) (if_statement "if (((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)) {\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }" (if "if") (parenthesized_expression "(((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0))" (( "(") (binary_expression "((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)) &&\n     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)" (parenthesized_expression "((iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0))" (( "(") (binary_expression "(iVar2 == 0) &&\n      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)" (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0)" (( "(") (comma_expression "uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0" (assignment_expression "uVar5 = param_1" (identifier "uVar5") (= "=") (identifier "param_1")) (, ",") (comma_expression "uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0" (assignment_expression "uVar6 = param_2" (identifier "uVar6") (= "=") (identifier "param_2")) (, ",") (comma_expression "iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),\n      iVar2 == 0" (assignment_expression "iVar2 = sqlite3changegroup_add(local_28,param_1,param_2)" (identifier "iVar2") (= "=") (call_expression "sqlite3changegroup_add(local_28,param_1,param_2)" (identifier "sqlite3changegroup_add") (argument_list "(local_28,param_1,param_2)" (( "(") (identifier "local_28") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0)" (( "(") (comma_expression "uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0" (assignment_expression "uVar5 = param_3" (identifier "uVar5") (= "=") (identifier "param_3")) (, ",") (comma_expression "uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0" (assignment_expression "uVar6 = param_4" (identifier "uVar6") (= "=") (identifier "param_4")) (, ",") (comma_expression "iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),\n     iVar2 == 0" (assignment_expression "iVar2 = sqlite3changegroup_add(local_28,param_3,param_4)" (identifier "iVar2") (= "=") (call_expression "sqlite3changegroup_add(local_28,param_3,param_4)" (identifier "sqlite3changegroup_add") (argument_list "(local_28,param_3,param_4)" (( "(") (identifier "local_28") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")")))) (, ",") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0"))))) () ")"))) () ")")) (compound_statement "{\n    uVar5 = param_5;\n    uVar6 = param_6;\n    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);\n  }" ({ "{") (expression_statement "uVar5 = param_5;" (assignment_expression "uVar5 = param_5" (identifier "uVar5") (= "=") (identifier "param_5")) (; ";")) (expression_statement "uVar6 = param_6;" (assignment_expression "uVar6 = param_6" (identifier "uVar6") (= "=") (identifier "param_6")) (; ";")) (expression_statement "iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);" (assignment_expression "iVar2 = sqlite3changegroup_output(local_28,param_5,param_6)" (identifier "iVar2") (= "=") (call_expression "sqlite3changegroup_output(local_28,param_5,param_6)" (identifier "sqlite3changegroup_output") (argument_list "(local_28,param_5,param_6)" (( "(") (identifier "local_28") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (; ";")) (} "}"))) (expression_statement "sqlite3changegroup_delete(local_28);" (call_expression "sqlite3changegroup_delete(local_28)" (identifier "sqlite3changegroup_delete") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (if_statement "if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)puVar1)" (( "(") (binary_expression "local_24 == *(int *)puVar1" (identifier "local_24") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return iVar2;\n  }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "uVar11 = 0x133488;" (assignment_expression "uVar11 = 0x133488" (identifier "uVar11") (= "=") (number_literal "0x133488")) (; ";")) (expression_statement "iVar2 = local_24;" (assignment_expression "iVar2 = local_24" (identifier "iVar2") (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar9 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar9 = PTR___stack_chk_fail_0015ba10" (identifier "puVar9") (= "=") (identifier "PTR___stack_chk_fail_0015ba10")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015ba10"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_68 = puVar1;" (assignment_expression "local_68 = puVar1" (identifier "local_68") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "local_60 = param_6;" (assignment_expression "local_60 = param_6" (identifier "local_60") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_64 = param_5;" (assignment_expression "local_64 = param_5" (identifier "local_64") (= "=") (identifier "param_5")) (; ";")) (expression_statement "puVar8 = *(undefined4 **)(puVar9 + 0x285a4);" (assignment_expression "puVar8 = *(undefined4 **)(puVar9 + 0x285a4)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined4 **)(puVar9 + 0x285a4)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0x285a4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0x285a4)" (( "(") (binary_expression "puVar9 + 0x285a4" (identifier "puVar9") (+ "+") (number_literal "0x285a4")) () ")"))))) (; ";")) (expression_statement "local_6c = (undefined4 *)*puVar8;" (assignment_expression "local_6c = (undefined4 *)*puVar8" (identifier "local_6c") (= "=") (cast_expression "(undefined4 *)*puVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")))) (; ";")) (expression_statement "local_5c = param_3;" (assignment_expression "local_5c = param_3" (identifier "local_5c") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_58 = param_4;" (assignment_expression "local_58 = param_4" (identifier "local_58") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_54 = param_1;" (assignment_expression "local_54 = param_1" (identifier "local_54") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_50 = param_2;" (assignment_expression "local_50 = param_2" (identifier "local_50") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_4c = uVar11;" (assignment_expression "local_4c = uVar11" (identifier "local_4c") (= "=") (identifier "uVar11")) (; ";")) (expression_statement "iVar3 = sqlite3changegroup_new(&local_70);" (assignment_expression "iVar3 = sqlite3changegroup_new(&local_70)" (identifier "iVar3") (= "=") (call_expression "sqlite3changegroup_new(&local_70)" (identifier "sqlite3changegroup_new") (argument_list "(&local_70)" (( "(") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")")))) (; ";")) (if_statement "if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }" (if "if") (parenthesized_expression "(((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0))" (( "(") (binary_expression "((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&\n     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)" (parenthesized_expression "((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0))" (( "(") (binary_expression "(iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)" (( "(") (comma_expression "iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0" (assignment_expression "iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5)" (identifier "iVar3") (= "=") (call_expression "sqlite3changegroup_add_strm(local_70,iVar2,uVar5)" (identifier "sqlite3changegroup_add_strm") (argument_list "(local_70,iVar2,uVar5)" (( "(") (identifier "local_70") (, ",") (identifier "iVar2") (, ",") (identifier "uVar5") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)" (( "(") (comma_expression "iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0" (assignment_expression "iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7)" (identifier "iVar3") (= "=") (call_expression "sqlite3changegroup_add_strm(local_70,uVar6,uVar7)" (identifier "sqlite3changegroup_add_strm") (argument_list "(local_70,uVar6,uVar7)" (( "(") (identifier "local_70") (, ",") (identifier "uVar6") (, ",") (identifier "uVar7") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);\n  }" ({ "{") (expression_statement "iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);" (assignment_expression "iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34)" (identifier "iVar3") (= "=") (call_expression "sqlite3changegroup_output_strm(local_70,&_gp_1,local_34)" (identifier "sqlite3changegroup_output_strm") (argument_list "(local_70,&_gp_1,local_34)" (( "(") (identifier "local_70") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (, ",") (identifier "local_34") () ")")))) (; ";")) (} "}"))) (expression_statement "sqlite3changegroup_delete(local_70);" (call_expression "sqlite3changegroup_delete(local_70)" (identifier "sqlite3changegroup_delete") (argument_list "(local_70)" (( "(") (identifier "local_70") () ")"))) (; ";")) (if_statement "if (local_6c == (undefined4 *)*puVar8) {\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(local_6c == (undefined4 *)*puVar8)" (( "(") (binary_expression "local_6c == (undefined4 *)*puVar8" (identifier "local_6c") (== "==") (cast_expression "(undefined4 *)*puVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")))) () ")")) (compound_statement "{\n    return iVar3;\n  }" ({ "{") (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "pcVar10 = *(code **)(puVar9 + 0x28588);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0x28588)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(puVar9 + 0x28588)" (* "*") (cast_expression "(code **)(puVar9 + 0x28588)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0x28588)" (( "(") (binary_expression "puVar9 + 0x28588" (identifier "puVar9") (+ "+") (number_literal "0x28588")) () ")"))))) (; ";")) (expression_statement "puVar8 = local_6c;" (assignment_expression "puVar8 = local_6c" (identifier "puVar8") (= "=") (identifier "local_6c")) (; ";")) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc)" (identifier "puVar4") (= "=") (cast_expression "(undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar10 + 0x2809c))(0xc)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2809c))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2809c)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2809c)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2809c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2809c)" (( "(") (binary_expression "pcVar10 + 0x2809c" (identifier "pcVar10") (+ "+") (number_literal "0x2809c")) () ")"))))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (if_statement "if (puVar4 != (undefined1 *)0x0) {\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }" (if "if") (parenthesized_expression "(puVar4 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined1 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    puVar4[7] = 0;\n    puVar4[8] = 0;\n    puVar4[9] = 0;\n    puVar4[10] = 0;\n    puVar4[0xb] = 0;\n    *puVar8 = puVar4;\n    return 0;\n  }" ({ "{") (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[6] = 0;" (assignment_expression "puVar4[6] = 0" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[7] = 0;" (assignment_expression "puVar4[7] = 0" (subscript_expression "puVar4[7]" (identifier "puVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" (identifier "puVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[9] = 0;" (assignment_expression "puVar4[9] = 0" (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[0xb] = 0;" (assignment_expression "puVar4[0xb] = 0" (subscript_expression "puVar4[0xb]" (identifier "puVar4") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar8 = puVar4;" (assignment_expression "*puVar8 = puVar4" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "puVar4")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0")) (; ";")) (return_statement "return 7;" (return "return") (number_literal "7") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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)) (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: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (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))) value: (parenthesized_expression (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: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (number_literal)))))

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

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  undefined1 *puVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 *puVar8;
  undefined *puVar9;
  code *pcVar10;
  undefined4 uVar11;
  undefined4 local_70;
  undefined4 *local_6c;
  undefined *local_68;
  undefined4 local_64;
  undefined4 local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_34;
  undefined4 local_28;
  int local_24;
  
  puVar1 = PTR___stack_chk_guard_0015ba2c;
  local_24 = *(int *)PTR___stack_chk_guard_0015ba2c;
  uVar5 = param_2;
  uVar6 = param_3;
  uVar7 = param_4;
  iVar2 = sqlite3changegroup_new(&local_28);
  if (((iVar2 == 0) &&
      (uVar5 = param_1, uVar6 = param_2, iVar2 = sqlite3changegroup_add(local_28,param_1,param_2),
      iVar2 == 0)) &&
     (uVar5 = param_3, uVar6 = param_4, iVar2 = sqlite3changegroup_add(local_28,param_3,param_4),
     iVar2 == 0)) {
    uVar5 = param_5;
    uVar6 = param_6;
    iVar2 = sqlite3changegroup_output(local_28,param_5,param_6);
  }
  sqlite3changegroup_delete(local_28);
  if (local_24 == *(int *)puVar1) {
    return iVar2;
  }
  uVar11 = 0x133488;
  iVar2 = local_24;
  puVar9 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  local_68 = puVar1;
  local_60 = param_6;
  local_64 = param_5;
  puVar8 = *(undefined4 **)(puVar9 + 0x285a4);
  local_6c = (undefined4 *)*puVar8;
  local_5c = param_3;
  local_58 = param_4;
  local_54 = param_1;
  local_50 = param_2;
  local_4c = uVar11;
  iVar3 = sqlite3changegroup_new(&local_70);
  if (((iVar3 == 0) && (iVar3 = sqlite3changegroup_add_strm(local_70,iVar2,uVar5), iVar3 == 0)) &&
     (iVar3 = sqlite3changegroup_add_strm(local_70,uVar6,uVar7), iVar3 == 0)) {
    iVar3 = sqlite3changegroup_output_strm(local_70,&_gp_1,local_34);
  }
  sqlite3changegroup_delete(local_70);
  if (local_6c == (undefined4 *)*puVar8) {
    return iVar3;
  }
  pcVar10 = *(code **)(puVar9 + 0x28588);
  puVar8 = local_6c;
  (*pcVar10)();
  puVar4 = (undefined1 *)(**(code **)(pcVar10 + 0x2809c))(0xc);
  if (puVar4 != (undefined1 *)0x0) {
    *puVar4 = 0;
    puVar4[1] = 0;
    puVar4[2] = 0;
    puVar4[3] = 0;
    puVar4[4] = 0;
    puVar4[5] = 0;
    puVar4[6] = 0;
    puVar4[7] = 0;
    puVar4[8] = 0;
    puVar4[9] = 0;
    puVar4[10] = 0;
    puVar4[0xb] = 0;
    *puVar8 = puVar4;
    return 0;
  }
  *puVar8 = 0;
  return 7;
}

