
int vdbePmaWriterFinish(PmaWriter *p,i64 *piEof)

{
  int iVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  
  uVar4 = p->iBufEnd;
  iVar5 = *(int *)&p->iWriteOff;
  iVar2 = (int)p->iWriteOff;
  if ((p->eFWErr == 0) && (p->aBuffer != (u8 *)0x0)) {
    uVar3 = p->iBufStart;
    if ((int)uVar3 < (int)uVar4) {
      iVar1 = (*p->pFd->pMethods->xWrite)
                        (p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,
                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,
                                  uVar3 + iVar2));
      uVar4 = p->iBufEnd;
      iVar5 = *(int *)&p->iWriteOff;
      iVar2 = (int)p->iWriteOff;
      p->eFWErr = iVar1;
    }
  }
  *(uint *)((int)piEof + 4) = uVar4 + iVar2;
  *(uint *)piEof = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;
                    /* WARNING: Subroutine does not return */
  sqlite3_free(p->aBuffer);
}



int FUN_0002bdf4(int *param_1,int *param_2)

{
  int iVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  
  uVar4 = param_1[4];
  iVar5 = param_1[6];
  iVar2 = param_1[7];
  if ((*param_1 == 0) && (param_1[1] != 0)) {
    uVar3 = param_1[3];
    if ((int)uVar3 < (int)uVar4) {
      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;
      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))
                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,
                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);
      uVar4 = param_1[4];
      iVar5 = param_1[6];
      iVar2 = param_1[7];
      *param_1 = iVar1;
    }
  }
  param_2[1] = uVar4 + iVar2;
  *param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;
  sqlite3_free(param_1[1]);
  iVar2 = *param_1;
  param_1[1] = 0;
  *param_1 = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  param_1[9] = 0;
  return iVar2;
}


