
void likeFunc(sqlite3_context *context,int argc,sqlite3_value **argv)

{
  bool bVar1;
  undefined *puVar2;
  uint uVar3;
  compareInfo *pcVar4;
  int iVar5;
  sqlite3_value **ppsVar6;
  byte *pbVar7;
  int *piVar8;
  int iVar9;
  byte bVar11;
  Vdbe *pVVar10;
  int extraout_v1;
  sqlite3_value *psVar12;
  sqlite3_value *psVar13;
  char **ppcVar14;
  char *pcVar15;
  undefined *puVar16;
  Mem *pMVar17;
  char *z;
  compareInfo *pcVar18;
  FuncDef *pFVar19;
  int iVar20;
  int *piVar21;
  undefined *puVar22;
  code *pcVar23;
  int iStack_f8;
  int iStack_f4;
  undefined4 uStack_f0;
  undefined4 uStack_ec;
  undefined4 uStack_e8;
  int iStack_e4;
  int iStack_e0;
  undefined4 uStack_dc;
  undefined4 uStack_d8;
  undefined4 uStack_d4;
  undefined4 uStack_d0;
  undefined4 uStack_cc;
  int aiStack_c8 [8];
  double dStack_a8;
  undefined1 uStack_a0;
  undefined1 auStack_98 [8];
  int iStack_90;
  int iStack_8c;
  undefined4 uStack_88;
  undefined4 uStack_84;
  undefined4 uStack_80;
  double dStack_78;
  undefined4 uStack_70;
  undefined1 uStack_6c;
  undefined1 uStack_6a;
  char *pcStack_64;
  sqlite3_value **ppsStack_60;
  undefined *puStack_5c;
  sqlite3_context *psStack_58;
  compareInfo *pcStack_54;
  uint uStack_50;
  code *pcStack_4c;
  compareInfo backupInfo;
  uchar *zEsc;
  int local_24;
  
  puVar2 = PTR___stack_chk_guard_000f5568;
  local_24 = *(int *)PTR___stack_chk_guard_000f5568;
  puVar16 = (undefined *)argc;
  pcVar18 = (compareInfo *)argv;
  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();
  pcVar4 = (compareInfo *)(*(code *)PTR_sqlite3_user_data_000f5598)(context);
  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*argv);
  if (*(int *)(uVar3 + 0x8c) < iVar5) {
    pcVar18 = (compareInfo *)0xffffffff;
    puVar16 = PTR_LAB_000f52cc + 0x7e54;
    psVar12 = (sqlite3_value *)context;
    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);
    goto LAB_0005ba18;
  }
  if (argc == 3) {
    psVar12 = argv[2];
    zEsc = (uchar *)(*(code *)PTR_sqlite3_value_text_000f539c)();
    if (zEsc == (byte *)0x0) goto LAB_0005ba18;
    bVar11 = *zEsc;
    if ((bVar11 != 0) && (iVar5 = 0, zEsc != (byte *)0xffffffff)) {
      pcVar18 = (compareInfo *)0xffffffc0;
      puVar16 = (undefined *)0x80;
      pbVar7 = zEsc;
      do {
        bVar1 = 0xbf < bVar11;
        bVar11 = pbVar7[1];
        pbVar7 = pbVar7 + 1;
        if (bVar1) {
          while ((bVar11 & 0xc0) == 0x80) {
            pbVar7 = pbVar7 + 1;
            bVar11 = *pbVar7;
          }
        }
        iVar5 = iVar5 + 1;
      } while ((bVar11 != 0) && (pbVar7 != (byte *)0xffffffff));
      if (iVar5 == 1) {
        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc);
        if (pcVar4->matchAll == uVar3) {
          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);
        }
        else {
          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;
          backupInfo = *pcVar4;
        }
        if (((uint)backupInfo >> 0x10 & 0xff) == uVar3) {
          backupInfo.matchOne = '\0';
          pcVar4 = &backupInfo;
        }
        else {
          pcVar4 = &backupInfo;
        }
        goto LAB_0005b9bc;
      }
    }
    pcVar18 = (compareInfo *)0xffffffff;
    puVar16 = PTR_LAB_000f52cc + 0x7e78;
    psVar12 = (sqlite3_value *)context;
    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);
  }
  else {
    uVar3 = (uint)pcVar4->matchSet;
LAB_0005b9bc:
    ppsVar6 = (sqlite3_value **)(*(code *)PTR_sqlite3_value_text_000f539c)(*argv);
    psVar12 = argv[1];
    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();
    argv = ppsVar6;
    if ((iVar5 != 0) && (ppsVar6 != (sqlite3_value **)0x0)) {
      pcVar18 = pcVar4;
      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3);
      puVar16 = (undefined *)(uint)(iVar5 == 0);
      psVar12 = (sqlite3_value *)context;
      (*(code *)PTR_sqlite3_result_int_000f550c)(context,puVar16);
    }
  }
LAB_0005ba18:
  if (local_24 == *(int *)puVar2) {
    return;
  }
  pcVar23 = localtimeOffset;
  puVar22 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  piVar21 = *(int **)(puVar22 + 0x999e0);
  puStack_5c = puVar2;
  iStack_f4 = 0;
  uStack_f0 = 0;
  uStack_ec = 0;
  uStack_e8 = 0;
  iStack_e4 = 0;
  iStack_e0 = 0;
  uStack_dc = 0;
  uStack_d8 = 0;
  uStack_d4 = 0;
  uStack_d0 = 0;
  uStack_cc = 0;
  pcStack_64 = (char *)*piVar21;
  piVar8 = aiStack_c8;
  psVar13 = psVar12;
  ppsStack_60 = argv;
  psStack_58 = context;
  pcStack_54 = pcVar4;
  uStack_50 = uVar3;
  pcStack_4c = pcVar23;
  do {
    ppcVar14 = &psVar13->z;
    pFVar19 = *(FuncDef **)((int)&psVar13->u + 4);
    pMVar17 = *(Mem **)&psVar13->flags;
    pVVar10 = (Vdbe *)psVar13->n;
    *piVar8 = (int)(psVar13->u).nZero;
    piVar8[1] = (int)pFVar19;
    piVar8[2] = (int)pMVar17;
    piVar8[3] = (int)pVVar10;
    piVar8 = piVar8 + 4;
    psVar13 = (sqlite3_value *)ppcVar14;
  } while (ppcVar14 != (char **)&psVar12[1].flags);
  (*(code *)(*(int *)(puVar22 + 0x99764) + -0x7e3c))(aiStack_c8);
  if (aiStack_c8[2] - 0x7b3U < 0x43) {
    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758));
  }
  else {
    aiStack_c8[5] = 0;
    aiStack_c8[6] = 0;
    aiStack_c8[3] = 1;
    aiStack_c8[2] = 2000;
    aiStack_c8[4] = 1;
    dStack_a8 = 0.0;
  }
  iVar20 = *(int *)(puVar22 + 0x99740);
  aiStack_c8[7] = 0;
  uStack_a0 = 0;
  (*(code *)(iVar20 + 0x7bc0))(aiStack_c8);
  iVar5 = 0;
  (**(code **)(puVar22 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);
  iStack_f8 = extraout_v1 + -0x18a36940;
  if ((*(int *)(*(int *)(puVar22 + 0x99734) + 0x4198) == 0) &&
     (iVar9 = (**(code **)(puVar22 + 0x999a0))(&iStack_f8,&iStack_f4), iVar9 != 0)) {
    uStack_6c = 0;
    iStack_8c = iStack_e4 + 1;
    uStack_6a = 0;
    iStack_90 = iStack_e0 + 0x76c;
    dStack_78 = (double)iStack_f4;
    uStack_88 = uStack_e8;
    uStack_84 = uStack_ec;
    uStack_80 = uStack_f0;
    uStack_70 = 0x101;
    (*(code *)(iVar20 + 0x7bc0))(auStack_98);
    pcVar18->matchAll = '\0';
    pcVar18->matchOne = '\0';
    pcVar18->matchSet = '\0';
    pcVar18->noCase = '\0';
  }
  else {
    iVar5 = -1;
    (**(code **)(puVar22 + 0x9999c))(puVar16,*(int *)(puVar22 + 0x99744) + 0x7ea8);
    pcVar18->matchAll = '\0';
    pcVar18->matchOne = '\0';
    pcVar18->matchSet = '\0';
    pcVar18->noCase = '\x01';
  }
  pcVar15 = (char *)*piVar21;
  if (pcStack_64 != pcVar15) {
    z = pcStack_64;
    (**(code **)(puVar22 + 0x999b8))();
    pcVar15[0x14] = '\0';
    pcVar15[0x15] = '\0';
    pcVar15[0x16] = '\0';
    pcVar15[0x17] = '\x01';
    sqlite3VdbeMemSetStr(*(Mem **)pcVar15,z,iVar5,'\x03',(_func_void_void_ptr *)0xffffffff);
    return;
  }
  return;
}



undefined8 FUN_0005b91c(int *param_1,undefined *param_2,uint *param_3)

{
  bool bVar1;
  undefined *puVar2;
  uint uVar3;
  uint *puVar4;
  int iVar5;
  uint *puVar6;
  byte *pbVar7;
  int *piVar8;
  byte bVar9;
  int extraout_v1;
  int *piVar10;
  int *piVar11;
  int *piVar12;
  undefined4 *puVar13;
  undefined *puVar14;
  int iVar15;
  uint *puVar16;
  int iVar17;
  int *piVar18;
  undefined *puVar19;
  code *pcVar20;
  undefined8 uVar21;
  int iStack_f8;
  int iStack_f4;
  undefined4 uStack_f0;
  undefined4 uStack_ec;
  undefined4 uStack_e8;
  int iStack_e4;
  int iStack_e0;
  undefined4 uStack_dc;
  undefined4 uStack_d8;
  undefined4 uStack_d4;
  undefined4 uStack_d0;
  undefined4 uStack_cc;
  int aiStack_c8 [8];
  double dStack_a8;
  undefined1 uStack_a0;
  int iStack_98;
  uint uStack_94;
  int iStack_90;
  int iStack_8c;
  undefined4 uStack_88;
  undefined4 uStack_84;
  undefined4 uStack_80;
  double dStack_78;
  undefined4 uStack_70;
  undefined1 uStack_6c;
  undefined1 uStack_6a;
  undefined4 *puStack_64;
  uint *puStack_60;
  undefined *puStack_5c;
  int *piStack_58;
  uint *puStack_54;
  uint uStack_50;
  code *pcStack_4c;
  undefined4 local_2c;
  byte *local_28;
  int local_24;
  
  puVar2 = PTR___stack_chk_guard_000f5568;
  local_24 = *(int *)PTR___stack_chk_guard_000f5568;
  puVar14 = param_2;
  puVar16 = param_3;
  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();
  puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);
  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);
  if (*(int *)(uVar3 + 0x8c) < iVar5) {
    puVar16 = (uint *)0xffffffff;
    puVar14 = PTR_LAB_000f52cc + 0x7e54;
    piVar10 = param_1;
    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);
    goto LAB_0005ba18;
  }
  if (param_2 == (undefined *)0x3) {
    piVar10 = (int *)param_3[2];
    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();
    if (local_28 == (byte *)0x0) goto LAB_0005ba18;
    bVar9 = *local_28;
    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {
      puVar16 = (uint *)0xffffffc0;
      puVar14 = (undefined *)0x80;
      pbVar7 = local_28;
      do {
        bVar1 = 0xbf < bVar9;
        bVar9 = pbVar7[1];
        pbVar7 = pbVar7 + 1;
        if (bVar1) {
          while ((bVar9 & 0xc0) == 0x80) {
            pbVar7 = pbVar7 + 1;
            bVar9 = *pbVar7;
          }
        }
        iVar5 = iVar5 + 1;
      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));
      if (iVar5 == 1) {
        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);
        if (*(byte *)puVar4 == uVar3) {
          local_2c = *puVar4 & 0xffffff;
        }
        else {
          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;
          local_2c = *puVar4;
        }
        if ((local_2c >> 0x10 & 0xff) == uVar3) {
          local_2c._1_3_ = (uint3)local_2c._2_2_;
          puVar4 = &local_2c;
        }
        else {
          puVar4 = &local_2c;
        }
        goto LAB_0005b9bc;
      }
    }
    puVar16 = (uint *)0xffffffff;
    puVar14 = PTR_LAB_000f52cc + 0x7e78;
    piVar10 = param_1;
    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);
  }
  else {
    uVar3 = (uint)*(byte *)((int)puVar4 + 2);
LAB_0005b9bc:
    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);
    piVar10 = (int *)param_3[1];
    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();
    param_3 = puVar6;
    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {
      puVar16 = puVar4;
      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);
      puVar14 = (undefined *)(uint)(iVar5 == 0);
      piVar10 = param_1;
      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);
    }
  }
LAB_0005ba18:
  iVar5 = *(int *)puVar2;
  if (local_24 == iVar5) {
    return CONCAT44(iVar5,local_24);
  }
  pcVar20 = FUN_0005bb88;
  puVar19 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  piVar18 = *(int **)(puVar19 + 0x999e0);
  puStack_5c = puVar2;
  iStack_f4 = 0;
  uStack_f0 = 0;
  uStack_ec = 0;
  uStack_e8 = 0;
  iStack_e4 = 0;
  iStack_e0 = 0;
  uStack_dc = 0;
  uStack_d8 = 0;
  uStack_d4 = 0;
  uStack_d0 = 0;
  uStack_cc = 0;
  puStack_64 = (undefined4 *)*piVar18;
  piVar8 = aiStack_c8;
  piVar11 = piVar10;
  puStack_60 = param_3;
  piStack_58 = param_1;
  puStack_54 = puVar4;
  uStack_50 = uVar3;
  pcStack_4c = pcVar20;
  do {
    piVar12 = piVar11 + 4;
    iVar17 = piVar11[1];
    iVar15 = piVar11[2];
    iVar5 = piVar11[3];
    *piVar8 = *piVar11;
    piVar8[1] = iVar17;
    piVar8[2] = iVar15;
    piVar8[3] = iVar5;
    piVar8 = piVar8 + 4;
    piVar11 = piVar12;
  } while (piVar12 != piVar10 + 0xc);
  (*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);
  if (aiStack_c8[2] - 0x7b3U < 0x43) {
    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));
  }
  else {
    aiStack_c8[5] = 0;
    aiStack_c8[6] = 0;
    aiStack_c8[3] = 1;
    aiStack_c8[2] = 2000;
    aiStack_c8[4] = 1;
    dStack_a8 = 0.0;
  }
  iVar5 = *(int *)(puVar19 + 0x99740);
  aiStack_c8[7] = 0;
  uStack_a0 = 0;
  (*(code *)(iVar5 + 0x7bc0))(aiStack_c8);
  (**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);
  iStack_f8 = extraout_v1 + -0x18a36940;
  if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&
     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {
    uStack_6c = 0;
    iStack_8c = iStack_e4 + 1;
    uStack_6a = 0;
    iStack_90 = iStack_e0 + 0x76c;
    dStack_78 = (double)iStack_f4;
    uStack_88 = uStack_e8;
    uStack_84 = uStack_ec;
    uStack_80 = uStack_f0;
    uStack_70 = 0x101;
    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);
    uVar3 = uStack_94 - aiStack_c8[1];
    *puVar16 = 0;
    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);
  }
  else {
    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);
    iVar5 = 0;
    *puVar16 = 1;
    uVar3 = 0;
  }
  puVar13 = (undefined4 *)*piVar18;
  if (puStack_64 != puVar13) {
    (**(code **)(puVar19 + 0x999b8))();
    puVar13[5] = 1;
    uVar21 = FUN_0005b00c(*puVar13);
    return uVar21;
  }
  return CONCAT44(iVar5,uVar3);
}


lui gp,0xa
addiu gp,gp,0x1984
addu gp,gp,t9
addiu sp,sp,-0x48
lw t9,-0x7e6c(gp)
sw s1,0x30(sp)
lw s1,-0x7d38(gp)
sw ra,0x44(sp)
sw gp,0x10(sp)
sw s5,0x40(sp)
or s5,a1,zero
sw s4,0x3c(sp)
sw s3,0x38(sp)
sw s2,0x34(sp)
or s2,a0,zero
sw s0,0x2c(sp)
or s0,a2,zero
lw v0,0x0(s1)
sw v0,0x24(sp)
jalr t9
_nop
or a0,s2,zero
lw gp,0x10(sp)
lw t9,-0x7d08(gp)
jalr t9
_or s4,v0,zero
lw gp,0x10(sp)
or s3,v0,zero
lw t9,-0x7ec8(gp)
jalr t9
_lw a0,0x0(s0)
lw v1,0x8c(s4)
slt v0,v1,v0
bne v0,zero,0x0005ba48
_lw gp,0x10(sp)
li v0,0x3
beq s5,v0,0x0005ba68
_lw t9,-0x7f04(gp)
lbu s4,0x2(s3)
lw t9,-0x7f04(gp)
jalr t9
_lw a0,0x0(s0)
lw gp,0x10(sp)
lw a0,0x4(s0)
lw t9,-0x7f04(gp)
jalr t9
_or s0,v0,zero
beq v0,zero,0x0005ba18
_lw gp,0x10(sp)
beq s0,zero,0x0005ba18
_lw t9,-0x7fd8(gp)
or a1,v0,zero
or a0,s0,zero
or a3,s4,zero
addiu t9,t9,0x75dc
jalr t9
_or a2,s3,zero
or a0,s2,zero
lw gp,0x10(sp)
lw t9,-0x7d94(gp)
jalr t9
_sltiu a1,v0,0x1
lw gp,0x10(sp)
lw v1,0x24(sp)
lw v0,0x0(s1)
bne v1,v0,0x0005bb7c
_lw ra,0x44(sp)
lw s5,0x40(sp)
lw s4,0x3c(sp)
lw s3,0x38(sp)
lw s2,0x34(sp)
lw s1,0x30(sp)
lw s0,0x2c(sp)
jr ra
_addiu sp,sp,0x48
lw a1,-0x7fd4(gp)
li a2,-0x1
lw t9,-0x7d7c(gp)
or a0,s2,zero
jalr t9
_addiu a1,a1,0x7e54
b 0x0005ba18
_lw gp,0x10(sp)
jalr t9
_lw a0,0x8(s0)
lw gp,0x10(sp)
beq v0,zero,0x0005ba18
_sw v0,0x20(sp)
lbu v1,0x0(v0)
beq v1,zero,0x0005baf4
_li a0,-0x1
beq v0,a0,0x0005baf4
_or a3,zero,zero
li a2,-0x40
li a1,0x80
b 0x0005bab0
_li t0,-0x1
beq v1,zero,0x0005bae8
_addiu a3,a3,0x1
beq v0,t0,0x0005bae8
_nop
sltiu a0,v1,0xc0
lbu v1,0x1(v0)
bne a0,zero,0x0005baa0
_addiu v0,v0,0x1
and a0,v1,a2
bne a0,a1,0x0005baa0
_nop
addiu v0,v0,0x1
lbu v1,0x0(v0)
and a0,v1,a2
beq a0,a1,0x0005bacc
_nop
b 0x0005baa0
_nop
li v0,0x1
beq a3,v0,0x0005bb14
_lw t9,-0x7fd8(gp)
lw a1,-0x7fd4(gp)
li a2,-0x1
lw t9,-0x7d7c(gp)
or a0,s2,zero
jalr t9
_addiu a1,a1,0x7e78
b 0x0005ba18
_lw gp,0x10(sp)
addiu t9,t9,0x168
jalr t9
_addiu a0,sp,0x20
lbu v1,0x0(s3)
or s4,v0,zero
beq v1,v0,0x0005bb5c
_lw gp,0x10(sp)
lbu v0,0x1(s3)
bne v0,s4,0x0005b9bc
_lw t9,-0x7f04(gp)
lwl v0,0x0(s3)
lwr v0,0x3(s3)
sw v0,0x1c(sp)
lbu v0,0x1d(sp)
beq v0,s4,0x0005bb70
_nop
b 0x0005b9b8
_addiu s3,sp,0x1c
lwl v0,0x0(s3)
lwr v0,0x3(s3)
sw v0,0x1c(sp)
b 0x0005bb48
_sb zero,0x1c(sp)
sb zero,0x1d(sp)
b 0x0005b9b8
_addiu s3,sp,0x1c
lw t9,-0x7d60(gp)
jalr t9
_nop
(translation_unit "undefined8 FUN_0005b91c(int *param_1,undefined *param_2,uint *param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  uint *puVar4;\n  int iVar5;\n  uint *puVar6;\n  byte *pbVar7;\n  int *piVar8;\n  byte bVar9;\n  int extraout_v1;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  uint *puVar16;\n  int iVar17;\n  int *piVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  undefined8 uVar21;\n  int iStack_f8;\n  int iStack_f4;\n  undefined4 uStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_dc;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  int aiStack_c8 [8];\n  double dStack_a8;\n  undefined1 uStack_a0;\n  int iStack_98;\n  uint uStack_94;\n  int iStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  double dStack_78;\n  undefined4 uStack_70;\n  undefined1 uStack_6c;\n  undefined1 uStack_6a;\n  undefined4 *puStack_64;\n  uint *puStack_60;\n  undefined *puStack_5c;\n  int *piStack_58;\n  uint *puStack_54;\n  uint uStack_50;\n  code *pcStack_4c;\n  undefined4 local_2c;\n  byte *local_28;\n  int local_24;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_24 = *(int *)PTR___stack_chk_guard_000f5568;\n  puVar14 = param_2;\n  puVar16 = param_3;\n  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();\n  puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);\n  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);\n  if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }\n  if (param_2 == (undefined *)0x3) {\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }\n  else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }\nLAB_0005ba18:\n  iVar5 = *(int *)puVar2;\n  if (local_24 == iVar5) {\n    return CONCAT44(iVar5,local_24);\n  }\n  pcVar20 = FUN_0005bb88;\n  puVar19 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar18 = *(int **)(puVar19 + 0x999e0);\n  puStack_5c = puVar2;\n  iStack_f4 = 0;\n  uStack_f0 = 0;\n  uStack_ec = 0;\n  uStack_e8 = 0;\n  iStack_e4 = 0;\n  iStack_e0 = 0;\n  uStack_dc = 0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  puStack_64 = (undefined4 *)*piVar18;\n  piVar8 = aiStack_c8;\n  piVar11 = piVar10;\n  puStack_60 = param_3;\n  piStack_58 = param_1;\n  puStack_54 = puVar4;\n  uStack_50 = uVar3;\n  pcStack_4c = pcVar20;\n  do {\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  } while (piVar12 != piVar10 + 0xc);\n  (*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);\n  if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }\n  iVar5 = *(int *)(puVar19 + 0x99740);\n  aiStack_c8[7] = 0;\n  uStack_a0 = 0;\n  (*(code *)(iVar5 + 0x7bc0))(aiStack_c8);\n  (**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);\n  iStack_f8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }\n  else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }\n  puVar13 = (undefined4 *)*piVar18;\n  if (puStack_64 != puVar13) {\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }\n  return CONCAT44(iVar5,uVar3);\n}\n\n" (function_definition "undefined8 FUN_0005b91c(int *param_1,undefined *param_2,uint *param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  uint *puVar4;\n  int iVar5;\n  uint *puVar6;\n  byte *pbVar7;\n  int *piVar8;\n  byte bVar9;\n  int extraout_v1;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  uint *puVar16;\n  int iVar17;\n  int *piVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  undefined8 uVar21;\n  int iStack_f8;\n  int iStack_f4;\n  undefined4 uStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_dc;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  int aiStack_c8 [8];\n  double dStack_a8;\n  undefined1 uStack_a0;\n  int iStack_98;\n  uint uStack_94;\n  int iStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  double dStack_78;\n  undefined4 uStack_70;\n  undefined1 uStack_6c;\n  undefined1 uStack_6a;\n  undefined4 *puStack_64;\n  uint *puStack_60;\n  undefined *puStack_5c;\n  int *piStack_58;\n  uint *puStack_54;\n  uint uStack_50;\n  code *pcStack_4c;\n  undefined4 local_2c;\n  byte *local_28;\n  int local_24;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_24 = *(int *)PTR___stack_chk_guard_000f5568;\n  puVar14 = param_2;\n  puVar16 = param_3;\n  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();\n  puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);\n  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);\n  if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }\n  if (param_2 == (undefined *)0x3) {\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }\n  else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }\nLAB_0005ba18:\n  iVar5 = *(int *)puVar2;\n  if (local_24 == iVar5) {\n    return CONCAT44(iVar5,local_24);\n  }\n  pcVar20 = FUN_0005bb88;\n  puVar19 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar18 = *(int **)(puVar19 + 0x999e0);\n  puStack_5c = puVar2;\n  iStack_f4 = 0;\n  uStack_f0 = 0;\n  uStack_ec = 0;\n  uStack_e8 = 0;\n  iStack_e4 = 0;\n  iStack_e0 = 0;\n  uStack_dc = 0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  puStack_64 = (undefined4 *)*piVar18;\n  piVar8 = aiStack_c8;\n  piVar11 = piVar10;\n  puStack_60 = param_3;\n  piStack_58 = param_1;\n  puStack_54 = puVar4;\n  uStack_50 = uVar3;\n  pcStack_4c = pcVar20;\n  do {\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  } while (piVar12 != piVar10 + 0xc);\n  (*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);\n  if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }\n  iVar5 = *(int *)(puVar19 + 0x99740);\n  aiStack_c8[7] = 0;\n  uStack_a0 = 0;\n  (*(code *)(iVar5 + 0x7bc0))(aiStack_c8);\n  (**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);\n  iStack_f8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }\n  else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }\n  puVar13 = (undefined4 *)*piVar18;\n  if (puStack_64 != puVar13) {\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }\n  return CONCAT44(iVar5,uVar3);\n}" type_identifier (function_declarator "FUN_0005b91c(int *param_1,undefined *param_2,uint *param_3)" identifier (parameter_list "(int *param_1,undefined *param_2,uint *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  uint *puVar4;\n  int iVar5;\n  uint *puVar6;\n  byte *pbVar7;\n  int *piVar8;\n  byte bVar9;\n  int extraout_v1;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  uint *puVar16;\n  int iVar17;\n  int *piVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  undefined8 uVar21;\n  int iStack_f8;\n  int iStack_f4;\n  undefined4 uStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_dc;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  int aiStack_c8 [8];\n  double dStack_a8;\n  undefined1 uStack_a0;\n  int iStack_98;\n  uint uStack_94;\n  int iStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  double dStack_78;\n  undefined4 uStack_70;\n  undefined1 uStack_6c;\n  undefined1 uStack_6a;\n  undefined4 *puStack_64;\n  uint *puStack_60;\n  undefined *puStack_5c;\n  int *piStack_58;\n  uint *puStack_54;\n  uint uStack_50;\n  code *pcStack_4c;\n  undefined4 local_2c;\n  byte *local_28;\n  int local_24;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_24 = *(int *)PTR___stack_chk_guard_000f5568;\n  puVar14 = param_2;\n  puVar16 = param_3;\n  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();\n  puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);\n  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);\n  if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }\n  if (param_2 == (undefined *)0x3) {\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }\n  else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }\nLAB_0005ba18:\n  iVar5 = *(int *)puVar2;\n  if (local_24 == iVar5) {\n    return CONCAT44(iVar5,local_24);\n  }\n  pcVar20 = FUN_0005bb88;\n  puVar19 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar18 = *(int **)(puVar19 + 0x999e0);\n  puStack_5c = puVar2;\n  iStack_f4 = 0;\n  uStack_f0 = 0;\n  uStack_ec = 0;\n  uStack_e8 = 0;\n  iStack_e4 = 0;\n  iStack_e0 = 0;\n  uStack_dc = 0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  puStack_64 = (undefined4 *)*piVar18;\n  piVar8 = aiStack_c8;\n  piVar11 = piVar10;\n  puStack_60 = param_3;\n  piStack_58 = param_1;\n  puStack_54 = puVar4;\n  uStack_50 = uVar3;\n  pcStack_4c = pcVar20;\n  do {\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  } while (piVar12 != piVar10 + 0xc);\n  (*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);\n  if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }\n  iVar5 = *(int *)(puVar19 + 0x99740);\n  aiStack_c8[7] = 0;\n  uStack_a0 = 0;\n  (*(code *)(iVar5 + 0x7bc0))(aiStack_c8);\n  (**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);\n  iStack_f8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }\n  else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }\n  puVar13 = (undefined4 *)*piVar18;\n  if (puStack_64 != puVar13) {\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }\n  return CONCAT44(iVar5,uVar3);\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "undefined8 uVar21;" type_identifier identifier ;) (declaration "int iStack_f8;" primitive_type identifier ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "undefined4 uStack_f0;" type_identifier identifier ;) (declaration "undefined4 uStack_ec;" type_identifier identifier ;) (declaration "undefined4 uStack_e8;" type_identifier identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "undefined4 uStack_dc;" type_identifier identifier ;) (declaration "undefined4 uStack_d8;" type_identifier identifier ;) (declaration "undefined4 uStack_d4;" type_identifier identifier ;) (declaration "undefined4 uStack_d0;" type_identifier identifier ;) (declaration "undefined4 uStack_cc;" type_identifier identifier ;) (declaration "int aiStack_c8 [8];" primitive_type (array_declarator "aiStack_c8 [8]" identifier [ number_literal ]) ;) (declaration "double dStack_a8;" primitive_type identifier ;) (declaration "undefined1 uStack_a0;" type_identifier identifier ;) (declaration "int iStack_98;" primitive_type identifier ;) (declaration "uint uStack_94;" type_identifier identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "undefined4 uStack_88;" type_identifier identifier ;) (declaration "undefined4 uStack_84;" type_identifier identifier ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "double dStack_78;" primitive_type identifier ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined1 uStack_6c;" type_identifier identifier ;) (declaration "undefined1 uStack_6a;" type_identifier identifier ;) (declaration "undefined4 *puStack_64;" type_identifier (pointer_declarator "*puStack_64" * identifier) ;) (declaration "uint *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "undefined *puStack_5c;" type_identifier (pointer_declarator "*puStack_5c" * identifier) ;) (declaration "int *piStack_58;" primitive_type (pointer_declarator "*piStack_58" * identifier) ;) (declaration "uint *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "uint uStack_50;" type_identifier identifier ;) (declaration "code *pcStack_4c;" type_identifier (pointer_declarator "*pcStack_4c" * identifier) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "byte *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar14 = param_2;" (assignment_expression "puVar14 = param_2" identifier = identifier) ;) (expression_statement "puVar16 = param_3;" (assignment_expression "puVar16 = param_3" identifier = identifier) ;) (expression_statement "uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();" (assignment_expression "uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)()" identifier = (call_expression "(*(code *)PTR_sqlite3_context_db_handle_000f5434)()" (parenthesized_expression "(*(code *)PTR_sqlite3_context_db_handle_000f5434)" ( (pointer_expression "*(code *)PTR_sqlite3_context_db_handle_000f5434" * (cast_expression "(code *)PTR_sqlite3_context_db_handle_000f5434" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1)" identifier = (cast_expression "(uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_user_data_000f5598)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_user_data_000f5598)" ( (pointer_expression "*(code *)PTR_sqlite3_user_data_000f5598" * (cast_expression "(code *)PTR_sqlite3_user_data_000f5598" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);" (assignment_expression "iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3)" identifier = (call_expression "(*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3)" (parenthesized_expression "(*(code *)PTR_sqlite3_value_bytes_000f53d8)" ( (pointer_expression "*(code *)PTR_sqlite3_value_bytes_000f53d8" * (cast_expression "(code *)PTR_sqlite3_value_bytes_000f53d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_3)" ( (pointer_expression "*param_3" * identifier) )))) ;) (if_statement "if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }" if (parenthesized_expression "(*(int *)(uVar3 + 0x8c) < iVar5)" ( (binary_expression "*(int *)(uVar3 + 0x8c) < iVar5" (pointer_expression "*(int *)(uVar3 + 0x8c)" * (cast_expression "(int *)(uVar3 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 + 0x8c)" ( (binary_expression "uVar3 + 0x8c" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }" { (expression_statement "puVar16 = (uint *)0xffffffff;" (assignment_expression "puVar16 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = PTR_LAB_000f52cc + 0x7e54;" (assignment_expression "puVar14 = PTR_LAB_000f52cc + 0x7e54" identifier = (binary_expression "PTR_LAB_000f52cc + 0x7e54" identifier + number_literal)) ;) (expression_statement "piVar10 = param_1;" (assignment_expression "piVar10 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);" (call_expression "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_000f5524)" ( (pointer_expression "*(code *)PTR_sqlite3_result_error_000f5524" * (cast_expression "(code *)PTR_sqlite3_result_error_000f5524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar14)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0005ba18;" goto statement_identifier ;) })) (if_statement "if (param_2 == (undefined *)0x3) {\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }\n  else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }" if (parenthesized_expression "(param_2 == (undefined *)0x3)" ( (binary_expression "param_2 == (undefined *)0x3" identifier == (cast_expression "(undefined *)0x3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }" { (expression_statement "piVar10 = (int *)param_3[2];" (assignment_expression "piVar10 = (int *)param_3[2]" identifier = (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();" (assignment_expression "local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)()" identifier = (cast_expression "(byte *)(*(code *)PTR_sqlite3_value_text_000f539c)()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)()" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" ( (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" * (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (local_28 == (byte *)0x0) goto LAB_0005ba18;" if (parenthesized_expression "(local_28 == (byte *)0x0)" ( (binary_expression "local_28 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005ba18;" goto statement_identifier ;)) (expression_statement "bVar9 = *local_28;" (assignment_expression "bVar9 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (if_statement "if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }" if (parenthesized_expression "((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff))" ( (binary_expression "(bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)" (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = 0, local_28 != (byte *)0xffffffff)" ( (comma_expression "iVar5 = 0, local_28 != (byte *)0xffffffff" (assignment_expression "iVar5 = 0" identifier = number_literal) , (binary_expression "local_28 != (byte *)0xffffffff" identifier != (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }" { (expression_statement "puVar16 = (uint *)0xffffffc0;" (assignment_expression "puVar16 = (uint *)0xffffffc0" identifier = (cast_expression "(uint *)0xffffffc0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = (undefined *)0x80;" (assignment_expression "puVar14 = (undefined *)0x80" identifier = (cast_expression "(undefined *)0x80" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar7 = local_28;" (assignment_expression "pbVar7 = local_28" identifier = identifier) ;) (do_statement "do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));" do (compound_statement "{\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      }" { (expression_statement "bVar1 = 0xbf < bVar9;" (assignment_expression "bVar1 = 0xbf < bVar9" identifier = (binary_expression "0xbf < bVar9" number_literal < identifier)) ;) (expression_statement "bVar9 = pbVar7[1];" (assignment_expression "bVar9 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }" { (while_statement "while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }" while (parenthesized_expression "((bVar9 & 0xc0) == 0x80)" ( (binary_expression "(bVar9 & 0xc0) == 0x80" (parenthesized_expression "(bVar9 & 0xc0)" ( (binary_expression "bVar9 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }" { (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar7;" (assignment_expression "bVar9 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) })) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff))" ( (binary_expression "(bVar9 != 0) && (pbVar7 != (byte *)0xffffffff)" (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(pbVar7 != (byte *)0xffffffff)" ( (binary_expression "pbVar7 != (byte *)0xffffffff" identifier != (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ;) (if_statement "if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }" { (expression_statement "uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);" (assignment_expression "uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x168))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x168)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x168)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + 0x168)" ( (binary_expression "PTR_LAB_000f52c8 + 0x168" identifier + number_literal) )))) )) (argument_list "(&local_28)" ( (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }" if (parenthesized_expression "(*(byte *)puVar4 == uVar3)" ( (binary_expression "*(byte *)puVar4 == uVar3" (pointer_expression "*(byte *)puVar4" * (cast_expression "(byte *)puVar4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n          local_2c = *puVar4 & 0xffffff;\n        }" { (expression_statement "local_2c = *puVar4 & 0xffffff;" (assignment_expression "local_2c = *puVar4 & 0xffffff" identifier = (binary_expression "*puVar4 & 0xffffff" (pointer_expression "*puVar4" * identifier) & number_literal)) ;) }) (else_clause "else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }" else (compound_statement "{\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }" { (if_statement "if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;" if (parenthesized_expression "(*(byte *)((int)puVar4 + 1) != uVar3)" ( (binary_expression "*(byte *)((int)puVar4 + 1) != uVar3" (pointer_expression "*(byte *)((int)puVar4 + 1)" * (cast_expression "(byte *)((int)puVar4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 1)" ( (binary_expression "(int)puVar4 + 1" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) (goto_statement "goto LAB_0005b9bc;" goto statement_identifier ;)) (expression_statement "local_2c = *puVar4;" (assignment_expression "local_2c = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) }))) (if_statement "if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }" if (parenthesized_expression "((local_2c >> 0x10 & 0xff) == uVar3)" ( (binary_expression "(local_2c >> 0x10 & 0xff) == uVar3" (parenthesized_expression "(local_2c >> 0x10 & 0xff)" ( (binary_expression "local_2c >> 0x10 & 0xff" (binary_expression "local_2c >> 0x10" identifier >> number_literal) & number_literal) )) == identifier) )) (compound_statement "{\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }" { (expression_statement "local_2c._1_3_ = (uint3)local_2c._2_2_;" (assignment_expression "local_2c._1_3_ = (uint3)local_2c._2_2_" (field_expression "local_2c._1_3_" identifier . field_identifier) = (cast_expression "(uint3)local_2c._2_2_" ( (type_descriptor "uint3" type_identifier) ) (field_expression "local_2c._2_2_" identifier . field_identifier))) ;) (expression_statement "puVar4 = &local_2c;" (assignment_expression "puVar4 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }) (else_clause "else {\n          puVar4 = &local_2c;\n        }" else (compound_statement "{\n          puVar4 = &local_2c;\n        }" { (expression_statement "puVar4 = &local_2c;" (assignment_expression "puVar4 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }))) (goto_statement "goto LAB_0005b9bc;" goto statement_identifier ;) })) })) (expression_statement "puVar16 = (uint *)0xffffffff;" (assignment_expression "puVar16 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = PTR_LAB_000f52cc + 0x7e78;" (assignment_expression "puVar14 = PTR_LAB_000f52cc + 0x7e78" identifier = (binary_expression "PTR_LAB_000f52cc + 0x7e78" identifier + number_literal)) ;) (expression_statement "piVar10 = param_1;" (assignment_expression "piVar10 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);" (call_expression "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_000f5524)" ( (pointer_expression "*(code *)PTR_sqlite3_result_error_000f5524" * (cast_expression "(code *)PTR_sqlite3_result_error_000f5524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar14)" ( identifier , identifier ))) ;) }) (else_clause "else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }" else (compound_statement "{\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }" { (expression_statement "uVar3 = (uint)*(byte *)((int)puVar4 + 2);" (assignment_expression "uVar3 = (uint)*(byte *)((int)puVar4 + 2)" identifier = (binary_expression "(uint)*(byte *)((int)puVar4 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar4 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 2)" ( (binary_expression "(int)puVar4 + 2" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (labeled_statement "LAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);" statement_identifier : (expression_statement "puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);" (assignment_expression "puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3)" identifier = (cast_expression "(uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3)" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" ( (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" * (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_3)" ( (pointer_expression "*param_3" * identifier) ))))) ;)) (expression_statement "piVar10 = (int *)param_3[1];" (assignment_expression "piVar10 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();" (assignment_expression "iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)()" identifier = (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)()" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" ( (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" * (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "param_3 = puVar6;" (assignment_expression "param_3 = puVar6" identifier = identifier) ;) (if_statement "if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }" if (parenthesized_expression "((iVar5 != 0) && (puVar6 != (uint *)0x0))" ( (binary_expression "(iVar5 != 0) && (puVar6 != (uint *)0x0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(puVar6 != (uint *)0x0)" ( (binary_expression "puVar6 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }" { (expression_statement "puVar16 = puVar4;" (assignment_expression "puVar16 = puVar4" identifier = identifier) ;) (expression_statement "iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);" (assignment_expression "iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x75dc))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x75dc)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x75dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + 0x75dc)" ( (binary_expression "PTR_LAB_000f52c8 + 0x75dc" identifier + number_literal) )))) )) (argument_list "(puVar6,iVar5,puVar4,uVar3)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar14 = (undefined *)(uint)(iVar5 == 0);" (assignment_expression "puVar14 = (undefined *)(uint)(iVar5 == 0)" identifier = (cast_expression "(undefined *)(uint)(iVar5 == 0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar5 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))))) ;) (expression_statement "piVar10 = param_1;" (assignment_expression "piVar10 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);" (call_expression "(*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_int_000f550c)" ( (pointer_expression "*(code *)PTR_sqlite3_result_int_000f550c" * (cast_expression "(code *)PTR_sqlite3_result_int_000f550c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar14)" ( identifier , identifier ))) ;) })) }))) (labeled_statement "LAB_0005ba18:\n  iVar5 = *(int *)puVar2;" statement_identifier : (expression_statement "iVar5 = *(int *)puVar2;" (assignment_expression "iVar5 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (if_statement "if (local_24 == iVar5) {\n    return CONCAT44(iVar5,local_24);\n  }" if (parenthesized_expression "(local_24 == iVar5)" ( (binary_expression "local_24 == iVar5" identifier == identifier) )) (compound_statement "{\n    return CONCAT44(iVar5,local_24);\n  }" { (return_statement "return CONCAT44(iVar5,local_24);" return (call_expression "CONCAT44(iVar5,local_24)" identifier (argument_list "(iVar5,local_24)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar20 = FUN_0005bb88;" (assignment_expression "pcVar20 = FUN_0005bb88" identifier = identifier) ;) (expression_statement "puVar19 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar19 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar18 = *(int **)(puVar19 + 0x999e0);" (assignment_expression "piVar18 = *(int **)(puVar19 + 0x999e0)" identifier = (pointer_expression "*(int **)(puVar19 + 0x999e0)" * (cast_expression "(int **)(puVar19 + 0x999e0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x999e0)" ( (binary_expression "puVar19 + 0x999e0" identifier + number_literal) ))))) ;) (expression_statement "puStack_5c = puVar2;" (assignment_expression "puStack_5c = puVar2" identifier = identifier) ;) (expression_statement "iStack_f4 = 0;" (assignment_expression "iStack_f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_f0 = 0;" (assignment_expression "uStack_f0 = 0" identifier = number_literal) ;) (expression_statement "uStack_ec = 0;" (assignment_expression "uStack_ec = 0" identifier = number_literal) ;) (expression_statement "uStack_e8 = 0;" (assignment_expression "uStack_e8 = 0" identifier = number_literal) ;) (expression_statement "iStack_e4 = 0;" (assignment_expression "iStack_e4 = 0" identifier = number_literal) ;) (expression_statement "iStack_e0 = 0;" (assignment_expression "iStack_e0 = 0" identifier = number_literal) ;) (expression_statement "uStack_dc = 0;" (assignment_expression "uStack_dc = 0" identifier = number_literal) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "uStack_d4 = 0;" (assignment_expression "uStack_d4 = 0" identifier = number_literal) ;) (expression_statement "uStack_d0 = 0;" (assignment_expression "uStack_d0 = 0" identifier = number_literal) ;) (expression_statement "uStack_cc = 0;" (assignment_expression "uStack_cc = 0" identifier = number_literal) ;) (expression_statement "puStack_64 = (undefined4 *)*piVar18;" (assignment_expression "puStack_64 = (undefined4 *)*piVar18" identifier = (cast_expression "(undefined4 *)*piVar18" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) (expression_statement "piVar8 = aiStack_c8;" (assignment_expression "piVar8 = aiStack_c8" identifier = identifier) ;) (expression_statement "piVar11 = piVar10;" (assignment_expression "piVar11 = piVar10" identifier = identifier) ;) (expression_statement "puStack_60 = param_3;" (assignment_expression "puStack_60 = param_3" identifier = identifier) ;) (expression_statement "piStack_58 = param_1;" (assignment_expression "piStack_58 = param_1" identifier = identifier) ;) (expression_statement "puStack_54 = puVar4;" (assignment_expression "puStack_54 = puVar4" identifier = identifier) ;) (expression_statement "uStack_50 = uVar3;" (assignment_expression "uStack_50 = uVar3" identifier = identifier) ;) (expression_statement "pcStack_4c = pcVar20;" (assignment_expression "pcStack_4c = pcVar20" identifier = identifier) ;) (do_statement "do {\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  } while (piVar12 != piVar10 + 0xc);" do (compound_statement "{\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  }" { (expression_statement "piVar12 = piVar11 + 4;" (assignment_expression "piVar12 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) (expression_statement "iVar17 = piVar11[1];" (assignment_expression "iVar17 = piVar11[1]" identifier = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = piVar11[2];" (assignment_expression "iVar15 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = piVar11[3];" (assignment_expression "iVar5 = piVar11[3]" identifier = (subscript_expression "piVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar8 = *piVar11;" (assignment_expression "*piVar8 = *piVar11" (pointer_expression "*piVar8" * identifier) = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "piVar8[1] = iVar17;" (assignment_expression "piVar8[1] = iVar17" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[2] = iVar15;" (assignment_expression "piVar8[2] = iVar15" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[3] = iVar5;" (assignment_expression "piVar8[3] = iVar5" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8 = piVar8 + 4;" (assignment_expression "piVar8 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar12;" (assignment_expression "piVar11 = piVar12" identifier = identifier) ;) }) while (parenthesized_expression "(piVar12 != piVar10 + 0xc)" ( (binary_expression "piVar12 != piVar10 + 0xc" identifier != (binary_expression "piVar10 + 0xc" identifier + number_literal)) )) ;) (expression_statement "(*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);" (call_expression "(*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8)" (parenthesized_expression "(*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))" ( (pointer_expression "*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c)" * (cast_expression "(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar19 + 0x99764) + -0x7e3c)" ( (binary_expression "*(int *)(puVar19 + 0x99764) + -0x7e3c" (pointer_expression "*(int *)(puVar19 + 0x99764)" * (cast_expression "(int *)(puVar19 + 0x99764)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x99764)" ( (binary_expression "puVar19 + 0x99764" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(aiStack_c8)" ( identifier ))) ;) (if_statement "if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" if (parenthesized_expression "(aiStack_c8[2] - 0x7b3U < 0x43)" ( (binary_expression "aiStack_c8[2] - 0x7b3U < 0x43" (binary_expression "aiStack_c8[2] - 0x7b3U" (subscript_expression "aiStack_c8[2]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }" { (expression_statement "dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));" (assignment_expression "dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" identifier = (cast_expression "(double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" ( (binary_expression "dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758)" identifier + (pointer_expression "*(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758)" * (cast_expression "(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar19 + 0x9974c) + 0x2758)" ( (binary_expression "*(int *)(puVar19 + 0x9974c) + 0x2758" (pointer_expression "*(int *)(puVar19 + 0x9974c)" * (cast_expression "(int *)(puVar19 + 0x9974c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x9974c)" ( (binary_expression "puVar19 + 0x9974c" identifier + number_literal) )))) + number_literal) ))))) ))))) ;) }) (else_clause "else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" else (compound_statement "{\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" { (expression_statement "aiStack_c8[5] = 0;" (assignment_expression "aiStack_c8[5] = 0" (subscript_expression "aiStack_c8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[6] = 0;" (assignment_expression "aiStack_c8[6] = 0" (subscript_expression "aiStack_c8[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[3] = 1;" (assignment_expression "aiStack_c8[3] = 1" (subscript_expression "aiStack_c8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[2] = 2000;" (assignment_expression "aiStack_c8[2] = 2000" (subscript_expression "aiStack_c8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[4] = 1;" (assignment_expression "aiStack_c8[4] = 1" (subscript_expression "aiStack_c8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "dStack_a8 = 0.0;" (assignment_expression "dStack_a8 = 0.0" identifier = number_literal) ;) }))) (expression_statement "iVar5 = *(int *)(puVar19 + 0x99740);" (assignment_expression "iVar5 = *(int *)(puVar19 + 0x99740)" identifier = (pointer_expression "*(int *)(puVar19 + 0x99740)" * (cast_expression "(int *)(puVar19 + 0x99740)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x99740)" ( (binary_expression "puVar19 + 0x99740" identifier + number_literal) ))))) ;) (expression_statement "aiStack_c8[7] = 0;" (assignment_expression "aiStack_c8[7] = 0" (subscript_expression "aiStack_c8[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_a0 = 0;" (assignment_expression "uStack_a0 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)(iVar5 + 0x7bc0))(aiStack_c8);" (call_expression "(*(code *)(iVar5 + 0x7bc0))(aiStack_c8)" (parenthesized_expression "(*(code *)(iVar5 + 0x7bc0))" ( (pointer_expression "*(code *)(iVar5 + 0x7bc0)" * (cast_expression "(code *)(iVar5 + 0x7bc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7bc0)" ( (binary_expression "iVar5 + 0x7bc0" identifier + number_literal) )))) )) (argument_list "(aiStack_c8)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);" (call_expression "(**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000)" (parenthesized_expression "(**(code **)(puVar19 + 0x99750))" ( (pointer_expression "**(code **)(puVar19 + 0x99750)" * (pointer_expression "*(code **)(puVar19 + 0x99750)" * (cast_expression "(code **)(puVar19 + 0x99750)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x99750)" ( (binary_expression "puVar19 + 0x99750" identifier + number_literal) ))))) )) (argument_list "(aiStack_c8[0],aiStack_c8[1],0,1000)" ( (subscript_expression "aiStack_c8[0]" identifier [ number_literal ]) , (subscript_expression "aiStack_c8[1]" identifier [ number_literal ]) , number_literal , number_literal ))) ;) (expression_statement "iStack_f8 = extraout_v1 + -0x18a36940;" (assignment_expression "iStack_f8 = extraout_v1 + -0x18a36940" identifier = (binary_expression "extraout_v1 + -0x18a36940" identifier + number_literal)) ;) (if_statement "if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }\n  else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }" if (parenthesized_expression "((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0))" ( (binary_expression "(*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)" (parenthesized_expression "(*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0)" ( (binary_expression "*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0" (pointer_expression "*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198)" * (cast_expression "(int *)(*(int *)(puVar19 + 0x99734) + 0x4198)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar19 + 0x99734) + 0x4198)" ( (binary_expression "*(int *)(puVar19 + 0x99734) + 0x4198" (pointer_expression "*(int *)(puVar19 + 0x99734)" * (cast_expression "(int *)(puVar19 + 0x99734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x99734)" ( (binary_expression "puVar19 + 0x99734" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)" ( (comma_expression "iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0" (assignment_expression "iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4)" identifier = (call_expression "(**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4)" (parenthesized_expression "(**(code **)(puVar19 + 0x999a0))" ( (pointer_expression "**(code **)(puVar19 + 0x999a0)" * (pointer_expression "*(code **)(puVar19 + 0x999a0)" * (cast_expression "(code **)(puVar19 + 0x999a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x999a0)" ( (binary_expression "puVar19 + 0x999a0" identifier + number_literal) ))))) )) (argument_list "(&iStack_f8,&iStack_f4)" ( (pointer_expression "&iStack_f8" & identifier) , (pointer_expression "&iStack_f4" & identifier) )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }" { (expression_statement "uStack_6c = 0;" (assignment_expression "uStack_6c = 0" identifier = number_literal) ;) (expression_statement "iStack_8c = iStack_e4 + 1;" (assignment_expression "iStack_8c = iStack_e4 + 1" identifier = (binary_expression "iStack_e4 + 1" identifier + number_literal)) ;) (expression_statement "uStack_6a = 0;" (assignment_expression "uStack_6a = 0" identifier = number_literal) ;) (expression_statement "iStack_90 = iStack_e0 + 0x76c;" (assignment_expression "iStack_90 = iStack_e0 + 0x76c" identifier = (binary_expression "iStack_e0 + 0x76c" identifier + number_literal)) ;) (expression_statement "dStack_78 = (double)iStack_f4;" (assignment_expression "dStack_78 = (double)iStack_f4" identifier = (cast_expression "(double)iStack_f4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "uStack_88 = uStack_e8;" (assignment_expression "uStack_88 = uStack_e8" identifier = identifier) ;) (expression_statement "uStack_84 = uStack_ec;" (assignment_expression "uStack_84 = uStack_ec" identifier = identifier) ;) (expression_statement "uStack_80 = uStack_f0;" (assignment_expression "uStack_80 = uStack_f0" identifier = identifier) ;) (expression_statement "uStack_70 = 0x101;" (assignment_expression "uStack_70 = 0x101" identifier = number_literal) ;) (expression_statement "(*(code *)(iVar5 + 0x7bc0))(&iStack_98);" (call_expression "(*(code *)(iVar5 + 0x7bc0))(&iStack_98)" (parenthesized_expression "(*(code *)(iVar5 + 0x7bc0))" ( (pointer_expression "*(code *)(iVar5 + 0x7bc0)" * (cast_expression "(code *)(iVar5 + 0x7bc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7bc0)" ( (binary_expression "iVar5 + 0x7bc0" identifier + number_literal) )))) )) (argument_list "(&iStack_98)" ( (pointer_expression "&iStack_98" & identifier) ))) ;) (expression_statement "uVar3 = uStack_94 - aiStack_c8[1];" (assignment_expression "uVar3 = uStack_94 - aiStack_c8[1]" identifier = (binary_expression "uStack_94 - aiStack_c8[1]" identifier - (subscript_expression "aiStack_c8[1]" identifier [ number_literal ]))) ;) (expression_statement "*puVar16 = 0;" (assignment_expression "*puVar16 = 0" (pointer_expression "*puVar16" * identifier) = number_literal) ;) (expression_statement "iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);" (assignment_expression "iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3)" identifier = (binary_expression "(iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3)" (parenthesized_expression "(iStack_98 - aiStack_c8[0])" ( (binary_expression "iStack_98 - aiStack_c8[0]" identifier - (subscript_expression "aiStack_c8[0]" identifier [ number_literal ])) )) - (call_expression "(uint)(uStack_94 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uStack_94 < uVar3)" ( (binary_expression "uStack_94 < uVar3" identifier < identifier) ))))) ;) }) (else_clause "else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }" else (compound_statement "{\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }" { (expression_statement "(**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);" (call_expression "(**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff)" (parenthesized_expression "(**(code **)(puVar19 + 0x9999c))" ( (pointer_expression "**(code **)(puVar19 + 0x9999c)" * (pointer_expression "*(code **)(puVar19 + 0x9999c)" * (cast_expression "(code **)(puVar19 + 0x9999c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x9999c)" ( (binary_expression "puVar19 + 0x9999c" identifier + number_literal) ))))) )) (argument_list "(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff)" ( identifier , (binary_expression "*(int *)(puVar19 + 0x99744) + 0x7ea8" (pointer_expression "*(int *)(puVar19 + 0x99744)" * (cast_expression "(int *)(puVar19 + 0x99744)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x99744)" ( (binary_expression "puVar19 + 0x99744" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "*puVar16 = 1;" (assignment_expression "*puVar16 = 1" (pointer_expression "*puVar16" * identifier) = number_literal) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }))) (expression_statement "puVar13 = (undefined4 *)*piVar18;" (assignment_expression "puVar13 = (undefined4 *)*piVar18" identifier = (cast_expression "(undefined4 *)*piVar18" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) (if_statement "if (puStack_64 != puVar13) {\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }" if (parenthesized_expression "(puStack_64 != puVar13)" ( (binary_expression "puStack_64 != puVar13" identifier != identifier) )) (compound_statement "{\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }" { (expression_statement "(**(code **)(puVar19 + 0x999b8))();" (call_expression "(**(code **)(puVar19 + 0x999b8))()" (parenthesized_expression "(**(code **)(puVar19 + 0x999b8))" ( (pointer_expression "**(code **)(puVar19 + 0x999b8)" * (pointer_expression "*(code **)(puVar19 + 0x999b8)" * (cast_expression "(code **)(puVar19 + 0x999b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x999b8)" ( (binary_expression "puVar19 + 0x999b8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "puVar13[5] = 1;" (assignment_expression "puVar13[5] = 1" (subscript_expression "puVar13[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar21 = FUN_0005b00c(*puVar13);" (assignment_expression "uVar21 = FUN_0005b00c(*puVar13)" identifier = (call_expression "FUN_0005b00c(*puVar13)" identifier (argument_list "(*puVar13)" ( (pointer_expression "*puVar13" * identifier) )))) ;) (return_statement "return uVar21;" return identifier ;) })) (return_statement "return CONCAT44(iVar5,uVar3);" return (call_expression "CONCAT44(iVar5,uVar3)" identifier (argument_list "(iVar5,uVar3)" ( identifier , identifier ))) ;) })))
(translation_unit "void likeFunc(sqlite3_context *context,int argc,sqlite3_value **argv)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  compareInfo *pcVar4;\n  int iVar5;\n  sqlite3_value **ppsVar6;\n  byte *pbVar7;\n  int *piVar8;\n  int iVar9;\n  byte bVar11;\n  Vdbe *pVVar10;\n  int extraout_v1;\n  sqlite3_value *psVar12;\n  sqlite3_value *psVar13;\n  char **ppcVar14;\n  char *pcVar15;\n  undefined *puVar16;\n  Mem *pMVar17;\n  char *z;\n  compareInfo *pcVar18;\n  FuncDef *pFVar19;\n  int iVar20;\n  int *piVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  int iStack_f8;\n  int iStack_f4;\n  undefined4 uStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_dc;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  int aiStack_c8 [8];\n  double dStack_a8;\n  undefined1 uStack_a0;\n  undefined1 auStack_98 [8];\n  int iStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  double dStack_78;\n  undefined4 uStack_70;\n  undefined1 uStack_6c;\n  undefined1 uStack_6a;\n  char *pcStack_64;\n  sqlite3_value **ppsStack_60;\n  undefined *puStack_5c;\n  sqlite3_context *psStack_58;\n  compareInfo *pcStack_54;\n  uint uStack_50;\n  code *pcStack_4c;\n  compareInfo backupInfo;\n  uchar *zEsc;\n  int local_24;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_24 = *(int *)PTR___stack_chk_guard_000f5568;\n  puVar16 = (undefined *)argc;\n  pcVar18 = (compareInfo *)argv;\n  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();\n  pcVar4 = (compareInfo *)(*(code *)PTR_sqlite3_user_data_000f5598)(context);\n  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*argv);\n  if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    pcVar18 = (compareInfo *)0xffffffff;\n    puVar16 = PTR_LAB_000f52cc + 0x7e54;\n    psVar12 = (sqlite3_value *)context;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);\n    goto LAB_0005ba18;\n  }\n  if (argc == 3) {\n    psVar12 = argv[2];\n    zEsc = (uchar *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (zEsc == (byte *)0x0) goto LAB_0005ba18;\n    bVar11 = *zEsc;\n    if ((bVar11 != 0) && (iVar5 = 0, zEsc != (byte *)0xffffffff)) {\n      pcVar18 = (compareInfo *)0xffffffc0;\n      puVar16 = (undefined *)0x80;\n      pbVar7 = zEsc;\n      do {\n        bVar1 = 0xbf < bVar11;\n        bVar11 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar11 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc);\n        if (pcVar4->matchAll == uVar3) {\n          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);\n        }\n        else {\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }\n        if (((uint)backupInfo >> 0x10 & 0xff) == uVar3) {\n          backupInfo.matchOne = '\0';\n          pcVar4 = &backupInfo;\n        }\n        else {\n          pcVar4 = &backupInfo;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    pcVar18 = (compareInfo *)0xffffffff;\n    puVar16 = PTR_LAB_000f52cc + 0x7e78;\n    psVar12 = (sqlite3_value *)context;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);\n  }\n  else {\n    uVar3 = (uint)pcVar4->matchSet;\nLAB_0005b9bc:\n    ppsVar6 = (sqlite3_value **)(*(code *)PTR_sqlite3_value_text_000f539c)(*argv);\n    psVar12 = argv[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    argv = ppsVar6;\n    if ((iVar5 != 0) && (ppsVar6 != (sqlite3_value **)0x0)) {\n      pcVar18 = pcVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3);\n      puVar16 = (undefined *)(uint)(iVar5 == 0);\n      psVar12 = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(context,puVar16);\n    }\n  }\nLAB_0005ba18:\n  if (local_24 == *(int *)puVar2) {\n    return;\n  }\n  pcVar23 = localtimeOffset;\n  puVar22 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar21 = *(int **)(puVar22 + 0x999e0);\n  puStack_5c = puVar2;\n  iStack_f4 = 0;\n  uStack_f0 = 0;\n  uStack_ec = 0;\n  uStack_e8 = 0;\n  iStack_e4 = 0;\n  iStack_e0 = 0;\n  uStack_dc = 0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  pcStack_64 = (char *)*piVar21;\n  piVar8 = aiStack_c8;\n  psVar13 = psVar12;\n  ppsStack_60 = argv;\n  psStack_58 = context;\n  pcStack_54 = pcVar4;\n  uStack_50 = uVar3;\n  pcStack_4c = pcVar23;\n  do {\n    ppcVar14 = &psVar13->z;\n    pFVar19 = *(FuncDef **)((int)&psVar13->u + 4);\n    pMVar17 = *(Mem **)&psVar13->flags;\n    pVVar10 = (Vdbe *)psVar13->n;\n    *piVar8 = (int)(psVar13->u).nZero;\n    piVar8[1] = (int)pFVar19;\n    piVar8[2] = (int)pMVar17;\n    piVar8[3] = (int)pVVar10;\n    piVar8 = piVar8 + 4;\n    psVar13 = (sqlite3_value *)ppcVar14;\n  } while (ppcVar14 != (char **)&psVar12[1].flags);\n  (*(code *)(*(int *)(puVar22 + 0x99764) + -0x7e3c))(aiStack_c8);\n  if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }\n  iVar20 = *(int *)(puVar22 + 0x99740);\n  aiStack_c8[7] = 0;\n  uStack_a0 = 0;\n  (*(code *)(iVar20 + 0x7bc0))(aiStack_c8);\n  iVar5 = 0;\n  (**(code **)(puVar22 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);\n  iStack_f8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(*(int *)(puVar22 + 0x99734) + 0x4198) == 0) &&\n     (iVar9 = (**(code **)(puVar22 + 0x999a0))(&iStack_f8,&iStack_f4), iVar9 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar20 + 0x7bc0))(auStack_98);\n    pcVar18->matchAll = '\0';\n    pcVar18->matchOne = '\0';\n    pcVar18->matchSet = '\0';\n    pcVar18->noCase = '\0';\n  }\n  else {\n    iVar5 = -1;\n    (**(code **)(puVar22 + 0x9999c))(puVar16,*(int *)(puVar22 + 0x99744) + 0x7ea8);\n    pcVar18->matchAll = '\0';\n    pcVar18->matchOne = '\0';\n    pcVar18->matchSet = '\0';\n    pcVar18->noCase = '\x01';\n  }\n  pcVar15 = (char *)*piVar21;\n  if (pcStack_64 != pcVar15) {\n    z = pcStack_64;\n    (**(code **)(puVar22 + 0x999b8))();\n    pcVar15[0x14] = '\0';\n    pcVar15[0x15] = '\0';\n    pcVar15[0x16] = '\0';\n    pcVar15[0x17] = '\x01';\n    sqlite3VdbeMemSetStr(*(Mem **)pcVar15,z,iVar5,'\x03',(_func_void_void_ptr *)0xffffffff);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void likeFunc(sqlite3_context *context,int argc,sqlite3_value **argv)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  compareInfo *pcVar4;\n  int iVar5;\n  sqlite3_value **ppsVar6;\n  byte *pbVar7;\n  int *piVar8;\n  int iVar9;\n  byte bVar11;\n  Vdbe *pVVar10;\n  int extraout_v1;\n  sqlite3_value *psVar12;\n  sqlite3_value *psVar13;\n  char **ppcVar14;\n  char *pcVar15;\n  undefined *puVar16;\n  Mem *pMVar17;\n  char *z;\n  compareInfo *pcVar18;\n  FuncDef *pFVar19;\n  int iVar20;\n  int *piVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  int iStack_f8;\n  int iStack_f4;\n  undefined4 uStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_dc;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  int aiStack_c8 [8];\n  double dStack_a8;\n  undefined1 uStack_a0;\n  undefined1 auStack_98 [8];\n  int iStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  double dStack_78;\n  undefined4 uStack_70;\n  undefined1 uStack_6c;\n  undefined1 uStack_6a;\n  char *pcStack_64;\n  sqlite3_value **ppsStack_60;\n  undefined *puStack_5c;\n  sqlite3_context *psStack_58;\n  compareInfo *pcStack_54;\n  uint uStack_50;\n  code *pcStack_4c;\n  compareInfo backupInfo;\n  uchar *zEsc;\n  int local_24;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_24 = *(int *)PTR___stack_chk_guard_000f5568;\n  puVar16 = (undefined *)argc;\n  pcVar18 = (compareInfo *)argv;\n  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();\n  pcVar4 = (compareInfo *)(*(code *)PTR_sqlite3_user_data_000f5598)(context);\n  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*argv);\n  if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    pcVar18 = (compareInfo *)0xffffffff;\n    puVar16 = PTR_LAB_000f52cc + 0x7e54;\n    psVar12 = (sqlite3_value *)context;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);\n    goto LAB_0005ba18;\n  }\n  if (argc == 3) {\n    psVar12 = argv[2];\n    zEsc = (uchar *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (zEsc == (byte *)0x0) goto LAB_0005ba18;\n    bVar11 = *zEsc;\n    if ((bVar11 != 0) && (iVar5 = 0, zEsc != (byte *)0xffffffff)) {\n      pcVar18 = (compareInfo *)0xffffffc0;\n      puVar16 = (undefined *)0x80;\n      pbVar7 = zEsc;\n      do {\n        bVar1 = 0xbf < bVar11;\n        bVar11 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar11 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc);\n        if (pcVar4->matchAll == uVar3) {\n          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);\n        }\n        else {\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }\n        if (((uint)backupInfo >> 0x10 & 0xff) == uVar3) {\n          backupInfo.matchOne = '\0';\n          pcVar4 = &backupInfo;\n        }\n        else {\n          pcVar4 = &backupInfo;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    pcVar18 = (compareInfo *)0xffffffff;\n    puVar16 = PTR_LAB_000f52cc + 0x7e78;\n    psVar12 = (sqlite3_value *)context;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);\n  }\n  else {\n    uVar3 = (uint)pcVar4->matchSet;\nLAB_0005b9bc:\n    ppsVar6 = (sqlite3_value **)(*(code *)PTR_sqlite3_value_text_000f539c)(*argv);\n    psVar12 = argv[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    argv = ppsVar6;\n    if ((iVar5 != 0) && (ppsVar6 != (sqlite3_value **)0x0)) {\n      pcVar18 = pcVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3);\n      puVar16 = (undefined *)(uint)(iVar5 == 0);\n      psVar12 = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(context,puVar16);\n    }\n  }\nLAB_0005ba18:\n  if (local_24 == *(int *)puVar2) {\n    return;\n  }\n  pcVar23 = localtimeOffset;\n  puVar22 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar21 = *(int **)(puVar22 + 0x999e0);\n  puStack_5c = puVar2;\n  iStack_f4 = 0;\n  uStack_f0 = 0;\n  uStack_ec = 0;\n  uStack_e8 = 0;\n  iStack_e4 = 0;\n  iStack_e0 = 0;\n  uStack_dc = 0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  pcStack_64 = (char *)*piVar21;\n  piVar8 = aiStack_c8;\n  psVar13 = psVar12;\n  ppsStack_60 = argv;\n  psStack_58 = context;\n  pcStack_54 = pcVar4;\n  uStack_50 = uVar3;\n  pcStack_4c = pcVar23;\n  do {\n    ppcVar14 = &psVar13->z;\n    pFVar19 = *(FuncDef **)((int)&psVar13->u + 4);\n    pMVar17 = *(Mem **)&psVar13->flags;\n    pVVar10 = (Vdbe *)psVar13->n;\n    *piVar8 = (int)(psVar13->u).nZero;\n    piVar8[1] = (int)pFVar19;\n    piVar8[2] = (int)pMVar17;\n    piVar8[3] = (int)pVVar10;\n    piVar8 = piVar8 + 4;\n    psVar13 = (sqlite3_value *)ppcVar14;\n  } while (ppcVar14 != (char **)&psVar12[1].flags);\n  (*(code *)(*(int *)(puVar22 + 0x99764) + -0x7e3c))(aiStack_c8);\n  if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }\n  iVar20 = *(int *)(puVar22 + 0x99740);\n  aiStack_c8[7] = 0;\n  uStack_a0 = 0;\n  (*(code *)(iVar20 + 0x7bc0))(aiStack_c8);\n  iVar5 = 0;\n  (**(code **)(puVar22 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);\n  iStack_f8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(*(int *)(puVar22 + 0x99734) + 0x4198) == 0) &&\n     (iVar9 = (**(code **)(puVar22 + 0x999a0))(&iStack_f8,&iStack_f4), iVar9 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar20 + 0x7bc0))(auStack_98);\n    pcVar18->matchAll = '\0';\n    pcVar18->matchOne = '\0';\n    pcVar18->matchSet = '\0';\n    pcVar18->noCase = '\0';\n  }\n  else {\n    iVar5 = -1;\n    (**(code **)(puVar22 + 0x9999c))(puVar16,*(int *)(puVar22 + 0x99744) + 0x7ea8);\n    pcVar18->matchAll = '\0';\n    pcVar18->matchOne = '\0';\n    pcVar18->matchSet = '\0';\n    pcVar18->noCase = '\x01';\n  }\n  pcVar15 = (char *)*piVar21;\n  if (pcStack_64 != pcVar15) {\n    z = pcStack_64;\n    (**(code **)(puVar22 + 0x999b8))();\n    pcVar15[0x14] = '\0';\n    pcVar15[0x15] = '\0';\n    pcVar15[0x16] = '\0';\n    pcVar15[0x17] = '\x01';\n    sqlite3VdbeMemSetStr(*(Mem **)pcVar15,z,iVar5,'\x03',(_func_void_void_ptr *)0xffffffff);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "likeFunc(sqlite3_context *context,int argc,sqlite3_value **argv)" identifier (parameter_list "(sqlite3_context *context,int argc,sqlite3_value **argv)" ( (parameter_declaration "sqlite3_context *context" type_identifier (pointer_declarator "*context" * identifier)) , (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "sqlite3_value **argv" type_identifier (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  compareInfo *pcVar4;\n  int iVar5;\n  sqlite3_value **ppsVar6;\n  byte *pbVar7;\n  int *piVar8;\n  int iVar9;\n  byte bVar11;\n  Vdbe *pVVar10;\n  int extraout_v1;\n  sqlite3_value *psVar12;\n  sqlite3_value *psVar13;\n  char **ppcVar14;\n  char *pcVar15;\n  undefined *puVar16;\n  Mem *pMVar17;\n  char *z;\n  compareInfo *pcVar18;\n  FuncDef *pFVar19;\n  int iVar20;\n  int *piVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  int iStack_f8;\n  int iStack_f4;\n  undefined4 uStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_dc;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  int aiStack_c8 [8];\n  double dStack_a8;\n  undefined1 uStack_a0;\n  undefined1 auStack_98 [8];\n  int iStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  double dStack_78;\n  undefined4 uStack_70;\n  undefined1 uStack_6c;\n  undefined1 uStack_6a;\n  char *pcStack_64;\n  sqlite3_value **ppsStack_60;\n  undefined *puStack_5c;\n  sqlite3_context *psStack_58;\n  compareInfo *pcStack_54;\n  uint uStack_50;\n  code *pcStack_4c;\n  compareInfo backupInfo;\n  uchar *zEsc;\n  int local_24;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_24 = *(int *)PTR___stack_chk_guard_000f5568;\n  puVar16 = (undefined *)argc;\n  pcVar18 = (compareInfo *)argv;\n  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();\n  pcVar4 = (compareInfo *)(*(code *)PTR_sqlite3_user_data_000f5598)(context);\n  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*argv);\n  if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    pcVar18 = (compareInfo *)0xffffffff;\n    puVar16 = PTR_LAB_000f52cc + 0x7e54;\n    psVar12 = (sqlite3_value *)context;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);\n    goto LAB_0005ba18;\n  }\n  if (argc == 3) {\n    psVar12 = argv[2];\n    zEsc = (uchar *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (zEsc == (byte *)0x0) goto LAB_0005ba18;\n    bVar11 = *zEsc;\n    if ((bVar11 != 0) && (iVar5 = 0, zEsc != (byte *)0xffffffff)) {\n      pcVar18 = (compareInfo *)0xffffffc0;\n      puVar16 = (undefined *)0x80;\n      pbVar7 = zEsc;\n      do {\n        bVar1 = 0xbf < bVar11;\n        bVar11 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar11 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc);\n        if (pcVar4->matchAll == uVar3) {\n          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);\n        }\n        else {\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }\n        if (((uint)backupInfo >> 0x10 & 0xff) == uVar3) {\n          backupInfo.matchOne = '\0';\n          pcVar4 = &backupInfo;\n        }\n        else {\n          pcVar4 = &backupInfo;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    pcVar18 = (compareInfo *)0xffffffff;\n    puVar16 = PTR_LAB_000f52cc + 0x7e78;\n    psVar12 = (sqlite3_value *)context;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);\n  }\n  else {\n    uVar3 = (uint)pcVar4->matchSet;\nLAB_0005b9bc:\n    ppsVar6 = (sqlite3_value **)(*(code *)PTR_sqlite3_value_text_000f539c)(*argv);\n    psVar12 = argv[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    argv = ppsVar6;\n    if ((iVar5 != 0) && (ppsVar6 != (sqlite3_value **)0x0)) {\n      pcVar18 = pcVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3);\n      puVar16 = (undefined *)(uint)(iVar5 == 0);\n      psVar12 = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(context,puVar16);\n    }\n  }\nLAB_0005ba18:\n  if (local_24 == *(int *)puVar2) {\n    return;\n  }\n  pcVar23 = localtimeOffset;\n  puVar22 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar21 = *(int **)(puVar22 + 0x999e0);\n  puStack_5c = puVar2;\n  iStack_f4 = 0;\n  uStack_f0 = 0;\n  uStack_ec = 0;\n  uStack_e8 = 0;\n  iStack_e4 = 0;\n  iStack_e0 = 0;\n  uStack_dc = 0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  pcStack_64 = (char *)*piVar21;\n  piVar8 = aiStack_c8;\n  psVar13 = psVar12;\n  ppsStack_60 = argv;\n  psStack_58 = context;\n  pcStack_54 = pcVar4;\n  uStack_50 = uVar3;\n  pcStack_4c = pcVar23;\n  do {\n    ppcVar14 = &psVar13->z;\n    pFVar19 = *(FuncDef **)((int)&psVar13->u + 4);\n    pMVar17 = *(Mem **)&psVar13->flags;\n    pVVar10 = (Vdbe *)psVar13->n;\n    *piVar8 = (int)(psVar13->u).nZero;\n    piVar8[1] = (int)pFVar19;\n    piVar8[2] = (int)pMVar17;\n    piVar8[3] = (int)pVVar10;\n    piVar8 = piVar8 + 4;\n    psVar13 = (sqlite3_value *)ppcVar14;\n  } while (ppcVar14 != (char **)&psVar12[1].flags);\n  (*(code *)(*(int *)(puVar22 + 0x99764) + -0x7e3c))(aiStack_c8);\n  if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }\n  iVar20 = *(int *)(puVar22 + 0x99740);\n  aiStack_c8[7] = 0;\n  uStack_a0 = 0;\n  (*(code *)(iVar20 + 0x7bc0))(aiStack_c8);\n  iVar5 = 0;\n  (**(code **)(puVar22 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);\n  iStack_f8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(*(int *)(puVar22 + 0x99734) + 0x4198) == 0) &&\n     (iVar9 = (**(code **)(puVar22 + 0x999a0))(&iStack_f8,&iStack_f4), iVar9 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar20 + 0x7bc0))(auStack_98);\n    pcVar18->matchAll = '\0';\n    pcVar18->matchOne = '\0';\n    pcVar18->matchSet = '\0';\n    pcVar18->noCase = '\0';\n  }\n  else {\n    iVar5 = -1;\n    (**(code **)(puVar22 + 0x9999c))(puVar16,*(int *)(puVar22 + 0x99744) + 0x7ea8);\n    pcVar18->matchAll = '\0';\n    pcVar18->matchOne = '\0';\n    pcVar18->matchSet = '\0';\n    pcVar18->noCase = '\x01';\n  }\n  pcVar15 = (char *)*piVar21;\n  if (pcStack_64 != pcVar15) {\n    z = pcStack_64;\n    (**(code **)(puVar22 + 0x999b8))();\n    pcVar15[0x14] = '\0';\n    pcVar15[0x15] = '\0';\n    pcVar15[0x16] = '\0';\n    pcVar15[0x17] = '\x01';\n    sqlite3VdbeMemSetStr(*(Mem **)pcVar15,z,iVar5,'\x03',(_func_void_void_ptr *)0xffffffff);\n    return;\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "compareInfo *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "sqlite3_value **ppsVar6;" type_identifier (pointer_declarator "**ppsVar6" * (pointer_declarator "*ppsVar6" * identifier)) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "Vdbe *pVVar10;" type_identifier (pointer_declarator "*pVVar10" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "sqlite3_value *psVar12;" type_identifier (pointer_declarator "*psVar12" * identifier) ;) (declaration "sqlite3_value *psVar13;" type_identifier (pointer_declarator "*psVar13" * identifier) ;) (declaration "char **ppcVar14;" primitive_type (pointer_declarator "**ppcVar14" * (pointer_declarator "*ppcVar14" * identifier)) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "Mem *pMVar17;" type_identifier (pointer_declarator "*pMVar17" * identifier) ;) (declaration "char *z;" primitive_type (pointer_declarator "*z" * identifier) ;) (declaration "compareInfo *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "FuncDef *pFVar19;" type_identifier (pointer_declarator "*pFVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "int iStack_f8;" primitive_type identifier ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "undefined4 uStack_f0;" type_identifier identifier ;) (declaration "undefined4 uStack_ec;" type_identifier identifier ;) (declaration "undefined4 uStack_e8;" type_identifier identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "undefined4 uStack_dc;" type_identifier identifier ;) (declaration "undefined4 uStack_d8;" type_identifier identifier ;) (declaration "undefined4 uStack_d4;" type_identifier identifier ;) (declaration "undefined4 uStack_d0;" type_identifier identifier ;) (declaration "undefined4 uStack_cc;" type_identifier identifier ;) (declaration "int aiStack_c8 [8];" primitive_type (array_declarator "aiStack_c8 [8]" identifier [ number_literal ]) ;) (declaration "double dStack_a8;" primitive_type identifier ;) (declaration "undefined1 uStack_a0;" type_identifier identifier ;) (declaration "undefined1 auStack_98 [8];" type_identifier (array_declarator "auStack_98 [8]" identifier [ number_literal ]) ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "undefined4 uStack_88;" type_identifier identifier ;) (declaration "undefined4 uStack_84;" type_identifier identifier ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "double dStack_78;" primitive_type identifier ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined1 uStack_6c;" type_identifier identifier ;) (declaration "undefined1 uStack_6a;" type_identifier identifier ;) (declaration "char *pcStack_64;" primitive_type (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "sqlite3_value **ppsStack_60;" type_identifier (pointer_declarator "**ppsStack_60" * (pointer_declarator "*ppsStack_60" * identifier)) ;) (declaration "undefined *puStack_5c;" type_identifier (pointer_declarator "*puStack_5c" * identifier) ;) (declaration "sqlite3_context *psStack_58;" type_identifier (pointer_declarator "*psStack_58" * identifier) ;) (declaration "compareInfo *pcStack_54;" type_identifier (pointer_declarator "*pcStack_54" * identifier) ;) (declaration "uint uStack_50;" type_identifier identifier ;) (declaration "code *pcStack_4c;" type_identifier (pointer_declarator "*pcStack_4c" * identifier) ;) (declaration "compareInfo backupInfo;" type_identifier identifier ;) (declaration "uchar *zEsc;" type_identifier (pointer_declarator "*zEsc" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar16 = (undefined *)argc;" (assignment_expression "puVar16 = (undefined *)argc" identifier = (cast_expression "(undefined *)argc" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar18 = (compareInfo *)argv;" (assignment_expression "pcVar18 = (compareInfo *)argv" identifier = (cast_expression "(compareInfo *)argv" ( (type_descriptor "compareInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();" (assignment_expression "uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)()" identifier = (call_expression "(*(code *)PTR_sqlite3_context_db_handle_000f5434)()" (parenthesized_expression "(*(code *)PTR_sqlite3_context_db_handle_000f5434)" ( (pointer_expression "*(code *)PTR_sqlite3_context_db_handle_000f5434" * (cast_expression "(code *)PTR_sqlite3_context_db_handle_000f5434" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar4 = (compareInfo *)(*(code *)PTR_sqlite3_user_data_000f5598)(context);" (assignment_expression "pcVar4 = (compareInfo *)(*(code *)PTR_sqlite3_user_data_000f5598)(context)" identifier = (cast_expression "(compareInfo *)(*(code *)PTR_sqlite3_user_data_000f5598)(context)" ( (type_descriptor "compareInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_user_data_000f5598)(context)" (parenthesized_expression "(*(code *)PTR_sqlite3_user_data_000f5598)" ( (pointer_expression "*(code *)PTR_sqlite3_user_data_000f5598" * (cast_expression "(code *)PTR_sqlite3_user_data_000f5598" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(context)" ( identifier ))))) ;) (expression_statement "iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*argv);" (assignment_expression "iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*argv)" identifier = (call_expression "(*(code *)PTR_sqlite3_value_bytes_000f53d8)(*argv)" (parenthesized_expression "(*(code *)PTR_sqlite3_value_bytes_000f53d8)" ( (pointer_expression "*(code *)PTR_sqlite3_value_bytes_000f53d8" * (cast_expression "(code *)PTR_sqlite3_value_bytes_000f53d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*argv)" ( (pointer_expression "*argv" * identifier) )))) ;) (if_statement "if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    pcVar18 = (compareInfo *)0xffffffff;\n    puVar16 = PTR_LAB_000f52cc + 0x7e54;\n    psVar12 = (sqlite3_value *)context;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);\n    goto LAB_0005ba18;\n  }" if (parenthesized_expression "(*(int *)(uVar3 + 0x8c) < iVar5)" ( (binary_expression "*(int *)(uVar3 + 0x8c) < iVar5" (pointer_expression "*(int *)(uVar3 + 0x8c)" * (cast_expression "(int *)(uVar3 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 + 0x8c)" ( (binary_expression "uVar3 + 0x8c" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n    pcVar18 = (compareInfo *)0xffffffff;\n    puVar16 = PTR_LAB_000f52cc + 0x7e54;\n    psVar12 = (sqlite3_value *)context;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);\n    goto LAB_0005ba18;\n  }" { (expression_statement "pcVar18 = (compareInfo *)0xffffffff;" (assignment_expression "pcVar18 = (compareInfo *)0xffffffff" identifier = (cast_expression "(compareInfo *)0xffffffff" ( (type_descriptor "compareInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar16 = PTR_LAB_000f52cc + 0x7e54;" (assignment_expression "puVar16 = PTR_LAB_000f52cc + 0x7e54" identifier = (binary_expression "PTR_LAB_000f52cc + 0x7e54" identifier + number_literal)) ;) (expression_statement "psVar12 = (sqlite3_value *)context;" (assignment_expression "psVar12 = (sqlite3_value *)context" identifier = (cast_expression "(sqlite3_value *)context" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);" (call_expression "(*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_000f5524)" ( (pointer_expression "*(code *)PTR_sqlite3_result_error_000f5524" * (cast_expression "(code *)PTR_sqlite3_result_error_000f5524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(context,puVar16)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0005ba18;" goto statement_identifier ;) })) (if_statement "if (argc == 3) {\n    psVar12 = argv[2];\n    zEsc = (uchar *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (zEsc == (byte *)0x0) goto LAB_0005ba18;\n    bVar11 = *zEsc;\n    if ((bVar11 != 0) && (iVar5 = 0, zEsc != (byte *)0xffffffff)) {\n      pcVar18 = (compareInfo *)0xffffffc0;\n      puVar16 = (undefined *)0x80;\n      pbVar7 = zEsc;\n      do {\n        bVar1 = 0xbf < bVar11;\n        bVar11 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar11 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc);\n        if (pcVar4->matchAll == uVar3) {\n          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);\n        }\n        else {\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }\n        if (((uint)backupInfo >> 0x10 & 0xff) == uVar3) {\n          backupInfo.matchOne = '\0';\n          pcVar4 = &backupInfo;\n        }\n        else {\n          pcVar4 = &backupInfo;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    pcVar18 = (compareInfo *)0xffffffff;\n    puVar16 = PTR_LAB_000f52cc + 0x7e78;\n    psVar12 = (sqlite3_value *)context;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);\n  }\n  else {\n    uVar3 = (uint)pcVar4->matchSet;\nLAB_0005b9bc:\n    ppsVar6 = (sqlite3_value **)(*(code *)PTR_sqlite3_value_text_000f539c)(*argv);\n    psVar12 = argv[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    argv = ppsVar6;\n    if ((iVar5 != 0) && (ppsVar6 != (sqlite3_value **)0x0)) {\n      pcVar18 = pcVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3);\n      puVar16 = (undefined *)(uint)(iVar5 == 0);\n      psVar12 = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(context,puVar16);\n    }\n  }" if (parenthesized_expression "(argc == 3)" ( (binary_expression "argc == 3" identifier == number_literal) )) (compound_statement "{\n    psVar12 = argv[2];\n    zEsc = (uchar *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (zEsc == (byte *)0x0) goto LAB_0005ba18;\n    bVar11 = *zEsc;\n    if ((bVar11 != 0) && (iVar5 = 0, zEsc != (byte *)0xffffffff)) {\n      pcVar18 = (compareInfo *)0xffffffc0;\n      puVar16 = (undefined *)0x80;\n      pbVar7 = zEsc;\n      do {\n        bVar1 = 0xbf < bVar11;\n        bVar11 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar11 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc);\n        if (pcVar4->matchAll == uVar3) {\n          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);\n        }\n        else {\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }\n        if (((uint)backupInfo >> 0x10 & 0xff) == uVar3) {\n          backupInfo.matchOne = '\0';\n          pcVar4 = &backupInfo;\n        }\n        else {\n          pcVar4 = &backupInfo;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    pcVar18 = (compareInfo *)0xffffffff;\n    puVar16 = PTR_LAB_000f52cc + 0x7e78;\n    psVar12 = (sqlite3_value *)context;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);\n  }" { (expression_statement "psVar12 = argv[2];" (assignment_expression "psVar12 = argv[2]" identifier = (subscript_expression "argv[2]" identifier [ number_literal ])) ;) (expression_statement "zEsc = (uchar *)(*(code *)PTR_sqlite3_value_text_000f539c)();" (assignment_expression "zEsc = (uchar *)(*(code *)PTR_sqlite3_value_text_000f539c)()" identifier = (cast_expression "(uchar *)(*(code *)PTR_sqlite3_value_text_000f539c)()" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)()" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" ( (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" * (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (zEsc == (byte *)0x0) goto LAB_0005ba18;" if (parenthesized_expression "(zEsc == (byte *)0x0)" ( (binary_expression "zEsc == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005ba18;" goto statement_identifier ;)) (expression_statement "bVar11 = *zEsc;" (assignment_expression "bVar11 = *zEsc" identifier = (pointer_expression "*zEsc" * identifier)) ;) (if_statement "if ((bVar11 != 0) && (iVar5 = 0, zEsc != (byte *)0xffffffff)) {\n      pcVar18 = (compareInfo *)0xffffffc0;\n      puVar16 = (undefined *)0x80;\n      pbVar7 = zEsc;\n      do {\n        bVar1 = 0xbf < bVar11;\n        bVar11 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar11 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc);\n        if (pcVar4->matchAll == uVar3) {\n          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);\n        }\n        else {\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }\n        if (((uint)backupInfo >> 0x10 & 0xff) == uVar3) {\n          backupInfo.matchOne = '\0';\n          pcVar4 = &backupInfo;\n        }\n        else {\n          pcVar4 = &backupInfo;\n        }\n        goto LAB_0005b9bc;\n      }\n    }" if (parenthesized_expression "((bVar11 != 0) && (iVar5 = 0, zEsc != (byte *)0xffffffff))" ( (binary_expression "(bVar11 != 0) && (iVar5 = 0, zEsc != (byte *)0xffffffff)" (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = 0, zEsc != (byte *)0xffffffff)" ( (comma_expression "iVar5 = 0, zEsc != (byte *)0xffffffff" (assignment_expression "iVar5 = 0" identifier = number_literal) , (binary_expression "zEsc != (byte *)0xffffffff" identifier != (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      pcVar18 = (compareInfo *)0xffffffc0;\n      puVar16 = (undefined *)0x80;\n      pbVar7 = zEsc;\n      do {\n        bVar1 = 0xbf < bVar11;\n        bVar11 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar11 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc);\n        if (pcVar4->matchAll == uVar3) {\n          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);\n        }\n        else {\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }\n        if (((uint)backupInfo >> 0x10 & 0xff) == uVar3) {\n          backupInfo.matchOne = '\0';\n          pcVar4 = &backupInfo;\n        }\n        else {\n          pcVar4 = &backupInfo;\n        }\n        goto LAB_0005b9bc;\n      }\n    }" { (expression_statement "pcVar18 = (compareInfo *)0xffffffc0;" (assignment_expression "pcVar18 = (compareInfo *)0xffffffc0" identifier = (cast_expression "(compareInfo *)0xffffffc0" ( (type_descriptor "compareInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar16 = (undefined *)0x80;" (assignment_expression "puVar16 = (undefined *)0x80" identifier = (cast_expression "(undefined *)0x80" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar7 = zEsc;" (assignment_expression "pbVar7 = zEsc" identifier = identifier) ;) (do_statement "do {\n        bVar1 = 0xbf < bVar11;\n        bVar11 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar11 != 0) && (pbVar7 != (byte *)0xffffffff));" do (compound_statement "{\n        bVar1 = 0xbf < bVar11;\n        bVar11 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      }" { (expression_statement "bVar1 = 0xbf < bVar11;" (assignment_expression "bVar1 = 0xbf < bVar11" identifier = (binary_expression "0xbf < bVar11" number_literal < identifier)) ;) (expression_statement "bVar11 = pbVar7[1];" (assignment_expression "bVar11 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1) {\n          while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }\n        }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n          while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }\n        }" { (while_statement "while ((bVar11 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }" while (parenthesized_expression "((bVar11 & 0xc0) == 0x80)" ( (binary_expression "(bVar11 & 0xc0) == 0x80" (parenthesized_expression "(bVar11 & 0xc0)" ( (binary_expression "bVar11 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar7 = pbVar7 + 1;\n            bVar11 = *pbVar7;\n          }" { (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar7;" (assignment_expression "bVar11 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) })) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((bVar11 != 0) && (pbVar7 != (byte *)0xffffffff))" ( (binary_expression "(bVar11 != 0) && (pbVar7 != (byte *)0xffffffff)" (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(pbVar7 != (byte *)0xffffffff)" ( (binary_expression "pbVar7 != (byte *)0xffffffff" identifier != (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ;) (if_statement "if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc);\n        if (pcVar4->matchAll == uVar3) {\n          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);\n        }\n        else {\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }\n        if (((uint)backupInfo >> 0x10 & 0xff) == uVar3) {\n          backupInfo.matchOne = '\0';\n          pcVar4 = &backupInfo;\n        }\n        else {\n          pcVar4 = &backupInfo;\n        }\n        goto LAB_0005b9bc;\n      }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc);\n        if (pcVar4->matchAll == uVar3) {\n          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);\n        }\n        else {\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }\n        if (((uint)backupInfo >> 0x10 & 0xff) == uVar3) {\n          backupInfo.matchOne = '\0';\n          pcVar4 = &backupInfo;\n        }\n        else {\n          pcVar4 = &backupInfo;\n        }\n        goto LAB_0005b9bc;\n      }" { (expression_statement "uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc);" (assignment_expression "uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x168))(&zEsc)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x168))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x168)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x168)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + 0x168)" ( (binary_expression "PTR_LAB_000f52c8 + 0x168" identifier + number_literal) )))) )) (argument_list "(&zEsc)" ( (pointer_expression "&zEsc" & identifier) )))) ;) (if_statement "if (pcVar4->matchAll == uVar3) {\n          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);\n        }\n        else {\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }" if (parenthesized_expression "(pcVar4->matchAll == uVar3)" ( (binary_expression "pcVar4->matchAll == uVar3" (field_expression "pcVar4->matchAll" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);\n        }" { (expression_statement "backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff);" (assignment_expression "backupInfo = (compareInfo)((uint)*pcVar4 & 0xffffff)" identifier = (call_expression "(compareInfo)((uint)*pcVar4 & 0xffffff)" (parenthesized_expression "(compareInfo)" ( identifier )) (argument_list "((uint)*pcVar4 & 0xffffff)" ( (binary_expression "(uint)*pcVar4 & 0xffffff" (binary_expression "(uint)*pcVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier) & number_literal) )))) ;) }) (else_clause "else {\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }" else (compound_statement "{\n          if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;\n          backupInfo = *pcVar4;\n        }" { (if_statement "if (pcVar4->matchOne != uVar3) goto LAB_0005b9bc;" if (parenthesized_expression "(pcVar4->matchOne != uVar3)" ( (binary_expression "pcVar4->matchOne != uVar3" (field_expression "pcVar4->matchOne" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0005b9bc;" goto statement_identifier ;)) (expression_statement "backupInfo = *pcVar4;" (assignment_expression "backupInfo = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) }))) (if_statement "if (((uint)backupInfo >> 0x10 & 0xff) == uVar3) {\n          backupInfo.matchOne = '\0';\n          pcVar4 = &backupInfo;\n        }\n        else {\n          pcVar4 = &backupInfo;\n        }" if (parenthesized_expression "(((uint)backupInfo >> 0x10 & 0xff) == uVar3)" ( (binary_expression "((uint)backupInfo >> 0x10 & 0xff) == uVar3" (parenthesized_expression "((uint)backupInfo >> 0x10 & 0xff)" ( (binary_expression "(uint)backupInfo >> 0x10 & 0xff" (binary_expression "(uint)backupInfo >> 0x10" (cast_expression "(uint)backupInfo" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) & number_literal) )) == identifier) )) (compound_statement "{\n          backupInfo.matchOne = '\0';\n          pcVar4 = &backupInfo;\n        }" { (expression_statement "backupInfo.matchOne = '\0';" (assignment_expression "backupInfo.matchOne = '\0'" (field_expression "backupInfo.matchOne" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar4 = &backupInfo;" (assignment_expression "pcVar4 = &backupInfo" identifier = (pointer_expression "&backupInfo" & identifier)) ;) }) (else_clause "else {\n          pcVar4 = &backupInfo;\n        }" else (compound_statement "{\n          pcVar4 = &backupInfo;\n        }" { (expression_statement "pcVar4 = &backupInfo;" (assignment_expression "pcVar4 = &backupInfo" identifier = (pointer_expression "&backupInfo" & identifier)) ;) }))) (goto_statement "goto LAB_0005b9bc;" goto statement_identifier ;) })) })) (expression_statement "pcVar18 = (compareInfo *)0xffffffff;" (assignment_expression "pcVar18 = (compareInfo *)0xffffffff" identifier = (cast_expression "(compareInfo *)0xffffffff" ( (type_descriptor "compareInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar16 = PTR_LAB_000f52cc + 0x7e78;" (assignment_expression "puVar16 = PTR_LAB_000f52cc + 0x7e78" identifier = (binary_expression "PTR_LAB_000f52cc + 0x7e78" identifier + number_literal)) ;) (expression_statement "psVar12 = (sqlite3_value *)context;" (assignment_expression "psVar12 = (sqlite3_value *)context" identifier = (cast_expression "(sqlite3_value *)context" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16);" (call_expression "(*(code *)PTR_sqlite3_result_error_000f5524)(context,puVar16)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_000f5524)" ( (pointer_expression "*(code *)PTR_sqlite3_result_error_000f5524" * (cast_expression "(code *)PTR_sqlite3_result_error_000f5524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(context,puVar16)" ( identifier , identifier ))) ;) }) (else_clause "else {\n    uVar3 = (uint)pcVar4->matchSet;\nLAB_0005b9bc:\n    ppsVar6 = (sqlite3_value **)(*(code *)PTR_sqlite3_value_text_000f539c)(*argv);\n    psVar12 = argv[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    argv = ppsVar6;\n    if ((iVar5 != 0) && (ppsVar6 != (sqlite3_value **)0x0)) {\n      pcVar18 = pcVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3);\n      puVar16 = (undefined *)(uint)(iVar5 == 0);\n      psVar12 = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(context,puVar16);\n    }\n  }" else (compound_statement "{\n    uVar3 = (uint)pcVar4->matchSet;\nLAB_0005b9bc:\n    ppsVar6 = (sqlite3_value **)(*(code *)PTR_sqlite3_value_text_000f539c)(*argv);\n    psVar12 = argv[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    argv = ppsVar6;\n    if ((iVar5 != 0) && (ppsVar6 != (sqlite3_value **)0x0)) {\n      pcVar18 = pcVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3);\n      puVar16 = (undefined *)(uint)(iVar5 == 0);\n      psVar12 = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(context,puVar16);\n    }\n  }" { (expression_statement "uVar3 = (uint)pcVar4->matchSet;" (assignment_expression "uVar3 = (uint)pcVar4->matchSet" identifier = (cast_expression "(uint)pcVar4->matchSet" ( (type_descriptor "uint" type_identifier) ) (field_expression "pcVar4->matchSet" identifier -> field_identifier))) ;) (labeled_statement "LAB_0005b9bc:\n    ppsVar6 = (sqlite3_value **)(*(code *)PTR_sqlite3_value_text_000f539c)(*argv);" statement_identifier : (expression_statement "ppsVar6 = (sqlite3_value **)(*(code *)PTR_sqlite3_value_text_000f539c)(*argv);" (assignment_expression "ppsVar6 = (sqlite3_value **)(*(code *)PTR_sqlite3_value_text_000f539c)(*argv)" identifier = (cast_expression "(sqlite3_value **)(*(code *)PTR_sqlite3_value_text_000f539c)(*argv)" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)(*argv)" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" ( (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" * (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*argv)" ( (pointer_expression "*argv" * identifier) ))))) ;)) (expression_statement "psVar12 = argv[1];" (assignment_expression "psVar12 = argv[1]" identifier = (subscript_expression "argv[1]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();" (assignment_expression "iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)()" identifier = (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)()" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" ( (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" * (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "argv = ppsVar6;" (assignment_expression "argv = ppsVar6" identifier = identifier) ;) (if_statement "if ((iVar5 != 0) && (ppsVar6 != (sqlite3_value **)0x0)) {\n      pcVar18 = pcVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3);\n      puVar16 = (undefined *)(uint)(iVar5 == 0);\n      psVar12 = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(context,puVar16);\n    }" if (parenthesized_expression "((iVar5 != 0) && (ppsVar6 != (sqlite3_value **)0x0))" ( (binary_expression "(iVar5 != 0) && (ppsVar6 != (sqlite3_value **)0x0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(ppsVar6 != (sqlite3_value **)0x0)" ( (binary_expression "ppsVar6 != (sqlite3_value **)0x0" identifier != (cast_expression "(sqlite3_value **)0x0" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) (compound_statement "{\n      pcVar18 = pcVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3);\n      puVar16 = (undefined *)(uint)(iVar5 == 0);\n      psVar12 = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(context,puVar16);\n    }" { (expression_statement "pcVar18 = pcVar4;" (assignment_expression "pcVar18 = pcVar4" identifier = identifier) ;) (expression_statement "iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3);" (assignment_expression "iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x75dc))(ppsVar6,iVar5,pcVar4,uVar3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x75dc))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x75dc)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x75dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + 0x75dc)" ( (binary_expression "PTR_LAB_000f52c8 + 0x75dc" identifier + number_literal) )))) )) (argument_list "(ppsVar6,iVar5,pcVar4,uVar3)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar16 = (undefined *)(uint)(iVar5 == 0);" (assignment_expression "puVar16 = (undefined *)(uint)(iVar5 == 0)" identifier = (cast_expression "(undefined *)(uint)(iVar5 == 0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar5 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))))) ;) (expression_statement "psVar12 = (sqlite3_value *)context;" (assignment_expression "psVar12 = (sqlite3_value *)context" identifier = (cast_expression "(sqlite3_value *)context" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR_sqlite3_result_int_000f550c)(context,puVar16);" (call_expression "(*(code *)PTR_sqlite3_result_int_000f550c)(context,puVar16)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_int_000f550c)" ( (pointer_expression "*(code *)PTR_sqlite3_result_int_000f550c" * (cast_expression "(code *)PTR_sqlite3_result_int_000f550c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(context,puVar16)" ( identifier , identifier ))) ;) })) }))) (labeled_statement "LAB_0005ba18:\n  if (local_24 == *(int *)puVar2) {\n    return;\n  }" statement_identifier : (if_statement "if (local_24 == *(int *)puVar2) {\n    return;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar2)" ( (binary_expression "local_24 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar23 = localtimeOffset;" (assignment_expression "pcVar23 = localtimeOffset" identifier = identifier) ;) (expression_statement "puVar22 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar22 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar21 = *(int **)(puVar22 + 0x999e0);" (assignment_expression "piVar21 = *(int **)(puVar22 + 0x999e0)" identifier = (pointer_expression "*(int **)(puVar22 + 0x999e0)" * (cast_expression "(int **)(puVar22 + 0x999e0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x999e0)" ( (binary_expression "puVar22 + 0x999e0" identifier + number_literal) ))))) ;) (expression_statement "puStack_5c = puVar2;" (assignment_expression "puStack_5c = puVar2" identifier = identifier) ;) (expression_statement "iStack_f4 = 0;" (assignment_expression "iStack_f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_f0 = 0;" (assignment_expression "uStack_f0 = 0" identifier = number_literal) ;) (expression_statement "uStack_ec = 0;" (assignment_expression "uStack_ec = 0" identifier = number_literal) ;) (expression_statement "uStack_e8 = 0;" (assignment_expression "uStack_e8 = 0" identifier = number_literal) ;) (expression_statement "iStack_e4 = 0;" (assignment_expression "iStack_e4 = 0" identifier = number_literal) ;) (expression_statement "iStack_e0 = 0;" (assignment_expression "iStack_e0 = 0" identifier = number_literal) ;) (expression_statement "uStack_dc = 0;" (assignment_expression "uStack_dc = 0" identifier = number_literal) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "uStack_d4 = 0;" (assignment_expression "uStack_d4 = 0" identifier = number_literal) ;) (expression_statement "uStack_d0 = 0;" (assignment_expression "uStack_d0 = 0" identifier = number_literal) ;) (expression_statement "uStack_cc = 0;" (assignment_expression "uStack_cc = 0" identifier = number_literal) ;) (expression_statement "pcStack_64 = (char *)*piVar21;" (assignment_expression "pcStack_64 = (char *)*piVar21" identifier = (cast_expression "(char *)*piVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (expression_statement "piVar8 = aiStack_c8;" (assignment_expression "piVar8 = aiStack_c8" identifier = identifier) ;) (expression_statement "psVar13 = psVar12;" (assignment_expression "psVar13 = psVar12" identifier = identifier) ;) (expression_statement "ppsStack_60 = argv;" (assignment_expression "ppsStack_60 = argv" identifier = identifier) ;) (expression_statement "psStack_58 = context;" (assignment_expression "psStack_58 = context" identifier = identifier) ;) (expression_statement "pcStack_54 = pcVar4;" (assignment_expression "pcStack_54 = pcVar4" identifier = identifier) ;) (expression_statement "uStack_50 = uVar3;" (assignment_expression "uStack_50 = uVar3" identifier = identifier) ;) (expression_statement "pcStack_4c = pcVar23;" (assignment_expression "pcStack_4c = pcVar23" identifier = identifier) ;) (do_statement "do {\n    ppcVar14 = &psVar13->z;\n    pFVar19 = *(FuncDef **)((int)&psVar13->u + 4);\n    pMVar17 = *(Mem **)&psVar13->flags;\n    pVVar10 = (Vdbe *)psVar13->n;\n    *piVar8 = (int)(psVar13->u).nZero;\n    piVar8[1] = (int)pFVar19;\n    piVar8[2] = (int)pMVar17;\n    piVar8[3] = (int)pVVar10;\n    piVar8 = piVar8 + 4;\n    psVar13 = (sqlite3_value *)ppcVar14;\n  } while (ppcVar14 != (char **)&psVar12[1].flags);" do (compound_statement "{\n    ppcVar14 = &psVar13->z;\n    pFVar19 = *(FuncDef **)((int)&psVar13->u + 4);\n    pMVar17 = *(Mem **)&psVar13->flags;\n    pVVar10 = (Vdbe *)psVar13->n;\n    *piVar8 = (int)(psVar13->u).nZero;\n    piVar8[1] = (int)pFVar19;\n    piVar8[2] = (int)pMVar17;\n    piVar8[3] = (int)pVVar10;\n    piVar8 = piVar8 + 4;\n    psVar13 = (sqlite3_value *)ppcVar14;\n  }" { (expression_statement "ppcVar14 = &psVar13->z;" (assignment_expression "ppcVar14 = &psVar13->z" identifier = (pointer_expression "&psVar13->z" & (field_expression "psVar13->z" identifier -> field_identifier))) ;) (expression_statement "pFVar19 = *(FuncDef **)((int)&psVar13->u + 4);" (assignment_expression "pFVar19 = *(FuncDef **)((int)&psVar13->u + 4)" identifier = (pointer_expression "*(FuncDef **)((int)&psVar13->u + 4)" * (cast_expression "(FuncDef **)((int)&psVar13->u + 4)" ( (type_descriptor "FuncDef **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&psVar13->u + 4)" ( (binary_expression "(int)&psVar13->u + 4" (cast_expression "(int)&psVar13->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar13->u" & (field_expression "psVar13->u" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pMVar17 = *(Mem **)&psVar13->flags;" (assignment_expression "pMVar17 = *(Mem **)&psVar13->flags" identifier = (pointer_expression "*(Mem **)&psVar13->flags" * (cast_expression "(Mem **)&psVar13->flags" ( (type_descriptor "Mem **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psVar13->flags" & (field_expression "psVar13->flags" identifier -> field_identifier))))) ;) (expression_statement "pVVar10 = (Vdbe *)psVar13->n;" (assignment_expression "pVVar10 = (Vdbe *)psVar13->n" identifier = (cast_expression "(Vdbe *)psVar13->n" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "psVar13->n" identifier -> field_identifier))) ;) (expression_statement "*piVar8 = (int)(psVar13->u).nZero;" (assignment_expression "*piVar8 = (int)(psVar13->u).nZero" (pointer_expression "*piVar8" * identifier) = (cast_expression "(int)(psVar13->u).nZero" ( (type_descriptor "int" primitive_type) ) (field_expression "(psVar13->u).nZero" (parenthesized_expression "(psVar13->u)" ( (field_expression "psVar13->u" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "piVar8[1] = (int)pFVar19;" (assignment_expression "piVar8[1] = (int)pFVar19" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = (cast_expression "(int)pFVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar8[2] = (int)pMVar17;" (assignment_expression "piVar8[2] = (int)pMVar17" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = (cast_expression "(int)pMVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar8[3] = (int)pVVar10;" (assignment_expression "piVar8[3] = (int)pVVar10" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = (cast_expression "(int)pVVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar8 = piVar8 + 4;" (assignment_expression "piVar8 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "psVar13 = (sqlite3_value *)ppcVar14;" (assignment_expression "psVar13 = (sqlite3_value *)ppcVar14" identifier = (cast_expression "(sqlite3_value *)ppcVar14" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(ppcVar14 != (char **)&psVar12[1].flags)" ( (binary_expression "ppcVar14 != (char **)&psVar12[1].flags" identifier != (cast_expression "(char **)&psVar12[1].flags" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psVar12[1].flags" & (field_expression "psVar12[1].flags" (subscript_expression "psVar12[1]" identifier [ number_literal ]) . field_identifier)))) )) ;) (expression_statement "(*(code *)(*(int *)(puVar22 + 0x99764) + -0x7e3c))(aiStack_c8);" (call_expression "(*(code *)(*(int *)(puVar22 + 0x99764) + -0x7e3c))(aiStack_c8)" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0x99764) + -0x7e3c))" ( (pointer_expression "*(code *)(*(int *)(puVar22 + 0x99764) + -0x7e3c)" * (cast_expression "(code *)(*(int *)(puVar22 + 0x99764) + -0x7e3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0x99764) + -0x7e3c)" ( (binary_expression "*(int *)(puVar22 + 0x99764) + -0x7e3c" (pointer_expression "*(int *)(puVar22 + 0x99764)" * (cast_expression "(int *)(puVar22 + 0x99764)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x99764)" ( (binary_expression "puVar22 + 0x99764" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(aiStack_c8)" ( identifier ))) ;) (if_statement "if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" if (parenthesized_expression "(aiStack_c8[2] - 0x7b3U < 0x43)" ( (binary_expression "aiStack_c8[2] - 0x7b3U < 0x43" (binary_expression "aiStack_c8[2] - 0x7b3U" (subscript_expression "aiStack_c8[2]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758));\n  }" { (expression_statement "dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758));" (assignment_expression "dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758))" identifier = (cast_expression "(double)(int)(dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758))" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)(dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758))" ( (binary_expression "dStack_a8 + *(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758)" identifier + (pointer_expression "*(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758)" * (cast_expression "(double *)(*(int *)(puVar22 + 0x9974c) + 0x2758)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0x9974c) + 0x2758)" ( (binary_expression "*(int *)(puVar22 + 0x9974c) + 0x2758" (pointer_expression "*(int *)(puVar22 + 0x9974c)" * (cast_expression "(int *)(puVar22 + 0x9974c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x9974c)" ( (binary_expression "puVar22 + 0x9974c" identifier + number_literal) )))) + number_literal) ))))) ))))) ;) }) (else_clause "else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" else (compound_statement "{\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" { (expression_statement "aiStack_c8[5] = 0;" (assignment_expression "aiStack_c8[5] = 0" (subscript_expression "aiStack_c8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[6] = 0;" (assignment_expression "aiStack_c8[6] = 0" (subscript_expression "aiStack_c8[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[3] = 1;" (assignment_expression "aiStack_c8[3] = 1" (subscript_expression "aiStack_c8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[2] = 2000;" (assignment_expression "aiStack_c8[2] = 2000" (subscript_expression "aiStack_c8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[4] = 1;" (assignment_expression "aiStack_c8[4] = 1" (subscript_expression "aiStack_c8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "dStack_a8 = 0.0;" (assignment_expression "dStack_a8 = 0.0" identifier = number_literal) ;) }))) (expression_statement "iVar20 = *(int *)(puVar22 + 0x99740);" (assignment_expression "iVar20 = *(int *)(puVar22 + 0x99740)" identifier = (pointer_expression "*(int *)(puVar22 + 0x99740)" * (cast_expression "(int *)(puVar22 + 0x99740)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x99740)" ( (binary_expression "puVar22 + 0x99740" identifier + number_literal) ))))) ;) (expression_statement "aiStack_c8[7] = 0;" (assignment_expression "aiStack_c8[7] = 0" (subscript_expression "aiStack_c8[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_a0 = 0;" (assignment_expression "uStack_a0 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)(iVar20 + 0x7bc0))(aiStack_c8);" (call_expression "(*(code *)(iVar20 + 0x7bc0))(aiStack_c8)" (parenthesized_expression "(*(code *)(iVar20 + 0x7bc0))" ( (pointer_expression "*(code *)(iVar20 + 0x7bc0)" * (cast_expression "(code *)(iVar20 + 0x7bc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x7bc0)" ( (binary_expression "iVar20 + 0x7bc0" identifier + number_literal) )))) )) (argument_list "(aiStack_c8)" ( identifier ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar22 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);" (call_expression "(**(code **)(puVar22 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000)" (parenthesized_expression "(**(code **)(puVar22 + 0x99750))" ( (pointer_expression "**(code **)(puVar22 + 0x99750)" * (pointer_expression "*(code **)(puVar22 + 0x99750)" * (cast_expression "(code **)(puVar22 + 0x99750)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x99750)" ( (binary_expression "puVar22 + 0x99750" identifier + number_literal) ))))) )) (argument_list "(aiStack_c8[0],aiStack_c8[1],0,1000)" ( (subscript_expression "aiStack_c8[0]" identifier [ number_literal ]) , (subscript_expression "aiStack_c8[1]" identifier [ number_literal ]) , number_literal , number_literal ))) ;) (expression_statement "iStack_f8 = extraout_v1 + -0x18a36940;" (assignment_expression "iStack_f8 = extraout_v1 + -0x18a36940" identifier = (binary_expression "extraout_v1 + -0x18a36940" identifier + number_literal)) ;) (if_statement "if ((*(int *)(*(int *)(puVar22 + 0x99734) + 0x4198) == 0) &&\n     (iVar9 = (**(code **)(puVar22 + 0x999a0))(&iStack_f8,&iStack_f4), iVar9 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar20 + 0x7bc0))(auStack_98);\n    pcVar18->matchAll = '\0';\n    pcVar18->matchOne = '\0';\n    pcVar18->matchSet = '\0';\n    pcVar18->noCase = '\0';\n  }\n  else {\n    iVar5 = -1;\n    (**(code **)(puVar22 + 0x9999c))(puVar16,*(int *)(puVar22 + 0x99744) + 0x7ea8);\n    pcVar18->matchAll = '\0';\n    pcVar18->matchOne = '\0';\n    pcVar18->matchSet = '\0';\n    pcVar18->noCase = '\x01';\n  }" if (parenthesized_expression "((*(int *)(*(int *)(puVar22 + 0x99734) + 0x4198) == 0) &&\n     (iVar9 = (**(code **)(puVar22 + 0x999a0))(&iStack_f8,&iStack_f4), iVar9 != 0))" ( (binary_expression "(*(int *)(*(int *)(puVar22 + 0x99734) + 0x4198) == 0) &&\n     (iVar9 = (**(code **)(puVar22 + 0x999a0))(&iStack_f8,&iStack_f4), iVar9 != 0)" (parenthesized_expression "(*(int *)(*(int *)(puVar22 + 0x99734) + 0x4198) == 0)" ( (binary_expression "*(int *)(*(int *)(puVar22 + 0x99734) + 0x4198) == 0" (pointer_expression "*(int *)(*(int *)(puVar22 + 0x99734) + 0x4198)" * (cast_expression "(int *)(*(int *)(puVar22 + 0x99734) + 0x4198)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0x99734) + 0x4198)" ( (binary_expression "*(int *)(puVar22 + 0x99734) + 0x4198" (pointer_expression "*(int *)(puVar22 + 0x99734)" * (cast_expression "(int *)(puVar22 + 0x99734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x99734)" ( (binary_expression "puVar22 + 0x99734" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar9 = (**(code **)(puVar22 + 0x999a0))(&iStack_f8,&iStack_f4), iVar9 != 0)" ( (comma_expression "iVar9 = (**(code **)(puVar22 + 0x999a0))(&iStack_f8,&iStack_f4), iVar9 != 0" (assignment_expression "iVar9 = (**(code **)(puVar22 + 0x999a0))(&iStack_f8,&iStack_f4)" identifier = (call_expression "(**(code **)(puVar22 + 0x999a0))(&iStack_f8,&iStack_f4)" (parenthesized_expression "(**(code **)(puVar22 + 0x999a0))" ( (pointer_expression "**(code **)(puVar22 + 0x999a0)" * (pointer_expression "*(code **)(puVar22 + 0x999a0)" * (cast_expression "(code **)(puVar22 + 0x999a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x999a0)" ( (binary_expression "puVar22 + 0x999a0" identifier + number_literal) ))))) )) (argument_list "(&iStack_f8,&iStack_f4)" ( (pointer_expression "&iStack_f8" & identifier) , (pointer_expression "&iStack_f4" & identifier) )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar20 + 0x7bc0))(auStack_98);\n    pcVar18->matchAll = '\0';\n    pcVar18->matchOne = '\0';\n    pcVar18->matchSet = '\0';\n    pcVar18->noCase = '\0';\n  }" { (expression_statement "uStack_6c = 0;" (assignment_expression "uStack_6c = 0" identifier = number_literal) ;) (expression_statement "iStack_8c = iStack_e4 + 1;" (assignment_expression "iStack_8c = iStack_e4 + 1" identifier = (binary_expression "iStack_e4 + 1" identifier + number_literal)) ;) (expression_statement "uStack_6a = 0;" (assignment_expression "uStack_6a = 0" identifier = number_literal) ;) (expression_statement "iStack_90 = iStack_e0 + 0x76c;" (assignment_expression "iStack_90 = iStack_e0 + 0x76c" identifier = (binary_expression "iStack_e0 + 0x76c" identifier + number_literal)) ;) (expression_statement "dStack_78 = (double)iStack_f4;" (assignment_expression "dStack_78 = (double)iStack_f4" identifier = (cast_expression "(double)iStack_f4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "uStack_88 = uStack_e8;" (assignment_expression "uStack_88 = uStack_e8" identifier = identifier) ;) (expression_statement "uStack_84 = uStack_ec;" (assignment_expression "uStack_84 = uStack_ec" identifier = identifier) ;) (expression_statement "uStack_80 = uStack_f0;" (assignment_expression "uStack_80 = uStack_f0" identifier = identifier) ;) (expression_statement "uStack_70 = 0x101;" (assignment_expression "uStack_70 = 0x101" identifier = number_literal) ;) (expression_statement "(*(code *)(iVar20 + 0x7bc0))(auStack_98);" (call_expression "(*(code *)(iVar20 + 0x7bc0))(auStack_98)" (parenthesized_expression "(*(code *)(iVar20 + 0x7bc0))" ( (pointer_expression "*(code *)(iVar20 + 0x7bc0)" * (cast_expression "(code *)(iVar20 + 0x7bc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x7bc0)" ( (binary_expression "iVar20 + 0x7bc0" identifier + number_literal) )))) )) (argument_list "(auStack_98)" ( identifier ))) ;) (expression_statement "pcVar18->matchAll = '\0';" (assignment_expression "pcVar18->matchAll = '\0'" (field_expression "pcVar18->matchAll" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar18->matchOne = '\0';" (assignment_expression "pcVar18->matchOne = '\0'" (field_expression "pcVar18->matchOne" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar18->matchSet = '\0';" (assignment_expression "pcVar18->matchSet = '\0'" (field_expression "pcVar18->matchSet" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar18->noCase = '\0';" (assignment_expression "pcVar18->noCase = '\0'" (field_expression "pcVar18->noCase" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n    iVar5 = -1;\n    (**(code **)(puVar22 + 0x9999c))(puVar16,*(int *)(puVar22 + 0x99744) + 0x7ea8);\n    pcVar18->matchAll = '\0';\n    pcVar18->matchOne = '\0';\n    pcVar18->matchSet = '\0';\n    pcVar18->noCase = '\x01';\n  }" else (compound_statement "{\n    iVar5 = -1;\n    (**(code **)(puVar22 + 0x9999c))(puVar16,*(int *)(puVar22 + 0x99744) + 0x7ea8);\n    pcVar18->matchAll = '\0';\n    pcVar18->matchOne = '\0';\n    pcVar18->matchSet = '\0';\n    pcVar18->noCase = '\x01';\n  }" { (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar22 + 0x9999c))(puVar16,*(int *)(puVar22 + 0x99744) + 0x7ea8);" (call_expression "(**(code **)(puVar22 + 0x9999c))(puVar16,*(int *)(puVar22 + 0x99744) + 0x7ea8)" (parenthesized_expression "(**(code **)(puVar22 + 0x9999c))" ( (pointer_expression "**(code **)(puVar22 + 0x9999c)" * (pointer_expression "*(code **)(puVar22 + 0x9999c)" * (cast_expression "(code **)(puVar22 + 0x9999c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x9999c)" ( (binary_expression "puVar22 + 0x9999c" identifier + number_literal) ))))) )) (argument_list "(puVar16,*(int *)(puVar22 + 0x99744) + 0x7ea8)" ( identifier , (binary_expression "*(int *)(puVar22 + 0x99744) + 0x7ea8" (pointer_expression "*(int *)(puVar22 + 0x99744)" * (cast_expression "(int *)(puVar22 + 0x99744)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x99744)" ( (binary_expression "puVar22 + 0x99744" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar18->matchAll = '\0';" (assignment_expression "pcVar18->matchAll = '\0'" (field_expression "pcVar18->matchAll" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar18->matchOne = '\0';" (assignment_expression "pcVar18->matchOne = '\0'" (field_expression "pcVar18->matchOne" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar18->matchSet = '\0';" (assignment_expression "pcVar18->matchSet = '\0'" (field_expression "pcVar18->matchSet" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar18->noCase = '\x01';" (assignment_expression "pcVar18->noCase = '\x01'" (field_expression "pcVar18->noCase" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "pcVar15 = (char *)*piVar21;" (assignment_expression "pcVar15 = (char *)*piVar21" identifier = (cast_expression "(char *)*piVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (if_statement "if (pcStack_64 != pcVar15) {\n    z = pcStack_64;\n    (**(code **)(puVar22 + 0x999b8))();\n    pcVar15[0x14] = '\0';\n    pcVar15[0x15] = '\0';\n    pcVar15[0x16] = '\0';\n    pcVar15[0x17] = '\x01';\n    sqlite3VdbeMemSetStr(*(Mem **)pcVar15,z,iVar5,'\x03',(_func_void_void_ptr *)0xffffffff);\n    return;\n  }" if (parenthesized_expression "(pcStack_64 != pcVar15)" ( (binary_expression "pcStack_64 != pcVar15" identifier != identifier) )) (compound_statement "{\n    z = pcStack_64;\n    (**(code **)(puVar22 + 0x999b8))();\n    pcVar15[0x14] = '\0';\n    pcVar15[0x15] = '\0';\n    pcVar15[0x16] = '\0';\n    pcVar15[0x17] = '\x01';\n    sqlite3VdbeMemSetStr(*(Mem **)pcVar15,z,iVar5,'\x03',(_func_void_void_ptr *)0xffffffff);\n    return;\n  }" { (expression_statement "z = pcStack_64;" (assignment_expression "z = pcStack_64" identifier = identifier) ;) (expression_statement "(**(code **)(puVar22 + 0x999b8))();" (call_expression "(**(code **)(puVar22 + 0x999b8))()" (parenthesized_expression "(**(code **)(puVar22 + 0x999b8))" ( (pointer_expression "**(code **)(puVar22 + 0x999b8)" * (pointer_expression "*(code **)(puVar22 + 0x999b8)" * (cast_expression "(code **)(puVar22 + 0x999b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x999b8)" ( (binary_expression "puVar22 + 0x999b8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar15[0x14] = '\0';" (assignment_expression "pcVar15[0x14] = '\0'" (subscript_expression "pcVar15[0x14]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar15[0x15] = '\0';" (assignment_expression "pcVar15[0x15] = '\0'" (subscript_expression "pcVar15[0x15]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar15[0x16] = '\0';" (assignment_expression "pcVar15[0x16] = '\0'" (subscript_expression "pcVar15[0x16]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar15[0x17] = '\x01';" (assignment_expression "pcVar15[0x17] = '\x01'" (subscript_expression "pcVar15[0x17]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "sqlite3VdbeMemSetStr(*(Mem **)pcVar15,z,iVar5,'\x03',(_func_void_void_ptr *)0xffffffff);" (call_expression "sqlite3VdbeMemSetStr(*(Mem **)pcVar15,z,iVar5,'\x03',(_func_void_void_ptr *)0xffffffff)" identifier (argument_list "(*(Mem **)pcVar15,z,iVar5,'\x03',(_func_void_void_ptr *)0xffffffff)" ( (pointer_expression "*(Mem **)pcVar15" * (cast_expression "(Mem **)pcVar15" ( (type_descriptor "Mem **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier , (char_literal "'\x03'" ' escape_sequence ') , (cast_expression "(_func_void_void_ptr *)0xffffffff" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "undefined8 FUN_0005b91c(int *param_1,undefined *param_2,uint *param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  uint *puVar4;\n  int iVar5;\n  uint *puVar6;\n  byte *pbVar7;\n  int *piVar8;\n  byte bVar9;\n  int extraout_v1;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  uint *puVar16;\n  int iVar17;\n  int *piVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  undefined8 uVar21;\n  int iStack_f8;\n  int iStack_f4;\n  undefined4 uStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_dc;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  int aiStack_c8 [8];\n  double dStack_a8;\n  undefined1 uStack_a0;\n  int iStack_98;\n  uint uStack_94;\n  int iStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  double dStack_78;\n  undefined4 uStack_70;\n  undefined1 uStack_6c;\n  undefined1 uStack_6a;\n  undefined4 *puStack_64;\n  uint *puStack_60;\n  undefined *puStack_5c;\n  int *piStack_58;\n  uint *puStack_54;\n  uint uStack_50;\n  code *pcStack_4c;\n  undefined4 local_2c;\n  byte *local_28;\n  int local_24;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_24 = *(int *)PTR___stack_chk_guard_000f5568;\n  puVar14 = param_2;\n  puVar16 = param_3;\n  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();\n  puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);\n  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);\n  if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }\n  if (param_2 == (undefined *)0x3) {\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }\n  else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }\nLAB_0005ba18:\n  iVar5 = *(int *)puVar2;\n  if (local_24 == iVar5) {\n    return CONCAT44(iVar5,local_24);\n  }\n  pcVar20 = FUN_0005bb88;\n  puVar19 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar18 = *(int **)(puVar19 + 0x999e0);\n  puStack_5c = puVar2;\n  iStack_f4 = 0;\n  uStack_f0 = 0;\n  uStack_ec = 0;\n  uStack_e8 = 0;\n  iStack_e4 = 0;\n  iStack_e0 = 0;\n  uStack_dc = 0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  puStack_64 = (undefined4 *)*piVar18;\n  piVar8 = aiStack_c8;\n  piVar11 = piVar10;\n  puStack_60 = param_3;\n  piStack_58 = param_1;\n  puStack_54 = puVar4;\n  uStack_50 = uVar3;\n  pcStack_4c = pcVar20;\n  do {\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  } while (piVar12 != piVar10 + 0xc);\n  (*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);\n  if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }\n  iVar5 = *(int *)(puVar19 + 0x99740);\n  aiStack_c8[7] = 0;\n  uStack_a0 = 0;\n  (*(code *)(iVar5 + 0x7bc0))(aiStack_c8);\n  (**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);\n  iStack_f8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }\n  else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }\n  puVar13 = (undefined4 *)*piVar18;\n  if (puStack_64 != puVar13) {\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }\n  return CONCAT44(iVar5,uVar3);\n}\n\n" (function_definition "undefined8 FUN_0005b91c(int *param_1,undefined *param_2,uint *param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  uint *puVar4;\n  int iVar5;\n  uint *puVar6;\n  byte *pbVar7;\n  int *piVar8;\n  byte bVar9;\n  int extraout_v1;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  uint *puVar16;\n  int iVar17;\n  int *piVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  undefined8 uVar21;\n  int iStack_f8;\n  int iStack_f4;\n  undefined4 uStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_dc;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  int aiStack_c8 [8];\n  double dStack_a8;\n  undefined1 uStack_a0;\n  int iStack_98;\n  uint uStack_94;\n  int iStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  double dStack_78;\n  undefined4 uStack_70;\n  undefined1 uStack_6c;\n  undefined1 uStack_6a;\n  undefined4 *puStack_64;\n  uint *puStack_60;\n  undefined *puStack_5c;\n  int *piStack_58;\n  uint *puStack_54;\n  uint uStack_50;\n  code *pcStack_4c;\n  undefined4 local_2c;\n  byte *local_28;\n  int local_24;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_24 = *(int *)PTR___stack_chk_guard_000f5568;\n  puVar14 = param_2;\n  puVar16 = param_3;\n  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();\n  puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);\n  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);\n  if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }\n  if (param_2 == (undefined *)0x3) {\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }\n  else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }\nLAB_0005ba18:\n  iVar5 = *(int *)puVar2;\n  if (local_24 == iVar5) {\n    return CONCAT44(iVar5,local_24);\n  }\n  pcVar20 = FUN_0005bb88;\n  puVar19 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar18 = *(int **)(puVar19 + 0x999e0);\n  puStack_5c = puVar2;\n  iStack_f4 = 0;\n  uStack_f0 = 0;\n  uStack_ec = 0;\n  uStack_e8 = 0;\n  iStack_e4 = 0;\n  iStack_e0 = 0;\n  uStack_dc = 0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  puStack_64 = (undefined4 *)*piVar18;\n  piVar8 = aiStack_c8;\n  piVar11 = piVar10;\n  puStack_60 = param_3;\n  piStack_58 = param_1;\n  puStack_54 = puVar4;\n  uStack_50 = uVar3;\n  pcStack_4c = pcVar20;\n  do {\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  } while (piVar12 != piVar10 + 0xc);\n  (*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);\n  if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }\n  iVar5 = *(int *)(puVar19 + 0x99740);\n  aiStack_c8[7] = 0;\n  uStack_a0 = 0;\n  (*(code *)(iVar5 + 0x7bc0))(aiStack_c8);\n  (**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);\n  iStack_f8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }\n  else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }\n  puVar13 = (undefined4 *)*piVar18;\n  if (puStack_64 != puVar13) {\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }\n  return CONCAT44(iVar5,uVar3);\n}" type_identifier (function_declarator "FUN_0005b91c(int *param_1,undefined *param_2,uint *param_3)" identifier (parameter_list "(int *param_1,undefined *param_2,uint *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  uint *puVar4;\n  int iVar5;\n  uint *puVar6;\n  byte *pbVar7;\n  int *piVar8;\n  byte bVar9;\n  int extraout_v1;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  uint *puVar16;\n  int iVar17;\n  int *piVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  undefined8 uVar21;\n  int iStack_f8;\n  int iStack_f4;\n  undefined4 uStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_dc;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  int aiStack_c8 [8];\n  double dStack_a8;\n  undefined1 uStack_a0;\n  int iStack_98;\n  uint uStack_94;\n  int iStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  double dStack_78;\n  undefined4 uStack_70;\n  undefined1 uStack_6c;\n  undefined1 uStack_6a;\n  undefined4 *puStack_64;\n  uint *puStack_60;\n  undefined *puStack_5c;\n  int *piStack_58;\n  uint *puStack_54;\n  uint uStack_50;\n  code *pcStack_4c;\n  undefined4 local_2c;\n  byte *local_28;\n  int local_24;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_24 = *(int *)PTR___stack_chk_guard_000f5568;\n  puVar14 = param_2;\n  puVar16 = param_3;\n  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();\n  puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);\n  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);\n  if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }\n  if (param_2 == (undefined *)0x3) {\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }\n  else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }\nLAB_0005ba18:\n  iVar5 = *(int *)puVar2;\n  if (local_24 == iVar5) {\n    return CONCAT44(iVar5,local_24);\n  }\n  pcVar20 = FUN_0005bb88;\n  puVar19 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar18 = *(int **)(puVar19 + 0x999e0);\n  puStack_5c = puVar2;\n  iStack_f4 = 0;\n  uStack_f0 = 0;\n  uStack_ec = 0;\n  uStack_e8 = 0;\n  iStack_e4 = 0;\n  iStack_e0 = 0;\n  uStack_dc = 0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  puStack_64 = (undefined4 *)*piVar18;\n  piVar8 = aiStack_c8;\n  piVar11 = piVar10;\n  puStack_60 = param_3;\n  piStack_58 = param_1;\n  puStack_54 = puVar4;\n  uStack_50 = uVar3;\n  pcStack_4c = pcVar20;\n  do {\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  } while (piVar12 != piVar10 + 0xc);\n  (*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);\n  if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }\n  iVar5 = *(int *)(puVar19 + 0x99740);\n  aiStack_c8[7] = 0;\n  uStack_a0 = 0;\n  (*(code *)(iVar5 + 0x7bc0))(aiStack_c8);\n  (**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);\n  iStack_f8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }\n  else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }\n  puVar13 = (undefined4 *)*piVar18;\n  if (puStack_64 != puVar13) {\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }\n  return CONCAT44(iVar5,uVar3);\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "undefined8 uVar21;" type_identifier identifier ;) (declaration "int iStack_f8;" primitive_type identifier ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "undefined4 uStack_f0;" type_identifier identifier ;) (declaration "undefined4 uStack_ec;" type_identifier identifier ;) (declaration "undefined4 uStack_e8;" type_identifier identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "undefined4 uStack_dc;" type_identifier identifier ;) (declaration "undefined4 uStack_d8;" type_identifier identifier ;) (declaration "undefined4 uStack_d4;" type_identifier identifier ;) (declaration "undefined4 uStack_d0;" type_identifier identifier ;) (declaration "undefined4 uStack_cc;" type_identifier identifier ;) (declaration "int aiStack_c8 [8];" primitive_type (array_declarator "aiStack_c8 [8]" identifier [ number_literal ]) ;) (declaration "double dStack_a8;" primitive_type identifier ;) (declaration "undefined1 uStack_a0;" type_identifier identifier ;) (declaration "int iStack_98;" primitive_type identifier ;) (declaration "uint uStack_94;" type_identifier identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "undefined4 uStack_88;" type_identifier identifier ;) (declaration "undefined4 uStack_84;" type_identifier identifier ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "double dStack_78;" primitive_type identifier ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined1 uStack_6c;" type_identifier identifier ;) (declaration "undefined1 uStack_6a;" type_identifier identifier ;) (declaration "undefined4 *puStack_64;" type_identifier (pointer_declarator "*puStack_64" * identifier) ;) (declaration "uint *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "undefined *puStack_5c;" type_identifier (pointer_declarator "*puStack_5c" * identifier) ;) (declaration "int *piStack_58;" primitive_type (pointer_declarator "*piStack_58" * identifier) ;) (declaration "uint *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "uint uStack_50;" type_identifier identifier ;) (declaration "code *pcStack_4c;" type_identifier (pointer_declarator "*pcStack_4c" * identifier) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "byte *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar14 = param_2;" (assignment_expression "puVar14 = param_2" identifier = identifier) ;) (expression_statement "puVar16 = param_3;" (assignment_expression "puVar16 = param_3" identifier = identifier) ;) (expression_statement "uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();" (assignment_expression "uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)()" identifier = (call_expression "(*(code *)PTR_sqlite3_context_db_handle_000f5434)()" (parenthesized_expression "(*(code *)PTR_sqlite3_context_db_handle_000f5434)" ( (pointer_expression "*(code *)PTR_sqlite3_context_db_handle_000f5434" * (cast_expression "(code *)PTR_sqlite3_context_db_handle_000f5434" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1)" identifier = (cast_expression "(uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_user_data_000f5598)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_user_data_000f5598)" ( (pointer_expression "*(code *)PTR_sqlite3_user_data_000f5598" * (cast_expression "(code *)PTR_sqlite3_user_data_000f5598" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);" (assignment_expression "iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3)" identifier = (call_expression "(*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3)" (parenthesized_expression "(*(code *)PTR_sqlite3_value_bytes_000f53d8)" ( (pointer_expression "*(code *)PTR_sqlite3_value_bytes_000f53d8" * (cast_expression "(code *)PTR_sqlite3_value_bytes_000f53d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_3)" ( (pointer_expression "*param_3" * identifier) )))) ;) (if_statement "if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }" if (parenthesized_expression "(*(int *)(uVar3 + 0x8c) < iVar5)" ( (binary_expression "*(int *)(uVar3 + 0x8c) < iVar5" (pointer_expression "*(int *)(uVar3 + 0x8c)" * (cast_expression "(int *)(uVar3 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 + 0x8c)" ( (binary_expression "uVar3 + 0x8c" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }" { (expression_statement "puVar16 = (uint *)0xffffffff;" (assignment_expression "puVar16 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = PTR_LAB_000f52cc + 0x7e54;" (assignment_expression "puVar14 = PTR_LAB_000f52cc + 0x7e54" identifier = (binary_expression "PTR_LAB_000f52cc + 0x7e54" identifier + number_literal)) ;) (expression_statement "piVar10 = param_1;" (assignment_expression "piVar10 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);" (call_expression "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_000f5524)" ( (pointer_expression "*(code *)PTR_sqlite3_result_error_000f5524" * (cast_expression "(code *)PTR_sqlite3_result_error_000f5524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar14)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0005ba18;" goto statement_identifier ;) })) (if_statement "if (param_2 == (undefined *)0x3) {\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }\n  else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }" if (parenthesized_expression "(param_2 == (undefined *)0x3)" ( (binary_expression "param_2 == (undefined *)0x3" identifier == (cast_expression "(undefined *)0x3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }" { (expression_statement "piVar10 = (int *)param_3[2];" (assignment_expression "piVar10 = (int *)param_3[2]" identifier = (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();" (assignment_expression "local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)()" identifier = (cast_expression "(byte *)(*(code *)PTR_sqlite3_value_text_000f539c)()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)()" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" ( (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" * (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (local_28 == (byte *)0x0) goto LAB_0005ba18;" if (parenthesized_expression "(local_28 == (byte *)0x0)" ( (binary_expression "local_28 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005ba18;" goto statement_identifier ;)) (expression_statement "bVar9 = *local_28;" (assignment_expression "bVar9 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (if_statement "if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }" if (parenthesized_expression "((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff))" ( (binary_expression "(bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)" (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = 0, local_28 != (byte *)0xffffffff)" ( (comma_expression "iVar5 = 0, local_28 != (byte *)0xffffffff" (assignment_expression "iVar5 = 0" identifier = number_literal) , (binary_expression "local_28 != (byte *)0xffffffff" identifier != (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }" { (expression_statement "puVar16 = (uint *)0xffffffc0;" (assignment_expression "puVar16 = (uint *)0xffffffc0" identifier = (cast_expression "(uint *)0xffffffc0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = (undefined *)0x80;" (assignment_expression "puVar14 = (undefined *)0x80" identifier = (cast_expression "(undefined *)0x80" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar7 = local_28;" (assignment_expression "pbVar7 = local_28" identifier = identifier) ;) (do_statement "do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));" do (compound_statement "{\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      }" { (expression_statement "bVar1 = 0xbf < bVar9;" (assignment_expression "bVar1 = 0xbf < bVar9" identifier = (binary_expression "0xbf < bVar9" number_literal < identifier)) ;) (expression_statement "bVar9 = pbVar7[1];" (assignment_expression "bVar9 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }" { (while_statement "while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }" while (parenthesized_expression "((bVar9 & 0xc0) == 0x80)" ( (binary_expression "(bVar9 & 0xc0) == 0x80" (parenthesized_expression "(bVar9 & 0xc0)" ( (binary_expression "bVar9 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }" { (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar7;" (assignment_expression "bVar9 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) })) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff))" ( (binary_expression "(bVar9 != 0) && (pbVar7 != (byte *)0xffffffff)" (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(pbVar7 != (byte *)0xffffffff)" ( (binary_expression "pbVar7 != (byte *)0xffffffff" identifier != (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ;) (if_statement "if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }" { (expression_statement "uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);" (assignment_expression "uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x168))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x168)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x168)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + 0x168)" ( (binary_expression "PTR_LAB_000f52c8 + 0x168" identifier + number_literal) )))) )) (argument_list "(&local_28)" ( (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }" if (parenthesized_expression "(*(byte *)puVar4 == uVar3)" ( (binary_expression "*(byte *)puVar4 == uVar3" (pointer_expression "*(byte *)puVar4" * (cast_expression "(byte *)puVar4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n          local_2c = *puVar4 & 0xffffff;\n        }" { (expression_statement "local_2c = *puVar4 & 0xffffff;" (assignment_expression "local_2c = *puVar4 & 0xffffff" identifier = (binary_expression "*puVar4 & 0xffffff" (pointer_expression "*puVar4" * identifier) & number_literal)) ;) }) (else_clause "else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }" else (compound_statement "{\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }" { (if_statement "if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;" if (parenthesized_expression "(*(byte *)((int)puVar4 + 1) != uVar3)" ( (binary_expression "*(byte *)((int)puVar4 + 1) != uVar3" (pointer_expression "*(byte *)((int)puVar4 + 1)" * (cast_expression "(byte *)((int)puVar4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 1)" ( (binary_expression "(int)puVar4 + 1" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) (goto_statement "goto LAB_0005b9bc;" goto statement_identifier ;)) (expression_statement "local_2c = *puVar4;" (assignment_expression "local_2c = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) }))) (if_statement "if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }" if (parenthesized_expression "((local_2c >> 0x10 & 0xff) == uVar3)" ( (binary_expression "(local_2c >> 0x10 & 0xff) == uVar3" (parenthesized_expression "(local_2c >> 0x10 & 0xff)" ( (binary_expression "local_2c >> 0x10 & 0xff" (binary_expression "local_2c >> 0x10" identifier >> number_literal) & number_literal) )) == identifier) )) (compound_statement "{\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }" { (expression_statement "local_2c._1_3_ = (uint3)local_2c._2_2_;" (assignment_expression "local_2c._1_3_ = (uint3)local_2c._2_2_" (field_expression "local_2c._1_3_" identifier . field_identifier) = (cast_expression "(uint3)local_2c._2_2_" ( (type_descriptor "uint3" type_identifier) ) (field_expression "local_2c._2_2_" identifier . field_identifier))) ;) (expression_statement "puVar4 = &local_2c;" (assignment_expression "puVar4 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }) (else_clause "else {\n          puVar4 = &local_2c;\n        }" else (compound_statement "{\n          puVar4 = &local_2c;\n        }" { (expression_statement "puVar4 = &local_2c;" (assignment_expression "puVar4 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }))) (goto_statement "goto LAB_0005b9bc;" goto statement_identifier ;) })) })) (expression_statement "puVar16 = (uint *)0xffffffff;" (assignment_expression "puVar16 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = PTR_LAB_000f52cc + 0x7e78;" (assignment_expression "puVar14 = PTR_LAB_000f52cc + 0x7e78" identifier = (binary_expression "PTR_LAB_000f52cc + 0x7e78" identifier + number_literal)) ;) (expression_statement "piVar10 = param_1;" (assignment_expression "piVar10 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);" (call_expression "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_000f5524)" ( (pointer_expression "*(code *)PTR_sqlite3_result_error_000f5524" * (cast_expression "(code *)PTR_sqlite3_result_error_000f5524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar14)" ( identifier , identifier ))) ;) }) (else_clause "else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }" else (compound_statement "{\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }" { (expression_statement "uVar3 = (uint)*(byte *)((int)puVar4 + 2);" (assignment_expression "uVar3 = (uint)*(byte *)((int)puVar4 + 2)" identifier = (binary_expression "(uint)*(byte *)((int)puVar4 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puVar4 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 2)" ( (binary_expression "(int)puVar4 + 2" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (labeled_statement "LAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);" statement_identifier : (expression_statement "puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);" (assignment_expression "puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3)" identifier = (cast_expression "(uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3)" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" ( (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" * (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_3)" ( (pointer_expression "*param_3" * identifier) ))))) ;)) (expression_statement "piVar10 = (int *)param_3[1];" (assignment_expression "piVar10 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();" (assignment_expression "iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)()" identifier = (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)()" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" ( (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" * (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "param_3 = puVar6;" (assignment_expression "param_3 = puVar6" identifier = identifier) ;) (if_statement "if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }" if (parenthesized_expression "((iVar5 != 0) && (puVar6 != (uint *)0x0))" ( (binary_expression "(iVar5 != 0) && (puVar6 != (uint *)0x0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(puVar6 != (uint *)0x0)" ( (binary_expression "puVar6 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }" { (expression_statement "puVar16 = puVar4;" (assignment_expression "puVar16 = puVar4" identifier = identifier) ;) (expression_statement "iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);" (assignment_expression "iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x75dc))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x75dc)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x75dc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + 0x75dc)" ( (binary_expression "PTR_LAB_000f52c8 + 0x75dc" identifier + number_literal) )))) )) (argument_list "(puVar6,iVar5,puVar4,uVar3)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar14 = (undefined *)(uint)(iVar5 == 0);" (assignment_expression "puVar14 = (undefined *)(uint)(iVar5 == 0)" identifier = (cast_expression "(undefined *)(uint)(iVar5 == 0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar5 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))))) ;) (expression_statement "piVar10 = param_1;" (assignment_expression "piVar10 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);" (call_expression "(*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_int_000f550c)" ( (pointer_expression "*(code *)PTR_sqlite3_result_int_000f550c" * (cast_expression "(code *)PTR_sqlite3_result_int_000f550c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar14)" ( identifier , identifier ))) ;) })) }))) (labeled_statement "LAB_0005ba18:\n  iVar5 = *(int *)puVar2;" statement_identifier : (expression_statement "iVar5 = *(int *)puVar2;" (assignment_expression "iVar5 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (if_statement "if (local_24 == iVar5) {\n    return CONCAT44(iVar5,local_24);\n  }" if (parenthesized_expression "(local_24 == iVar5)" ( (binary_expression "local_24 == iVar5" identifier == identifier) )) (compound_statement "{\n    return CONCAT44(iVar5,local_24);\n  }" { (return_statement "return CONCAT44(iVar5,local_24);" return (call_expression "CONCAT44(iVar5,local_24)" identifier (argument_list "(iVar5,local_24)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar20 = FUN_0005bb88;" (assignment_expression "pcVar20 = FUN_0005bb88" identifier = identifier) ;) (expression_statement "puVar19 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar19 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar18 = *(int **)(puVar19 + 0x999e0);" (assignment_expression "piVar18 = *(int **)(puVar19 + 0x999e0)" identifier = (pointer_expression "*(int **)(puVar19 + 0x999e0)" * (cast_expression "(int **)(puVar19 + 0x999e0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x999e0)" ( (binary_expression "puVar19 + 0x999e0" identifier + number_literal) ))))) ;) (expression_statement "puStack_5c = puVar2;" (assignment_expression "puStack_5c = puVar2" identifier = identifier) ;) (expression_statement "iStack_f4 = 0;" (assignment_expression "iStack_f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_f0 = 0;" (assignment_expression "uStack_f0 = 0" identifier = number_literal) ;) (expression_statement "uStack_ec = 0;" (assignment_expression "uStack_ec = 0" identifier = number_literal) ;) (expression_statement "uStack_e8 = 0;" (assignment_expression "uStack_e8 = 0" identifier = number_literal) ;) (expression_statement "iStack_e4 = 0;" (assignment_expression "iStack_e4 = 0" identifier = number_literal) ;) (expression_statement "iStack_e0 = 0;" (assignment_expression "iStack_e0 = 0" identifier = number_literal) ;) (expression_statement "uStack_dc = 0;" (assignment_expression "uStack_dc = 0" identifier = number_literal) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "uStack_d4 = 0;" (assignment_expression "uStack_d4 = 0" identifier = number_literal) ;) (expression_statement "uStack_d0 = 0;" (assignment_expression "uStack_d0 = 0" identifier = number_literal) ;) (expression_statement "uStack_cc = 0;" (assignment_expression "uStack_cc = 0" identifier = number_literal) ;) (expression_statement "puStack_64 = (undefined4 *)*piVar18;" (assignment_expression "puStack_64 = (undefined4 *)*piVar18" identifier = (cast_expression "(undefined4 *)*piVar18" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) (expression_statement "piVar8 = aiStack_c8;" (assignment_expression "piVar8 = aiStack_c8" identifier = identifier) ;) (expression_statement "piVar11 = piVar10;" (assignment_expression "piVar11 = piVar10" identifier = identifier) ;) (expression_statement "puStack_60 = param_3;" (assignment_expression "puStack_60 = param_3" identifier = identifier) ;) (expression_statement "piStack_58 = param_1;" (assignment_expression "piStack_58 = param_1" identifier = identifier) ;) (expression_statement "puStack_54 = puVar4;" (assignment_expression "puStack_54 = puVar4" identifier = identifier) ;) (expression_statement "uStack_50 = uVar3;" (assignment_expression "uStack_50 = uVar3" identifier = identifier) ;) (expression_statement "pcStack_4c = pcVar20;" (assignment_expression "pcStack_4c = pcVar20" identifier = identifier) ;) (do_statement "do {\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  } while (piVar12 != piVar10 + 0xc);" do (compound_statement "{\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  }" { (expression_statement "piVar12 = piVar11 + 4;" (assignment_expression "piVar12 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) (expression_statement "iVar17 = piVar11[1];" (assignment_expression "iVar17 = piVar11[1]" identifier = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = piVar11[2];" (assignment_expression "iVar15 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = piVar11[3];" (assignment_expression "iVar5 = piVar11[3]" identifier = (subscript_expression "piVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar8 = *piVar11;" (assignment_expression "*piVar8 = *piVar11" (pointer_expression "*piVar8" * identifier) = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "piVar8[1] = iVar17;" (assignment_expression "piVar8[1] = iVar17" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[2] = iVar15;" (assignment_expression "piVar8[2] = iVar15" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[3] = iVar5;" (assignment_expression "piVar8[3] = iVar5" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8 = piVar8 + 4;" (assignment_expression "piVar8 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar12;" (assignment_expression "piVar11 = piVar12" identifier = identifier) ;) }) while (parenthesized_expression "(piVar12 != piVar10 + 0xc)" ( (binary_expression "piVar12 != piVar10 + 0xc" identifier != (binary_expression "piVar10 + 0xc" identifier + number_literal)) )) ;) (expression_statement "(*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);" (call_expression "(*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8)" (parenthesized_expression "(*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))" ( (pointer_expression "*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c)" * (cast_expression "(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar19 + 0x99764) + -0x7e3c)" ( (binary_expression "*(int *)(puVar19 + 0x99764) + -0x7e3c" (pointer_expression "*(int *)(puVar19 + 0x99764)" * (cast_expression "(int *)(puVar19 + 0x99764)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x99764)" ( (binary_expression "puVar19 + 0x99764" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(aiStack_c8)" ( identifier ))) ;) (if_statement "if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" if (parenthesized_expression "(aiStack_c8[2] - 0x7b3U < 0x43)" ( (binary_expression "aiStack_c8[2] - 0x7b3U < 0x43" (binary_expression "aiStack_c8[2] - 0x7b3U" (subscript_expression "aiStack_c8[2]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }" { (expression_statement "dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));" (assignment_expression "dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" identifier = (cast_expression "(double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" ( (binary_expression "dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758)" identifier + (pointer_expression "*(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758)" * (cast_expression "(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar19 + 0x9974c) + 0x2758)" ( (binary_expression "*(int *)(puVar19 + 0x9974c) + 0x2758" (pointer_expression "*(int *)(puVar19 + 0x9974c)" * (cast_expression "(int *)(puVar19 + 0x9974c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x9974c)" ( (binary_expression "puVar19 + 0x9974c" identifier + number_literal) )))) + number_literal) ))))) ))))) ;) }) (else_clause "else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" else (compound_statement "{\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" { (expression_statement "aiStack_c8[5] = 0;" (assignment_expression "aiStack_c8[5] = 0" (subscript_expression "aiStack_c8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[6] = 0;" (assignment_expression "aiStack_c8[6] = 0" (subscript_expression "aiStack_c8[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[3] = 1;" (assignment_expression "aiStack_c8[3] = 1" (subscript_expression "aiStack_c8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[2] = 2000;" (assignment_expression "aiStack_c8[2] = 2000" (subscript_expression "aiStack_c8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_c8[4] = 1;" (assignment_expression "aiStack_c8[4] = 1" (subscript_expression "aiStack_c8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "dStack_a8 = 0.0;" (assignment_expression "dStack_a8 = 0.0" identifier = number_literal) ;) }))) (expression_statement "iVar5 = *(int *)(puVar19 + 0x99740);" (assignment_expression "iVar5 = *(int *)(puVar19 + 0x99740)" identifier = (pointer_expression "*(int *)(puVar19 + 0x99740)" * (cast_expression "(int *)(puVar19 + 0x99740)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x99740)" ( (binary_expression "puVar19 + 0x99740" identifier + number_literal) ))))) ;) (expression_statement "aiStack_c8[7] = 0;" (assignment_expression "aiStack_c8[7] = 0" (subscript_expression "aiStack_c8[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_a0 = 0;" (assignment_expression "uStack_a0 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)(iVar5 + 0x7bc0))(aiStack_c8);" (call_expression "(*(code *)(iVar5 + 0x7bc0))(aiStack_c8)" (parenthesized_expression "(*(code *)(iVar5 + 0x7bc0))" ( (pointer_expression "*(code *)(iVar5 + 0x7bc0)" * (cast_expression "(code *)(iVar5 + 0x7bc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7bc0)" ( (binary_expression "iVar5 + 0x7bc0" identifier + number_literal) )))) )) (argument_list "(aiStack_c8)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);" (call_expression "(**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000)" (parenthesized_expression "(**(code **)(puVar19 + 0x99750))" ( (pointer_expression "**(code **)(puVar19 + 0x99750)" * (pointer_expression "*(code **)(puVar19 + 0x99750)" * (cast_expression "(code **)(puVar19 + 0x99750)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x99750)" ( (binary_expression "puVar19 + 0x99750" identifier + number_literal) ))))) )) (argument_list "(aiStack_c8[0],aiStack_c8[1],0,1000)" ( (subscript_expression "aiStack_c8[0]" identifier [ number_literal ]) , (subscript_expression "aiStack_c8[1]" identifier [ number_literal ]) , number_literal , number_literal ))) ;) (expression_statement "iStack_f8 = extraout_v1 + -0x18a36940;" (assignment_expression "iStack_f8 = extraout_v1 + -0x18a36940" identifier = (binary_expression "extraout_v1 + -0x18a36940" identifier + number_literal)) ;) (if_statement "if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }\n  else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }" if (parenthesized_expression "((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0))" ( (binary_expression "(*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)" (parenthesized_expression "(*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0)" ( (binary_expression "*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0" (pointer_expression "*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198)" * (cast_expression "(int *)(*(int *)(puVar19 + 0x99734) + 0x4198)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar19 + 0x99734) + 0x4198)" ( (binary_expression "*(int *)(puVar19 + 0x99734) + 0x4198" (pointer_expression "*(int *)(puVar19 + 0x99734)" * (cast_expression "(int *)(puVar19 + 0x99734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x99734)" ( (binary_expression "puVar19 + 0x99734" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)" ( (comma_expression "iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0" (assignment_expression "iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4)" identifier = (call_expression "(**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4)" (parenthesized_expression "(**(code **)(puVar19 + 0x999a0))" ( (pointer_expression "**(code **)(puVar19 + 0x999a0)" * (pointer_expression "*(code **)(puVar19 + 0x999a0)" * (cast_expression "(code **)(puVar19 + 0x999a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x999a0)" ( (binary_expression "puVar19 + 0x999a0" identifier + number_literal) ))))) )) (argument_list "(&iStack_f8,&iStack_f4)" ( (pointer_expression "&iStack_f8" & identifier) , (pointer_expression "&iStack_f4" & identifier) )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }" { (expression_statement "uStack_6c = 0;" (assignment_expression "uStack_6c = 0" identifier = number_literal) ;) (expression_statement "iStack_8c = iStack_e4 + 1;" (assignment_expression "iStack_8c = iStack_e4 + 1" identifier = (binary_expression "iStack_e4 + 1" identifier + number_literal)) ;) (expression_statement "uStack_6a = 0;" (assignment_expression "uStack_6a = 0" identifier = number_literal) ;) (expression_statement "iStack_90 = iStack_e0 + 0x76c;" (assignment_expression "iStack_90 = iStack_e0 + 0x76c" identifier = (binary_expression "iStack_e0 + 0x76c" identifier + number_literal)) ;) (expression_statement "dStack_78 = (double)iStack_f4;" (assignment_expression "dStack_78 = (double)iStack_f4" identifier = (cast_expression "(double)iStack_f4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "uStack_88 = uStack_e8;" (assignment_expression "uStack_88 = uStack_e8" identifier = identifier) ;) (expression_statement "uStack_84 = uStack_ec;" (assignment_expression "uStack_84 = uStack_ec" identifier = identifier) ;) (expression_statement "uStack_80 = uStack_f0;" (assignment_expression "uStack_80 = uStack_f0" identifier = identifier) ;) (expression_statement "uStack_70 = 0x101;" (assignment_expression "uStack_70 = 0x101" identifier = number_literal) ;) (expression_statement "(*(code *)(iVar5 + 0x7bc0))(&iStack_98);" (call_expression "(*(code *)(iVar5 + 0x7bc0))(&iStack_98)" (parenthesized_expression "(*(code *)(iVar5 + 0x7bc0))" ( (pointer_expression "*(code *)(iVar5 + 0x7bc0)" * (cast_expression "(code *)(iVar5 + 0x7bc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7bc0)" ( (binary_expression "iVar5 + 0x7bc0" identifier + number_literal) )))) )) (argument_list "(&iStack_98)" ( (pointer_expression "&iStack_98" & identifier) ))) ;) (expression_statement "uVar3 = uStack_94 - aiStack_c8[1];" (assignment_expression "uVar3 = uStack_94 - aiStack_c8[1]" identifier = (binary_expression "uStack_94 - aiStack_c8[1]" identifier - (subscript_expression "aiStack_c8[1]" identifier [ number_literal ]))) ;) (expression_statement "*puVar16 = 0;" (assignment_expression "*puVar16 = 0" (pointer_expression "*puVar16" * identifier) = number_literal) ;) (expression_statement "iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);" (assignment_expression "iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3)" identifier = (binary_expression "(iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3)" (parenthesized_expression "(iStack_98 - aiStack_c8[0])" ( (binary_expression "iStack_98 - aiStack_c8[0]" identifier - (subscript_expression "aiStack_c8[0]" identifier [ number_literal ])) )) - (call_expression "(uint)(uStack_94 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uStack_94 < uVar3)" ( (binary_expression "uStack_94 < uVar3" identifier < identifier) ))))) ;) }) (else_clause "else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }" else (compound_statement "{\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }" { (expression_statement "(**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);" (call_expression "(**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff)" (parenthesized_expression "(**(code **)(puVar19 + 0x9999c))" ( (pointer_expression "**(code **)(puVar19 + 0x9999c)" * (pointer_expression "*(code **)(puVar19 + 0x9999c)" * (cast_expression "(code **)(puVar19 + 0x9999c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x9999c)" ( (binary_expression "puVar19 + 0x9999c" identifier + number_literal) ))))) )) (argument_list "(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff)" ( identifier , (binary_expression "*(int *)(puVar19 + 0x99744) + 0x7ea8" (pointer_expression "*(int *)(puVar19 + 0x99744)" * (cast_expression "(int *)(puVar19 + 0x99744)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x99744)" ( (binary_expression "puVar19 + 0x99744" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "*puVar16 = 1;" (assignment_expression "*puVar16 = 1" (pointer_expression "*puVar16" * identifier) = number_literal) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }))) (expression_statement "puVar13 = (undefined4 *)*piVar18;" (assignment_expression "puVar13 = (undefined4 *)*piVar18" identifier = (cast_expression "(undefined4 *)*piVar18" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) (if_statement "if (puStack_64 != puVar13) {\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }" if (parenthesized_expression "(puStack_64 != puVar13)" ( (binary_expression "puStack_64 != puVar13" identifier != identifier) )) (compound_statement "{\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }" { (expression_statement "(**(code **)(puVar19 + 0x999b8))();" (call_expression "(**(code **)(puVar19 + 0x999b8))()" (parenthesized_expression "(**(code **)(puVar19 + 0x999b8))" ( (pointer_expression "**(code **)(puVar19 + 0x999b8)" * (pointer_expression "*(code **)(puVar19 + 0x999b8)" * (cast_expression "(code **)(puVar19 + 0x999b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x999b8)" ( (binary_expression "puVar19 + 0x999b8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "puVar13[5] = 1;" (assignment_expression "puVar13[5] = 1" (subscript_expression "puVar13[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar21 = FUN_0005b00c(*puVar13);" (assignment_expression "uVar21 = FUN_0005b00c(*puVar13)" identifier = (call_expression "FUN_0005b00c(*puVar13)" identifier (argument_list "(*puVar13)" ( (pointer_expression "*puVar13" * identifier) )))) ;) (return_statement "return uVar21;" return identifier ;) })) (return_statement "return CONCAT44(iVar5,uVar3);" return (call_expression "CONCAT44(iVar5,uVar3)" identifier (argument_list "(iVar5,uVar3)" ( identifier , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) & LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }))) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ))))) ;) }) (else_clause else (compound_statement { (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 IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (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 IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (return_statement return IDENT ;) })) (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })))
(function_definition "undefined8 FUN_0005b91c(int *param_1,undefined *param_2,uint *param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  uint *puVar4;\n  int iVar5;\n  uint *puVar6;\n  byte *pbVar7;\n  int *piVar8;\n  byte bVar9;\n  int extraout_v1;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  uint *puVar16;\n  int iVar17;\n  int *piVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  undefined8 uVar21;\n  int iStack_f8;\n  int iStack_f4;\n  undefined4 uStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_dc;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  int aiStack_c8 [8];\n  double dStack_a8;\n  undefined1 uStack_a0;\n  int iStack_98;\n  uint uStack_94;\n  int iStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  double dStack_78;\n  undefined4 uStack_70;\n  undefined1 uStack_6c;\n  undefined1 uStack_6a;\n  undefined4 *puStack_64;\n  uint *puStack_60;\n  undefined *puStack_5c;\n  int *piStack_58;\n  uint *puStack_54;\n  uint uStack_50;\n  code *pcStack_4c;\n  undefined4 local_2c;\n  byte *local_28;\n  int local_24;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_24 = *(int *)PTR___stack_chk_guard_000f5568;\n  puVar14 = param_2;\n  puVar16 = param_3;\n  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();\n  puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);\n  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);\n  if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }\n  if (param_2 == (undefined *)0x3) {\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }\n  else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }\nLAB_0005ba18:\n  iVar5 = *(int *)puVar2;\n  if (local_24 == iVar5) {\n    return CONCAT44(iVar5,local_24);\n  }\n  pcVar20 = FUN_0005bb88;\n  puVar19 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar18 = *(int **)(puVar19 + 0x999e0);\n  puStack_5c = puVar2;\n  iStack_f4 = 0;\n  uStack_f0 = 0;\n  uStack_ec = 0;\n  uStack_e8 = 0;\n  iStack_e4 = 0;\n  iStack_e0 = 0;\n  uStack_dc = 0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  puStack_64 = (undefined4 *)*piVar18;\n  piVar8 = aiStack_c8;\n  piVar11 = piVar10;\n  puStack_60 = param_3;\n  piStack_58 = param_1;\n  puStack_54 = puVar4;\n  uStack_50 = uVar3;\n  pcStack_4c = pcVar20;\n  do {\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  } while (piVar12 != piVar10 + 0xc);\n  (*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);\n  if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }\n  iVar5 = *(int *)(puVar19 + 0x99740);\n  aiStack_c8[7] = 0;\n  uStack_a0 = 0;\n  (*(code *)(iVar5 + 0x7bc0))(aiStack_c8);\n  (**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);\n  iStack_f8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }\n  else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }\n  puVar13 = (undefined4 *)*piVar18;\n  if (puStack_64 != puVar13) {\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }\n  return CONCAT44(iVar5,uVar3);\n}" (type_identifier "undefined8") (function_declarator "FUN_0005b91c(int *param_1,undefined *param_2,uint *param_3)" (identifier "FUN_0005b91c") (parameter_list "(int *param_1,undefined *param_2,uint *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined *param_2" (type_identifier "undefined") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  uint *puVar4;\n  int iVar5;\n  uint *puVar6;\n  byte *pbVar7;\n  int *piVar8;\n  byte bVar9;\n  int extraout_v1;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  uint *puVar16;\n  int iVar17;\n  int *piVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  undefined8 uVar21;\n  int iStack_f8;\n  int iStack_f4;\n  undefined4 uStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_dc;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 uStack_d0;\n  undefined4 uStack_cc;\n  int aiStack_c8 [8];\n  double dStack_a8;\n  undefined1 uStack_a0;\n  int iStack_98;\n  uint uStack_94;\n  int iStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  double dStack_78;\n  undefined4 uStack_70;\n  undefined1 uStack_6c;\n  undefined1 uStack_6a;\n  undefined4 *puStack_64;\n  uint *puStack_60;\n  undefined *puStack_5c;\n  int *piStack_58;\n  uint *puStack_54;\n  uint uStack_50;\n  code *pcStack_4c;\n  undefined4 local_2c;\n  byte *local_28;\n  int local_24;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_24 = *(int *)PTR___stack_chk_guard_000f5568;\n  puVar14 = param_2;\n  puVar16 = param_3;\n  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();\n  puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);\n  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);\n  if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }\n  if (param_2 == (undefined *)0x3) {\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }\n  else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }\nLAB_0005ba18:\n  iVar5 = *(int *)puVar2;\n  if (local_24 == iVar5) {\n    return CONCAT44(iVar5,local_24);\n  }\n  pcVar20 = FUN_0005bb88;\n  puVar19 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar18 = *(int **)(puVar19 + 0x999e0);\n  puStack_5c = puVar2;\n  iStack_f4 = 0;\n  uStack_f0 = 0;\n  uStack_ec = 0;\n  uStack_e8 = 0;\n  iStack_e4 = 0;\n  iStack_e0 = 0;\n  uStack_dc = 0;\n  uStack_d8 = 0;\n  uStack_d4 = 0;\n  uStack_d0 = 0;\n  uStack_cc = 0;\n  puStack_64 = (undefined4 *)*piVar18;\n  piVar8 = aiStack_c8;\n  piVar11 = piVar10;\n  puStack_60 = param_3;\n  piStack_58 = param_1;\n  puStack_54 = puVar4;\n  uStack_50 = uVar3;\n  pcStack_4c = pcVar20;\n  do {\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  } while (piVar12 != piVar10 + 0xc);\n  (*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);\n  if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }\n  iVar5 = *(int *)(puVar19 + 0x99740);\n  aiStack_c8[7] = 0;\n  uStack_a0 = 0;\n  (*(code *)(iVar5 + 0x7bc0))(aiStack_c8);\n  (**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);\n  iStack_f8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }\n  else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }\n  puVar13 = (undefined4 *)*piVar18;\n  if (puStack_64 != puVar13) {\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }\n  return CONCAT44(iVar5,uVar3);\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint *puVar4;" (type_identifier "uint") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "byte bVar9;" (type_identifier "byte") (identifier "bVar9") (; ";")) (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint *puVar16;" (type_identifier "uint") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "undefined *puVar19;" (type_identifier "undefined") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "undefined8 uVar21;" (type_identifier "undefined8") (identifier "uVar21") (; ";")) (declaration "int iStack_f8;" (primitive_type "int") (identifier "iStack_f8") (; ";")) (declaration "int iStack_f4;" (primitive_type "int") (identifier "iStack_f4") (; ";")) (declaration "undefined4 uStack_f0;" (type_identifier "undefined4") (identifier "uStack_f0") (; ";")) (declaration "undefined4 uStack_ec;" (type_identifier "undefined4") (identifier "uStack_ec") (; ";")) (declaration "undefined4 uStack_e8;" (type_identifier "undefined4") (identifier "uStack_e8") (; ";")) (declaration "int iStack_e4;" (primitive_type "int") (identifier "iStack_e4") (; ";")) (declaration "int iStack_e0;" (primitive_type "int") (identifier "iStack_e0") (; ";")) (declaration "undefined4 uStack_dc;" (type_identifier "undefined4") (identifier "uStack_dc") (; ";")) (declaration "undefined4 uStack_d8;" (type_identifier "undefined4") (identifier "uStack_d8") (; ";")) (declaration "undefined4 uStack_d4;" (type_identifier "undefined4") (identifier "uStack_d4") (; ";")) (declaration "undefined4 uStack_d0;" (type_identifier "undefined4") (identifier "uStack_d0") (; ";")) (declaration "undefined4 uStack_cc;" (type_identifier "undefined4") (identifier "uStack_cc") (; ";")) (declaration "int aiStack_c8 [8];" (primitive_type "int") (array_declarator "aiStack_c8 [8]" (identifier "aiStack_c8") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "double dStack_a8;" (primitive_type "double") (identifier "dStack_a8") (; ";")) (declaration "undefined1 uStack_a0;" (type_identifier "undefined1") (identifier "uStack_a0") (; ";")) (declaration "int iStack_98;" (primitive_type "int") (identifier "iStack_98") (; ";")) (declaration "uint uStack_94;" (type_identifier "uint") (identifier "uStack_94") (; ";")) (declaration "int iStack_90;" (primitive_type "int") (identifier "iStack_90") (; ";")) (declaration "int iStack_8c;" (primitive_type "int") (identifier "iStack_8c") (; ";")) (declaration "undefined4 uStack_88;" (type_identifier "undefined4") (identifier "uStack_88") (; ";")) (declaration "undefined4 uStack_84;" (type_identifier "undefined4") (identifier "uStack_84") (; ";")) (declaration "undefined4 uStack_80;" (type_identifier "undefined4") (identifier "uStack_80") (; ";")) (declaration "double dStack_78;" (primitive_type "double") (identifier "dStack_78") (; ";")) (declaration "undefined4 uStack_70;" (type_identifier "undefined4") (identifier "uStack_70") (; ";")) (declaration "undefined1 uStack_6c;" (type_identifier "undefined1") (identifier "uStack_6c") (; ";")) (declaration "undefined1 uStack_6a;" (type_identifier "undefined1") (identifier "uStack_6a") (; ";")) (declaration "undefined4 *puStack_64;" (type_identifier "undefined4") (pointer_declarator "*puStack_64" (* "*") (identifier "puStack_64")) (; ";")) (declaration "uint *puStack_60;" (type_identifier "uint") (pointer_declarator "*puStack_60" (* "*") (identifier "puStack_60")) (; ";")) (declaration "undefined *puStack_5c;" (type_identifier "undefined") (pointer_declarator "*puStack_5c" (* "*") (identifier "puStack_5c")) (; ";")) (declaration "int *piStack_58;" (primitive_type "int") (pointer_declarator "*piStack_58" (* "*") (identifier "piStack_58")) (; ";")) (declaration "uint *puStack_54;" (type_identifier "uint") (pointer_declarator "*puStack_54" (* "*") (identifier "puStack_54")) (; ";")) (declaration "uint uStack_50;" (type_identifier "uint") (identifier "uStack_50") (; ";")) (declaration "code *pcStack_4c;" (type_identifier "code") (pointer_declarator "*pcStack_4c" (* "*") (identifier "pcStack_4c")) (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "byte *local_28;" (type_identifier "byte") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_000f5568")) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000f5568" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000f5568" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000f5568")))) (; ";")) (expression_statement "puVar14 = param_2;" (assignment_expression "puVar14 = param_2" (identifier "puVar14") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar16 = param_3;" (assignment_expression "puVar16 = param_3" (identifier "puVar16") (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();" (assignment_expression "uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)()" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR_sqlite3_context_db_handle_000f5434)()" (parenthesized_expression "(*(code *)PTR_sqlite3_context_db_handle_000f5434)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_context_db_handle_000f5434" (* "*") (cast_expression "(code *)PTR_sqlite3_context_db_handle_000f5434" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_context_db_handle_000f5434"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);" (assignment_expression "puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1)" (identifier "puVar4") (= "=") (cast_expression "(uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_sqlite3_user_data_000f5598)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_user_data_000f5598)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_user_data_000f5598" (* "*") (cast_expression "(code *)PTR_sqlite3_user_data_000f5598" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_user_data_000f5598"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);" (assignment_expression "iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3)" (parenthesized_expression "(*(code *)PTR_sqlite3_value_bytes_000f53d8)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_value_bytes_000f53d8" (* "*") (cast_expression "(code *)PTR_sqlite3_value_bytes_000f53d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_value_bytes_000f53d8"))) () ")")) (argument_list "(*param_3)" (( "(") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")")))) (; ";")) (if_statement "if (*(int *)(uVar3 + 0x8c) < iVar5) {\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }" (if "if") (parenthesized_expression "(*(int *)(uVar3 + 0x8c) < iVar5)" (( "(") (binary_expression "*(int *)(uVar3 + 0x8c) < iVar5" (pointer_expression "*(int *)(uVar3 + 0x8c)" (* "*") (cast_expression "(int *)(uVar3 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar3 + 0x8c)" (( "(") (binary_expression "uVar3 + 0x8c" (identifier "uVar3") (+ "+") (number_literal "0x8c")) () ")")))) (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e54;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n    goto LAB_0005ba18;\n  }" ({ "{") (expression_statement "puVar16 = (uint *)0xffffffff;" (assignment_expression "puVar16 = (uint *)0xffffffff" (identifier "puVar16") (= "=") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "puVar14 = PTR_LAB_000f52cc + 0x7e54;" (assignment_expression "puVar14 = PTR_LAB_000f52cc + 0x7e54" (identifier "puVar14") (= "=") (binary_expression "PTR_LAB_000f52cc + 0x7e54" (identifier "PTR_LAB_000f52cc") (+ "+") (number_literal "0x7e54"))) (; ";")) (expression_statement "piVar10 = param_1;" (assignment_expression "piVar10 = param_1" (identifier "piVar10") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);" (call_expression "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_000f5524)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_result_error_000f5524" (* "*") (cast_expression "(code *)PTR_sqlite3_result_error_000f5524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_result_error_000f5524"))) () ")")) (argument_list "(param_1,puVar14)" (( "(") (identifier "param_1") (, ",") (identifier "puVar14") () ")"))) (; ";")) (goto_statement "goto LAB_0005ba18;" (goto "goto") (statement_identifier "LAB_0005ba18") (; ";")) (} "}"))) (if_statement "if (param_2 == (undefined *)0x3) {\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }\n  else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }" (if "if") (parenthesized_expression "(param_2 == (undefined *)0x3)" (( "(") (binary_expression "param_2 == (undefined *)0x3" (identifier "param_2") (== "==") (cast_expression "(undefined *)0x3" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) () ")")) (compound_statement "{\n    piVar10 = (int *)param_3[2];\n    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();\n    if (local_28 == (byte *)0x0) goto LAB_0005ba18;\n    bVar9 = *local_28;\n    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }\n    puVar16 = (uint *)0xffffffff;\n    puVar14 = PTR_LAB_000f52cc + 0x7e78;\n    piVar10 = param_1;\n    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);\n  }" ({ "{") (expression_statement "piVar10 = (int *)param_3[2];" (assignment_expression "piVar10 = (int *)param_3[2]" (identifier "piVar10") (= "=") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();" (assignment_expression "local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)()" (identifier "local_28") (= "=") (cast_expression "(byte *)(*(code *)PTR_sqlite3_value_text_000f539c)()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)()" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" (* "*") (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_value_text_000f539c"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (local_28 == (byte *)0x0) goto LAB_0005ba18;" (if "if") (parenthesized_expression "(local_28 == (byte *)0x0)" (( "(") (binary_expression "local_28 == (byte *)0x0" (identifier "local_28") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0005ba18;" (goto "goto") (statement_identifier "LAB_0005ba18") (; ";"))) (expression_statement "bVar9 = *local_28;" (assignment_expression "bVar9 = *local_28" (identifier "bVar9") (= "=") (pointer_expression "*local_28" (* "*") (identifier "local_28"))) (; ";")) (if_statement "if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }" (if "if") (parenthesized_expression "((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff))" (( "(") (binary_expression "(bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)" (parenthesized_expression "(bVar9 != 0)" (( "(") (binary_expression "bVar9 != 0" (identifier "bVar9") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = 0, local_28 != (byte *)0xffffffff)" (( "(") (comma_expression "iVar5 = 0, local_28 != (byte *)0xffffffff" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (, ",") (binary_expression "local_28 != (byte *)0xffffffff" (identifier "local_28") (!= "!=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff")))) () ")"))) () ")")) (compound_statement "{\n      puVar16 = (uint *)0xffffffc0;\n      puVar14 = (undefined *)0x80;\n      pbVar7 = local_28;\n      do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));\n      if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }\n    }" ({ "{") (expression_statement "puVar16 = (uint *)0xffffffc0;" (assignment_expression "puVar16 = (uint *)0xffffffc0" (identifier "puVar16") (= "=") (cast_expression "(uint *)0xffffffc0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffc0"))) (; ";")) (expression_statement "puVar14 = (undefined *)0x80;" (assignment_expression "puVar14 = (undefined *)0x80" (identifier "puVar14") (= "=") (cast_expression "(undefined *)0x80" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x80"))) (; ";")) (expression_statement "pbVar7 = local_28;" (assignment_expression "pbVar7 = local_28" (identifier "pbVar7") (= "=") (identifier "local_28")) (; ";")) (do_statement "do {\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));" (do "do") (compound_statement "{\n        bVar1 = 0xbf < bVar9;\n        bVar9 = pbVar7[1];\n        pbVar7 = pbVar7 + 1;\n        if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }\n        iVar5 = iVar5 + 1;\n      }" ({ "{") (expression_statement "bVar1 = 0xbf < bVar9;" (assignment_expression "bVar1 = 0xbf < bVar9" (identifier "bVar1") (= "=") (binary_expression "0xbf < bVar9" (number_literal "0xbf") (< "<") (identifier "bVar9"))) (; ";")) (expression_statement "bVar9 = pbVar7[1];" (assignment_expression "bVar9 = pbVar7[1]" (identifier "bVar9") (= "=") (subscript_expression "pbVar7[1]" (identifier "pbVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar1) {\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n          while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }\n        }" ({ "{") (while_statement "while ((bVar9 & 0xc0) == 0x80) {\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }" (while "while") (parenthesized_expression "((bVar9 & 0xc0) == 0x80)" (( "(") (binary_expression "(bVar9 & 0xc0) == 0x80" (parenthesized_expression "(bVar9 & 0xc0)" (( "(") (binary_expression "bVar9 & 0xc0" (identifier "bVar9") (& "&") (number_literal "0xc0")) () ")")) (== "==") (number_literal "0x80")) () ")")) (compound_statement "{\n            pbVar7 = pbVar7 + 1;\n            bVar9 = *pbVar7;\n          }" ({ "{") (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar9 = *pbVar7;" (assignment_expression "bVar9 = *pbVar7" (identifier "bVar9") (= "=") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff))" (( "(") (binary_expression "(bVar9 != 0) && (pbVar7 != (byte *)0xffffffff)" (parenthesized_expression "(bVar9 != 0)" (( "(") (binary_expression "bVar9 != 0" (identifier "bVar9") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pbVar7 != (byte *)0xffffffff)" (( "(") (binary_expression "pbVar7 != (byte *)0xffffffff" (identifier "pbVar7") (!= "!=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")"))) () ")")) (; ";")) (if_statement "if (iVar5 == 1) {\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }" (if "if") (parenthesized_expression "(iVar5 == 1)" (( "(") (binary_expression "iVar5 == 1" (identifier "iVar5") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);\n        if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }\n        if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }\n        goto LAB_0005b9bc;\n      }" ({ "{") (expression_statement "uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);" (assignment_expression "uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28)" (identifier "uVar3") (= "=") (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x168))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x168)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x168)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + 0x168)" (( "(") (binary_expression "PTR_LAB_000f52c8 + 0x168" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "0x168")) () ")")))) () ")")) (argument_list "(&local_28)" (( "(") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")")))) (; ";")) (if_statement "if (*(byte *)puVar4 == uVar3) {\n          local_2c = *puVar4 & 0xffffff;\n        }\n        else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }" (if "if") (parenthesized_expression "(*(byte *)puVar4 == uVar3)" (( "(") (binary_expression "*(byte *)puVar4 == uVar3" (pointer_expression "*(byte *)puVar4" (* "*") (cast_expression "(byte *)puVar4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (== "==") (identifier "uVar3")) () ")")) (compound_statement "{\n          local_2c = *puVar4 & 0xffffff;\n        }" ({ "{") (expression_statement "local_2c = *puVar4 & 0xffffff;" (assignment_expression "local_2c = *puVar4 & 0xffffff" (identifier "local_2c") (= "=") (binary_expression "*puVar4 & 0xffffff" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (& "&") (number_literal "0xffffff"))) (; ";")) (} "}")) (else_clause "else {\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }" (else "else") (compound_statement "{\n          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;\n          local_2c = *puVar4;\n        }" ({ "{") (if_statement "if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;" (if "if") (parenthesized_expression "(*(byte *)((int)puVar4 + 1) != uVar3)" (( "(") (binary_expression "*(byte *)((int)puVar4 + 1) != uVar3" (pointer_expression "*(byte *)((int)puVar4 + 1)" (* "*") (cast_expression "(byte *)((int)puVar4 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar4 + 1)" (( "(") (binary_expression "(int)puVar4 + 1" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (+ "+") (number_literal "1")) () ")")))) (!= "!=") (identifier "uVar3")) () ")")) (goto_statement "goto LAB_0005b9bc;" (goto "goto") (statement_identifier "LAB_0005b9bc") (; ";"))) (expression_statement "local_2c = *puVar4;" (assignment_expression "local_2c = *puVar4" (identifier "local_2c") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (} "}")))) (if_statement "if ((local_2c >> 0x10 & 0xff) == uVar3) {\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }\n        else {\n          puVar4 = &local_2c;\n        }" (if "if") (parenthesized_expression "((local_2c >> 0x10 & 0xff) == uVar3)" (( "(") (binary_expression "(local_2c >> 0x10 & 0xff) == uVar3" (parenthesized_expression "(local_2c >> 0x10 & 0xff)" (( "(") (binary_expression "local_2c >> 0x10 & 0xff" (binary_expression "local_2c >> 0x10" (identifier "local_2c") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")")) (== "==") (identifier "uVar3")) () ")")) (compound_statement "{\n          local_2c._1_3_ = (uint3)local_2c._2_2_;\n          puVar4 = &local_2c;\n        }" ({ "{") (expression_statement "local_2c._1_3_ = (uint3)local_2c._2_2_;" (assignment_expression "local_2c._1_3_ = (uint3)local_2c._2_2_" (field_expression "local_2c._1_3_" (identifier "local_2c") (. ".") (field_identifier "_1_3_")) (= "=") (cast_expression "(uint3)local_2c._2_2_" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (field_expression "local_2c._2_2_" (identifier "local_2c") (. ".") (field_identifier "_2_2_")))) (; ";")) (expression_statement "puVar4 = &local_2c;" (assignment_expression "puVar4 = &local_2c" (identifier "puVar4") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (} "}")) (else_clause "else {\n          puVar4 = &local_2c;\n        }" (else "else") (compound_statement "{\n          puVar4 = &local_2c;\n        }" ({ "{") (expression_statement "puVar4 = &local_2c;" (assignment_expression "puVar4 = &local_2c" (identifier "puVar4") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0005b9bc;" (goto "goto") (statement_identifier "LAB_0005b9bc") (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar16 = (uint *)0xffffffff;" (assignment_expression "puVar16 = (uint *)0xffffffff" (identifier "puVar16") (= "=") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "puVar14 = PTR_LAB_000f52cc + 0x7e78;" (assignment_expression "puVar14 = PTR_LAB_000f52cc + 0x7e78" (identifier "puVar14") (= "=") (binary_expression "PTR_LAB_000f52cc + 0x7e78" (identifier "PTR_LAB_000f52cc") (+ "+") (number_literal "0x7e78"))) (; ";")) (expression_statement "piVar10 = param_1;" (assignment_expression "piVar10 = param_1" (identifier "piVar10") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);" (call_expression "(*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_000f5524)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_result_error_000f5524" (* "*") (cast_expression "(code *)PTR_sqlite3_result_error_000f5524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_result_error_000f5524"))) () ")")) (argument_list "(param_1,puVar14)" (( "(") (identifier "param_1") (, ",") (identifier "puVar14") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }" (else "else") (compound_statement "{\n    uVar3 = (uint)*(byte *)((int)puVar4 + 2);\nLAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);\n    piVar10 = (int *)param_3[1];\n    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();\n    param_3 = puVar6;\n    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }\n  }" ({ "{") (expression_statement "uVar3 = (uint)*(byte *)((int)puVar4 + 2);" (assignment_expression "uVar3 = (uint)*(byte *)((int)puVar4 + 2)" (identifier "uVar3") (= "=") (binary_expression "(uint)*(byte *)((int)puVar4 + 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)puVar4 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar4 + 2)" (( "(") (binary_expression "(int)puVar4 + 2" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (labeled_statement "LAB_0005b9bc:\n    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);" (statement_identifier "LAB_0005b9bc") (: ":") (expression_statement "puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);" (assignment_expression "puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3)" (identifier "puVar6") (= "=") (cast_expression "(uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3)" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" (* "*") (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_value_text_000f539c"))) () ")")) (argument_list "(*param_3)" (( "(") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")"))))) (; ";"))) (expression_statement "piVar10 = (int *)param_3[1];" (assignment_expression "piVar10 = (int *)param_3[1]" (identifier "piVar10") (= "=") (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();" (assignment_expression "iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)()" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_sqlite3_value_text_000f539c)()" (parenthesized_expression "(*(code *)PTR_sqlite3_value_text_000f539c)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_value_text_000f539c" (* "*") (cast_expression "(code *)PTR_sqlite3_value_text_000f539c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_value_text_000f539c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_3 = puVar6;" (assignment_expression "param_3 = puVar6" (identifier "param_3") (= "=") (identifier "puVar6")) (; ";")) (if_statement "if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }" (if "if") (parenthesized_expression "((iVar5 != 0) && (puVar6 != (uint *)0x0))" (( "(") (binary_expression "(iVar5 != 0) && (puVar6 != (uint *)0x0)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar6 != (uint *)0x0)" (( "(") (binary_expression "puVar6 != (uint *)0x0" (identifier "puVar6") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n      puVar16 = puVar4;\n      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);\n      puVar14 = (undefined *)(uint)(iVar5 == 0);\n      piVar10 = param_1;\n      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);\n    }" ({ "{") (expression_statement "puVar16 = puVar4;" (assignment_expression "puVar16 = puVar4" (identifier "puVar16") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);" (assignment_expression "iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3)" (identifier "iVar5") (= "=") (call_expression "(*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + 0x75dc))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + 0x75dc)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + 0x75dc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + 0x75dc)" (( "(") (binary_expression "PTR_LAB_000f52c8 + 0x75dc" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "0x75dc")) () ")")))) () ")")) (argument_list "(puVar6,iVar5,puVar4,uVar3)" (( "(") (identifier "puVar6") (, ",") (identifier "iVar5") (, ",") (identifier "puVar4") (, ",") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "puVar14 = (undefined *)(uint)(iVar5 == 0);" (assignment_expression "puVar14 = (undefined *)(uint)(iVar5 == 0)" (identifier "puVar14") (= "=") (cast_expression "(undefined *)(uint)(iVar5 == 0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(iVar5 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "piVar10 = param_1;" (assignment_expression "piVar10 = param_1" (identifier "piVar10") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);" (call_expression "(*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_int_000f550c)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_result_int_000f550c" (* "*") (cast_expression "(code *)PTR_sqlite3_result_int_000f550c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_result_int_000f550c"))) () ")")) (argument_list "(param_1,puVar14)" (( "(") (identifier "param_1") (, ",") (identifier "puVar14") () ")"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0005ba18:\n  iVar5 = *(int *)puVar2;" (statement_identifier "LAB_0005ba18") (: ":") (expression_statement "iVar5 = *(int *)puVar2;" (assignment_expression "iVar5 = *(int *)puVar2" (identifier "iVar5") (= "=") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) (; ";"))) (if_statement "if (local_24 == iVar5) {\n    return CONCAT44(iVar5,local_24);\n  }" (if "if") (parenthesized_expression "(local_24 == iVar5)" (( "(") (binary_expression "local_24 == iVar5" (identifier "local_24") (== "==") (identifier "iVar5")) () ")")) (compound_statement "{\n    return CONCAT44(iVar5,local_24);\n  }" ({ "{") (return_statement "return CONCAT44(iVar5,local_24);" (return "return") (call_expression "CONCAT44(iVar5,local_24)" (identifier "CONCAT44") (argument_list "(iVar5,local_24)" (( "(") (identifier "iVar5") (, ",") (identifier "local_24") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar20 = FUN_0005bb88;" (assignment_expression "pcVar20 = FUN_0005bb88" (identifier "pcVar20") (= "=") (identifier "FUN_0005bb88")) (; ";")) (expression_statement "puVar19 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar19 = PTR___stack_chk_fail_000f5540" (identifier "puVar19") (= "=") (identifier "PTR___stack_chk_fail_000f5540")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000f5540" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000f5540"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar18 = *(int **)(puVar19 + 0x999e0);" (assignment_expression "piVar18 = *(int **)(puVar19 + 0x999e0)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(puVar19 + 0x999e0)" (* "*") (cast_expression "(int **)(puVar19 + 0x999e0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x999e0)" (( "(") (binary_expression "puVar19 + 0x999e0" (identifier "puVar19") (+ "+") (number_literal "0x999e0")) () ")"))))) (; ";")) (expression_statement "puStack_5c = puVar2;" (assignment_expression "puStack_5c = puVar2" (identifier "puStack_5c") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "iStack_f4 = 0;" (assignment_expression "iStack_f4 = 0" (identifier "iStack_f4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_f0 = 0;" (assignment_expression "uStack_f0 = 0" (identifier "uStack_f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_ec = 0;" (assignment_expression "uStack_ec = 0" (identifier "uStack_ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_e8 = 0;" (assignment_expression "uStack_e8 = 0" (identifier "uStack_e8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_e4 = 0;" (assignment_expression "iStack_e4 = 0" (identifier "iStack_e4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_e0 = 0;" (assignment_expression "iStack_e0 = 0" (identifier "iStack_e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_dc = 0;" (assignment_expression "uStack_dc = 0" (identifier "uStack_dc") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" (identifier "uStack_d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_d4 = 0;" (assignment_expression "uStack_d4 = 0" (identifier "uStack_d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_d0 = 0;" (assignment_expression "uStack_d0 = 0" (identifier "uStack_d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_cc = 0;" (assignment_expression "uStack_cc = 0" (identifier "uStack_cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "puStack_64 = (undefined4 *)*piVar18;" (assignment_expression "puStack_64 = (undefined4 *)*piVar18" (identifier "puStack_64") (= "=") (cast_expression "(undefined4 *)*piVar18" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar18" (* "*") (identifier "piVar18")))) (; ";")) (expression_statement "piVar8 = aiStack_c8;" (assignment_expression "piVar8 = aiStack_c8" (identifier "piVar8") (= "=") (identifier "aiStack_c8")) (; ";")) (expression_statement "piVar11 = piVar10;" (assignment_expression "piVar11 = piVar10" (identifier "piVar11") (= "=") (identifier "piVar10")) (; ";")) (expression_statement "puStack_60 = param_3;" (assignment_expression "puStack_60 = param_3" (identifier "puStack_60") (= "=") (identifier "param_3")) (; ";")) (expression_statement "piStack_58 = param_1;" (assignment_expression "piStack_58 = param_1" (identifier "piStack_58") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puStack_54 = puVar4;" (assignment_expression "puStack_54 = puVar4" (identifier "puStack_54") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "uStack_50 = uVar3;" (assignment_expression "uStack_50 = uVar3" (identifier "uStack_50") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "pcStack_4c = pcVar20;" (assignment_expression "pcStack_4c = pcVar20" (identifier "pcStack_4c") (= "=") (identifier "pcVar20")) (; ";")) (do_statement "do {\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  } while (piVar12 != piVar10 + 0xc);" (do "do") (compound_statement "{\n    piVar12 = piVar11 + 4;\n    iVar17 = piVar11[1];\n    iVar15 = piVar11[2];\n    iVar5 = piVar11[3];\n    *piVar8 = *piVar11;\n    piVar8[1] = iVar17;\n    piVar8[2] = iVar15;\n    piVar8[3] = iVar5;\n    piVar8 = piVar8 + 4;\n    piVar11 = piVar12;\n  }" ({ "{") (expression_statement "piVar12 = piVar11 + 4;" (assignment_expression "piVar12 = piVar11 + 4" (identifier "piVar12") (= "=") (binary_expression "piVar11 + 4" (identifier "piVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar17 = piVar11[1];" (assignment_expression "iVar17 = piVar11[1]" (identifier "iVar17") (= "=") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar15 = piVar11[2];" (assignment_expression "iVar15 = piVar11[2]" (identifier "iVar15") (= "=") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar5 = piVar11[3];" (assignment_expression "iVar5 = piVar11[3]" (identifier "iVar5") (= "=") (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*piVar8 = *piVar11;" (assignment_expression "*piVar8 = *piVar11" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "piVar8[1] = iVar17;" (assignment_expression "piVar8[1] = iVar17" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "piVar8[2] = iVar15;" (assignment_expression "piVar8[2] = iVar15" (subscript_expression "piVar8[2]" (identifier "piVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "piVar8[3] = iVar5;" (assignment_expression "piVar8[3] = iVar5" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piVar8 = piVar8 + 4;" (assignment_expression "piVar8 = piVar8 + 4" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar11 = piVar12;" (assignment_expression "piVar11 = piVar12" (identifier "piVar11") (= "=") (identifier "piVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar12 != piVar10 + 0xc)" (( "(") (binary_expression "piVar12 != piVar10 + 0xc" (identifier "piVar12") (!= "!=") (binary_expression "piVar10 + 0xc" (identifier "piVar10") (+ "+") (number_literal "0xc"))) () ")")) (; ";")) (expression_statement "(*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);" (call_expression "(*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8)" (parenthesized_expression "(*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c)" (* "*") (cast_expression "(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar19 + 0x99764) + -0x7e3c)" (( "(") (binary_expression "*(int *)(puVar19 + 0x99764) + -0x7e3c" (pointer_expression "*(int *)(puVar19 + 0x99764)" (* "*") (cast_expression "(int *)(puVar19 + 0x99764)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x99764)" (( "(") (binary_expression "puVar19 + 0x99764" (identifier "puVar19") (+ "+") (number_literal "0x99764")) () ")")))) (+ "+") (number_literal "-0x7e3c")) () ")")))) () ")")) (argument_list "(aiStack_c8)" (( "(") (identifier "aiStack_c8") () ")"))) (; ";")) (if_statement "if (aiStack_c8[2] - 0x7b3U < 0x43) {\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }\n  else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" (if "if") (parenthesized_expression "(aiStack_c8[2] - 0x7b3U < 0x43)" (( "(") (binary_expression "aiStack_c8[2] - 0x7b3U < 0x43" (binary_expression "aiStack_c8[2] - 0x7b3U" (subscript_expression "aiStack_c8[2]" (identifier "aiStack_c8") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "0x7b3U")) (< "<") (number_literal "0x43")) () ")")) (compound_statement "{\n    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));\n  }" ({ "{") (expression_statement "dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));" (assignment_expression "dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" (identifier "dStack_a8") (= "=") (cast_expression "(double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758))" (( "(") (binary_expression "dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758)" (identifier "dStack_a8") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758)" (* "*") (cast_expression "(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar19 + 0x9974c) + 0x2758)" (( "(") (binary_expression "*(int *)(puVar19 + 0x9974c) + 0x2758" (pointer_expression "*(int *)(puVar19 + 0x9974c)" (* "*") (cast_expression "(int *)(puVar19 + 0x9974c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x9974c)" (( "(") (binary_expression "puVar19 + 0x9974c" (identifier "puVar19") (+ "+") (number_literal "0x9974c")) () ")")))) (+ "+") (number_literal "0x2758")) () ")"))))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" (else "else") (compound_statement "{\n    aiStack_c8[5] = 0;\n    aiStack_c8[6] = 0;\n    aiStack_c8[3] = 1;\n    aiStack_c8[2] = 2000;\n    aiStack_c8[4] = 1;\n    dStack_a8 = 0.0;\n  }" ({ "{") (expression_statement "aiStack_c8[5] = 0;" (assignment_expression "aiStack_c8[5] = 0" (subscript_expression "aiStack_c8[5]" (identifier "aiStack_c8") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_c8[6] = 0;" (assignment_expression "aiStack_c8[6] = 0" (subscript_expression "aiStack_c8[6]" (identifier "aiStack_c8") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_c8[3] = 1;" (assignment_expression "aiStack_c8[3] = 1" (subscript_expression "aiStack_c8[3]" (identifier "aiStack_c8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "aiStack_c8[2] = 2000;" (assignment_expression "aiStack_c8[2] = 2000" (subscript_expression "aiStack_c8[2]" (identifier "aiStack_c8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "2000")) (; ";")) (expression_statement "aiStack_c8[4] = 1;" (assignment_expression "aiStack_c8[4] = 1" (subscript_expression "aiStack_c8[4]" (identifier "aiStack_c8") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "dStack_a8 = 0.0;" (assignment_expression "dStack_a8 = 0.0" (identifier "dStack_a8") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "iVar5 = *(int *)(puVar19 + 0x99740);" (assignment_expression "iVar5 = *(int *)(puVar19 + 0x99740)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar19 + 0x99740)" (* "*") (cast_expression "(int *)(puVar19 + 0x99740)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x99740)" (( "(") (binary_expression "puVar19 + 0x99740" (identifier "puVar19") (+ "+") (number_literal "0x99740")) () ")"))))) (; ";")) (expression_statement "aiStack_c8[7] = 0;" (assignment_expression "aiStack_c8[7] = 0" (subscript_expression "aiStack_c8[7]" (identifier "aiStack_c8") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_a0 = 0;" (assignment_expression "uStack_a0 = 0" (identifier "uStack_a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)(iVar5 + 0x7bc0))(aiStack_c8);" (call_expression "(*(code *)(iVar5 + 0x7bc0))(aiStack_c8)" (parenthesized_expression "(*(code *)(iVar5 + 0x7bc0))" (( "(") (pointer_expression "*(code *)(iVar5 + 0x7bc0)" (* "*") (cast_expression "(code *)(iVar5 + 0x7bc0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x7bc0)" (( "(") (binary_expression "iVar5 + 0x7bc0" (identifier "iVar5") (+ "+") (number_literal "0x7bc0")) () ")")))) () ")")) (argument_list "(aiStack_c8)" (( "(") (identifier "aiStack_c8") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);" (call_expression "(**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000)" (parenthesized_expression "(**(code **)(puVar19 + 0x99750))" (( "(") (pointer_expression "**(code **)(puVar19 + 0x99750)" (* "*") (pointer_expression "*(code **)(puVar19 + 0x99750)" (* "*") (cast_expression "(code **)(puVar19 + 0x99750)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x99750)" (( "(") (binary_expression "puVar19 + 0x99750" (identifier "puVar19") (+ "+") (number_literal "0x99750")) () ")"))))) () ")")) (argument_list "(aiStack_c8[0],aiStack_c8[1],0,1000)" (( "(") (subscript_expression "aiStack_c8[0]" (identifier "aiStack_c8") ([ "[") (number_literal "0") (] "]")) (, ",") (subscript_expression "aiStack_c8[1]" (identifier "aiStack_c8") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "1000") () ")"))) (; ";")) (expression_statement "iStack_f8 = extraout_v1 + -0x18a36940;" (assignment_expression "iStack_f8 = extraout_v1 + -0x18a36940" (identifier "iStack_f8") (= "=") (binary_expression "extraout_v1 + -0x18a36940" (identifier "extraout_v1") (+ "+") (number_literal "-0x18a36940"))) (; ";")) (if_statement "if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }\n  else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0))" (( "(") (binary_expression "(*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&\n     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)" (parenthesized_expression "(*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0" (pointer_expression "*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198)" (* "*") (cast_expression "(int *)(*(int *)(puVar19 + 0x99734) + 0x4198)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar19 + 0x99734) + 0x4198)" (( "(") (binary_expression "*(int *)(puVar19 + 0x99734) + 0x4198" (pointer_expression "*(int *)(puVar19 + 0x99734)" (* "*") (cast_expression "(int *)(puVar19 + 0x99734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x99734)" (( "(") (binary_expression "puVar19 + 0x99734" (identifier "puVar19") (+ "+") (number_literal "0x99734")) () ")")))) (+ "+") (number_literal "0x4198")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)" (( "(") (comma_expression "iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0" (assignment_expression "iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4)" (identifier "iVar15") (= "=") (call_expression "(**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4)" (parenthesized_expression "(**(code **)(puVar19 + 0x999a0))" (( "(") (pointer_expression "**(code **)(puVar19 + 0x999a0)" (* "*") (pointer_expression "*(code **)(puVar19 + 0x999a0)" (* "*") (cast_expression "(code **)(puVar19 + 0x999a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x999a0)" (( "(") (binary_expression "puVar19 + 0x999a0" (identifier "puVar19") (+ "+") (number_literal "0x999a0")) () ")"))))) () ")")) (argument_list "(&iStack_f8,&iStack_f4)" (( "(") (pointer_expression "&iStack_f8" (& "&") (identifier "iStack_f8")) (, ",") (pointer_expression "&iStack_f4" (& "&") (identifier "iStack_f4")) () ")")))) (, ",") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    uStack_6c = 0;\n    iStack_8c = iStack_e4 + 1;\n    uStack_6a = 0;\n    iStack_90 = iStack_e0 + 0x76c;\n    dStack_78 = (double)iStack_f4;\n    uStack_88 = uStack_e8;\n    uStack_84 = uStack_ec;\n    uStack_80 = uStack_f0;\n    uStack_70 = 0x101;\n    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);\n    uVar3 = uStack_94 - aiStack_c8[1];\n    *puVar16 = 0;\n    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);\n  }" ({ "{") (expression_statement "uStack_6c = 0;" (assignment_expression "uStack_6c = 0" (identifier "uStack_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_8c = iStack_e4 + 1;" (assignment_expression "iStack_8c = iStack_e4 + 1" (identifier "iStack_8c") (= "=") (binary_expression "iStack_e4 + 1" (identifier "iStack_e4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uStack_6a = 0;" (assignment_expression "uStack_6a = 0" (identifier "uStack_6a") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_90 = iStack_e0 + 0x76c;" (assignment_expression "iStack_90 = iStack_e0 + 0x76c" (identifier "iStack_90") (= "=") (binary_expression "iStack_e0 + 0x76c" (identifier "iStack_e0") (+ "+") (number_literal "0x76c"))) (; ";")) (expression_statement "dStack_78 = (double)iStack_f4;" (assignment_expression "dStack_78 = (double)iStack_f4" (identifier "dStack_78") (= "=") (cast_expression "(double)iStack_f4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iStack_f4"))) (; ";")) (expression_statement "uStack_88 = uStack_e8;" (assignment_expression "uStack_88 = uStack_e8" (identifier "uStack_88") (= "=") (identifier "uStack_e8")) (; ";")) (expression_statement "uStack_84 = uStack_ec;" (assignment_expression "uStack_84 = uStack_ec" (identifier "uStack_84") (= "=") (identifier "uStack_ec")) (; ";")) (expression_statement "uStack_80 = uStack_f0;" (assignment_expression "uStack_80 = uStack_f0" (identifier "uStack_80") (= "=") (identifier "uStack_f0")) (; ";")) (expression_statement "uStack_70 = 0x101;" (assignment_expression "uStack_70 = 0x101" (identifier "uStack_70") (= "=") (number_literal "0x101")) (; ";")) (expression_statement "(*(code *)(iVar5 + 0x7bc0))(&iStack_98);" (call_expression "(*(code *)(iVar5 + 0x7bc0))(&iStack_98)" (parenthesized_expression "(*(code *)(iVar5 + 0x7bc0))" (( "(") (pointer_expression "*(code *)(iVar5 + 0x7bc0)" (* "*") (cast_expression "(code *)(iVar5 + 0x7bc0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x7bc0)" (( "(") (binary_expression "iVar5 + 0x7bc0" (identifier "iVar5") (+ "+") (number_literal "0x7bc0")) () ")")))) () ")")) (argument_list "(&iStack_98)" (( "(") (pointer_expression "&iStack_98" (& "&") (identifier "iStack_98")) () ")"))) (; ";")) (expression_statement "uVar3 = uStack_94 - aiStack_c8[1];" (assignment_expression "uVar3 = uStack_94 - aiStack_c8[1]" (identifier "uVar3") (= "=") (binary_expression "uStack_94 - aiStack_c8[1]" (identifier "uStack_94") (- "-") (subscript_expression "aiStack_c8[1]" (identifier "aiStack_c8") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*puVar16 = 0;" (assignment_expression "*puVar16 = 0" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);" (assignment_expression "iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3)" (identifier "iVar5") (= "=") (binary_expression "(iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3)" (parenthesized_expression "(iStack_98 - aiStack_c8[0])" (( "(") (binary_expression "iStack_98 - aiStack_c8[0]" (identifier "iStack_98") (- "-") (subscript_expression "aiStack_c8[0]" (identifier "aiStack_c8") ([ "[") (number_literal "0") (] "]"))) () ")")) (- "-") (call_expression "(uint)(uStack_94 < uVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uStack_94 < uVar3)" (( "(") (binary_expression "uStack_94 < uVar3" (identifier "uStack_94") (< "<") (identifier "uVar3")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }" (else "else") (compound_statement "{\n    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);\n    iVar5 = 0;\n    *puVar16 = 1;\n    uVar3 = 0;\n  }" ({ "{") (expression_statement "(**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);" (call_expression "(**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff)" (parenthesized_expression "(**(code **)(puVar19 + 0x9999c))" (( "(") (pointer_expression "**(code **)(puVar19 + 0x9999c)" (* "*") (pointer_expression "*(code **)(puVar19 + 0x9999c)" (* "*") (cast_expression "(code **)(puVar19 + 0x9999c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x9999c)" (( "(") (binary_expression "puVar19 + 0x9999c" (identifier "puVar19") (+ "+") (number_literal "0x9999c")) () ")"))))) () ")")) (argument_list "(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff)" (( "(") (identifier "puVar14") (, ",") (binary_expression "*(int *)(puVar19 + 0x99744) + 0x7ea8" (pointer_expression "*(int *)(puVar19 + 0x99744)" (* "*") (cast_expression "(int *)(puVar19 + 0x99744)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x99744)" (( "(") (binary_expression "puVar19 + 0x99744" (identifier "puVar19") (+ "+") (number_literal "0x99744")) () ")")))) (+ "+") (number_literal "0x7ea8")) (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar16 = 1;" (assignment_expression "*puVar16 = 1" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "puVar13 = (undefined4 *)*piVar18;" (assignment_expression "puVar13 = (undefined4 *)*piVar18" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)*piVar18" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar18" (* "*") (identifier "piVar18")))) (; ";")) (if_statement "if (puStack_64 != puVar13) {\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }" (if "if") (parenthesized_expression "(puStack_64 != puVar13)" (( "(") (binary_expression "puStack_64 != puVar13" (identifier "puStack_64") (!= "!=") (identifier "puVar13")) () ")")) (compound_statement "{\n    (**(code **)(puVar19 + 0x999b8))();\n    puVar13[5] = 1;\n    uVar21 = FUN_0005b00c(*puVar13);\n    return uVar21;\n  }" ({ "{") (expression_statement "(**(code **)(puVar19 + 0x999b8))();" (call_expression "(**(code **)(puVar19 + 0x999b8))()" (parenthesized_expression "(**(code **)(puVar19 + 0x999b8))" (( "(") (pointer_expression "**(code **)(puVar19 + 0x999b8)" (* "*") (pointer_expression "*(code **)(puVar19 + 0x999b8)" (* "*") (cast_expression "(code **)(puVar19 + 0x999b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x999b8)" (( "(") (binary_expression "puVar19 + 0x999b8" (identifier "puVar19") (+ "+") (number_literal "0x999b8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar13[5] = 1;" (assignment_expression "puVar13[5] = 1" (subscript_expression "puVar13[5]" (identifier "puVar13") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar21 = FUN_0005b00c(*puVar13);" (assignment_expression "uVar21 = FUN_0005b00c(*puVar13)" (identifier "uVar21") (= "=") (call_expression "FUN_0005b00c(*puVar13)" (identifier "FUN_0005b00c") (argument_list "(*puVar13)" (( "(") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) () ")")))) (; ";")) (return_statement "return uVar21;" (return "return") (identifier "uVar21") (; ";")) (} "}"))) (return_statement "return CONCAT44(iVar5,uVar3);" (return "return") (call_expression "CONCAT44(iVar5,uVar3)" (identifier "CONCAT44") (argument_list "(iVar5,uVar3)" (( "(") (identifier "iVar5") (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}")))

void function_1(type_1 *context,int var_4,type_2 **argv)

{
  bool bVar1;
  type_3 *puVar2;
  type_4 var_1;
  type_5 *var_9;
  int var_2;
  type_2 **var_10;
  type_6 *var_7;
  int *var_13;
  int var_18;
  type_6 var_6;
  type_7 *pVVar10;
  int var_17;
  type_2 *psVar12;
  type_2 *psVar13;
  char **var_14;
  char *var_22;
  type_3 *puVar16;
  type_8 *pMVar17;
  char *z;
  type_5 *pcVar18;
  type_9 *pFVar19;
  int var_16;
  int *piVar21;
  type_3 *var_12;
  type_10 *pcVar23;
  int iStack_f8;
  int iStack_f4;
  type_11 uStack_f0;
  type_11 uStack_ec;
  type_11 uStack_e8;
  int var_19;
  int var_20;
  type_11 uStack_dc;
  type_11 uStack_d8;
  type_11 uStack_d4;
  type_11 uStack_d0;
  type_11 uStack_cc;
  int aiStack_c8 [8];
  double var_15;
  type_12 uStack_a0;
  type_12 auStack_98 [8];
  int iStack_90;
  int iStack_8c;
  type_11 uStack_88;
  type_11 uStack_84;
  type_11 uStack_80;
  double dStack_78;
  type_11 uStack_70;
  type_12 uStack_6c;
  type_12 uStack_6a;
  char *var_21;
  type_2 **ppsStack_60;
  type_3 *puStack_5c;
  type_1 *psStack_58;
  type_5 *pcStack_54;
  type_4 uStack_50;
  type_10 *pcStack_4c;
  type_5 backupInfo;
  type_13 *var_5;
  int var_11;
  
  puVar2 = PTR___stack_chk_guard_000f5568;
  var_11 = *(int *)PTR___stack_chk_guard_000f5568;
  puVar16 = (type_3 *)var_4;
  pcVar18 = (type_5 *)argv;
  var_1 = (*(type_10 *)PTR_sqlite3_context_db_handle_000f5434)();
  var_9 = (type_5 *)(*(type_10 *)PTR_sqlite3_user_data_000f5598)(context);
  var_2 = (*(type_10 *)PTR_sqlite3_value_bytes_000f53d8)(*argv);
  if (*(int *)(var_1 + 0x8c) < var_2) {
    pcVar18 = (type_5 *)0xffffffff;
    puVar16 = var_3 + 0x7e54;
    psVar12 = (type_2 *)context;
    (*(type_10 *)PTR_sqlite3_result_error_000f5524)(context,puVar16);
    goto LAB_0005ba18;
  }
  if (var_4 == 3) {
    psVar12 = argv[2];
    var_5 = (type_13 *)(*(type_10 *)PTR_sqlite3_value_text_000f539c)();
    if (var_5 == (type_6 *)0x0) goto LAB_0005ba18;
    var_6 = *var_5;
    if ((var_6 != 0) && (var_2 = 0, var_5 != (type_6 *)0xffffffff)) {
      pcVar18 = (type_5 *)0xffffffc0;
      puVar16 = (type_3 *)0x80;
      var_7 = var_5;
      do {
        bVar1 = 0xbf < var_6;
        var_6 = var_7[1];
        var_7 = var_7 + 1;
        if (bVar1) {
          while ((var_6 & 0xc0) == 0x80) {
            var_7 = var_7 + 1;
            var_6 = *var_7;
          }
        }
        var_2 = var_2 + 1;
      } while ((var_6 != 0) && (var_7 != (type_6 *)0xffffffff));
      if (var_2 == 1) {
        var_1 = (*(type_10 *)(var_8 + 0x168))(&var_5);
        if (var_9->matchAll == var_1) {
          backupInfo = (type_5)((type_4)*var_9 & 0xffffff);
        }
        else {
          if (var_9->matchOne != var_1) goto LAB_0005b9bc;
          backupInfo = *var_9;
        }
        if (((type_4)backupInfo >> 0x10 & 0xff) == var_1) {
          backupInfo.matchOne = '\0';
          var_9 = &backupInfo;
        }
        else {
          var_9 = &backupInfo;
        }
        goto LAB_0005b9bc;
      }
    }
    pcVar18 = (type_5 *)0xffffffff;
    puVar16 = var_3 + 0x7e78;
    psVar12 = (type_2 *)context;
    (*(type_10 *)PTR_sqlite3_result_error_000f5524)(context,puVar16);
  }
  else {
    var_1 = (type_4)var_9->matchSet;
LAB_0005b9bc:
    var_10 = (type_2 **)(*(type_10 *)PTR_sqlite3_value_text_000f539c)(*argv);
    psVar12 = argv[1];
    var_2 = (*(type_10 *)PTR_sqlite3_value_text_000f539c)();
    argv = var_10;
    if ((var_2 != 0) && (var_10 != (type_2 **)0x0)) {
      pcVar18 = var_9;
      var_2 = (*(type_10 *)(var_8 + 0x75dc))(var_10,var_2,var_9,var_1);
      puVar16 = (type_3 *)(type_4)(var_2 == 0);
      psVar12 = (type_2 *)context;
      (*(type_10 *)PTR_sqlite3_result_int_000f550c)(context,puVar16);
    }
  }
LAB_0005ba18:
  if (var_11 == *(int *)puVar2) {
    return;
  }
  pcVar23 = localtimeOffset;
  var_12 = PTR___stack_chk_fail_000f5540;
  (*(type_10 *)PTR___stack_chk_fail_000f5540)();
  piVar21 = *(int **)(var_12 + 0x999e0);
  puStack_5c = puVar2;
  iStack_f4 = 0;
  uStack_f0 = 0;
  uStack_ec = 0;
  uStack_e8 = 0;
  var_19 = 0;
  var_20 = 0;
  uStack_dc = 0;
  uStack_d8 = 0;
  uStack_d4 = 0;
  uStack_d0 = 0;
  uStack_cc = 0;
  var_21 = (char *)*piVar21;
  var_13 = aiStack_c8;
  psVar13 = psVar12;
  ppsStack_60 = argv;
  psStack_58 = context;
  pcStack_54 = var_9;
  uStack_50 = var_1;
  pcStack_4c = pcVar23;
  do {
    var_14 = &psVar13->z;
    pFVar19 = *(type_9 **)((int)&psVar13->u + 4);
    pMVar17 = *(type_8 **)&psVar13->flags;
    pVVar10 = (type_7 *)psVar13->n;
    *var_13 = (int)(psVar13->u).nZero;
    var_13[1] = (int)pFVar19;
    var_13[2] = (int)pMVar17;
    var_13[3] = (int)pVVar10;
    var_13 = var_13 + 4;
    psVar13 = (type_2 *)var_14;
  } while (var_14 != (char **)&psVar12[1].flags);
  (*(type_10 *)(*(int *)(var_12 + 0x99764) + -0x7e3c))(aiStack_c8);
  if (aiStack_c8[2] - 0x7b3U < 0x43) {
    var_15 = (double)(int)(var_15 + *(double *)(*(int *)(var_12 + 0x9974c) + 0x2758));
  }
  else {
    aiStack_c8[5] = 0;
    aiStack_c8[6] = 0;
    aiStack_c8[3] = 1;
    aiStack_c8[2] = 2000;
    aiStack_c8[4] = 1;
    var_15 = 0.0;
  }
  var_16 = *(int *)(var_12 + 0x99740);
  aiStack_c8[7] = 0;
  uStack_a0 = 0;
  (*(type_10 *)(var_16 + 0x7bc0))(aiStack_c8);
  var_2 = 0;
  (**(type_10 **)(var_12 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);
  iStack_f8 = var_17 + -0x18a36940;
  if ((*(int *)(*(int *)(var_12 + 0x99734) + 0x4198) == 0) &&
     (var_18 = (**(type_10 **)(var_12 + 0x999a0))(&iStack_f8,&iStack_f4), var_18 != 0)) {
    uStack_6c = 0;
    iStack_8c = var_19 + 1;
    uStack_6a = 0;
    iStack_90 = var_20 + 0x76c;
    dStack_78 = (double)iStack_f4;
    uStack_88 = uStack_e8;
    uStack_84 = uStack_ec;
    uStack_80 = uStack_f0;
    uStack_70 = 0x101;
    (*(type_10 *)(var_16 + 0x7bc0))(auStack_98);
    pcVar18->matchAll = '\0';
    pcVar18->matchOne = '\0';
    pcVar18->matchSet = '\0';
    pcVar18->noCase = '\0';
  }
  else {
    var_2 = -1;
    (**(type_10 **)(var_12 + 0x9999c))(puVar16,*(int *)(var_12 + 0x99744) + 0x7ea8);
    pcVar18->matchAll = '\0';
    pcVar18->matchOne = '\0';
    pcVar18->matchSet = '\0';
    pcVar18->noCase = '\x01';
  }
  var_22 = (char *)*piVar21;
  if (var_21 != var_22) {
    z = var_21;
    (**(type_10 **)(var_12 + 0x999b8))();
    var_22[0x14] = '\0';
    var_22[0x15] = '\0';
    var_22[0x16] = '\0';
    var_22[0x17] = '\x01';
    var_23(*(type_8 **)var_22,z,var_2,'\x03',(type_14 *)0xffffffff);
    return;
  }
  return;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (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: (number_literal)) right: (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (field_expression argument: (identifier) field: (field_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (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 (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))))))) (labeled_statement label: (statement_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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))))) alternative: (else_clause (compound_statement (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (return_statement (identifier)))) (return_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))

undefined8 MASKED(int *param_1,undefined *param_2,uint *param_3)

{
  bool bVar1;
  undefined *puVar2;
  uint uVar3;
  uint *puVar4;
  int iVar5;
  uint *puVar6;
  byte *pbVar7;
  int *piVar8;
  byte bVar9;
  int extraout_v1;
  int *piVar10;
  int *piVar11;
  int *piVar12;
  undefined4 *puVar13;
  undefined *puVar14;
  int iVar15;
  uint *puVar16;
  int iVar17;
  int *piVar18;
  undefined *puVar19;
  code *pcVar20;
  undefined8 uVar21;
  int iStack_f8;
  int iStack_f4;
  undefined4 uStack_f0;
  undefined4 uStack_ec;
  undefined4 uStack_e8;
  int iStack_e4;
  int iStack_e0;
  undefined4 uStack_dc;
  undefined4 uStack_d8;
  undefined4 uStack_d4;
  undefined4 uStack_d0;
  undefined4 uStack_cc;
  int aiStack_c8 [8];
  double dStack_a8;
  undefined1 uStack_a0;
  int iStack_98;
  uint uStack_94;
  int iStack_90;
  int iStack_8c;
  undefined4 uStack_88;
  undefined4 uStack_84;
  undefined4 uStack_80;
  double dStack_78;
  undefined4 uStack_70;
  undefined1 uStack_6c;
  undefined1 uStack_6a;
  undefined4 *puStack_64;
  uint *puStack_60;
  undefined *puStack_5c;
  int *piStack_58;
  uint *puStack_54;
  uint uStack_50;
  code *pcStack_4c;
  undefined4 local_2c;
  byte *local_28;
  int local_24;
  
  puVar2 = PTR___stack_chk_guard_000f5568;
  local_24 = *(int *)PTR___stack_chk_guard_000f5568;
  puVar14 = param_2;
  puVar16 = param_3;
  uVar3 = (*(code *)PTR_sqlite3_context_db_handle_000f5434)();
  puVar4 = (uint *)(*(code *)PTR_sqlite3_user_data_000f5598)(param_1);
  iVar5 = (*(code *)PTR_sqlite3_value_bytes_000f53d8)(*param_3);
  if (*(int *)(uVar3 + 0x8c) < iVar5) {
    puVar16 = (uint *)0xffffffff;
    puVar14 = PTR_LAB_000f52cc + 0x7e54;
    piVar10 = param_1;
    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);
    goto LAB_0005ba18;
  }
  if (param_2 == (undefined *)0x3) {
    piVar10 = (int *)param_3[2];
    local_28 = (byte *)(*(code *)PTR_sqlite3_value_text_000f539c)();
    if (local_28 == (byte *)0x0) goto LAB_0005ba18;
    bVar9 = *local_28;
    if ((bVar9 != 0) && (iVar5 = 0, local_28 != (byte *)0xffffffff)) {
      puVar16 = (uint *)0xffffffc0;
      puVar14 = (undefined *)0x80;
      pbVar7 = local_28;
      do {
        bVar1 = 0xbf < bVar9;
        bVar9 = pbVar7[1];
        pbVar7 = pbVar7 + 1;
        if (bVar1) {
          while ((bVar9 & 0xc0) == 0x80) {
            pbVar7 = pbVar7 + 1;
            bVar9 = *pbVar7;
          }
        }
        iVar5 = iVar5 + 1;
      } while ((bVar9 != 0) && (pbVar7 != (byte *)0xffffffff));
      if (iVar5 == 1) {
        uVar3 = (*(code *)(PTR_LAB_000f52c8 + 0x168))(&local_28);
        if (*(byte *)puVar4 == uVar3) {
          local_2c = *puVar4 & 0xffffff;
        }
        else {
          if (*(byte *)((int)puVar4 + 1) != uVar3) goto LAB_0005b9bc;
          local_2c = *puVar4;
        }
        if ((local_2c >> 0x10 & 0xff) == uVar3) {
          local_2c._1_3_ = (uint3)local_2c._2_2_;
          puVar4 = &local_2c;
        }
        else {
          puVar4 = &local_2c;
        }
        goto LAB_0005b9bc;
      }
    }
    puVar16 = (uint *)0xffffffff;
    puVar14 = PTR_LAB_000f52cc + 0x7e78;
    piVar10 = param_1;
    (*(code *)PTR_sqlite3_result_error_000f5524)(param_1,puVar14);
  }
  else {
    uVar3 = (uint)*(byte *)((int)puVar4 + 2);
LAB_0005b9bc:
    puVar6 = (uint *)(*(code *)PTR_sqlite3_value_text_000f539c)(*param_3);
    piVar10 = (int *)param_3[1];
    iVar5 = (*(code *)PTR_sqlite3_value_text_000f539c)();
    param_3 = puVar6;
    if ((iVar5 != 0) && (puVar6 != (uint *)0x0)) {
      puVar16 = puVar4;
      iVar5 = (*(code *)(PTR_LAB_000f52c8 + 0x75dc))(puVar6,iVar5,puVar4,uVar3);
      puVar14 = (undefined *)(uint)(iVar5 == 0);
      piVar10 = param_1;
      (*(code *)PTR_sqlite3_result_int_000f550c)(param_1,puVar14);
    }
  }
LAB_0005ba18:
  iVar5 = *(int *)puVar2;
  if (local_24 == iVar5) {
    return CONCAT44(iVar5,local_24);
  }
  pcVar20 = FUN_0005bb88;
  puVar19 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  piVar18 = *(int **)(puVar19 + 0x999e0);
  puStack_5c = puVar2;
  iStack_f4 = 0;
  uStack_f0 = 0;
  uStack_ec = 0;
  uStack_e8 = 0;
  iStack_e4 = 0;
  iStack_e0 = 0;
  uStack_dc = 0;
  uStack_d8 = 0;
  uStack_d4 = 0;
  uStack_d0 = 0;
  uStack_cc = 0;
  puStack_64 = (undefined4 *)*piVar18;
  piVar8 = aiStack_c8;
  piVar11 = piVar10;
  puStack_60 = param_3;
  piStack_58 = param_1;
  puStack_54 = puVar4;
  uStack_50 = uVar3;
  pcStack_4c = pcVar20;
  do {
    piVar12 = piVar11 + 4;
    iVar17 = piVar11[1];
    iVar15 = piVar11[2];
    iVar5 = piVar11[3];
    *piVar8 = *piVar11;
    piVar8[1] = iVar17;
    piVar8[2] = iVar15;
    piVar8[3] = iVar5;
    piVar8 = piVar8 + 4;
    piVar11 = piVar12;
  } while (piVar12 != piVar10 + 0xc);
  (*(code *)(*(int *)(puVar19 + 0x99764) + -0x7e3c))(aiStack_c8);
  if (aiStack_c8[2] - 0x7b3U < 0x43) {
    dStack_a8 = (double)(int)(dStack_a8 + *(double *)(*(int *)(puVar19 + 0x9974c) + 0x2758));
  }
  else {
    aiStack_c8[5] = 0;
    aiStack_c8[6] = 0;
    aiStack_c8[3] = 1;
    aiStack_c8[2] = 2000;
    aiStack_c8[4] = 1;
    dStack_a8 = 0.0;
  }
  iVar5 = *(int *)(puVar19 + 0x99740);
  aiStack_c8[7] = 0;
  uStack_a0 = 0;
  (*(code *)(iVar5 + 0x7bc0))(aiStack_c8);
  (**(code **)(puVar19 + 0x99750))(aiStack_c8[0],aiStack_c8[1],0,1000);
  iStack_f8 = extraout_v1 + -0x18a36940;
  if ((*(int *)(*(int *)(puVar19 + 0x99734) + 0x4198) == 0) &&
     (iVar15 = (**(code **)(puVar19 + 0x999a0))(&iStack_f8,&iStack_f4), iVar15 != 0)) {
    uStack_6c = 0;
    iStack_8c = iStack_e4 + 1;
    uStack_6a = 0;
    iStack_90 = iStack_e0 + 0x76c;
    dStack_78 = (double)iStack_f4;
    uStack_88 = uStack_e8;
    uStack_84 = uStack_ec;
    uStack_80 = uStack_f0;
    uStack_70 = 0x101;
    (*(code *)(iVar5 + 0x7bc0))(&iStack_98);
    uVar3 = uStack_94 - aiStack_c8[1];
    *puVar16 = 0;
    iVar5 = (iStack_98 - aiStack_c8[0]) - (uint)(uStack_94 < uVar3);
  }
  else {
    (**(code **)(puVar19 + 0x9999c))(puVar14,*(int *)(puVar19 + 0x99744) + 0x7ea8,0xffffffff);
    iVar5 = 0;
    *puVar16 = 1;
    uVar3 = 0;
  }
  puVar13 = (undefined4 *)*piVar18;
  if (puStack_64 != puVar13) {
    (**(code **)(puVar19 + 0x999b8))();
    puVar13[5] = 1;
    uVar21 = FUN_0005b00c(*puVar13);
    return uVar21;
  }
  return CONCAT44(iVar5,uVar3);
}