lui gp,0x13
addiu gp,gp,0x77bc
addu gp,gp,t9
addiu sp,sp,-0x30
sw s1,0x28(sp)
or s1,a1,zero
sw s0,0x24(sp)
or s0,a0,zero
sw gp,0x18(sp)
sw ra,0x2c(sp)
lw v0,0x0(a0)
lw a2,0x10(a0)
lw a3,0x18(a0)
bne v0,zero,0x0002be90
_lw v1,0x1c(a0)
lw t0,0x4(a0)
beq t0,zero,0x0002be90
_nop
lw a1,0xc(a0)
slt v0,a1,a2
beq v0,zero,0x0002be90
_sra t1,a1,0x1f
lw a0,0x20(a0)
addu v0,a1,v1
addu a3,t1,a3
sltu v1,v0,a1
lw t1,0x0(a0)
addu v1,v1,a3
sw v0,0x14(sp)
subu a2,a2,a1
sw v1,0x10(sp)
lw t9,0xc(t1)
jalr t9
_addu a1,t0,a1
lw a2,0x10(s0)
lw a3,0x18(s0)
lw v1,0x1c(s0)
lw gp,0x18(sp)
sw v0,0x0(s0)
sra a0,a2,0x1f
lw t9,-0x7f90(gp)
addu v0,a2,v1
addu v1,a0,a3
sltu a2,v0,a2
sw v0,0x4(s1)
addu a2,a2,v1
sw a2,0x0(s1)
bal 0x0002a7f4
_lw a0,0x4(s0)
lw v0,0x0(s0)
sw zero,0x4(s0)
sw zero,0x0(s0)
sw zero,0x8(s0)
sw zero,0xc(s0)
sw zero,0x10(s0)
sw zero,0x14(s0)
sw zero,0x18(s0)
sw zero,0x1c(s0)
sw zero,0x20(s0)
sw zero,0x24(s0)
lw ra,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x30
(translation_unit "int FUN_0002bdf4(int *param_1,int *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar4 = param_1[4];\n  iVar5 = param_1[6];\n  iVar2 = param_1[7];\n  if ((*param_1 == 0) && (param_1[1] != 0)) {\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }\n  param_2[1] = uVar4 + iVar2;\n  *param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;\n  sqlite3_free(param_1[1]);\n  iVar2 = *param_1;\n  param_1[1] = 0;\n  *param_1 = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  return iVar2;\n}\n\n" (function_definition "int FUN_0002bdf4(int *param_1,int *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar4 = param_1[4];\n  iVar5 = param_1[6];\n  iVar2 = param_1[7];\n  if ((*param_1 == 0) && (param_1[1] != 0)) {\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }\n  param_2[1] = uVar4 + iVar2;\n  *param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;\n  sqlite3_free(param_1[1]);\n  iVar2 = *param_1;\n  param_1[1] = 0;\n  *param_1 = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  return iVar2;\n}" primitive_type (function_declarator "FUN_0002bdf4(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar4 = param_1[4];\n  iVar5 = param_1[6];\n  iVar2 = param_1[7];\n  if ((*param_1 == 0) && (param_1[1] != 0)) {\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }\n  param_2[1] = uVar4 + iVar2;\n  *param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;\n  sqlite3_free(param_1[1]);\n  iVar2 = *param_1;\n  param_1[1] = 0;\n  *param_1 = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  return iVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "uVar4 = param_1[4];" (assignment_expression "uVar4 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_1[7];" (assignment_expression "iVar2 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (if_statement "if ((*param_1 == 0) && (param_1[1] != 0)) {\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }" if (parenthesized_expression "((*param_1 == 0) && (param_1[1] != 0))" ( (binary_expression "(*param_1 == 0) && (param_1[1] != 0)" (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) && (parenthesized_expression "(param_1[1] != 0)" ( (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }" { (expression_statement "uVar3 = param_1[3];" (assignment_expression "uVar3 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }" if (parenthesized_expression "((int)uVar3 < (int)uVar4)" ( (binary_expression "(int)uVar3 < (int)uVar4" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }" { (expression_statement "iVar5 = ((int)uVar3 >> 0x1f) + iVar5;" (assignment_expression "iVar5 = ((int)uVar3 >> 0x1f) + iVar5" identifier = (binary_expression "((int)uVar3 >> 0x1f) + iVar5" (parenthesized_expression "((int)uVar3 >> 0x1f)" ( (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + identifier)) ;) (expression_statement "iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);" (assignment_expression "iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2)" identifier = (call_expression "(**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2)" (parenthesized_expression "(**(code **)(*(int *)param_1[8] + 0xc))" ( (pointer_expression "**(code **)(*(int *)param_1[8] + 0xc)" * (pointer_expression "*(code **)(*(int *)param_1[8] + 0xc)" * (cast_expression "(code **)(*(int *)param_1[8] + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_1[8] + 0xc)" ( (binary_expression "*(int *)param_1[8] + 0xc" (pointer_expression "*(int *)param_1[8]" * (cast_expression "(int *)param_1[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2)" ( (cast_expression "(int *)param_1[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) , (binary_expression "param_1[1] + uVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) + identifier) , (binary_expression "uVar4 - uVar3" identifier - identifier) , identifier , (binary_expression "(uint)(uVar3 + iVar2 < uVar3) + iVar5" (call_expression "(uint)(uVar3 + iVar2 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 + iVar2 < uVar3)" ( (binary_expression "uVar3 + iVar2 < uVar3" (binary_expression "uVar3 + iVar2" identifier + identifier) < identifier) ))) + identifier) , (binary_expression "uVar3 + iVar2" identifier + identifier) )))) ;) (expression_statement "uVar4 = param_1[4];" (assignment_expression "uVar4 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_1[7];" (assignment_expression "iVar2 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = iVar1;" (assignment_expression "*param_1 = iVar1" (pointer_expression "*param_1" * identifier) = identifier) ;) })) })) (expression_statement "param_2[1] = uVar4 + iVar2;" (assignment_expression "param_2[1] = uVar4 + iVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar4 + iVar2" identifier + identifier)) ;) (expression_statement "*param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;" (assignment_expression "*param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5" (pointer_expression "*param_2" * identifier) = (binary_expression "(uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5" (binary_expression "(uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f)" (call_expression "(uint)(uVar4 + iVar2 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 + iVar2 < uVar4)" ( (binary_expression "uVar4 + iVar2 < uVar4" (binary_expression "uVar4 + iVar2" identifier + identifier) < identifier) ))) + (parenthesized_expression "((int)uVar4 >> 0x1f)" ( (binary_expression "(int)uVar4 >> 0x1f" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier)) ;) (expression_statement "sqlite3_free(param_1[1]);" (call_expression "sqlite3_free(param_1[1])" identifier (argument_list "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar2 = *param_1;" (assignment_expression "iVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "int vdbePmaWriterFinish(PmaWriter *p,i64 *piEof)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar4 = p->iBufEnd;\n  iVar5 = *(int *)&p->iWriteOff;\n  iVar2 = (int)p->iWriteOff;\n  if ((p->eFWErr == 0) && (p->aBuffer != (u8 *)0x0)) {\n    uVar3 = p->iBufStart;\n    if ((int)uVar3 < (int)uVar4) {\n      iVar1 = (*p->pFd->pMethods->xWrite)\n                        (p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,\n                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2));\n      uVar4 = p->iBufEnd;\n      iVar5 = *(int *)&p->iWriteOff;\n      iVar2 = (int)p->iWriteOff;\n      p->eFWErr = iVar1;\n    }\n  }\n  *(uint *)((int)piEof + 4) = uVar4 + iVar2;\n  *(uint *)piEof = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;\n                    /* WARNING: Subroutine does not return */\n  sqlite3_free(p->aBuffer);\n}\n\n" (function_definition "int vdbePmaWriterFinish(PmaWriter *p,i64 *piEof)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar4 = p->iBufEnd;\n  iVar5 = *(int *)&p->iWriteOff;\n  iVar2 = (int)p->iWriteOff;\n  if ((p->eFWErr == 0) && (p->aBuffer != (u8 *)0x0)) {\n    uVar3 = p->iBufStart;\n    if ((int)uVar3 < (int)uVar4) {\n      iVar1 = (*p->pFd->pMethods->xWrite)\n                        (p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,\n                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2));\n      uVar4 = p->iBufEnd;\n      iVar5 = *(int *)&p->iWriteOff;\n      iVar2 = (int)p->iWriteOff;\n      p->eFWErr = iVar1;\n    }\n  }\n  *(uint *)((int)piEof + 4) = uVar4 + iVar2;\n  *(uint *)piEof = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;\n                    /* WARNING: Subroutine does not return */\n  sqlite3_free(p->aBuffer);\n}" primitive_type (function_declarator "vdbePmaWriterFinish(PmaWriter *p,i64 *piEof)" identifier (parameter_list "(PmaWriter *p,i64 *piEof)" ( (parameter_declaration "PmaWriter *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "i64 *piEof" type_identifier (pointer_declarator "*piEof" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar4 = p->iBufEnd;\n  iVar5 = *(int *)&p->iWriteOff;\n  iVar2 = (int)p->iWriteOff;\n  if ((p->eFWErr == 0) && (p->aBuffer != (u8 *)0x0)) {\n    uVar3 = p->iBufStart;\n    if ((int)uVar3 < (int)uVar4) {\n      iVar1 = (*p->pFd->pMethods->xWrite)\n                        (p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,\n                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2));\n      uVar4 = p->iBufEnd;\n      iVar5 = *(int *)&p->iWriteOff;\n      iVar2 = (int)p->iWriteOff;\n      p->eFWErr = iVar1;\n    }\n  }\n  *(uint *)((int)piEof + 4) = uVar4 + iVar2;\n  *(uint *)piEof = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;\n                    /* WARNING: Subroutine does not return */\n  sqlite3_free(p->aBuffer);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "uVar4 = p->iBufEnd;" (assignment_expression "uVar4 = p->iBufEnd" identifier = (field_expression "p->iBufEnd" identifier -> field_identifier)) ;) (expression_statement "iVar5 = *(int *)&p->iWriteOff;" (assignment_expression "iVar5 = *(int *)&p->iWriteOff" identifier = (pointer_expression "*(int *)&p->iWriteOff" * (cast_expression "(int *)&p->iWriteOff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p->iWriteOff" & (field_expression "p->iWriteOff" identifier -> field_identifier))))) ;) (expression_statement "iVar2 = (int)p->iWriteOff;" (assignment_expression "iVar2 = (int)p->iWriteOff" identifier = (cast_expression "(int)p->iWriteOff" ( (type_descriptor "int" primitive_type) ) (field_expression "p->iWriteOff" identifier -> field_identifier))) ;) (if_statement "if ((p->eFWErr == 0) && (p->aBuffer != (u8 *)0x0)) {\n    uVar3 = p->iBufStart;\n    if ((int)uVar3 < (int)uVar4) {\n      iVar1 = (*p->pFd->pMethods->xWrite)\n                        (p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,\n                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2));\n      uVar4 = p->iBufEnd;\n      iVar5 = *(int *)&p->iWriteOff;\n      iVar2 = (int)p->iWriteOff;\n      p->eFWErr = iVar1;\n    }\n  }" if (parenthesized_expression "((p->eFWErr == 0) && (p->aBuffer != (u8 *)0x0))" ( (binary_expression "(p->eFWErr == 0) && (p->aBuffer != (u8 *)0x0)" (parenthesized_expression "(p->eFWErr == 0)" ( (binary_expression "p->eFWErr == 0" (field_expression "p->eFWErr" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(p->aBuffer != (u8 *)0x0)" ( (binary_expression "p->aBuffer != (u8 *)0x0" (field_expression "p->aBuffer" identifier -> field_identifier) != (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    uVar3 = p->iBufStart;\n    if ((int)uVar3 < (int)uVar4) {\n      iVar1 = (*p->pFd->pMethods->xWrite)\n                        (p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,\n                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2));\n      uVar4 = p->iBufEnd;\n      iVar5 = *(int *)&p->iWriteOff;\n      iVar2 = (int)p->iWriteOff;\n      p->eFWErr = iVar1;\n    }\n  }" { (expression_statement "uVar3 = p->iBufStart;" (assignment_expression "uVar3 = p->iBufStart" identifier = (field_expression "p->iBufStart" identifier -> field_identifier)) ;) (if_statement "if ((int)uVar3 < (int)uVar4) {\n      iVar1 = (*p->pFd->pMethods->xWrite)\n                        (p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,\n                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2));\n      uVar4 = p->iBufEnd;\n      iVar5 = *(int *)&p->iWriteOff;\n      iVar2 = (int)p->iWriteOff;\n      p->eFWErr = iVar1;\n    }" if (parenthesized_expression "((int)uVar3 < (int)uVar4)" ( (binary_expression "(int)uVar3 < (int)uVar4" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      iVar1 = (*p->pFd->pMethods->xWrite)\n                        (p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,\n                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2));\n      uVar4 = p->iBufEnd;\n      iVar5 = *(int *)&p->iWriteOff;\n      iVar2 = (int)p->iWriteOff;\n      p->eFWErr = iVar1;\n    }" { (expression_statement "iVar1 = (*p->pFd->pMethods->xWrite)\n                        (p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,\n                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2));" (assignment_expression "iVar1 = (*p->pFd->pMethods->xWrite)\n                        (p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,\n                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2))" identifier = (call_expression "(*p->pFd->pMethods->xWrite)\n                        (p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,\n                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2))" (parenthesized_expression "(*p->pFd->pMethods->xWrite)" ( (pointer_expression "*p->pFd->pMethods->xWrite" * (field_expression "p->pFd->pMethods->xWrite" (field_expression "p->pFd->pMethods" (field_expression "p->pFd" identifier -> field_identifier) -> field_identifier) -> field_identifier)) )) (argument_list "(p->pFd,p->aBuffer + uVar3,uVar4 - uVar3,\n                         CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2))" ( (field_expression "p->pFd" identifier -> field_identifier) , (binary_expression "p->aBuffer + uVar3" (field_expression "p->aBuffer" identifier -> field_identifier) + identifier) , (binary_expression "uVar4 - uVar3" identifier - identifier) , (call_expression "CONCAT44((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2)" identifier (argument_list "((uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5,\n                                  uVar3 + iVar2)" ( (binary_expression "(uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f) + iVar5" (binary_expression "(uint)(uVar3 + iVar2 < uVar3) + ((int)uVar3 >> 0x1f)" (call_expression "(uint)(uVar3 + iVar2 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 + iVar2 < uVar3)" ( (binary_expression "uVar3 + iVar2 < uVar3" (binary_expression "uVar3 + iVar2" identifier + identifier) < identifier) ))) + (parenthesized_expression "((int)uVar3 >> 0x1f)" ( (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier) , (binary_expression "uVar3 + iVar2" identifier + identifier) ))) )))) ;) (expression_statement "uVar4 = p->iBufEnd;" (assignment_expression "uVar4 = p->iBufEnd" identifier = (field_expression "p->iBufEnd" identifier -> field_identifier)) ;) (expression_statement "iVar5 = *(int *)&p->iWriteOff;" (assignment_expression "iVar5 = *(int *)&p->iWriteOff" identifier = (pointer_expression "*(int *)&p->iWriteOff" * (cast_expression "(int *)&p->iWriteOff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p->iWriteOff" & (field_expression "p->iWriteOff" identifier -> field_identifier))))) ;) (expression_statement "iVar2 = (int)p->iWriteOff;" (assignment_expression "iVar2 = (int)p->iWriteOff" identifier = (cast_expression "(int)p->iWriteOff" ( (type_descriptor "int" primitive_type) ) (field_expression "p->iWriteOff" identifier -> field_identifier))) ;) (expression_statement "p->eFWErr = iVar1;" (assignment_expression "p->eFWErr = iVar1" (field_expression "p->eFWErr" identifier -> field_identifier) = identifier) ;) })) })) (expression_statement "*(uint *)((int)piEof + 4) = uVar4 + iVar2;" (assignment_expression "*(uint *)((int)piEof + 4) = uVar4 + iVar2" (pointer_expression "*(uint *)((int)piEof + 4)" * (cast_expression "(uint *)((int)piEof + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piEof + 4)" ( (binary_expression "(int)piEof + 4" (cast_expression "(int)piEof" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar4 + iVar2" identifier + identifier)) ;) (expression_statement "*(uint *)piEof = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;" (assignment_expression "*(uint *)piEof = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5" (pointer_expression "*(uint *)piEof" * (cast_expression "(uint *)piEof" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5" (binary_expression "(uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f)" (call_expression "(uint)(uVar4 + iVar2 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 + iVar2 < uVar4)" ( (binary_expression "uVar4 + iVar2 < uVar4" (binary_expression "uVar4 + iVar2" identifier + identifier) < identifier) ))) + (parenthesized_expression "((int)uVar4 >> 0x1f)" ( (binary_expression "(int)uVar4 >> 0x1f" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier)) ;) comment (expression_statement "sqlite3_free(p->aBuffer);" (call_expression "sqlite3_free(p->aBuffer)" identifier (argument_list "(p->aBuffer)" ( (field_expression "p->aBuffer" identifier -> field_identifier) ))) ;) })))
(translation_unit "int FUN_0002bdf4(int *param_1,int *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar4 = param_1[4];\n  iVar5 = param_1[6];\n  iVar2 = param_1[7];\n  if ((*param_1 == 0) && (param_1[1] != 0)) {\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }\n  param_2[1] = uVar4 + iVar2;\n  *param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;\n  sqlite3_free(param_1[1]);\n  iVar2 = *param_1;\n  param_1[1] = 0;\n  *param_1 = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  return iVar2;\n}\n\n" (function_definition "int FUN_0002bdf4(int *param_1,int *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar4 = param_1[4];\n  iVar5 = param_1[6];\n  iVar2 = param_1[7];\n  if ((*param_1 == 0) && (param_1[1] != 0)) {\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }\n  param_2[1] = uVar4 + iVar2;\n  *param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;\n  sqlite3_free(param_1[1]);\n  iVar2 = *param_1;\n  param_1[1] = 0;\n  *param_1 = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  return iVar2;\n}" primitive_type (function_declarator "FUN_0002bdf4(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar4 = param_1[4];\n  iVar5 = param_1[6];\n  iVar2 = param_1[7];\n  if ((*param_1 == 0) && (param_1[1] != 0)) {\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }\n  param_2[1] = uVar4 + iVar2;\n  *param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;\n  sqlite3_free(param_1[1]);\n  iVar2 = *param_1;\n  param_1[1] = 0;\n  *param_1 = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  return iVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "uVar4 = param_1[4];" (assignment_expression "uVar4 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_1[7];" (assignment_expression "iVar2 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (if_statement "if ((*param_1 == 0) && (param_1[1] != 0)) {\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }" if (parenthesized_expression "((*param_1 == 0) && (param_1[1] != 0))" ( (binary_expression "(*param_1 == 0) && (param_1[1] != 0)" (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) && (parenthesized_expression "(param_1[1] != 0)" ( (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }" { (expression_statement "uVar3 = param_1[3];" (assignment_expression "uVar3 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }" if (parenthesized_expression "((int)uVar3 < (int)uVar4)" ( (binary_expression "(int)uVar3 < (int)uVar4" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }" { (expression_statement "iVar5 = ((int)uVar3 >> 0x1f) + iVar5;" (assignment_expression "iVar5 = ((int)uVar3 >> 0x1f) + iVar5" identifier = (binary_expression "((int)uVar3 >> 0x1f) + iVar5" (parenthesized_expression "((int)uVar3 >> 0x1f)" ( (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + identifier)) ;) (expression_statement "iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);" (assignment_expression "iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2)" identifier = (call_expression "(**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2)" (parenthesized_expression "(**(code **)(*(int *)param_1[8] + 0xc))" ( (pointer_expression "**(code **)(*(int *)param_1[8] + 0xc)" * (pointer_expression "*(code **)(*(int *)param_1[8] + 0xc)" * (cast_expression "(code **)(*(int *)param_1[8] + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_1[8] + 0xc)" ( (binary_expression "*(int *)param_1[8] + 0xc" (pointer_expression "*(int *)param_1[8]" * (cast_expression "(int *)param_1[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2)" ( (cast_expression "(int *)param_1[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) , (binary_expression "param_1[1] + uVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) + identifier) , (binary_expression "uVar4 - uVar3" identifier - identifier) , identifier , (binary_expression "(uint)(uVar3 + iVar2 < uVar3) + iVar5" (call_expression "(uint)(uVar3 + iVar2 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 + iVar2 < uVar3)" ( (binary_expression "uVar3 + iVar2 < uVar3" (binary_expression "uVar3 + iVar2" identifier + identifier) < identifier) ))) + identifier) , (binary_expression "uVar3 + iVar2" identifier + identifier) )))) ;) (expression_statement "uVar4 = param_1[4];" (assignment_expression "uVar4 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_1[7];" (assignment_expression "iVar2 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = iVar1;" (assignment_expression "*param_1 = iVar1" (pointer_expression "*param_1" * identifier) = identifier) ;) })) })) (expression_statement "param_2[1] = uVar4 + iVar2;" (assignment_expression "param_2[1] = uVar4 + iVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar4 + iVar2" identifier + identifier)) ;) (expression_statement "*param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;" (assignment_expression "*param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5" (pointer_expression "*param_2" * identifier) = (binary_expression "(uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5" (binary_expression "(uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f)" (call_expression "(uint)(uVar4 + iVar2 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 + iVar2 < uVar4)" ( (binary_expression "uVar4 + iVar2 < uVar4" (binary_expression "uVar4 + iVar2" identifier + identifier) < identifier) ))) + (parenthesized_expression "((int)uVar4 >> 0x1f)" ( (binary_expression "(int)uVar4 >> 0x1f" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier)) ;) (expression_statement "sqlite3_free(param_1[1]);" (call_expression "sqlite3_free(param_1[1])" identifier (argument_list "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar2 = *param_1;" (assignment_expression "iVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) , (binary_expression IDENT - IDENT) , IDENT , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) ))) + IDENT) , (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) ))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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) ;) (return_statement return IDENT ;) })))
(function_definition "int FUN_0002bdf4(int *param_1,int *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar4 = param_1[4];\n  iVar5 = param_1[6];\n  iVar2 = param_1[7];\n  if ((*param_1 == 0) && (param_1[1] != 0)) {\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }\n  param_2[1] = uVar4 + iVar2;\n  *param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;\n  sqlite3_free(param_1[1]);\n  iVar2 = *param_1;\n  param_1[1] = 0;\n  *param_1 = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  return iVar2;\n}" (primitive_type "int") (function_declarator "FUN_0002bdf4(int *param_1,int *param_2)" (identifier "FUN_0002bdf4") (parameter_list "(int *param_1,int *param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar4 = param_1[4];\n  iVar5 = param_1[6];\n  iVar2 = param_1[7];\n  if ((*param_1 == 0) && (param_1[1] != 0)) {\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }\n  param_2[1] = uVar4 + iVar2;\n  *param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;\n  sqlite3_free(param_1[1]);\n  iVar2 = *param_1;\n  param_1[1] = 0;\n  *param_1 = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  return iVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (expression_statement "uVar4 = param_1[4];" (assignment_expression "uVar4 = param_1[4]" (identifier "uVar4") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" (identifier "iVar5") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar2 = param_1[7];" (assignment_expression "iVar2 = param_1[7]" (identifier "iVar2") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if ((*param_1 == 0) && (param_1[1] != 0)) {\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }" (if "if") (parenthesized_expression "((*param_1 == 0) && (param_1[1] != 0))" (( "(") (binary_expression "(*param_1 == 0) && (param_1[1] != 0)" (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_1[1] != 0)" (( "(") (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    uVar3 = param_1[3];\n    if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }\n  }" ({ "{") (expression_statement "uVar3 = param_1[3];" (assignment_expression "uVar3 = param_1[3]" (identifier "uVar3") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if ((int)uVar3 < (int)uVar4) {\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }" (if "if") (parenthesized_expression "((int)uVar3 < (int)uVar4)" (( "(") (binary_expression "(int)uVar3 < (int)uVar4" (cast_expression "(int)uVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar3")) (< "<") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) () ")")) (compound_statement "{\n      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;\n      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);\n      uVar4 = param_1[4];\n      iVar5 = param_1[6];\n      iVar2 = param_1[7];\n      *param_1 = iVar1;\n    }" ({ "{") (expression_statement "iVar5 = ((int)uVar3 >> 0x1f) + iVar5;" (assignment_expression "iVar5 = ((int)uVar3 >> 0x1f) + iVar5" (identifier "iVar5") (= "=") (binary_expression "((int)uVar3 >> 0x1f) + iVar5" (parenthesized_expression "((int)uVar3 >> 0x1f)" (( "(") (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar3")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);" (assignment_expression "iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(*(int *)param_1[8] + 0xc))\n                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2)" (parenthesized_expression "(**(code **)(*(int *)param_1[8] + 0xc))" (( "(") (pointer_expression "**(code **)(*(int *)param_1[8] + 0xc)" (* "*") (pointer_expression "*(code **)(*(int *)param_1[8] + 0xc)" (* "*") (cast_expression "(code **)(*(int *)param_1[8] + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)param_1[8] + 0xc)" (( "(") (binary_expression "*(int *)param_1[8] + 0xc" (pointer_expression "*(int *)param_1[8]" (* "*") (cast_expression "(int *)param_1[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")))) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,\n                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2)" (( "(") (cast_expression "(int *)param_1[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (, ",") (binary_expression "param_1[1] + uVar3" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "uVar3")) (, ",") (binary_expression "uVar4 - uVar3" (identifier "uVar4") (- "-") (identifier "uVar3")) (, ",") (identifier "iVar5") (, ",") (binary_expression "(uint)(uVar3 + iVar2 < uVar3) + iVar5" (call_expression "(uint)(uVar3 + iVar2 < uVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 + iVar2 < uVar3)" (( "(") (binary_expression "uVar3 + iVar2 < uVar3" (binary_expression "uVar3 + iVar2" (identifier "uVar3") (+ "+") (identifier "iVar2")) (< "<") (identifier "uVar3")) () ")"))) (+ "+") (identifier "iVar5")) (, ",") (binary_expression "uVar3 + iVar2" (identifier "uVar3") (+ "+") (identifier "iVar2")) () ")")))) (; ";")) (expression_statement "uVar4 = param_1[4];" (assignment_expression "uVar4 = param_1[4]" (identifier "uVar4") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar5 = param_1[6];" (assignment_expression "iVar5 = param_1[6]" (identifier "iVar5") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar2 = param_1[7];" (assignment_expression "iVar2 = param_1[7]" (identifier "iVar2") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "*param_1 = iVar1;" (assignment_expression "*param_1 = iVar1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "param_2[1] = uVar4 + iVar2;" (assignment_expression "param_2[1] = uVar4 + iVar2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar4 + iVar2" (identifier "uVar4") (+ "+") (identifier "iVar2"))) (; ";")) (expression_statement "*param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;" (assignment_expression "*param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "(uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5" (binary_expression "(uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f)" (call_expression "(uint)(uVar4 + iVar2 < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 + iVar2 < uVar4)" (( "(") (binary_expression "uVar4 + iVar2 < uVar4" (binary_expression "uVar4 + iVar2" (identifier "uVar4") (+ "+") (identifier "iVar2")) (< "<") (identifier "uVar4")) () ")"))) (+ "+") (parenthesized_expression "((int)uVar4 >> 0x1f)" (( "(") (binary_expression "(int)uVar4 >> 0x1f" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "sqlite3_free(param_1[1]);" (call_expression "sqlite3_free(param_1[1])" (identifier "sqlite3_free") (argument_list "(param_1[1])" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "iVar2 = *param_1;" (assignment_expression "iVar2 = *param_1" (identifier "iVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))))) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (identifier) (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) right: (identifier)) (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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: (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))) (return_statement (identifier)))))

int MASKED(int *param_1,int *param_2)

{
  int iVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  
  uVar4 = param_1[4];
  iVar5 = param_1[6];
  iVar2 = param_1[7];
  if ((*param_1 == 0) && (param_1[1] != 0)) {
    uVar3 = param_1[3];
    if ((int)uVar3 < (int)uVar4) {
      iVar5 = ((int)uVar3 >> 0x1f) + iVar5;
      iVar1 = (**(code **)(*(int *)param_1[8] + 0xc))
                        ((int *)param_1[8],param_1[1] + uVar3,uVar4 - uVar3,iVar5,
                         (uint)(uVar3 + iVar2 < uVar3) + iVar5,uVar3 + iVar2);
      uVar4 = param_1[4];
      iVar5 = param_1[6];
      iVar2 = param_1[7];
      *param_1 = iVar1;
    }
  }
  param_2[1] = uVar4 + iVar2;
  *param_2 = (uint)(uVar4 + iVar2 < uVar4) + ((int)uVar4 >> 0x1f) + iVar5;
  sqlite3_free(param_1[1]);
  iVar2 = *param_1;
  param_1[1] = 0;
  *param_1 = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  param_1[9] = 0;
  return iVar2;
}

