; LLVM IR from ibr-ds/STANlite :: Enclave/sqlite (vdbe)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.Sqlite3Config = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.sqlite3_mem_methods, %struct.sqlite3_mutex_methods, %struct.sqlite3_pcache_methods2, ptr, i32, i32, i32, i64, i64, ptr, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, i32, i32 }
%struct.sqlite3_mem_methods = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.sqlite3_mutex_methods = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.sqlite3_pcache_methods2 = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Mem = type { %union.MemValue, i16, i8, i8, i32, ptr, ptr, i32, i32, ptr, ptr }
%union.MemValue = type { double }
%struct.UnpackedRecord = type { ptr, ptr, i16, i8, i8, i8, i8, i8 }
%struct.BtreePayload = type { ptr, i64, ptr, ptr, i16, i32, i32 }
%struct.InitData = type { ptr, ptr, i32, i32 }
%struct.sqlite3_context = type { ptr, ptr, ptr, ptr, i32, i32, i8, i8, i8, [1 x ptr] }
%struct.Vdbe = type { ptr, ptr, ptr, ptr, i16, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, i32, i16, i8, i8, i16, i32, i32, [5 x i32], ptr, ptr, ptr, ptr, i32, i32, ptr, ptr }
%struct.sqlite3 = type { ptr, ptr, ptr, ptr, ptr, i32, i32, i64, i64, i32, i32, i32, i32, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, [12 x i32], i32, %struct.sqlite3InitInfo, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %union.anon, %struct.Lookaside, ptr, ptr, ptr, ptr, i32, i32, %struct.Hash, ptr, ptr, ptr, %struct.Hash, %struct.Hash, %struct.BusyHandler, [2 x %struct.Db], ptr, i32, i32, i32, i64, i64, ptr }
%struct.sqlite3InitInfo = type { i32, i8, i8, i8, i8 }
%union.anon = type { double }
%struct.Lookaside = type { i32, i16, i8, i32, i32, [3 x i32], ptr, ptr, ptr }
%struct.Hash = type { i32, i32, ptr, ptr }
%struct.BusyHandler = type { ptr, ptr, i32 }
%struct.Db = type { ptr, ptr, i8, i8, ptr }
%struct.VdbeOp = type { i8, i8, i16, i32, i32, i32, %union.p4union }
%union.p4union = type { ptr }
%struct.VdbeFrame = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, ptr, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.FuncDef = type { i8, i16, ptr, ptr, ptr, ptr, ptr, %union.anon.0 }
%union.anon.0 = type { ptr }
%struct.KeyInfo = type { i32, i8, i16, i16, ptr, ptr, [1 x ptr] }
%struct.VdbeCursor = type { i8, i8, i8, i8, i8, i8, ptr, i64, ptr, i32, i32, ptr, %union.anon.1, ptr, i32, i32, i16, i16, i64, ptr, ptr, i32, i32, [1 x i32] }
%union.anon.1 = type { ptr }
%struct.Savepoint = type { ptr, i64, i64, ptr }
%struct.Schema = type { i32, i32, %struct.Hash, %struct.Hash, %struct.Hash, %struct.Hash, ptr, i8, i8, i16, i32 }
%struct.Table = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i16, i16, i16, i16, i8, i32, i32, ptr, ptr, ptr, ptr, ptr }
%struct.sqlite3_vtab_cursor = type { ptr }
%struct.sqlite3_vtab = type { ptr, i32, ptr }
%struct.sqlite3_module = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.SubProgram = type { ptr, i32, i32, i32, ptr, ptr, ptr }
%struct.VTable = type { ptr, ptr, ptr, i32, i8, i32, ptr }

@sqlite3VdbeExec.azType = external hidden constant [4 x ptr], align 16
@.str.4 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [24 x i8], align 1
@sqlite3VdbeExec.and_logic = external hidden constant [9 x i8], align 1
@sqlite3VdbeExec.or_logic = external hidden constant [9 x i8], align 1
@sqlite3VdbeExec.aFlag = external hidden constant [2 x i16], align 2
@sqlite3VdbeExec.aZero = external hidden global [16 x i8], align 16
@.str.8 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@sqlite3Config = external global %struct.Sqlite3Config, align 8
@.str.24 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [14 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
declare hidden void @applyNumericAffinity(ptr noundef, i32 noundef) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
declare hidden void @applyAffinity(ptr noundef, i8 noundef signext, i8 noundef zeroext) #1

; Function Attrs: nounwind uwtable
define dso_local i32 @sqlite3VdbeExec(ptr noundef %0) #1 {
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i8, align 1
  %9 = alloca i8, align 1
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i16, align 2
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i64, align 8
  %34 = alloca i8, align 1
  %35 = alloca i16, align 2
  %36 = alloca i16, align 2
  %37 = alloca i16, align 2
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca i8, align 1
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i8, align 1
  %53 = alloca i16, align 2
  %54 = alloca i16, align 2
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca ptr, align 8
  %60 = alloca i32, align 4
  %61 = alloca ptr, align 8
  %62 = alloca i32, align 4
  %63 = alloca ptr, align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca ptr, align 8
  %75 = alloca %struct.Mem, align 8
  %76 = alloca ptr, align 8
  %77 = alloca ptr, align 8
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca i64, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca ptr, align 8
  %84 = alloca ptr, align 8
  %85 = alloca i8, align 1
  %86 = alloca ptr, align 8
  %87 = alloca ptr, align 8
  %88 = alloca i64, align 8
  %89 = alloca i32, align 4
  %90 = alloca i64, align 8
  %91 = alloca i64, align 8
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca ptr, align 8
  %95 = alloca ptr, align 8
  %96 = alloca i32, align 4
  %97 = alloca ptr, align 8
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i64, align 8
  %103 = alloca ptr, align 8
  %104 = alloca i32, align 4
  %105 = alloca ptr, align 8
  %106 = alloca i32, align 4
  %107 = alloca ptr, align 8
  %108 = alloca ptr, align 8
  %109 = alloca ptr, align 8
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca ptr, align 8
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca ptr, align 8
  %123 = alloca i32, align 4
  %124 = alloca ptr, align 8
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca ptr, align 8
  %129 = alloca ptr, align 8
  %130 = alloca ptr, align 8
  %131 = alloca ptr, align 8
  %132 = alloca ptr, align 8
  %133 = alloca i32, align 4
  %134 = alloca ptr, align 8
  %135 = alloca ptr, align 8
  %136 = alloca ptr, align 8
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca ptr, align 8
  %140 = alloca %struct.UnpackedRecord, align 8
  %141 = alloca i32, align 4
  %142 = alloca i64, align 8
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca ptr, align 8
  %148 = alloca i32, align 4
  %149 = alloca ptr, align 8
  %150 = alloca ptr, align 8
  %151 = alloca %struct.UnpackedRecord, align 8
  %152 = alloca ptr, align 8
  %153 = alloca ptr, align 8
  %154 = alloca i32, align 4
  %155 = alloca i64, align 8
  %156 = alloca i64, align 8
  %157 = alloca ptr, align 8
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca ptr, align 8
  %161 = alloca ptr, align 8
  %162 = alloca ptr, align 8
  %163 = alloca ptr, align 8
  %164 = alloca ptr, align 8
  %165 = alloca i32, align 4
  %166 = alloca ptr, align 8
  %167 = alloca ptr, align 8
  %168 = alloca i32, align 4
  %169 = alloca %struct.BtreePayload, align 8
  %170 = alloca ptr, align 8
  %171 = alloca ptr, align 8
  %172 = alloca ptr, align 8
  %173 = alloca i32, align 4
  %174 = alloca ptr, align 8
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca ptr, align 8
  %178 = alloca ptr, align 8
  %179 = alloca ptr, align 8
  %180 = alloca i32, align 4
  %181 = alloca ptr, align 8
  %182 = alloca i64, align 8
  %183 = alloca ptr, align 8
  %184 = alloca ptr, align 8
  %185 = alloca ptr, align 8
  %186 = alloca ptr, align 8
  %187 = alloca ptr, align 8
  %188 = alloca i32, align 4
  %189 = alloca ptr, align 8
  %190 = alloca ptr, align 8
  %191 = alloca i32, align 4
  %192 = alloca i64, align 8
  %193 = alloca ptr, align 8
  %194 = alloca ptr, align 8
  %195 = alloca i32, align 4
  %196 = alloca ptr, align 8
  %197 = alloca i32, align 4
  %198 = alloca ptr, align 8
  %199 = alloca %struct.BtreePayload, align 8
  %200 = alloca ptr, align 8
  %201 = alloca ptr, align 8
  %202 = alloca i32, align 4
  %203 = alloca %struct.UnpackedRecord, align 8
  %204 = alloca ptr, align 8
  %205 = alloca ptr, align 8
  %206 = alloca i64, align 8
  %207 = alloca ptr, align 8
  %208 = alloca i32, align 4
  %209 = alloca %struct.UnpackedRecord, align 8
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca ptr, align 8
  %214 = alloca i32, align 4
  %215 = alloca i32, align 4
  %216 = alloca ptr, align 8
  %217 = alloca i32, align 4
  %218 = alloca ptr, align 8
  %219 = alloca ptr, align 8
  %220 = alloca %struct.InitData, align 8
  %221 = alloca i32, align 4
  %222 = alloca ptr, align 8
  %223 = alloca i32, align 4
  %224 = alloca ptr, align 8
  %225 = alloca ptr, align 8
  %226 = alloca i64, align 8
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca ptr, align 8
  %232 = alloca ptr, align 8
  %233 = alloca ptr, align 8
  %234 = alloca ptr, align 8
  %235 = alloca ptr, align 8
  %236 = alloca ptr, align 8
  %237 = alloca ptr, align 8
  %238 = alloca ptr, align 8
  %239 = alloca ptr, align 8
  %240 = alloca i64, align 8
  %241 = alloca i32, align 4
  %242 = alloca ptr, align 8
  %243 = alloca i32, align 4
  %244 = alloca ptr, align 8
  %245 = alloca ptr, align 8
  %246 = alloca %struct.Mem, align 8
  %247 = alloca ptr, align 8
  %248 = alloca i32, align 4
  %249 = alloca [3 x i32], align 4
  %250 = alloca ptr, align 8
  %251 = alloca ptr, align 8
  %252 = alloca ptr, align 8
  %253 = alloca i32, align 4
  %254 = alloca i32, align 4
  %255 = alloca ptr, align 8
  %256 = alloca ptr, align 8
  %257 = alloca i8, align 1
  %258 = alloca i32, align 4
  %259 = alloca ptr, align 8
  %260 = alloca ptr, align 8
  %261 = alloca %struct.Mem, align 8
  %262 = alloca ptr, align 8
  %263 = alloca ptr, align 8
  %264 = alloca ptr, align 8
  %265 = alloca ptr, align 8
  %266 = alloca ptr, align 8
  %267 = alloca i32, align 4
  %268 = alloca i32, align 4
  %269 = alloca ptr, align 8
  %270 = alloca ptr, align 8
  %271 = alloca ptr, align 8
  %272 = alloca ptr, align 8
  %273 = alloca ptr, align 8
  %274 = alloca ptr, align 8
  %275 = alloca i32, align 4
  %276 = alloca i32, align 4
  %277 = alloca ptr, align 8
  %278 = alloca ptr, align 8
  %279 = alloca ptr, align 8
  %280 = alloca ptr, align 8
  %281 = alloca %struct.sqlite3_context, align 8
  %282 = alloca ptr, align 8
  %283 = alloca ptr, align 8
  %284 = alloca ptr, align 8
  %285 = alloca i32, align 4
  %286 = alloca ptr, align 8
  %287 = alloca ptr, align 8
  %288 = alloca ptr, align 8
  %289 = alloca ptr, align 8
  %290 = alloca ptr, align 8
  %291 = alloca i32, align 4
  %292 = alloca i32, align 4
  %293 = alloca i64, align 8
  %294 = alloca ptr, align 8
  %295 = alloca ptr, align 8
  %296 = alloca i8, align 1
  %297 = alloca i32, align 4
  %298 = alloca ptr, align 8
  %299 = alloca ptr, align 8
  %300 = alloca i32, align 4
  %301 = alloca ptr, align 8
  %302 = alloca ptr, align 8
  %303 = alloca ptr, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #5
  %304 = load ptr, ptr %3, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.Vdbe, ptr %304, i32 0, i32 17
  %306 = load ptr, ptr %305, align 8, !tbaa !9
  store ptr %306, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #5
  %307 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %307, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #5
  store i32 0, ptr %6, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #5
  %308 = load ptr, ptr %3, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.Vdbe, ptr %308, i32 0, i32 0
  %310 = load ptr, ptr %309, align 8, !tbaa !15
  store ptr %310, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #5
  store i8 0, ptr %8, align 1, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #5
  %311 = load ptr, ptr %7, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.sqlite3, ptr %311, i32 0, i32 14
  %313 = load i8, ptr %312, align 2, !tbaa !17
  store i8 %313, ptr %9, align 1, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  store i32 0, ptr %10, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  store i32 0, ptr %11, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  store i32 0, ptr %12, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  %314 = load ptr, ptr %3, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.Vdbe, ptr %314, i32 0, i32 18
  %316 = load ptr, ptr %315, align 8, !tbaa !23
  store ptr %316, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  store ptr null, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  store ptr null, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  store ptr null, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  store ptr null, ptr %17, align 8, !tbaa !5
  %317 = load ptr, ptr %3, align 8, !tbaa !5
  call void @sqlite3VdbeEnter(ptr noundef %317)
  %318 = load ptr, ptr %3, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.Vdbe, ptr %318, i32 0, i32 10
  %320 = load i32, ptr %319, align 8, !tbaa !24
  %321 = icmp eq i32 %320, 7
  br i1 %321, label %322, label %323

322:                                              ; preds = %1
  br label %8545

323:                                              ; preds = %1
  %324 = load ptr, ptr %3, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.Vdbe, ptr %324, i32 0, i32 13
  store i64 0, ptr %325, align 8, !tbaa !25
  %326 = load ptr, ptr %3, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.Vdbe, ptr %326, i32 0, i32 21
  store ptr null, ptr %327, align 8, !tbaa !26
  %328 = load ptr, ptr %7, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.sqlite3, ptr %328, i32 0, i32 71
  %330 = getelementptr inbounds %struct.BusyHandler, ptr %329, i32 0, i32 2
  store i32 0, ptr %330, align 8, !tbaa !27
  %331 = load ptr, ptr %7, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.sqlite3, ptr %331, i32 0, i32 57
  %333 = load volatile i32, ptr %332, align 8, !tbaa !16
  %334 = icmp ne i32 %333, 0
  br i1 %334, label %335, label %336

335:                                              ; preds = %323
  br label %8548

336:                                              ; preds = %323
  %337 = load ptr, ptr %7, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.sqlite3, ptr %337, i32 0, i32 61
  %339 = load ptr, ptr %338, align 8, !tbaa !28
  %340 = icmp ne ptr %339, null
  br i1 %340, label %341, label %355

341:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  %342 = load ptr, ptr %3, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.Vdbe, ptr %342, i32 0, i32 34
  %344 = getelementptr inbounds [5 x i32], ptr %343, i64 0, i64 4
  %345 = load i32, ptr %344, align 4, !tbaa !14
  store i32 %345, ptr %18, align 4, !tbaa !14
  %346 = load ptr, ptr %7, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.sqlite3, ptr %346, i32 0, i32 63
  %348 = load i32, ptr %347, align 8, !tbaa !29
  %349 = load i32, ptr %18, align 4, !tbaa !14
  %350 = load ptr, ptr %7, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.sqlite3, ptr %350, i32 0, i32 63
  %352 = load i32, ptr %351, align 8, !tbaa !29
  %353 = urem i32 %349, %352
  %354 = sub i32 %348, %353
  store i32 %354, ptr %12, align 4, !tbaa !14
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  br label %355

355:                                              ; preds = %341, %336
  %356 = load ptr, ptr %4, align 8, !tbaa !5
  %357 = load ptr, ptr %3, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.Vdbe, ptr %357, i32 0, i32 9
  %359 = load i32, ptr %358, align 4, !tbaa !30
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds %struct.VdbeOp, ptr %356, i64 %360
  store ptr %361, ptr %5, align 8, !tbaa !5
  br label %362

362:                                              ; preds = %8476, %355
  br i1 true, label %363, label %8479

363:                                              ; preds = %362
  %364 = load i32, ptr %11, align 4, !tbaa !14
  %365 = add i32 %364, 1
  store i32 %365, ptr %11, align 4, !tbaa !14
  %366 = load ptr, ptr %5, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.VdbeOp, ptr %366, i32 0, i32 0
  %368 = load i8, ptr %367, align 8, !tbaa !31
  %369 = zext i8 %368 to i32
  switch i32 %369, label %8474 [
    i32 13, label %370
    i32 14, label %417
    i32 73, label %444
    i32 15, label %458
    i32 74, label %480
    i32 16, label %501
    i32 75, label %528
    i32 76, label %543
    i32 77, label %688
    i32 78, label %698
    i32 132, label %708
    i32 97, label %720
    i32 79, label %790
    i32 80, label %833
    i32 81, label %870
    i32 82, label %886
    i32 83, label %901
    i32 84, label %926
    i32 85, label %970
    i32 86, label %1014
    i32 87, label %1029
    i32 88, label %1046
    i32 52, label %1156
    i32 47, label %1334
    i32 48, label %1334
    i32 49, label %1334
    i32 50, label %1334
    i32 51, label %1334
    i32 89, label %1531
    i32 90, label %1544
    i32 91, label %1593
    i32 43, label %1713
    i32 44, label %1713
    i32 45, label %1713
    i32 46, label %1713
    i32 92, label %1841
    i32 17, label %1858
    i32 93, label %1898
    i32 94, label %1915
    i32 37, label %1944
    i32 36, label %1944
    i32 40, label %1944
    i32 39, label %1944
    i32 38, label %1944
    i32 41, label %1944
    i32 42, label %2247
    i32 95, label %2252
    i32 96, label %2253
    i32 18, label %2339
    i32 28, label %2371
    i32 27, label %2371
    i32 19, label %2467
    i32 54, label %2499
    i32 20, label %2528
    i32 21, label %2601
    i32 22, label %2601
    i32 34, label %2641
    i32 35, label %2656
    i32 98, label %2671
    i32 99, label %3195
    i32 100, label %3218
    i32 101, label %3455
    i32 0, label %3481
    i32 1, label %3823
    i32 2, label %3909
    i32 102, label %4103
    i32 103, label %4126
    i32 104, label %4195
    i32 105, label %4217
    i32 106, label %4217
    i32 107, label %4377
    i32 108, label %4377
    i32 109, label %4484
    i32 110, label %4514
    i32 111, label %4533
    i32 112, label %4557
    i32 23, label %4576
    i32 24, label %4576
    i32 25, label %4576
    i32 26, label %4576
    i32 29, label %4790
    i32 30, label %4790
    i32 31, label %4790
    i32 32, label %4939
    i32 33, label %4964
    i32 114, label %5017
    i32 115, label %5035
    i32 116, label %5206
    i32 117, label %5206
    i32 118, label %5392
    i32 119, label %5503
    i32 120, label %5510
    i32 121, label %5543
    i32 122, label %5578
    i32 123, label %5632
    i32 124, label %5716
    i32 53, label %5740
    i32 55, label %5795
    i32 56, label %5838
    i32 57, label %5838
    i32 58, label %5844
    i32 3, label %5887
    i32 4, label %5900
    i32 5, label %5900
    i32 6, label %5913
    i32 7, label %5913
    i32 125, label %5958
    i32 126, label %5958
    i32 127, label %6064
    i32 128, label %6116
    i32 129, label %6116
    i32 59, label %6194
    i32 60, label %6194
    i32 61, label %6194
    i32 62, label %6194
    i32 130, label %6256
    i32 131, label %6315
    i32 133, label %6372
    i32 134, label %6404
    i32 135, label %6404
    i32 136, label %6439
    i32 137, label %6457
    i32 138, label %6518
    i32 139, label %6528
    i32 140, label %6536
    i32 141, label %6544
    i32 142, label %6552
    i32 143, label %6616
    i32 63, label %6652
    i32 64, label %6684
    i32 65, label %6745
    i32 144, label %7031
    i32 145, label %7059
    i32 66, label %7099
    i32 146, label %7129
    i32 67, label %7189
    i32 147, label %7210
    i32 68, label %7253
    i32 69, label %7276
    i32 148, label %7299
    i32 149, label %7348
    i32 150, label %7460
    i32 8, label %7490
    i32 9, label %7537
    i32 10, label %7675
    i32 70, label %7687
    i32 151, label %7710
    i32 152, label %7724
    i32 153, label %7775
    i32 154, label %7796
    i32 155, label %7825
    i32 156, label %7846
    i32 11, label %7902
    i32 157, label %7988
    i32 71, label %8064
    i32 158, label %8114
    i32 12, label %8155
    i32 159, label %8291
    i32 160, label %8309
    i32 72, label %8347
  ]

370:                                              ; preds = %363
  br label %371

371:                                              ; preds = %8112, %6682, %5942, %370
  %372 = load ptr, ptr %4, align 8, !tbaa !5
  %373 = load ptr, ptr %5, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.VdbeOp, ptr %373, i32 0, i32 4
  %375 = load i32, ptr %374, align 8, !tbaa !33
  %376 = sub nsw i32 %375, 1
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds %struct.VdbeOp, ptr %372, i64 %377
  store ptr %378, ptr %5, align 8, !tbaa !5
  br label %379

379:                                              ; preds = %8112, %6682, %5957, %371
  %380 = load ptr, ptr %7, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.sqlite3, ptr %380, i32 0, i32 57
  %382 = load volatile i32, ptr %381, align 8, !tbaa !16
  %383 = icmp ne i32 %382, 0
  br i1 %383, label %384, label %385

384:                                              ; preds = %379
  br label %8548

385:                                              ; preds = %379
  %386 = load ptr, ptr %7, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.sqlite3, ptr %386, i32 0, i32 61
  %388 = load ptr, ptr %387, align 8, !tbaa !28
  %389 = icmp ne ptr %388, null
  br i1 %389, label %390, label %416

390:                                              ; preds = %385
  %391 = load i32, ptr %11, align 4, !tbaa !14
  %392 = load i32, ptr %12, align 4, !tbaa !14
  %393 = icmp uge i32 %391, %392
  br i1 %393, label %394, label %416

394:                                              ; preds = %390
  %395 = load i32, ptr %11, align 4, !tbaa !14
  %396 = load ptr, ptr %7, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.sqlite3, ptr %396, i32 0, i32 63
  %398 = load i32, ptr %397, align 8, !tbaa !29
  %399 = add i32 %395, %398
  %400 = load i32, ptr %11, align 4, !tbaa !14
  %401 = load ptr, ptr %7, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.sqlite3, ptr %401, i32 0, i32 63
  %403 = load i32, ptr %402, align 8, !tbaa !29
  %404 = urem i32 %400, %403
  %405 = sub i32 %399, %404
  store i32 %405, ptr %12, align 4, !tbaa !14
  %406 = load ptr, ptr %7, align 8, !tbaa !5
  %407 = getelementptr inbounds %struct.sqlite3, ptr %406, i32 0, i32 61
  %408 = load ptr, ptr %407, align 8, !tbaa !28
  %409 = load ptr, ptr %7, align 8, !tbaa !5
  %410 = getelementptr inbounds %struct.sqlite3, ptr %409, i32 0, i32 62
  %411 = load ptr, ptr %410, align 8, !tbaa !34
  %412 = call i32 %408(ptr noundef %411)
  %413 = icmp ne i32 %412, 0
  br i1 %413, label %414, label %415

414:                                              ; preds = %394
  store i32 9, ptr %6, align 4, !tbaa !14
  br label %8480

415:                                              ; preds = %394
  br label %416

416:                                              ; preds = %415, %390, %385
  br label %8475

417:                                              ; preds = %363
  %418 = load ptr, ptr %13, align 8, !tbaa !5
  %419 = load ptr, ptr %5, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.VdbeOp, ptr %419, i32 0, i32 3
  %421 = load i32, ptr %420, align 4, !tbaa !35
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds %struct.Mem, ptr %418, i64 %422
  store ptr %423, ptr %14, align 8, !tbaa !5
  %424 = load ptr, ptr %14, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.Mem, ptr %424, i32 0, i32 1
  store i16 4, ptr %425, align 8, !tbaa !36
  %426 = load ptr, ptr %5, align 8, !tbaa !5
  %427 = load ptr, ptr %4, align 8, !tbaa !5
  %428 = ptrtoint ptr %426 to i64
  %429 = ptrtoint ptr %427 to i64
  %430 = sub i64 %428, %429
  %431 = sdiv exact i64 %430, 24
  %432 = trunc i64 %431 to i32
  %433 = sext i32 %432 to i64
  %434 = load ptr, ptr %14, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.Mem, ptr %434, i32 0, i32 0
  store i64 %433, ptr %435, align 8, !tbaa !16
  br label %436

436:                                              ; preds = %8469, %7986, %7708, %7297, %7274, %7200, %7126, %7114, %6743, %6254, %5885, %5836, %5793, %5541, %5010, %4961, %4937, %4788, %4531, %2669, %2654, %2639, %2599, %2250, %2245, %1886, %478, %417
  %437 = load ptr, ptr %4, align 8, !tbaa !5
  %438 = load ptr, ptr %5, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.VdbeOp, ptr %438, i32 0, i32 4
  %440 = load i32, ptr %439, align 8, !tbaa !33
  %441 = sub nsw i32 %440, 1
  %442 = sext i32 %441 to i64
  %443 = getelementptr inbounds %struct.VdbeOp, ptr %437, i64 %442
  store ptr %443, ptr %5, align 8, !tbaa !5
  br label %8475

444:                                              ; preds = %363
  %445 = load ptr, ptr %13, align 8, !tbaa !5
  %446 = load ptr, ptr %5, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.VdbeOp, ptr %446, i32 0, i32 3
  %448 = load i32, ptr %447, align 4, !tbaa !35
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds %struct.Mem, ptr %445, i64 %449
  store ptr %450, ptr %14, align 8, !tbaa !5
  %451 = load ptr, ptr %4, align 8, !tbaa !5
  %452 = load ptr, ptr %14, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.Mem, ptr %452, i32 0, i32 0
  %454 = load i64, ptr %453, align 8, !tbaa !16
  %455 = getelementptr inbounds %struct.VdbeOp, ptr %451, i64 %454
  store ptr %455, ptr %5, align 8, !tbaa !5
  %456 = load ptr, ptr %14, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.Mem, ptr %456, i32 0, i32 1
  store i16 128, ptr %457, align 8, !tbaa !36
  br label %8475

458:                                              ; preds = %363
  %459 = load ptr, ptr %13, align 8, !tbaa !5
  %460 = load ptr, ptr %5, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.VdbeOp, ptr %460, i32 0, i32 3
  %462 = load i32, ptr %461, align 4, !tbaa !35
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds %struct.Mem, ptr %459, i64 %463
  store ptr %464, ptr %17, align 8, !tbaa !5
  %465 = load ptr, ptr %5, align 8, !tbaa !5
  %466 = getelementptr inbounds %struct.VdbeOp, ptr %465, i32 0, i32 5
  %467 = load i32, ptr %466, align 4, !tbaa !38
  %468 = sub nsw i32 %467, 1
  %469 = sext i32 %468 to i64
  %470 = load ptr, ptr %17, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.Mem, ptr %470, i32 0, i32 0
  store i64 %469, ptr %471, align 8, !tbaa !16
  %472 = load ptr, ptr %17, align 8, !tbaa !5
  %473 = getelementptr inbounds %struct.Mem, ptr %472, i32 0, i32 1
  store i16 4, ptr %473, align 8, !tbaa !36
  %474 = load ptr, ptr %5, align 8, !tbaa !5
  %475 = getelementptr inbounds %struct.VdbeOp, ptr %474, i32 0, i32 4
  %476 = load i32, ptr %475, align 8, !tbaa !33
  %477 = icmp ne i32 %476, 0
  br i1 %477, label %478, label %479

478:                                              ; preds = %458
  br label %436

479:                                              ; preds = %458
  br label %8475

480:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  %481 = load ptr, ptr %13, align 8, !tbaa !5
  %482 = load ptr, ptr %5, align 8, !tbaa !5
  %483 = getelementptr inbounds %struct.VdbeOp, ptr %482, i32 0, i32 3
  %484 = load i32, ptr %483, align 4, !tbaa !35
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds %struct.Mem, ptr %481, i64 %485
  store ptr %486, ptr %14, align 8, !tbaa !5
  %487 = load ptr, ptr %4, align 8, !tbaa !5
  %488 = load ptr, ptr %14, align 8, !tbaa !5
  %489 = getelementptr inbounds %struct.Mem, ptr %488, i32 0, i32 0
  %490 = load i64, ptr %489, align 8, !tbaa !16
  %491 = getelementptr inbounds %struct.VdbeOp, ptr %487, i64 %490
  store ptr %491, ptr %19, align 8, !tbaa !5
  %492 = load ptr, ptr %4, align 8, !tbaa !5
  %493 = load ptr, ptr %19, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.VdbeOp, ptr %493, i32 0, i32 4
  %495 = load i32, ptr %494, align 8, !tbaa !33
  %496 = sub nsw i32 %495, 1
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds %struct.VdbeOp, ptr %492, i64 %497
  store ptr %498, ptr %5, align 8, !tbaa !5
  %499 = load ptr, ptr %14, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.Mem, ptr %499, i32 0, i32 1
  store i16 128, ptr %500, align 8, !tbaa !36
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  br label %8475

501:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  %502 = load ptr, ptr %13, align 8, !tbaa !5
  %503 = load ptr, ptr %5, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.VdbeOp, ptr %503, i32 0, i32 3
  %505 = load i32, ptr %504, align 4, !tbaa !35
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds %struct.Mem, ptr %502, i64 %506
  store ptr %507, ptr %14, align 8, !tbaa !5
  %508 = load ptr, ptr %14, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.Mem, ptr %508, i32 0, i32 1
  store i16 4, ptr %509, align 8, !tbaa !36
  %510 = load ptr, ptr %14, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.Mem, ptr %510, i32 0, i32 0
  %512 = load i64, ptr %511, align 8, !tbaa !16
  %513 = trunc i64 %512 to i32
  store i32 %513, ptr %20, align 4, !tbaa !14
  %514 = load ptr, ptr %5, align 8, !tbaa !5
  %515 = load ptr, ptr %4, align 8, !tbaa !5
  %516 = ptrtoint ptr %514 to i64
  %517 = ptrtoint ptr %515 to i64
  %518 = sub i64 %516, %517
  %519 = sdiv exact i64 %518, 24
  %520 = trunc i64 %519 to i32
  %521 = sext i32 %520 to i64
  %522 = load ptr, ptr %14, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.Mem, ptr %522, i32 0, i32 0
  store i64 %521, ptr %523, align 8, !tbaa !16
  %524 = load ptr, ptr %4, align 8, !tbaa !5
  %525 = load i32, ptr %20, align 4, !tbaa !14
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds %struct.VdbeOp, ptr %524, i64 %526
  store ptr %527, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  br label %8475

528:                                              ; preds = %363
  %529 = load ptr, ptr %13, align 8, !tbaa !5
  %530 = load ptr, ptr %5, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.VdbeOp, ptr %530, i32 0, i32 5
  %532 = load i32, ptr %531, align 4, !tbaa !38
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds %struct.Mem, ptr %529, i64 %533
  store ptr %534, ptr %16, align 8, !tbaa !5
  %535 = load ptr, ptr %16, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.Mem, ptr %535, i32 0, i32 1
  %537 = load i16, ptr %536, align 8, !tbaa !36
  %538 = zext i16 %537 to i32
  %539 = and i32 %538, 1
  %540 = icmp eq i32 %539, 0
  br i1 %540, label %541, label %542

541:                                              ; preds = %528
  br label %8475

542:                                              ; preds = %528
  br label %543

543:                                              ; preds = %542, %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  %544 = load ptr, ptr %5, align 8, !tbaa !5
  %545 = load ptr, ptr %4, align 8, !tbaa !5
  %546 = ptrtoint ptr %544 to i64
  %547 = ptrtoint ptr %545 to i64
  %548 = sub i64 %546, %547
  %549 = sdiv exact i64 %548, 24
  %550 = trunc i64 %549 to i32
  store i32 %550, ptr %22, align 4, !tbaa !14
  %551 = load ptr, ptr %5, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.VdbeOp, ptr %551, i32 0, i32 3
  %553 = load i32, ptr %552, align 4, !tbaa !35
  %554 = icmp eq i32 %553, 0
  br i1 %554, label %555, label %604

555:                                              ; preds = %543
  %556 = load ptr, ptr %3, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.Vdbe, ptr %556, i32 0, i32 37
  %558 = load ptr, ptr %557, align 8, !tbaa !39
  %559 = icmp ne ptr %558, null
  br i1 %559, label %560, label %604

560:                                              ; preds = %555
  %561 = load ptr, ptr %3, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.Vdbe, ptr %561, i32 0, i32 37
  %563 = load ptr, ptr %562, align 8, !tbaa !39
  store ptr %563, ptr %21, align 8, !tbaa !5
  %564 = load ptr, ptr %21, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.VdbeFrame, ptr %564, i32 0, i32 1
  %566 = load ptr, ptr %565, align 8, !tbaa !40
  %567 = load ptr, ptr %3, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.Vdbe, ptr %567, i32 0, i32 37
  store ptr %566, ptr %568, align 8, !tbaa !39
  %569 = load ptr, ptr %3, align 8, !tbaa !5
  %570 = getelementptr inbounds %struct.Vdbe, ptr %569, i32 0, i32 39
  %571 = load i32, ptr %570, align 8, !tbaa !42
  %572 = add nsw i32 %571, -1
  store i32 %572, ptr %570, align 8, !tbaa !42
  %573 = load ptr, ptr %7, align 8, !tbaa !5
  %574 = load ptr, ptr %3, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.Vdbe, ptr %574, i32 0, i32 11
  %576 = load i32, ptr %575, align 4, !tbaa !43
  call void @sqlite3VdbeSetChanges(ptr noundef %573, i32 noundef %576)
  %577 = load ptr, ptr %21, align 8, !tbaa !5
  %578 = call i32 @sqlite3VdbeFrameRestore(ptr noundef %577)
  store i32 %578, ptr %22, align 4, !tbaa !14
  %579 = load ptr, ptr %5, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.VdbeOp, ptr %579, i32 0, i32 4
  %581 = load i32, ptr %580, align 8, !tbaa !33
  %582 = icmp eq i32 %581, 4
  br i1 %582, label %583, label %593

583:                                              ; preds = %560
  %584 = load ptr, ptr %3, align 8, !tbaa !5
  %585 = getelementptr inbounds %struct.Vdbe, ptr %584, i32 0, i32 17
  %586 = load ptr, ptr %585, align 8, !tbaa !9
  %587 = load i32, ptr %22, align 4, !tbaa !14
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds %struct.VdbeOp, ptr %586, i64 %588
  %590 = getelementptr inbounds %struct.VdbeOp, ptr %589, i32 0, i32 4
  %591 = load i32, ptr %590, align 8, !tbaa !33
  %592 = sub nsw i32 %591, 1
  store i32 %592, ptr %22, align 4, !tbaa !14
  br label %593

593:                                              ; preds = %583, %560
  %594 = load ptr, ptr %3, align 8, !tbaa !5
  %595 = getelementptr inbounds %struct.Vdbe, ptr %594, i32 0, i32 17
  %596 = load ptr, ptr %595, align 8, !tbaa !9
  store ptr %596, ptr %4, align 8, !tbaa !5
  %597 = load ptr, ptr %3, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.Vdbe, ptr %597, i32 0, i32 18
  %599 = load ptr, ptr %598, align 8, !tbaa !23
  store ptr %599, ptr %13, align 8, !tbaa !5
  %600 = load ptr, ptr %4, align 8, !tbaa !5
  %601 = load i32, ptr %22, align 4, !tbaa !14
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds %struct.VdbeOp, ptr %600, i64 %602
  store ptr %603, ptr %5, align 8, !tbaa !5
  store i32 7, ptr %23, align 4
  br label %686

604:                                              ; preds = %555, %543
  %605 = load ptr, ptr %5, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.VdbeOp, ptr %605, i32 0, i32 3
  %607 = load i32, ptr %606, align 4, !tbaa !35
  %608 = load ptr, ptr %3, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.Vdbe, ptr %608, i32 0, i32 10
  store i32 %607, ptr %609, align 8, !tbaa !24
  %610 = load ptr, ptr %5, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.VdbeOp, ptr %610, i32 0, i32 4
  %612 = load i32, ptr %611, align 8, !tbaa !33
  %613 = trunc i32 %612 to i8
  %614 = load ptr, ptr %3, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.Vdbe, ptr %614, i32 0, i32 29
  store i8 %613, ptr %615, align 2, !tbaa !44
  %616 = load i32, ptr %22, align 4, !tbaa !14
  %617 = load ptr, ptr %3, align 8, !tbaa !5
  %618 = getelementptr inbounds %struct.Vdbe, ptr %617, i32 0, i32 9
  store i32 %616, ptr %618, align 4, !tbaa !30
  %619 = load ptr, ptr %3, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.Vdbe, ptr %619, i32 0, i32 10
  %621 = load i32, ptr %620, align 8, !tbaa !24
  %622 = icmp ne i32 %621, 0
  br i1 %622, label %623, label %670

623:                                              ; preds = %604
  %624 = load ptr, ptr %5, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct.VdbeOp, ptr %624, i32 0, i32 2
  %626 = load i16, ptr %625, align 2, !tbaa !45
  %627 = icmp ne i16 %626, 0
  br i1 %627, label %628, label %654

628:                                              ; preds = %623
  %629 = load ptr, ptr %3, align 8, !tbaa !5
  %630 = load ptr, ptr %5, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.VdbeOp, ptr %630, i32 0, i32 2
  %632 = load i16, ptr %631, align 2, !tbaa !45
  %633 = zext i16 %632 to i32
  %634 = sub nsw i32 %633, 1
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds [4 x ptr], ptr @sqlite3VdbeExec.azType, i64 0, i64 %635
  %637 = load ptr, ptr %636, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %629, ptr noundef @.str.4, ptr noundef %637)
  %638 = load ptr, ptr %5, align 8, !tbaa !5
  %639 = getelementptr inbounds %struct.VdbeOp, ptr %638, i32 0, i32 6
  %640 = load ptr, ptr %639, align 8, !tbaa !16
  %641 = icmp ne ptr %640, null
  br i1 %641, label %642, label %653

642:                                              ; preds = %628
  %643 = load ptr, ptr %7, align 8, !tbaa !5
  %644 = load ptr, ptr %3, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct.Vdbe, ptr %644, i32 0, i32 22
  %646 = load ptr, ptr %645, align 8, !tbaa !46
  %647 = load ptr, ptr %5, align 8, !tbaa !5
  %648 = getelementptr inbounds %struct.VdbeOp, ptr %647, i32 0, i32 6
  %649 = load ptr, ptr %648, align 8, !tbaa !16
  %650 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %643, ptr noundef @.str.5, ptr noundef %646, ptr noundef %649)
  %651 = load ptr, ptr %3, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.Vdbe, ptr %651, i32 0, i32 22
  store ptr %650, ptr %652, align 8, !tbaa !46
  br label %653

653:                                              ; preds = %642, %628
  br label %659

654:                                              ; preds = %623
  %655 = load ptr, ptr %3, align 8, !tbaa !5
  %656 = load ptr, ptr %5, align 8, !tbaa !5
  %657 = getelementptr inbounds %struct.VdbeOp, ptr %656, i32 0, i32 6
  %658 = load ptr, ptr %657, align 8, !tbaa !16
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %655, ptr noundef @.str.6, ptr noundef %658)
  br label %659

659:                                              ; preds = %654, %653
  %660 = load ptr, ptr %5, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.VdbeOp, ptr %660, i32 0, i32 3
  %662 = load i32, ptr %661, align 4, !tbaa !35
  %663 = load i32, ptr %22, align 4, !tbaa !14
  %664 = load ptr, ptr %3, align 8, !tbaa !5
  %665 = getelementptr inbounds %struct.Vdbe, ptr %664, i32 0, i32 35
  %666 = load ptr, ptr %665, align 8, !tbaa !47
  %667 = load ptr, ptr %3, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.Vdbe, ptr %667, i32 0, i32 22
  %669 = load ptr, ptr %668, align 8, !tbaa !46
  call void (i32, ptr, ...) @sqlite3_log(i32 noundef %662, ptr noundef @.str.7, i32 noundef %663, ptr noundef %666, ptr noundef %669)
  br label %670

670:                                              ; preds = %659, %604
  %671 = load ptr, ptr %3, align 8, !tbaa !5
  %672 = call i32 @sqlite3VdbeHalt(ptr noundef %671)
  store i32 %672, ptr %6, align 4, !tbaa !14
  %673 = load i32, ptr %6, align 4, !tbaa !14
  %674 = icmp eq i32 %673, 5
  br i1 %674, label %675, label %678

675:                                              ; preds = %670
  %676 = load ptr, ptr %3, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.Vdbe, ptr %676, i32 0, i32 10
  store i32 5, ptr %677, align 8, !tbaa !24
  br label %685

678:                                              ; preds = %670
  %679 = load ptr, ptr %3, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.Vdbe, ptr %679, i32 0, i32 10
  %681 = load i32, ptr %680, align 8, !tbaa !24
  %682 = icmp ne i32 %681, 0
  %683 = zext i1 %682 to i64
  %684 = select i1 %682, i32 1, i32 101
  store i32 %684, ptr %6, align 4, !tbaa !14
  br label %685

685:                                              ; preds = %678, %675
  store i32 12, ptr %23, align 4
  br label %686

686:                                              ; preds = %685, %593
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  %687 = load i32, ptr %23, align 4
  switch i32 %687, label %8562 [
    i32 7, label %8475
    i32 12, label %8534
  ]

688:                                              ; preds = %363
  %689 = load ptr, ptr %3, align 8, !tbaa !5
  %690 = load ptr, ptr %5, align 8, !tbaa !5
  %691 = call ptr @out2Prerelease(ptr noundef %689, ptr noundef %690)
  store ptr %691, ptr %17, align 8, !tbaa !5
  %692 = load ptr, ptr %5, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.VdbeOp, ptr %692, i32 0, i32 3
  %694 = load i32, ptr %693, align 4, !tbaa !35
  %695 = sext i32 %694 to i64
  %696 = load ptr, ptr %17, align 8, !tbaa !5
  %697 = getelementptr inbounds %struct.Mem, ptr %696, i32 0, i32 0
  store i64 %695, ptr %697, align 8, !tbaa !16
  br label %8475

698:                                              ; preds = %363
  %699 = load ptr, ptr %3, align 8, !tbaa !5
  %700 = load ptr, ptr %5, align 8, !tbaa !5
  %701 = call ptr @out2Prerelease(ptr noundef %699, ptr noundef %700)
  store ptr %701, ptr %17, align 8, !tbaa !5
  %702 = load ptr, ptr %5, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.VdbeOp, ptr %702, i32 0, i32 6
  %704 = load ptr, ptr %703, align 8, !tbaa !16
  %705 = load i64, ptr %704, align 8, !tbaa !48
  %706 = load ptr, ptr %17, align 8, !tbaa !5
  %707 = getelementptr inbounds %struct.Mem, ptr %706, i32 0, i32 0
  store i64 %705, ptr %707, align 8, !tbaa !16
  br label %8475

708:                                              ; preds = %363
  %709 = load ptr, ptr %3, align 8, !tbaa !5
  %710 = load ptr, ptr %5, align 8, !tbaa !5
  %711 = call ptr @out2Prerelease(ptr noundef %709, ptr noundef %710)
  store ptr %711, ptr %17, align 8, !tbaa !5
  %712 = load ptr, ptr %17, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.Mem, ptr %712, i32 0, i32 1
  store i16 8, ptr %713, align 8, !tbaa !36
  %714 = load ptr, ptr %5, align 8, !tbaa !5
  %715 = getelementptr inbounds %struct.VdbeOp, ptr %714, i32 0, i32 6
  %716 = load ptr, ptr %715, align 8, !tbaa !16
  %717 = load double, ptr %716, align 8, !tbaa !49
  %718 = load ptr, ptr %17, align 8, !tbaa !5
  %719 = getelementptr inbounds %struct.Mem, ptr %718, i32 0, i32 0
  store double %717, ptr %719, align 8, !tbaa !16
  br label %8475

720:                                              ; preds = %363
  %721 = load ptr, ptr %3, align 8, !tbaa !5
  %722 = load ptr, ptr %5, align 8, !tbaa !5
  %723 = call ptr @out2Prerelease(ptr noundef %721, ptr noundef %722)
  store ptr %723, ptr %17, align 8, !tbaa !5
  %724 = load ptr, ptr %5, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.VdbeOp, ptr %724, i32 0, i32 0
  store i8 79, ptr %725, align 8, !tbaa !31
  %726 = load ptr, ptr %5, align 8, !tbaa !5
  %727 = getelementptr inbounds %struct.VdbeOp, ptr %726, i32 0, i32 6
  %728 = load ptr, ptr %727, align 8, !tbaa !16
  %729 = call i32 @sqlite3Strlen30(ptr noundef %728)
  %730 = load ptr, ptr %5, align 8, !tbaa !5
  %731 = getelementptr inbounds %struct.VdbeOp, ptr %730, i32 0, i32 3
  store i32 %729, ptr %731, align 4, !tbaa !35
  %732 = load i8, ptr %9, align 1, !tbaa !16
  %733 = zext i8 %732 to i32
  %734 = icmp ne i32 %733, 1
  br i1 %734, label %735, label %779

735:                                              ; preds = %720
  %736 = load ptr, ptr %17, align 8, !tbaa !5
  %737 = load ptr, ptr %5, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.VdbeOp, ptr %737, i32 0, i32 6
  %739 = load ptr, ptr %738, align 8, !tbaa !16
  %740 = call i32 @sqlite3VdbeMemSetStr(ptr noundef %736, ptr noundef %739, i32 noundef -1, i8 noundef zeroext 1, ptr noundef null)
  store i32 %740, ptr %6, align 4, !tbaa !14
  %741 = load ptr, ptr %17, align 8, !tbaa !5
  %742 = load i8, ptr %9, align 1, !tbaa !16
  %743 = zext i8 %742 to i32
  %744 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %741, i32 noundef %743)
  %745 = icmp ne i32 0, %744
  br i1 %745, label %746, label %747

746:                                              ; preds = %735
  br label %8545

747:                                              ; preds = %735
  %748 = load ptr, ptr %17, align 8, !tbaa !5
  %749 = getelementptr inbounds %struct.Mem, ptr %748, i32 0, i32 7
  store i32 0, ptr %749, align 8, !tbaa !51
  %750 = load ptr, ptr %17, align 8, !tbaa !5
  %751 = getelementptr inbounds %struct.Mem, ptr %750, i32 0, i32 1
  %752 = load i16, ptr %751, align 8, !tbaa !36
  %753 = zext i16 %752 to i32
  %754 = or i32 %753, 2048
  %755 = trunc i32 %754 to i16
  store i16 %755, ptr %751, align 8, !tbaa !36
  %756 = load ptr, ptr %5, align 8, !tbaa !5
  %757 = getelementptr inbounds %struct.VdbeOp, ptr %756, i32 0, i32 1
  %758 = load i8, ptr %757, align 1, !tbaa !52
  %759 = sext i8 %758 to i32
  %760 = icmp eq i32 %759, -1
  br i1 %760, label %761, label %766

761:                                              ; preds = %747
  %762 = load ptr, ptr %7, align 8, !tbaa !5
  %763 = load ptr, ptr %5, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.VdbeOp, ptr %763, i32 0, i32 6
  %765 = load ptr, ptr %764, align 8, !tbaa !16
  call void @sqlite3DbFree(ptr noundef %762, ptr noundef %765)
  br label %766

766:                                              ; preds = %761, %747
  %767 = load ptr, ptr %5, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.VdbeOp, ptr %767, i32 0, i32 1
  store i8 -1, ptr %768, align 1, !tbaa !52
  %769 = load ptr, ptr %17, align 8, !tbaa !5
  %770 = getelementptr inbounds %struct.Mem, ptr %769, i32 0, i32 5
  %771 = load ptr, ptr %770, align 8, !tbaa !53
  %772 = load ptr, ptr %5, align 8, !tbaa !5
  %773 = getelementptr inbounds %struct.VdbeOp, ptr %772, i32 0, i32 6
  store ptr %771, ptr %773, align 8, !tbaa !16
  %774 = load ptr, ptr %17, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.Mem, ptr %774, i32 0, i32 4
  %776 = load i32, ptr %775, align 4, !tbaa !54
  %777 = load ptr, ptr %5, align 8, !tbaa !5
  %778 = getelementptr inbounds %struct.VdbeOp, ptr %777, i32 0, i32 3
  store i32 %776, ptr %778, align 4, !tbaa !35
  br label %779

779:                                              ; preds = %766, %720
  %780 = load ptr, ptr %5, align 8, !tbaa !5
  %781 = getelementptr inbounds %struct.VdbeOp, ptr %780, i32 0, i32 3
  %782 = load i32, ptr %781, align 4, !tbaa !35
  %783 = load ptr, ptr %7, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.sqlite3, ptr %783, i32 0, i32 31
  %785 = getelementptr inbounds [12 x i32], ptr %784, i64 0, i64 0
  %786 = load i32, ptr %785, align 8, !tbaa !14
  %787 = icmp sgt i32 %782, %786
  br i1 %787, label %788, label %789

788:                                              ; preds = %779
  br label %8543

789:                                              ; preds = %779
  br label %790

790:                                              ; preds = %789, %363
  %791 = load ptr, ptr %3, align 8, !tbaa !5
  %792 = load ptr, ptr %5, align 8, !tbaa !5
  %793 = call ptr @out2Prerelease(ptr noundef %791, ptr noundef %792)
  store ptr %793, ptr %17, align 8, !tbaa !5
  %794 = load ptr, ptr %17, align 8, !tbaa !5
  %795 = getelementptr inbounds %struct.Mem, ptr %794, i32 0, i32 1
  store i16 2562, ptr %795, align 8, !tbaa !36
  %796 = load ptr, ptr %5, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.VdbeOp, ptr %796, i32 0, i32 6
  %798 = load ptr, ptr %797, align 8, !tbaa !16
  %799 = load ptr, ptr %17, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.Mem, ptr %799, i32 0, i32 5
  store ptr %798, ptr %800, align 8, !tbaa !53
  %801 = load ptr, ptr %5, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.VdbeOp, ptr %801, i32 0, i32 3
  %803 = load i32, ptr %802, align 4, !tbaa !35
  %804 = load ptr, ptr %17, align 8, !tbaa !5
  %805 = getelementptr inbounds %struct.Mem, ptr %804, i32 0, i32 4
  store i32 %803, ptr %805, align 4, !tbaa !54
  %806 = load i8, ptr %9, align 1, !tbaa !16
  %807 = load ptr, ptr %17, align 8, !tbaa !5
  %808 = getelementptr inbounds %struct.Mem, ptr %807, i32 0, i32 2
  store i8 %806, ptr %808, align 2, !tbaa !55
  %809 = load ptr, ptr %5, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.VdbeOp, ptr %809, i32 0, i32 5
  %811 = load i32, ptr %810, align 4, !tbaa !38
  %812 = icmp sgt i32 %811, 0
  br i1 %812, label %813, label %832

813:                                              ; preds = %790
  %814 = load ptr, ptr %13, align 8, !tbaa !5
  %815 = load ptr, ptr %5, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.VdbeOp, ptr %815, i32 0, i32 5
  %817 = load i32, ptr %816, align 4, !tbaa !38
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds %struct.Mem, ptr %814, i64 %818
  store ptr %819, ptr %16, align 8, !tbaa !5
  %820 = load ptr, ptr %16, align 8, !tbaa !5
  %821 = getelementptr inbounds %struct.Mem, ptr %820, i32 0, i32 0
  %822 = load i64, ptr %821, align 8, !tbaa !16
  %823 = load ptr, ptr %5, align 8, !tbaa !5
  %824 = getelementptr inbounds %struct.VdbeOp, ptr %823, i32 0, i32 2
  %825 = load i16, ptr %824, align 2, !tbaa !45
  %826 = zext i16 %825 to i64
  %827 = icmp eq i64 %822, %826
  br i1 %827, label %828, label %831

828:                                              ; preds = %813
  %829 = load ptr, ptr %17, align 8, !tbaa !5
  %830 = getelementptr inbounds %struct.Mem, ptr %829, i32 0, i32 1
  store i16 2576, ptr %830, align 8, !tbaa !36
  br label %831

831:                                              ; preds = %828, %813
  br label %832

832:                                              ; preds = %831, %790
  br label %8475

833:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %25) #5
  %834 = load ptr, ptr %3, align 8, !tbaa !5
  %835 = load ptr, ptr %5, align 8, !tbaa !5
  %836 = call ptr @out2Prerelease(ptr noundef %834, ptr noundef %835)
  store ptr %836, ptr %17, align 8, !tbaa !5
  %837 = load ptr, ptr %5, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.VdbeOp, ptr %837, i32 0, i32 5
  %839 = load i32, ptr %838, align 4, !tbaa !38
  %840 = load ptr, ptr %5, align 8, !tbaa !5
  %841 = getelementptr inbounds %struct.VdbeOp, ptr %840, i32 0, i32 4
  %842 = load i32, ptr %841, align 8, !tbaa !33
  %843 = sub nsw i32 %839, %842
  store i32 %843, ptr %24, align 4, !tbaa !14
  %844 = load ptr, ptr %5, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.VdbeOp, ptr %844, i32 0, i32 3
  %846 = load i32, ptr %845, align 4, !tbaa !35
  %847 = icmp ne i32 %846, 0
  %848 = zext i1 %847 to i64
  %849 = select i1 %847, i32 257, i32 1
  %850 = trunc i32 %849 to i16
  store i16 %850, ptr %25, align 2, !tbaa !56
  %851 = load ptr, ptr %17, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.Mem, ptr %851, i32 0, i32 1
  store i16 %850, ptr %852, align 8, !tbaa !36
  %853 = load ptr, ptr %17, align 8, !tbaa !5
  %854 = getelementptr inbounds %struct.Mem, ptr %853, i32 0, i32 4
  store i32 0, ptr %854, align 4, !tbaa !54
  br label %855

855:                                              ; preds = %858, %833
  %856 = load i32, ptr %24, align 4, !tbaa !14
  %857 = icmp sgt i32 %856, 0
  br i1 %857, label %858, label %869

858:                                              ; preds = %855
  %859 = load ptr, ptr %17, align 8, !tbaa !5
  %860 = getelementptr inbounds %struct.Mem, ptr %859, i32 1
  store ptr %860, ptr %17, align 8, !tbaa !5
  %861 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %861)
  %862 = load i16, ptr %25, align 2, !tbaa !56
  %863 = load ptr, ptr %17, align 8, !tbaa !5
  %864 = getelementptr inbounds %struct.Mem, ptr %863, i32 0, i32 1
  store i16 %862, ptr %864, align 8, !tbaa !36
  %865 = load ptr, ptr %17, align 8, !tbaa !5
  %866 = getelementptr inbounds %struct.Mem, ptr %865, i32 0, i32 4
  store i32 0, ptr %866, align 4, !tbaa !54
  %867 = load i32, ptr %24, align 4, !tbaa !14
  %868 = add nsw i32 %867, -1
  store i32 %868, ptr %24, align 4, !tbaa !14
  br label %855, !llvm.loop !57

869:                                              ; preds = %855
  store i32 7, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  br label %8475

870:                                              ; preds = %363
  %871 = load ptr, ptr %13, align 8, !tbaa !5
  %872 = load ptr, ptr %5, align 8, !tbaa !5
  %873 = getelementptr inbounds %struct.VdbeOp, ptr %872, i32 0, i32 3
  %874 = load i32, ptr %873, align 4, !tbaa !35
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds %struct.Mem, ptr %871, i64 %875
  store ptr %876, ptr %17, align 8, !tbaa !5
  %877 = load ptr, ptr %17, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.Mem, ptr %877, i32 0, i32 1
  %879 = load i16, ptr %878, align 8, !tbaa !36
  %880 = zext i16 %879 to i32
  %881 = or i32 %880, 1
  %882 = and i32 %881, -129
  %883 = trunc i32 %882 to i16
  %884 = load ptr, ptr %17, align 8, !tbaa !5
  %885 = getelementptr inbounds %struct.Mem, ptr %884, i32 0, i32 1
  store i16 %883, ptr %885, align 8, !tbaa !36
  br label %8475

886:                                              ; preds = %363
  %887 = load ptr, ptr %3, align 8, !tbaa !5
  %888 = load ptr, ptr %5, align 8, !tbaa !5
  %889 = call ptr @out2Prerelease(ptr noundef %887, ptr noundef %888)
  store ptr %889, ptr %17, align 8, !tbaa !5
  %890 = load ptr, ptr %17, align 8, !tbaa !5
  %891 = load ptr, ptr %5, align 8, !tbaa !5
  %892 = getelementptr inbounds %struct.VdbeOp, ptr %891, i32 0, i32 6
  %893 = load ptr, ptr %892, align 8, !tbaa !16
  %894 = load ptr, ptr %5, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.VdbeOp, ptr %894, i32 0, i32 3
  %896 = load i32, ptr %895, align 4, !tbaa !35
  %897 = call i32 @sqlite3VdbeMemSetStr(ptr noundef %890, ptr noundef %893, i32 noundef %896, i8 noundef zeroext 0, ptr noundef null)
  %898 = load i8, ptr %9, align 1, !tbaa !16
  %899 = load ptr, ptr %17, align 8, !tbaa !5
  %900 = getelementptr inbounds %struct.Mem, ptr %899, i32 0, i32 2
  store i8 %898, ptr %900, align 2, !tbaa !55
  br label %8475

901:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  %902 = load ptr, ptr %3, align 8, !tbaa !5
  %903 = getelementptr inbounds %struct.Vdbe, ptr %902, i32 0, i32 24
  %904 = load ptr, ptr %903, align 8, !tbaa !59
  %905 = load ptr, ptr %5, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.VdbeOp, ptr %905, i32 0, i32 3
  %907 = load i32, ptr %906, align 4, !tbaa !35
  %908 = sub nsw i32 %907, 1
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds %struct.Mem, ptr %904, i64 %909
  store ptr %910, ptr %26, align 8, !tbaa !5
  %911 = load ptr, ptr %26, align 8, !tbaa !5
  %912 = call i32 @sqlite3VdbeMemTooBig(ptr noundef %911)
  %913 = icmp ne i32 %912, 0
  br i1 %913, label %914, label %915

914:                                              ; preds = %901
  store i32 13, ptr %23, align 4
  br label %924

915:                                              ; preds = %901
  %916 = load ptr, ptr %13, align 8, !tbaa !5
  %917 = load ptr, ptr %5, align 8, !tbaa !5
  %918 = getelementptr inbounds %struct.VdbeOp, ptr %917, i32 0, i32 4
  %919 = load i32, ptr %918, align 8, !tbaa !33
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds %struct.Mem, ptr %916, i64 %920
  store ptr %921, ptr %17, align 8, !tbaa !5
  %922 = load ptr, ptr %17, align 8, !tbaa !5
  %923 = load ptr, ptr %26, align 8, !tbaa !5
  call void @sqlite3VdbeMemShallowCopy(ptr noundef %922, ptr noundef %923, i32 noundef 2048)
  store i32 7, ptr %23, align 4
  br label %924

924:                                              ; preds = %915, %914
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  %925 = load i32, ptr %23, align 4
  switch i32 %925, label %8562 [
    i32 7, label %8475
    i32 13, label %8543
  ]

926:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  %927 = load ptr, ptr %5, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.VdbeOp, ptr %927, i32 0, i32 5
  %929 = load i32, ptr %928, align 4, !tbaa !38
  store i32 %929, ptr %27, align 4, !tbaa !14
  %930 = load ptr, ptr %5, align 8, !tbaa !5
  %931 = getelementptr inbounds %struct.VdbeOp, ptr %930, i32 0, i32 3
  %932 = load i32, ptr %931, align 4, !tbaa !35
  store i32 %932, ptr %28, align 4, !tbaa !14
  %933 = load ptr, ptr %5, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.VdbeOp, ptr %933, i32 0, i32 4
  %935 = load i32, ptr %934, align 8, !tbaa !33
  store i32 %935, ptr %29, align 4, !tbaa !14
  %936 = load ptr, ptr %13, align 8, !tbaa !5
  %937 = load i32, ptr %28, align 4, !tbaa !14
  %938 = sext i32 %937 to i64
  %939 = getelementptr inbounds %struct.Mem, ptr %936, i64 %938
  store ptr %939, ptr %14, align 8, !tbaa !5
  %940 = load ptr, ptr %13, align 8, !tbaa !5
  %941 = load i32, ptr %29, align 4, !tbaa !14
  %942 = sext i32 %941 to i64
  %943 = getelementptr inbounds %struct.Mem, ptr %940, i64 %942
  store ptr %943, ptr %17, align 8, !tbaa !5
  br label %944

944:                                              ; preds = %963, %926
  %945 = load ptr, ptr %17, align 8, !tbaa !5
  %946 = load ptr, ptr %14, align 8, !tbaa !5
  call void @sqlite3VdbeMemMove(ptr noundef %945, ptr noundef %946)
  %947 = load ptr, ptr %17, align 8, !tbaa !5
  %948 = getelementptr inbounds %struct.Mem, ptr %947, i32 0, i32 1
  %949 = load i16, ptr %948, align 8, !tbaa !36
  %950 = zext i16 %949 to i32
  %951 = and i32 %950, 4096
  %952 = icmp ne i32 %951, 0
  br i1 %952, label %953, label %958

953:                                              ; preds = %944
  %954 = load ptr, ptr %17, align 8, !tbaa !5
  %955 = call i32 @sqlite3VdbeMemMakeWriteable(ptr noundef %954)
  %956 = icmp ne i32 %955, 0
  br i1 %956, label %957, label %958

957:                                              ; preds = %953
  store i32 2, ptr %23, align 4
  br label %968

958:                                              ; preds = %953, %944
  %959 = load ptr, ptr %14, align 8, !tbaa !5
  %960 = getelementptr inbounds %struct.Mem, ptr %959, i32 1
  store ptr %960, ptr %14, align 8, !tbaa !5
  %961 = load ptr, ptr %17, align 8, !tbaa !5
  %962 = getelementptr inbounds %struct.Mem, ptr %961, i32 1
  store ptr %962, ptr %17, align 8, !tbaa !5
  br label %963

963:                                              ; preds = %958
  %964 = load i32, ptr %27, align 4, !tbaa !14
  %965 = add nsw i32 %964, -1
  store i32 %965, ptr %27, align 4, !tbaa !14
  %966 = icmp ne i32 %965, 0
  br i1 %966, label %944, label %967, !llvm.loop !60

967:                                              ; preds = %963
  store i32 7, ptr %23, align 4
  br label %968

968:                                              ; preds = %967, %957
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  %969 = load i32, ptr %23, align 4
  switch i32 %969, label %8562 [
    i32 7, label %8475
    i32 2, label %8545
  ]

970:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  %971 = load ptr, ptr %5, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.VdbeOp, ptr %971, i32 0, i32 5
  %973 = load i32, ptr %972, align 4, !tbaa !38
  store i32 %973, ptr %30, align 4, !tbaa !14
  %974 = load ptr, ptr %13, align 8, !tbaa !5
  %975 = load ptr, ptr %5, align 8, !tbaa !5
  %976 = getelementptr inbounds %struct.VdbeOp, ptr %975, i32 0, i32 3
  %977 = load i32, ptr %976, align 4, !tbaa !35
  %978 = sext i32 %977 to i64
  %979 = getelementptr inbounds %struct.Mem, ptr %974, i64 %978
  store ptr %979, ptr %14, align 8, !tbaa !5
  %980 = load ptr, ptr %13, align 8, !tbaa !5
  %981 = load ptr, ptr %5, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.VdbeOp, ptr %981, i32 0, i32 4
  %983 = load i32, ptr %982, align 8, !tbaa !33
  %984 = sext i32 %983 to i64
  %985 = getelementptr inbounds %struct.Mem, ptr %980, i64 %984
  store ptr %985, ptr %17, align 8, !tbaa !5
  br label %986

986:                                              ; preds = %1006, %970
  br label %987

987:                                              ; preds = %986
  %988 = load ptr, ptr %17, align 8, !tbaa !5
  %989 = load ptr, ptr %14, align 8, !tbaa !5
  call void @sqlite3VdbeMemShallowCopy(ptr noundef %988, ptr noundef %989, i32 noundef 4096)
  %990 = load ptr, ptr %17, align 8, !tbaa !5
  %991 = getelementptr inbounds %struct.Mem, ptr %990, i32 0, i32 1
  %992 = load i16, ptr %991, align 8, !tbaa !36
  %993 = zext i16 %992 to i32
  %994 = and i32 %993, 4096
  %995 = icmp ne i32 %994, 0
  br i1 %995, label %996, label %1001

996:                                              ; preds = %987
  %997 = load ptr, ptr %17, align 8, !tbaa !5
  %998 = call i32 @sqlite3VdbeMemMakeWriteable(ptr noundef %997)
  %999 = icmp ne i32 %998, 0
  br i1 %999, label %1000, label %1001

1000:                                             ; preds = %996
  store i32 2, ptr %23, align 4
  br label %1012

1001:                                             ; preds = %996, %987
  %1002 = load i32, ptr %30, align 4, !tbaa !14
  %1003 = add nsw i32 %1002, -1
  store i32 %1003, ptr %30, align 4, !tbaa !14
  %1004 = icmp eq i32 %1002, 0
  br i1 %1004, label %1005, label %1006

1005:                                             ; preds = %1001
  br label %1011

1006:                                             ; preds = %1001
  %1007 = load ptr, ptr %17, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.Mem, ptr %1007, i32 1
  store ptr %1008, ptr %17, align 8, !tbaa !5
  %1009 = load ptr, ptr %14, align 8, !tbaa !5
  %1010 = getelementptr inbounds %struct.Mem, ptr %1009, i32 1
  store ptr %1010, ptr %14, align 8, !tbaa !5
  br label %986

1011:                                             ; preds = %1005
  store i32 7, ptr %23, align 4
  br label %1012

1012:                                             ; preds = %1011, %1000
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  %1013 = load i32, ptr %23, align 4
  switch i32 %1013, label %8562 [
    i32 7, label %8475
    i32 2, label %8545
  ]

1014:                                             ; preds = %363
  %1015 = load ptr, ptr %13, align 8, !tbaa !5
  %1016 = load ptr, ptr %5, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.VdbeOp, ptr %1016, i32 0, i32 3
  %1018 = load i32, ptr %1017, align 4, !tbaa !35
  %1019 = sext i32 %1018 to i64
  %1020 = getelementptr inbounds %struct.Mem, ptr %1015, i64 %1019
  store ptr %1020, ptr %14, align 8, !tbaa !5
  %1021 = load ptr, ptr %13, align 8, !tbaa !5
  %1022 = load ptr, ptr %5, align 8, !tbaa !5
  %1023 = getelementptr inbounds %struct.VdbeOp, ptr %1022, i32 0, i32 4
  %1024 = load i32, ptr %1023, align 8, !tbaa !33
  %1025 = sext i32 %1024 to i64
  %1026 = getelementptr inbounds %struct.Mem, ptr %1021, i64 %1025
  store ptr %1026, ptr %17, align 8, !tbaa !5
  %1027 = load ptr, ptr %17, align 8, !tbaa !5
  %1028 = load ptr, ptr %14, align 8, !tbaa !5
  call void @sqlite3VdbeMemShallowCopy(ptr noundef %1027, ptr noundef %1028, i32 noundef 4096)
  br label %8475

1029:                                             ; preds = %363
  %1030 = load ptr, ptr %13, align 8, !tbaa !5
  %1031 = load ptr, ptr %5, align 8, !tbaa !5
  %1032 = getelementptr inbounds %struct.VdbeOp, ptr %1031, i32 0, i32 3
  %1033 = load i32, ptr %1032, align 4, !tbaa !35
  %1034 = sext i32 %1033 to i64
  %1035 = getelementptr inbounds %struct.Mem, ptr %1030, i64 %1034
  store ptr %1035, ptr %14, align 8, !tbaa !5
  %1036 = load ptr, ptr %13, align 8, !tbaa !5
  %1037 = load ptr, ptr %5, align 8, !tbaa !5
  %1038 = getelementptr inbounds %struct.VdbeOp, ptr %1037, i32 0, i32 4
  %1039 = load i32, ptr %1038, align 8, !tbaa !33
  %1040 = sext i32 %1039 to i64
  %1041 = getelementptr inbounds %struct.Mem, ptr %1036, i64 %1040
  store ptr %1041, ptr %17, align 8, !tbaa !5
  %1042 = load ptr, ptr %17, align 8, !tbaa !5
  %1043 = load ptr, ptr %14, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.Mem, ptr %1043, i32 0, i32 0
  %1045 = load i64, ptr %1044, align 8, !tbaa !16
  call void @sqlite3VdbeMemSetInt64(ptr noundef %1042, i64 noundef %1045)
  br label %8475

1046:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  %1047 = load ptr, ptr %7, align 8, !tbaa !5
  %1048 = getelementptr inbounds %struct.sqlite3, ptr %1047, i32 0, i32 61
  %1049 = load ptr, ptr %1048, align 8, !tbaa !28
  %1050 = icmp ne ptr %1049, null
  br i1 %1050, label %1051, label %1065

1051:                                             ; preds = %1046
  %1052 = load i32, ptr %11, align 4, !tbaa !14
  %1053 = load i32, ptr %12, align 4, !tbaa !14
  %1054 = icmp uge i32 %1052, %1053
  br i1 %1054, label %1055, label %1065

1055:                                             ; preds = %1051
  %1056 = load ptr, ptr %7, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.sqlite3, ptr %1056, i32 0, i32 61
  %1058 = load ptr, ptr %1057, align 8, !tbaa !28
  %1059 = load ptr, ptr %7, align 8, !tbaa !5
  %1060 = getelementptr inbounds %struct.sqlite3, ptr %1059, i32 0, i32 62
  %1061 = load ptr, ptr %1060, align 8, !tbaa !34
  %1062 = call i32 %1058(ptr noundef %1061)
  %1063 = icmp ne i32 %1062, 0
  br i1 %1063, label %1064, label %1065

1064:                                             ; preds = %1055
  store i32 9, ptr %6, align 4, !tbaa !14
  store i32 10, ptr %23, align 4
  br label %1154

1065:                                             ; preds = %1055, %1051, %1046
  %1066 = load ptr, ptr %3, align 8, !tbaa !5
  %1067 = call i32 @sqlite3VdbeCheckFk(ptr noundef %1066, i32 noundef 0)
  store i32 %1067, ptr %6, align 4, !tbaa !14
  %1068 = icmp ne i32 0, %1067
  br i1 %1068, label %1069, label %1070

1069:                                             ; preds = %1065
  store i32 10, ptr %23, align 4
  br label %1154

1070:                                             ; preds = %1065
  %1071 = load ptr, ptr %3, align 8, !tbaa !5
  %1072 = call i32 @sqlite3VdbeCloseStatement(ptr noundef %1071, i32 noundef 1)
  store i32 %1072, ptr %6, align 4, !tbaa !14
  %1073 = load ptr, ptr %3, align 8, !tbaa !5
  %1074 = getelementptr inbounds %struct.Vdbe, ptr %1073, i32 0, i32 8
  %1075 = load i32, ptr %1074, align 8, !tbaa !61
  %1076 = add i32 %1075, 2
  %1077 = or i32 %1076, 1
  %1078 = load ptr, ptr %3, align 8, !tbaa !5
  %1079 = getelementptr inbounds %struct.Vdbe, ptr %1078, i32 0, i32 8
  store i32 %1077, ptr %1079, align 8, !tbaa !61
  %1080 = load ptr, ptr %13, align 8, !tbaa !5
  %1081 = load ptr, ptr %5, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.VdbeOp, ptr %1081, i32 0, i32 3
  %1083 = load i32, ptr %1082, align 4, !tbaa !35
  %1084 = sext i32 %1083 to i64
  %1085 = getelementptr inbounds %struct.Mem, ptr %1080, i64 %1084
  %1086 = load ptr, ptr %3, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.Vdbe, ptr %1086, i32 0, i32 21
  store ptr %1085, ptr %1087, align 8, !tbaa !26
  store ptr %1085, ptr %31, align 8, !tbaa !5
  store i32 0, ptr %32, align 4, !tbaa !14
  br label %1088

1088:                                             ; preds = %1118, %1070
  %1089 = load i32, ptr %32, align 4, !tbaa !14
  %1090 = load ptr, ptr %5, align 8, !tbaa !5
  %1091 = getelementptr inbounds %struct.VdbeOp, ptr %1090, i32 0, i32 4
  %1092 = load i32, ptr %1091, align 8, !tbaa !33
  %1093 = icmp slt i32 %1089, %1092
  br i1 %1093, label %1094, label %1121

1094:                                             ; preds = %1088
  %1095 = load ptr, ptr %31, align 8, !tbaa !5
  %1096 = load i32, ptr %32, align 4, !tbaa !14
  %1097 = sext i32 %1096 to i64
  %1098 = getelementptr inbounds %struct.Mem, ptr %1095, i64 %1097
  %1099 = getelementptr inbounds %struct.Mem, ptr %1098, i32 0, i32 1
  %1100 = load i16, ptr %1099, align 8, !tbaa !36
  %1101 = zext i16 %1100 to i32
  %1102 = and i32 %1101, 4096
  %1103 = icmp ne i32 %1102, 0
  br i1 %1103, label %1104, label %1112

1104:                                             ; preds = %1094
  %1105 = load ptr, ptr %31, align 8, !tbaa !5
  %1106 = load i32, ptr %32, align 4, !tbaa !14
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds %struct.Mem, ptr %1105, i64 %1107
  %1109 = call i32 @sqlite3VdbeMemMakeWriteable(ptr noundef %1108)
  %1110 = icmp ne i32 %1109, 0
  br i1 %1110, label %1111, label %1112

1111:                                             ; preds = %1104
  store i32 2, ptr %23, align 4
  br label %1154

1112:                                             ; preds = %1104, %1094
  %1113 = load ptr, ptr %31, align 8, !tbaa !5
  %1114 = load i32, ptr %32, align 4, !tbaa !14
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds %struct.Mem, ptr %1113, i64 %1115
  %1117 = call i32 @sqlite3VdbeMemNulTerminate(ptr noundef %1116)
  br label %1118

1118:                                             ; preds = %1112
  %1119 = load i32, ptr %32, align 4, !tbaa !14
  %1120 = add nsw i32 %1119, 1
  store i32 %1120, ptr %32, align 4, !tbaa !14
  br label %1088, !llvm.loop !62

1121:                                             ; preds = %1088
  %1122 = load ptr, ptr %7, align 8, !tbaa !5
  %1123 = getelementptr inbounds %struct.sqlite3, ptr %1122, i32 0, i32 17
  %1124 = load i8, ptr %1123, align 1, !tbaa !63
  %1125 = icmp ne i8 %1124, 0
  br i1 %1125, label %1126, label %1127

1126:                                             ; preds = %1121
  store i32 2, ptr %23, align 4
  br label %1154

1127:                                             ; preds = %1121
  %1128 = load ptr, ptr %7, align 8, !tbaa !5
  %1129 = getelementptr inbounds %struct.sqlite3, ptr %1128, i32 0, i32 24
  %1130 = load i8, ptr %1129, align 4, !tbaa !64
  %1131 = zext i8 %1130 to i32
  %1132 = and i32 %1131, 4
  %1133 = icmp ne i32 %1132, 0
  br i1 %1133, label %1134, label %1143

1134:                                             ; preds = %1127
  %1135 = load ptr, ptr %7, align 8, !tbaa !5
  %1136 = getelementptr inbounds %struct.sqlite3, ptr %1135, i32 0, i32 41
  %1137 = load ptr, ptr %1136, align 8, !tbaa !65
  %1138 = load ptr, ptr %7, align 8, !tbaa !5
  %1139 = getelementptr inbounds %struct.sqlite3, ptr %1138, i32 0, i32 42
  %1140 = load ptr, ptr %1139, align 8, !tbaa !66
  %1141 = load ptr, ptr %3, align 8, !tbaa !5
  %1142 = call i32 %1137(i32 noundef 4, ptr noundef %1140, ptr noundef %1141, ptr noundef null)
  br label %1143

1143:                                             ; preds = %1134, %1127
  %1144 = load ptr, ptr %5, align 8, !tbaa !5
  %1145 = load ptr, ptr %4, align 8, !tbaa !5
  %1146 = ptrtoint ptr %1144 to i64
  %1147 = ptrtoint ptr %1145 to i64
  %1148 = sub i64 %1146, %1147
  %1149 = sdiv exact i64 %1148, 24
  %1150 = trunc i64 %1149 to i32
  %1151 = add nsw i32 %1150, 1
  %1152 = load ptr, ptr %3, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.Vdbe, ptr %1152, i32 0, i32 9
  store i32 %1151, ptr %1153, align 4, !tbaa !30
  store i32 100, ptr %6, align 4, !tbaa !14
  store i32 12, ptr %23, align 4
  br label %1154

1154:                                             ; preds = %1143, %1126, %1111, %1069, %1064
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  %1155 = load i32, ptr %23, align 4
  switch i32 %1155, label %8562 [
    i32 10, label %8480
    i32 12, label %8534
    i32 2, label %8545
  ]

1156:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  %1157 = load ptr, ptr %13, align 8, !tbaa !5
  %1158 = load ptr, ptr %5, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.VdbeOp, ptr %1158, i32 0, i32 3
  %1160 = load i32, ptr %1159, align 4, !tbaa !35
  %1161 = sext i32 %1160 to i64
  %1162 = getelementptr inbounds %struct.Mem, ptr %1157, i64 %1161
  store ptr %1162, ptr %14, align 8, !tbaa !5
  %1163 = load ptr, ptr %13, align 8, !tbaa !5
  %1164 = load ptr, ptr %5, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.VdbeOp, ptr %1164, i32 0, i32 4
  %1166 = load i32, ptr %1165, align 8, !tbaa !33
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds %struct.Mem, ptr %1163, i64 %1167
  store ptr %1168, ptr %15, align 8, !tbaa !5
  %1169 = load ptr, ptr %13, align 8, !tbaa !5
  %1170 = load ptr, ptr %5, align 8, !tbaa !5
  %1171 = getelementptr inbounds %struct.VdbeOp, ptr %1170, i32 0, i32 5
  %1172 = load i32, ptr %1171, align 4, !tbaa !38
  %1173 = sext i32 %1172 to i64
  %1174 = getelementptr inbounds %struct.Mem, ptr %1169, i64 %1173
  store ptr %1174, ptr %17, align 8, !tbaa !5
  %1175 = load ptr, ptr %14, align 8, !tbaa !5
  %1176 = getelementptr inbounds %struct.Mem, ptr %1175, i32 0, i32 1
  %1177 = load i16, ptr %1176, align 8, !tbaa !36
  %1178 = zext i16 %1177 to i32
  %1179 = load ptr, ptr %15, align 8, !tbaa !5
  %1180 = getelementptr inbounds %struct.Mem, ptr %1179, i32 0, i32 1
  %1181 = load i16, ptr %1180, align 8, !tbaa !36
  %1182 = zext i16 %1181 to i32
  %1183 = or i32 %1178, %1182
  %1184 = and i32 %1183, 1
  %1185 = icmp ne i32 %1184, 0
  br i1 %1185, label %1186, label %1188

1186:                                             ; preds = %1156
  %1187 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %1187)
  store i32 7, ptr %23, align 4
  br label %1332

1188:                                             ; preds = %1156
  %1189 = load ptr, ptr %14, align 8, !tbaa !5
  %1190 = getelementptr inbounds %struct.Mem, ptr %1189, i32 0, i32 1
  %1191 = load i16, ptr %1190, align 8, !tbaa !36
  %1192 = zext i16 %1191 to i32
  %1193 = and i32 %1192, 16384
  %1194 = icmp ne i32 %1193, 0
  br i1 %1194, label %1195, label %1199

1195:                                             ; preds = %1188
  %1196 = load ptr, ptr %14, align 8, !tbaa !5
  %1197 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef %1196)
  %1198 = icmp ne i32 %1197, 0
  br i1 %1198, label %1212, label %1200

1199:                                             ; preds = %1188
  br i1 false, label %1212, label %1200

1200:                                             ; preds = %1199, %1195
  %1201 = load ptr, ptr %15, align 8, !tbaa !5
  %1202 = getelementptr inbounds %struct.Mem, ptr %1201, i32 0, i32 1
  %1203 = load i16, ptr %1202, align 8, !tbaa !36
  %1204 = zext i16 %1203 to i32
  %1205 = and i32 %1204, 16384
  %1206 = icmp ne i32 %1205, 0
  br i1 %1206, label %1207, label %1211

1207:                                             ; preds = %1200
  %1208 = load ptr, ptr %15, align 8, !tbaa !5
  %1209 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef %1208)
  %1210 = icmp ne i32 %1209, 0
  br i1 %1210, label %1212, label %1213

1211:                                             ; preds = %1200
  br i1 false, label %1212, label %1213

1212:                                             ; preds = %1211, %1207, %1199, %1195
  store i32 2, ptr %23, align 4
  br label %1332

1213:                                             ; preds = %1211, %1207
  %1214 = load ptr, ptr %14, align 8, !tbaa !5
  %1215 = getelementptr inbounds %struct.Mem, ptr %1214, i32 0, i32 1
  %1216 = load i16, ptr %1215, align 8, !tbaa !36
  %1217 = zext i16 %1216 to i32
  %1218 = and i32 %1217, 18
  %1219 = icmp eq i32 %1218, 0
  br i1 %1219, label %1220, label %1226

1220:                                             ; preds = %1213
  %1221 = load ptr, ptr %14, align 8, !tbaa !5
  %1222 = load i8, ptr %9, align 1, !tbaa !16
  %1223 = call i32 @sqlite3VdbeMemStringify(ptr noundef %1221, i8 noundef zeroext %1222, i8 noundef zeroext 0)
  %1224 = icmp ne i32 %1223, 0
  br i1 %1224, label %1225, label %1226

1225:                                             ; preds = %1220
  store i32 2, ptr %23, align 4
  br label %1332

1226:                                             ; preds = %1220, %1213
  %1227 = load ptr, ptr %15, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.Mem, ptr %1227, i32 0, i32 1
  %1229 = load i16, ptr %1228, align 8, !tbaa !36
  %1230 = zext i16 %1229 to i32
  %1231 = and i32 %1230, 18
  %1232 = icmp eq i32 %1231, 0
  br i1 %1232, label %1233, label %1239

1233:                                             ; preds = %1226
  %1234 = load ptr, ptr %15, align 8, !tbaa !5
  %1235 = load i8, ptr %9, align 1, !tbaa !16
  %1236 = call i32 @sqlite3VdbeMemStringify(ptr noundef %1234, i8 noundef zeroext %1235, i8 noundef zeroext 0)
  %1237 = icmp ne i32 %1236, 0
  br i1 %1237, label %1238, label %1239

1238:                                             ; preds = %1233
  store i32 2, ptr %23, align 4
  br label %1332

1239:                                             ; preds = %1233, %1226
  %1240 = load ptr, ptr %14, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.Mem, ptr %1240, i32 0, i32 4
  %1242 = load i32, ptr %1241, align 4, !tbaa !54
  %1243 = load ptr, ptr %15, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.Mem, ptr %1243, i32 0, i32 4
  %1245 = load i32, ptr %1244, align 4, !tbaa !54
  %1246 = add nsw i32 %1242, %1245
  %1247 = sext i32 %1246 to i64
  store i64 %1247, ptr %33, align 8, !tbaa !48
  %1248 = load i64, ptr %33, align 8, !tbaa !48
  %1249 = load ptr, ptr %7, align 8, !tbaa !5
  %1250 = getelementptr inbounds %struct.sqlite3, ptr %1249, i32 0, i32 31
  %1251 = getelementptr inbounds [12 x i32], ptr %1250, i64 0, i64 0
  %1252 = load i32, ptr %1251, align 8, !tbaa !14
  %1253 = sext i32 %1252 to i64
  %1254 = icmp sgt i64 %1248, %1253
  br i1 %1254, label %1255, label %1256

1255:                                             ; preds = %1239
  store i32 13, ptr %23, align 4
  br label %1332

1256:                                             ; preds = %1239
  %1257 = load ptr, ptr %17, align 8, !tbaa !5
  %1258 = load i64, ptr %33, align 8, !tbaa !48
  %1259 = trunc i64 %1258 to i32
  %1260 = add nsw i32 %1259, 2
  %1261 = load ptr, ptr %17, align 8, !tbaa !5
  %1262 = load ptr, ptr %15, align 8, !tbaa !5
  %1263 = icmp eq ptr %1261, %1262
  %1264 = zext i1 %1263 to i32
  %1265 = call i32 @sqlite3VdbeMemGrow(ptr noundef %1257, i32 noundef %1260, i32 noundef %1264)
  %1266 = icmp ne i32 %1265, 0
  br i1 %1266, label %1267, label %1268

1267:                                             ; preds = %1256
  store i32 2, ptr %23, align 4
  br label %1332

1268:                                             ; preds = %1256
  %1269 = load ptr, ptr %17, align 8, !tbaa !5
  %1270 = getelementptr inbounds %struct.Mem, ptr %1269, i32 0, i32 1
  %1271 = load i16, ptr %1270, align 8, !tbaa !36
  %1272 = zext i16 %1271 to i32
  %1273 = and i32 %1272, -49664
  %1274 = or i32 %1273, 2
  %1275 = trunc i32 %1274 to i16
  %1276 = load ptr, ptr %17, align 8, !tbaa !5
  %1277 = getelementptr inbounds %struct.Mem, ptr %1276, i32 0, i32 1
  store i16 %1275, ptr %1277, align 8, !tbaa !36
  %1278 = load ptr, ptr %17, align 8, !tbaa !5
  %1279 = load ptr, ptr %15, align 8, !tbaa !5
  %1280 = icmp ne ptr %1278, %1279
  br i1 %1280, label %1281, label %1292

1281:                                             ; preds = %1268
  %1282 = load ptr, ptr %17, align 8, !tbaa !5
  %1283 = getelementptr inbounds %struct.Mem, ptr %1282, i32 0, i32 5
  %1284 = load ptr, ptr %1283, align 8, !tbaa !53
  %1285 = load ptr, ptr %15, align 8, !tbaa !5
  %1286 = getelementptr inbounds %struct.Mem, ptr %1285, i32 0, i32 5
  %1287 = load ptr, ptr %1286, align 8, !tbaa !53
  %1288 = load ptr, ptr %15, align 8, !tbaa !5
  %1289 = getelementptr inbounds %struct.Mem, ptr %1288, i32 0, i32 4
  %1290 = load i32, ptr %1289, align 4, !tbaa !54
  %1291 = sext i32 %1290 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1284, ptr align 1 %1287, i64 %1291, i1 false)
  br label %1292

1292:                                             ; preds = %1281, %1268
  %1293 = load ptr, ptr %17, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.Mem, ptr %1293, i32 0, i32 5
  %1295 = load ptr, ptr %1294, align 8, !tbaa !53
  %1296 = load ptr, ptr %15, align 8, !tbaa !5
  %1297 = getelementptr inbounds %struct.Mem, ptr %1296, i32 0, i32 4
  %1298 = load i32, ptr %1297, align 4, !tbaa !54
  %1299 = sext i32 %1298 to i64
  %1300 = getelementptr inbounds i8, ptr %1295, i64 %1299
  %1301 = load ptr, ptr %14, align 8, !tbaa !5
  %1302 = getelementptr inbounds %struct.Mem, ptr %1301, i32 0, i32 5
  %1303 = load ptr, ptr %1302, align 8, !tbaa !53
  %1304 = load ptr, ptr %14, align 8, !tbaa !5
  %1305 = getelementptr inbounds %struct.Mem, ptr %1304, i32 0, i32 4
  %1306 = load i32, ptr %1305, align 4, !tbaa !54
  %1307 = sext i32 %1306 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1300, ptr align 1 %1303, i64 %1307, i1 false)
  %1308 = load ptr, ptr %17, align 8, !tbaa !5
  %1309 = getelementptr inbounds %struct.Mem, ptr %1308, i32 0, i32 5
  %1310 = load ptr, ptr %1309, align 8, !tbaa !53
  %1311 = load i64, ptr %33, align 8, !tbaa !48
  %1312 = getelementptr inbounds i8, ptr %1310, i64 %1311
  store i8 0, ptr %1312, align 1, !tbaa !16
  %1313 = load ptr, ptr %17, align 8, !tbaa !5
  %1314 = getelementptr inbounds %struct.Mem, ptr %1313, i32 0, i32 5
  %1315 = load ptr, ptr %1314, align 8, !tbaa !53
  %1316 = load i64, ptr %33, align 8, !tbaa !48
  %1317 = add nsw i64 %1316, 1
  %1318 = getelementptr inbounds i8, ptr %1315, i64 %1317
  store i8 0, ptr %1318, align 1, !tbaa !16
  %1319 = load ptr, ptr %17, align 8, !tbaa !5
  %1320 = getelementptr inbounds %struct.Mem, ptr %1319, i32 0, i32 1
  %1321 = load i16, ptr %1320, align 8, !tbaa !36
  %1322 = zext i16 %1321 to i32
  %1323 = or i32 %1322, 512
  %1324 = trunc i32 %1323 to i16
  store i16 %1324, ptr %1320, align 8, !tbaa !36
  %1325 = load i64, ptr %33, align 8, !tbaa !48
  %1326 = trunc i64 %1325 to i32
  %1327 = load ptr, ptr %17, align 8, !tbaa !5
  %1328 = getelementptr inbounds %struct.Mem, ptr %1327, i32 0, i32 4
  store i32 %1326, ptr %1328, align 4, !tbaa !54
  %1329 = load i8, ptr %9, align 1, !tbaa !16
  %1330 = load ptr, ptr %17, align 8, !tbaa !5
  %1331 = getelementptr inbounds %struct.Mem, ptr %1330, i32 0, i32 2
  store i8 %1329, ptr %1331, align 2, !tbaa !55
  store i32 7, ptr %23, align 4
  br label %1332

1332:                                             ; preds = %1292, %1267, %1255, %1238, %1225, %1212, %1186
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  %1333 = load i32, ptr %23, align 4
  switch i32 %1333, label %8562 [
    i32 7, label %8475
    i32 13, label %8543
    i32 2, label %8545
  ]

1334:                                             ; preds = %363, %363, %363, %363, %363
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  %1335 = load ptr, ptr %13, align 8, !tbaa !5
  %1336 = load ptr, ptr %5, align 8, !tbaa !5
  %1337 = getelementptr inbounds %struct.VdbeOp, ptr %1336, i32 0, i32 3
  %1338 = load i32, ptr %1337, align 4, !tbaa !35
  %1339 = sext i32 %1338 to i64
  %1340 = getelementptr inbounds %struct.Mem, ptr %1335, i64 %1339
  store ptr %1340, ptr %14, align 8, !tbaa !5
  %1341 = load ptr, ptr %14, align 8, !tbaa !5
  %1342 = call zeroext i16 @numericType(ptr noundef %1341)
  store i16 %1342, ptr %36, align 2, !tbaa !56
  %1343 = load ptr, ptr %13, align 8, !tbaa !5
  %1344 = load ptr, ptr %5, align 8, !tbaa !5
  %1345 = getelementptr inbounds %struct.VdbeOp, ptr %1344, i32 0, i32 4
  %1346 = load i32, ptr %1345, align 8, !tbaa !33
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds %struct.Mem, ptr %1343, i64 %1347
  store ptr %1348, ptr %15, align 8, !tbaa !5
  %1349 = load ptr, ptr %15, align 8, !tbaa !5
  %1350 = call zeroext i16 @numericType(ptr noundef %1349)
  store i16 %1350, ptr %37, align 2, !tbaa !56
  %1351 = load ptr, ptr %13, align 8, !tbaa !5
  %1352 = load ptr, ptr %5, align 8, !tbaa !5
  %1353 = getelementptr inbounds %struct.VdbeOp, ptr %1352, i32 0, i32 5
  %1354 = load i32, ptr %1353, align 4, !tbaa !38
  %1355 = sext i32 %1354 to i64
  %1356 = getelementptr inbounds %struct.Mem, ptr %1351, i64 %1355
  store ptr %1356, ptr %17, align 8, !tbaa !5
  %1357 = load ptr, ptr %14, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.Mem, ptr %1357, i32 0, i32 1
  %1359 = load i16, ptr %1358, align 8, !tbaa !36
  %1360 = zext i16 %1359 to i32
  %1361 = load ptr, ptr %15, align 8, !tbaa !5
  %1362 = getelementptr inbounds %struct.Mem, ptr %1361, i32 0, i32 1
  %1363 = load i16, ptr %1362, align 8, !tbaa !36
  %1364 = zext i16 %1363 to i32
  %1365 = or i32 %1360, %1364
  %1366 = trunc i32 %1365 to i16
  store i16 %1366, ptr %35, align 2, !tbaa !56
  %1367 = load i16, ptr %35, align 2, !tbaa !56
  %1368 = zext i16 %1367 to i32
  %1369 = and i32 %1368, 1
  %1370 = icmp ne i32 %1369, 0
  br i1 %1370, label %1371, label %1372

1371:                                             ; preds = %1334
  br label %1528

1372:                                             ; preds = %1334
  %1373 = load i16, ptr %36, align 2, !tbaa !56
  %1374 = zext i16 %1373 to i32
  %1375 = load i16, ptr %37, align 2, !tbaa !56
  %1376 = zext i16 %1375 to i32
  %1377 = and i32 %1374, %1376
  %1378 = and i32 %1377, 4
  %1379 = icmp ne i32 %1378, 0
  br i1 %1379, label %1380, label %1449

1380:                                             ; preds = %1372
  %1381 = load ptr, ptr %14, align 8, !tbaa !5
  %1382 = getelementptr inbounds %struct.Mem, ptr %1381, i32 0, i32 0
  %1383 = load i64, ptr %1382, align 8, !tbaa !16
  store i64 %1383, ptr %38, align 8, !tbaa !48
  %1384 = load ptr, ptr %15, align 8, !tbaa !5
  %1385 = getelementptr inbounds %struct.Mem, ptr %1384, i32 0, i32 0
  %1386 = load i64, ptr %1385, align 8, !tbaa !16
  store i64 %1386, ptr %39, align 8, !tbaa !48
  store i8 1, ptr %34, align 1, !tbaa !16
  %1387 = load ptr, ptr %5, align 8, !tbaa !5
  %1388 = getelementptr inbounds %struct.VdbeOp, ptr %1387, i32 0, i32 0
  %1389 = load i8, ptr %1388, align 8, !tbaa !31
  %1390 = zext i8 %1389 to i32
  switch i32 %1390, label %1424 [
    i32 47, label %1391
    i32 48, label %1397
    i32 49, label %1403
    i32 50, label %1409
  ]

1391:                                             ; preds = %1380
  %1392 = load i64, ptr %38, align 8, !tbaa !48
  %1393 = call i32 @sqlite3AddInt64(ptr noundef %39, i64 noundef %1392)
  %1394 = icmp ne i32 %1393, 0
  br i1 %1394, label %1395, label %1396

1395:                                             ; preds = %1391
  br label %1450

1396:                                             ; preds = %1391
  br label %1436

1397:                                             ; preds = %1380
  %1398 = load i64, ptr %38, align 8, !tbaa !48
  %1399 = call i32 @sqlite3SubInt64(ptr noundef %39, i64 noundef %1398)
  %1400 = icmp ne i32 %1399, 0
  br i1 %1400, label %1401, label %1402

1401:                                             ; preds = %1397
  br label %1450

1402:                                             ; preds = %1397
  br label %1436

1403:                                             ; preds = %1380
  %1404 = load i64, ptr %38, align 8, !tbaa !48
  %1405 = call i32 @sqlite3MulInt64(ptr noundef %39, i64 noundef %1404)
  %1406 = icmp ne i32 %1405, 0
  br i1 %1406, label %1407, label %1408

1407:                                             ; preds = %1403
  br label %1450

1408:                                             ; preds = %1403
  br label %1436

1409:                                             ; preds = %1380
  %1410 = load i64, ptr %38, align 8, !tbaa !48
  %1411 = icmp eq i64 %1410, 0
  br i1 %1411, label %1412, label %1413

1412:                                             ; preds = %1409
  br label %1528

1413:                                             ; preds = %1409
  %1414 = load i64, ptr %38, align 8, !tbaa !48
  %1415 = icmp eq i64 %1414, -1
  br i1 %1415, label %1416, label %1420

1416:                                             ; preds = %1413
  %1417 = load i64, ptr %39, align 8, !tbaa !48
  %1418 = icmp eq i64 %1417, -9223372036854775808
  br i1 %1418, label %1419, label %1420

1419:                                             ; preds = %1416
  br label %1450

1420:                                             ; preds = %1416, %1413
  %1421 = load i64, ptr %38, align 8, !tbaa !48
  %1422 = load i64, ptr %39, align 8, !tbaa !48
  %1423 = sdiv i64 %1422, %1421
  store i64 %1423, ptr %39, align 8, !tbaa !48
  br label %1436

1424:                                             ; preds = %1380
  %1425 = load i64, ptr %38, align 8, !tbaa !48
  %1426 = icmp eq i64 %1425, 0
  br i1 %1426, label %1427, label %1428

1427:                                             ; preds = %1424
  br label %1528

1428:                                             ; preds = %1424
  %1429 = load i64, ptr %38, align 8, !tbaa !48
  %1430 = icmp eq i64 %1429, -1
  br i1 %1430, label %1431, label %1432

1431:                                             ; preds = %1428
  store i64 1, ptr %38, align 8, !tbaa !48
  br label %1432

1432:                                             ; preds = %1431, %1428
  %1433 = load i64, ptr %38, align 8, !tbaa !48
  %1434 = load i64, ptr %39, align 8, !tbaa !48
  %1435 = srem i64 %1434, %1433
  store i64 %1435, ptr %39, align 8, !tbaa !48
  br label %1436

1436:                                             ; preds = %1432, %1420, %1408, %1402, %1396
  %1437 = load i64, ptr %39, align 8, !tbaa !48
  %1438 = load ptr, ptr %17, align 8, !tbaa !5
  %1439 = getelementptr inbounds %struct.Mem, ptr %1438, i32 0, i32 0
  store i64 %1437, ptr %1439, align 8, !tbaa !16
  %1440 = load ptr, ptr %17, align 8, !tbaa !5
  %1441 = getelementptr inbounds %struct.Mem, ptr %1440, i32 0, i32 1
  %1442 = load i16, ptr %1441, align 8, !tbaa !36
  %1443 = zext i16 %1442 to i32
  %1444 = and i32 %1443, -49664
  %1445 = or i32 %1444, 4
  %1446 = trunc i32 %1445 to i16
  %1447 = load ptr, ptr %17, align 8, !tbaa !5
  %1448 = getelementptr inbounds %struct.Mem, ptr %1447, i32 0, i32 1
  store i16 %1446, ptr %1448, align 8, !tbaa !36
  br label %1527

1449:                                             ; preds = %1372
  store i8 0, ptr %34, align 1, !tbaa !16
  br label %1450

1450:                                             ; preds = %1449, %1419, %1407, %1401, %1395
  %1451 = load ptr, ptr %14, align 8, !tbaa !5
  %1452 = call double @sqlite3VdbeRealValue(ptr noundef %1451)
  store double %1452, ptr %40, align 8, !tbaa !49
  %1453 = load ptr, ptr %15, align 8, !tbaa !5
  %1454 = call double @sqlite3VdbeRealValue(ptr noundef %1453)
  store double %1454, ptr %41, align 8, !tbaa !49
  %1455 = load ptr, ptr %5, align 8, !tbaa !5
  %1456 = getelementptr inbounds %struct.VdbeOp, ptr %1455, i32 0, i32 0
  %1457 = load i8, ptr %1456, align 8, !tbaa !31
  %1458 = zext i8 %1457 to i32
  switch i32 %1458, label %1479 [
    i32 47, label %1459
    i32 48, label %1463
    i32 49, label %1467
    i32 50, label %1471
  ]

1459:                                             ; preds = %1450
  %1460 = load double, ptr %40, align 8, !tbaa !49
  %1461 = load double, ptr %41, align 8, !tbaa !49
  %1462 = fadd double %1461, %1460
  store double %1462, ptr %41, align 8, !tbaa !49
  br label %1496

1463:                                             ; preds = %1450
  %1464 = load double, ptr %40, align 8, !tbaa !49
  %1465 = load double, ptr %41, align 8, !tbaa !49
  %1466 = fsub double %1465, %1464
  store double %1466, ptr %41, align 8, !tbaa !49
  br label %1496

1467:                                             ; preds = %1450
  %1468 = load double, ptr %40, align 8, !tbaa !49
  %1469 = load double, ptr %41, align 8, !tbaa !49
  %1470 = fmul double %1469, %1468
  store double %1470, ptr %41, align 8, !tbaa !49
  br label %1496

1471:                                             ; preds = %1450
  %1472 = load double, ptr %40, align 8, !tbaa !49
  %1473 = fcmp oeq double %1472, 0.000000e+00
  br i1 %1473, label %1474, label %1475

1474:                                             ; preds = %1471
  br label %1528

1475:                                             ; preds = %1471
  %1476 = load double, ptr %40, align 8, !tbaa !49
  %1477 = load double, ptr %41, align 8, !tbaa !49
  %1478 = fdiv double %1477, %1476
  store double %1478, ptr %41, align 8, !tbaa !49
  br label %1496

1479:                                             ; preds = %1450
  %1480 = load double, ptr %40, align 8, !tbaa !49
  %1481 = fptosi double %1480 to i64
  store i64 %1481, ptr %38, align 8, !tbaa !48
  %1482 = load double, ptr %41, align 8, !tbaa !49
  %1483 = fptosi double %1482 to i64
  store i64 %1483, ptr %39, align 8, !tbaa !48
  %1484 = load i64, ptr %38, align 8, !tbaa !48
  %1485 = icmp eq i64 %1484, 0
  br i1 %1485, label %1486, label %1487

1486:                                             ; preds = %1479
  br label %1528

1487:                                             ; preds = %1479
  %1488 = load i64, ptr %38, align 8, !tbaa !48
  %1489 = icmp eq i64 %1488, -1
  br i1 %1489, label %1490, label %1491

1490:                                             ; preds = %1487
  store i64 1, ptr %38, align 8, !tbaa !48
  br label %1491

1491:                                             ; preds = %1490, %1487
  %1492 = load i64, ptr %39, align 8, !tbaa !48
  %1493 = load i64, ptr %38, align 8, !tbaa !48
  %1494 = srem i64 %1492, %1493
  %1495 = sitofp i64 %1494 to double
  store double %1495, ptr %41, align 8, !tbaa !49
  br label %1496

1496:                                             ; preds = %1491, %1475, %1467, %1463, %1459
  %1497 = load double, ptr %41, align 8, !tbaa !49
  %1498 = call i32 @sqlite3IsNaN(double noundef %1497)
  %1499 = icmp ne i32 %1498, 0
  br i1 %1499, label %1500, label %1501

1500:                                             ; preds = %1496
  br label %1528

1501:                                             ; preds = %1496
  %1502 = load double, ptr %41, align 8, !tbaa !49
  %1503 = load ptr, ptr %17, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.Mem, ptr %1503, i32 0, i32 0
  store double %1502, ptr %1504, align 8, !tbaa !16
  %1505 = load ptr, ptr %17, align 8, !tbaa !5
  %1506 = getelementptr inbounds %struct.Mem, ptr %1505, i32 0, i32 1
  %1507 = load i16, ptr %1506, align 8, !tbaa !36
  %1508 = zext i16 %1507 to i32
  %1509 = and i32 %1508, -49664
  %1510 = or i32 %1509, 8
  %1511 = trunc i32 %1510 to i16
  %1512 = load ptr, ptr %17, align 8, !tbaa !5
  %1513 = getelementptr inbounds %struct.Mem, ptr %1512, i32 0, i32 1
  store i16 %1511, ptr %1513, align 8, !tbaa !36
  %1514 = load i16, ptr %36, align 2, !tbaa !56
  %1515 = zext i16 %1514 to i32
  %1516 = load i16, ptr %37, align 2, !tbaa !56
  %1517 = zext i16 %1516 to i32
  %1518 = or i32 %1515, %1517
  %1519 = and i32 %1518, 8
  %1520 = icmp eq i32 %1519, 0
  br i1 %1520, label %1521, label %1526

1521:                                             ; preds = %1501
  %1522 = load i8, ptr %34, align 1, !tbaa !16
  %1523 = icmp ne i8 %1522, 0
  br i1 %1523, label %1526, label %1524

1524:                                             ; preds = %1521
  %1525 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sqlite3VdbeIntegerAffinity(ptr noundef %1525)
  br label %1526

1526:                                             ; preds = %1524, %1521, %1501
  br label %1527

1527:                                             ; preds = %1526, %1436
  store i32 7, ptr %23, align 4
  br label %1530

1528:                                             ; preds = %1500, %1486, %1474, %1427, %1412, %1371
  %1529 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %1529)
  store i32 7, ptr %23, align 4
  br label %1530

1530:                                             ; preds = %1528, %1527
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #5
  br label %8475

1531:                                             ; preds = %363
  %1532 = load ptr, ptr %5, align 8, !tbaa !5
  %1533 = getelementptr inbounds %struct.VdbeOp, ptr %1532, i32 0, i32 3
  %1534 = load i32, ptr %1533, align 4, !tbaa !35
  %1535 = icmp ne i32 %1534, 0
  br i1 %1535, label %1536, label %1543

1536:                                             ; preds = %1531
  %1537 = load ptr, ptr %13, align 8, !tbaa !5
  %1538 = load ptr, ptr %5, align 8, !tbaa !5
  %1539 = getelementptr inbounds %struct.VdbeOp, ptr %1538, i32 0, i32 3
  %1540 = load i32, ptr %1539, align 4, !tbaa !35
  %1541 = sext i32 %1540 to i64
  %1542 = getelementptr inbounds %struct.Mem, ptr %1537, i64 %1541
  call void @sqlite3VdbeMemSetInt64(ptr noundef %1542, i64 noundef 0)
  br label %1543

1543:                                             ; preds = %1536, %1531
  br label %8475

1544:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  %1545 = load ptr, ptr %5, align 8, !tbaa !5
  %1546 = getelementptr inbounds %struct.VdbeOp, ptr %1545, i32 0, i32 2
  %1547 = load i16, ptr %1546, align 2, !tbaa !45
  %1548 = zext i16 %1547 to i32
  store i32 %1548, ptr %42, align 4, !tbaa !14
  %1549 = load ptr, ptr %7, align 8, !tbaa !5
  %1550 = load i32, ptr %42, align 4, !tbaa !14
  %1551 = sub nsw i32 %1550, 1
  %1552 = sext i32 %1551 to i64
  %1553 = mul i64 %1552, 8
  %1554 = add i64 56, %1553
  %1555 = call ptr @sqlite3DbMallocRawNN(ptr noundef %1549, i64 noundef %1554)
  store ptr %1555, ptr %43, align 8, !tbaa !5
  %1556 = load ptr, ptr %43, align 8, !tbaa !5
  %1557 = icmp eq ptr %1556, null
  br i1 %1557, label %1558, label %1559

1558:                                             ; preds = %1544
  store i32 2, ptr %23, align 4
  br label %1590

1559:                                             ; preds = %1544
  %1560 = load ptr, ptr %43, align 8, !tbaa !5
  %1561 = getelementptr inbounds %struct.sqlite3_context, ptr %1560, i32 0, i32 0
  store ptr null, ptr %1561, align 8, !tbaa !67
  %1562 = load ptr, ptr %5, align 8, !tbaa !5
  %1563 = getelementptr inbounds %struct.VdbeOp, ptr %1562, i32 0, i32 6
  %1564 = load ptr, ptr %1563, align 8, !tbaa !16
  %1565 = load ptr, ptr %43, align 8, !tbaa !5
  %1566 = getelementptr inbounds %struct.sqlite3_context, ptr %1565, i32 0, i32 1
  store ptr %1564, ptr %1566, align 8, !tbaa !69
  %1567 = load ptr, ptr %5, align 8, !tbaa !5
  %1568 = load ptr, ptr %4, align 8, !tbaa !5
  %1569 = ptrtoint ptr %1567 to i64
  %1570 = ptrtoint ptr %1568 to i64
  %1571 = sub i64 %1569, %1570
  %1572 = sdiv exact i64 %1571, 24
  %1573 = trunc i64 %1572 to i32
  %1574 = load ptr, ptr %43, align 8, !tbaa !5
  %1575 = getelementptr inbounds %struct.sqlite3_context, ptr %1574, i32 0, i32 4
  store i32 %1573, ptr %1575, align 8, !tbaa !70
  %1576 = load ptr, ptr %3, align 8, !tbaa !5
  %1577 = load ptr, ptr %43, align 8, !tbaa !5
  %1578 = getelementptr inbounds %struct.sqlite3_context, ptr %1577, i32 0, i32 3
  store ptr %1576, ptr %1578, align 8, !tbaa !71
  %1579 = load i32, ptr %42, align 4, !tbaa !14
  %1580 = trunc i32 %1579 to i8
  %1581 = load ptr, ptr %43, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.sqlite3_context, ptr %1581, i32 0, i32 8
  store i8 %1580, ptr %1582, align 2, !tbaa !72
  %1583 = load ptr, ptr %5, align 8, !tbaa !5
  %1584 = getelementptr inbounds %struct.VdbeOp, ptr %1583, i32 0, i32 1
  store i8 -16, ptr %1584, align 1, !tbaa !52
  %1585 = load ptr, ptr %43, align 8, !tbaa !5
  %1586 = load ptr, ptr %5, align 8, !tbaa !5
  %1587 = getelementptr inbounds %struct.VdbeOp, ptr %1586, i32 0, i32 6
  store ptr %1585, ptr %1587, align 8, !tbaa !16
  %1588 = load ptr, ptr %5, align 8, !tbaa !5
  %1589 = getelementptr inbounds %struct.VdbeOp, ptr %1588, i32 0, i32 0
  store i8 91, ptr %1589, align 8, !tbaa !31
  store i32 0, ptr %23, align 4
  br label %1590

1590:                                             ; preds = %1559, %1558
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  %1591 = load i32, ptr %23, align 4
  switch i32 %1591, label %8562 [
    i32 0, label %1592
    i32 2, label %8545
  ]

1592:                                             ; preds = %1590
  br label %1593

1593:                                             ; preds = %1592, %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  %1594 = load ptr, ptr %5, align 8, !tbaa !5
  %1595 = getelementptr inbounds %struct.VdbeOp, ptr %1594, i32 0, i32 6
  %1596 = load ptr, ptr %1595, align 8, !tbaa !16
  store ptr %1596, ptr %45, align 8, !tbaa !5
  %1597 = load ptr, ptr %13, align 8, !tbaa !5
  %1598 = load ptr, ptr %5, align 8, !tbaa !5
  %1599 = getelementptr inbounds %struct.VdbeOp, ptr %1598, i32 0, i32 5
  %1600 = load i32, ptr %1599, align 4, !tbaa !38
  %1601 = sext i32 %1600 to i64
  %1602 = getelementptr inbounds %struct.Mem, ptr %1597, i64 %1601
  store ptr %1602, ptr %17, align 8, !tbaa !5
  %1603 = load ptr, ptr %45, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.sqlite3_context, ptr %1603, i32 0, i32 0
  %1605 = load ptr, ptr %1604, align 8, !tbaa !67
  %1606 = load ptr, ptr %17, align 8, !tbaa !5
  %1607 = icmp ne ptr %1605, %1606
  br i1 %1607, label %1608, label %1638

1608:                                             ; preds = %1593
  %1609 = load ptr, ptr %17, align 8, !tbaa !5
  %1610 = load ptr, ptr %45, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.sqlite3_context, ptr %1610, i32 0, i32 0
  store ptr %1609, ptr %1611, align 8, !tbaa !67
  %1612 = load ptr, ptr %45, align 8, !tbaa !5
  %1613 = getelementptr inbounds %struct.sqlite3_context, ptr %1612, i32 0, i32 8
  %1614 = load i8, ptr %1613, align 2, !tbaa !72
  %1615 = zext i8 %1614 to i32
  %1616 = sub nsw i32 %1615, 1
  store i32 %1616, ptr %44, align 4, !tbaa !14
  br label %1617

1617:                                             ; preds = %1634, %1608
  %1618 = load i32, ptr %44, align 4, !tbaa !14
  %1619 = icmp sge i32 %1618, 0
  br i1 %1619, label %1620, label %1637

1620:                                             ; preds = %1617
  %1621 = load ptr, ptr %13, align 8, !tbaa !5
  %1622 = load ptr, ptr %5, align 8, !tbaa !5
  %1623 = getelementptr inbounds %struct.VdbeOp, ptr %1622, i32 0, i32 4
  %1624 = load i32, ptr %1623, align 8, !tbaa !33
  %1625 = load i32, ptr %44, align 4, !tbaa !14
  %1626 = add nsw i32 %1624, %1625
  %1627 = sext i32 %1626 to i64
  %1628 = getelementptr inbounds %struct.Mem, ptr %1621, i64 %1627
  %1629 = load ptr, ptr %45, align 8, !tbaa !5
  %1630 = getelementptr inbounds %struct.sqlite3_context, ptr %1629, i32 0, i32 9
  %1631 = load i32, ptr %44, align 4, !tbaa !14
  %1632 = sext i32 %1631 to i64
  %1633 = getelementptr inbounds [1 x ptr], ptr %1630, i64 0, i64 %1632
  store ptr %1628, ptr %1633, align 8, !tbaa !5
  br label %1634

1634:                                             ; preds = %1620
  %1635 = load i32, ptr %44, align 4, !tbaa !14
  %1636 = add nsw i32 %1635, -1
  store i32 %1636, ptr %44, align 4, !tbaa !14
  br label %1617, !llvm.loop !73

1637:                                             ; preds = %1617
  br label %1638

1638:                                             ; preds = %1637, %1593
  %1639 = load ptr, ptr %17, align 8, !tbaa !5
  %1640 = getelementptr inbounds %struct.Mem, ptr %1639, i32 0, i32 1
  %1641 = load i16, ptr %1640, align 8, !tbaa !36
  %1642 = zext i16 %1641 to i32
  %1643 = and i32 %1642, -49664
  %1644 = or i32 %1643, 1
  %1645 = trunc i32 %1644 to i16
  %1646 = load ptr, ptr %17, align 8, !tbaa !5
  %1647 = getelementptr inbounds %struct.Mem, ptr %1646, i32 0, i32 1
  store i16 %1645, ptr %1647, align 8, !tbaa !36
  %1648 = load ptr, ptr %45, align 8, !tbaa !5
  %1649 = getelementptr inbounds %struct.sqlite3_context, ptr %1648, i32 0, i32 7
  store i8 0, ptr %1649, align 1, !tbaa !74
  %1650 = load ptr, ptr %45, align 8, !tbaa !5
  %1651 = getelementptr inbounds %struct.sqlite3_context, ptr %1650, i32 0, i32 1
  %1652 = load ptr, ptr %1651, align 8, !tbaa !69
  %1653 = getelementptr inbounds %struct.FuncDef, ptr %1652, i32 0, i32 4
  %1654 = load ptr, ptr %1653, align 8, !tbaa !75
  %1655 = load ptr, ptr %45, align 8, !tbaa !5
  %1656 = load ptr, ptr %45, align 8, !tbaa !5
  %1657 = getelementptr inbounds %struct.sqlite3_context, ptr %1656, i32 0, i32 8
  %1658 = load i8, ptr %1657, align 2, !tbaa !72
  %1659 = zext i8 %1658 to i32
  %1660 = load ptr, ptr %45, align 8, !tbaa !5
  %1661 = getelementptr inbounds %struct.sqlite3_context, ptr %1660, i32 0, i32 9
  %1662 = getelementptr inbounds [1 x ptr], ptr %1661, i64 0, i64 0
  call void %1654(ptr noundef %1655, i32 noundef %1659, ptr noundef %1662)
  %1663 = load ptr, ptr %45, align 8, !tbaa !5
  %1664 = getelementptr inbounds %struct.sqlite3_context, ptr %1663, i32 0, i32 7
  %1665 = load i8, ptr %1664, align 1, !tbaa !74
  %1666 = icmp ne i8 %1665, 0
  br i1 %1666, label %1667, label %1693

1667:                                             ; preds = %1638
  %1668 = load ptr, ptr %45, align 8, !tbaa !5
  %1669 = getelementptr inbounds %struct.sqlite3_context, ptr %1668, i32 0, i32 5
  %1670 = load i32, ptr %1669, align 4, !tbaa !77
  %1671 = icmp ne i32 %1670, 0
  br i1 %1671, label %1672, label %1679

1672:                                             ; preds = %1667
  %1673 = load ptr, ptr %3, align 8, !tbaa !5
  %1674 = load ptr, ptr %17, align 8, !tbaa !5
  %1675 = call ptr @sqlite3_value_text(ptr noundef %1674)
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %1673, ptr noundef @.str.6, ptr noundef %1675)
  %1676 = load ptr, ptr %45, align 8, !tbaa !5
  %1677 = getelementptr inbounds %struct.sqlite3_context, ptr %1676, i32 0, i32 5
  %1678 = load i32, ptr %1677, align 4, !tbaa !77
  store i32 %1678, ptr %6, align 4, !tbaa !14
  br label %1679

1679:                                             ; preds = %1672, %1667
  %1680 = load ptr, ptr %7, align 8, !tbaa !5
  %1681 = load ptr, ptr %3, align 8, !tbaa !5
  %1682 = getelementptr inbounds %struct.Vdbe, ptr %1681, i32 0, i32 42
  %1683 = load ptr, ptr %45, align 8, !tbaa !5
  %1684 = getelementptr inbounds %struct.sqlite3_context, ptr %1683, i32 0, i32 4
  %1685 = load i32, ptr %1684, align 8, !tbaa !70
  %1686 = load ptr, ptr %5, align 8, !tbaa !5
  %1687 = getelementptr inbounds %struct.VdbeOp, ptr %1686, i32 0, i32 3
  %1688 = load i32, ptr %1687, align 4, !tbaa !35
  call void @sqlite3VdbeDeleteAuxData(ptr noundef %1680, ptr noundef %1682, i32 noundef %1685, i32 noundef %1688)
  %1689 = load i32, ptr %6, align 4, !tbaa !14
  %1690 = icmp ne i32 %1689, 0
  br i1 %1690, label %1691, label %1692

1691:                                             ; preds = %1679
  store i32 10, ptr %23, align 4
  br label %1711

1692:                                             ; preds = %1679
  br label %1693

1693:                                             ; preds = %1692, %1638
  %1694 = load ptr, ptr %17, align 8, !tbaa !5
  %1695 = getelementptr inbounds %struct.Mem, ptr %1694, i32 0, i32 1
  %1696 = load i16, ptr %1695, align 8, !tbaa !36
  %1697 = zext i16 %1696 to i32
  %1698 = and i32 %1697, 18
  %1699 = icmp ne i32 %1698, 0
  br i1 %1699, label %1700, label %1710

1700:                                             ; preds = %1693
  %1701 = load ptr, ptr %17, align 8, !tbaa !5
  %1702 = load i8, ptr %9, align 1, !tbaa !16
  %1703 = zext i8 %1702 to i32
  %1704 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %1701, i32 noundef %1703)
  %1705 = load ptr, ptr %17, align 8, !tbaa !5
  %1706 = call i32 @sqlite3VdbeMemTooBig(ptr noundef %1705)
  %1707 = icmp ne i32 %1706, 0
  br i1 %1707, label %1708, label %1709

1708:                                             ; preds = %1700
  store i32 13, ptr %23, align 4
  br label %1711

1709:                                             ; preds = %1700
  br label %1710

1710:                                             ; preds = %1709, %1693
  store i32 7, ptr %23, align 4
  br label %1711

1711:                                             ; preds = %1710, %1708, %1691
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  %1712 = load i32, ptr %23, align 4
  switch i32 %1712, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 13, label %8543
  ]

1713:                                             ; preds = %363, %363, %363, %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #5
  %1714 = load ptr, ptr %13, align 8, !tbaa !5
  %1715 = load ptr, ptr %5, align 8, !tbaa !5
  %1716 = getelementptr inbounds %struct.VdbeOp, ptr %1715, i32 0, i32 3
  %1717 = load i32, ptr %1716, align 4, !tbaa !35
  %1718 = sext i32 %1717 to i64
  %1719 = getelementptr inbounds %struct.Mem, ptr %1714, i64 %1718
  store ptr %1719, ptr %14, align 8, !tbaa !5
  %1720 = load ptr, ptr %13, align 8, !tbaa !5
  %1721 = load ptr, ptr %5, align 8, !tbaa !5
  %1722 = getelementptr inbounds %struct.VdbeOp, ptr %1721, i32 0, i32 4
  %1723 = load i32, ptr %1722, align 8, !tbaa !33
  %1724 = sext i32 %1723 to i64
  %1725 = getelementptr inbounds %struct.Mem, ptr %1720, i64 %1724
  store ptr %1725, ptr %15, align 8, !tbaa !5
  %1726 = load ptr, ptr %13, align 8, !tbaa !5
  %1727 = load ptr, ptr %5, align 8, !tbaa !5
  %1728 = getelementptr inbounds %struct.VdbeOp, ptr %1727, i32 0, i32 5
  %1729 = load i32, ptr %1728, align 4, !tbaa !38
  %1730 = sext i32 %1729 to i64
  %1731 = getelementptr inbounds %struct.Mem, ptr %1726, i64 %1730
  store ptr %1731, ptr %17, align 8, !tbaa !5
  %1732 = load ptr, ptr %14, align 8, !tbaa !5
  %1733 = getelementptr inbounds %struct.Mem, ptr %1732, i32 0, i32 1
  %1734 = load i16, ptr %1733, align 8, !tbaa !36
  %1735 = zext i16 %1734 to i32
  %1736 = load ptr, ptr %15, align 8, !tbaa !5
  %1737 = getelementptr inbounds %struct.Mem, ptr %1736, i32 0, i32 1
  %1738 = load i16, ptr %1737, align 8, !tbaa !36
  %1739 = zext i16 %1738 to i32
  %1740 = or i32 %1735, %1739
  %1741 = and i32 %1740, 1
  %1742 = icmp ne i32 %1741, 0
  br i1 %1742, label %1743, label %1745

1743:                                             ; preds = %1713
  %1744 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %1744)
  store i32 7, ptr %23, align 4
  br label %1840

1745:                                             ; preds = %1713
  %1746 = load ptr, ptr %15, align 8, !tbaa !5
  %1747 = call i64 @sqlite3VdbeIntValue(ptr noundef %1746)
  store i64 %1747, ptr %46, align 8, !tbaa !48
  %1748 = load ptr, ptr %14, align 8, !tbaa !5
  %1749 = call i64 @sqlite3VdbeIntValue(ptr noundef %1748)
  store i64 %1749, ptr %48, align 8, !tbaa !48
  %1750 = load ptr, ptr %5, align 8, !tbaa !5
  %1751 = getelementptr inbounds %struct.VdbeOp, ptr %1750, i32 0, i32 0
  %1752 = load i8, ptr %1751, align 8, !tbaa !31
  store i8 %1752, ptr %49, align 1, !tbaa !16
  %1753 = load i8, ptr %49, align 1, !tbaa !16
  %1754 = zext i8 %1753 to i32
  %1755 = icmp eq i32 %1754, 43
  br i1 %1755, label %1756, label %1760

1756:                                             ; preds = %1745
  %1757 = load i64, ptr %48, align 8, !tbaa !48
  %1758 = load i64, ptr %46, align 8, !tbaa !48
  %1759 = and i64 %1758, %1757
  store i64 %1759, ptr %46, align 8, !tbaa !48
  br label %1827

1760:                                             ; preds = %1745
  %1761 = load i8, ptr %49, align 1, !tbaa !16
  %1762 = zext i8 %1761 to i32
  %1763 = icmp eq i32 %1762, 44
  br i1 %1763, label %1764, label %1768

1764:                                             ; preds = %1760
  %1765 = load i64, ptr %48, align 8, !tbaa !48
  %1766 = load i64, ptr %46, align 8, !tbaa !48
  %1767 = or i64 %1766, %1765
  store i64 %1767, ptr %46, align 8, !tbaa !48
  br label %1826

1768:                                             ; preds = %1760
  %1769 = load i64, ptr %48, align 8, !tbaa !48
  %1770 = icmp ne i64 %1769, 0
  br i1 %1770, label %1771, label %1825

1771:                                             ; preds = %1768
  %1772 = load i64, ptr %48, align 8, !tbaa !48
  %1773 = icmp slt i64 %1772, 0
  br i1 %1773, label %1774, label %1787

1774:                                             ; preds = %1771
  %1775 = load i8, ptr %49, align 1, !tbaa !16
  %1776 = zext i8 %1775 to i32
  %1777 = sub nsw i32 91, %1776
  %1778 = trunc i32 %1777 to i8
  store i8 %1778, ptr %49, align 1, !tbaa !16
  %1779 = load i64, ptr %48, align 8, !tbaa !48
  %1780 = icmp sgt i64 %1779, -64
  br i1 %1780, label %1781, label %1784

1781:                                             ; preds = %1774
  %1782 = load i64, ptr %48, align 8, !tbaa !48
  %1783 = sub nsw i64 0, %1782
  br label %1785

1784:                                             ; preds = %1774
  br label %1785

1785:                                             ; preds = %1784, %1781
  %1786 = phi i64 [ %1783, %1781 ], [ 64, %1784 ]
  store i64 %1786, ptr %48, align 8, !tbaa !48
  br label %1787

1787:                                             ; preds = %1785, %1771
  %1788 = load i64, ptr %48, align 8, !tbaa !48
  %1789 = icmp sge i64 %1788, 64
  br i1 %1789, label %1790, label %1802

1790:                                             ; preds = %1787
  %1791 = load i64, ptr %46, align 8, !tbaa !48
  %1792 = icmp sge i64 %1791, 0
  br i1 %1792, label %1797, label %1793

1793:                                             ; preds = %1790
  %1794 = load i8, ptr %49, align 1, !tbaa !16
  %1795 = zext i8 %1794 to i32
  %1796 = icmp eq i32 %1795, 45
  br label %1797

1797:                                             ; preds = %1793, %1790
  %1798 = phi i1 [ true, %1790 ], [ %1796, %1793 ]
  %1799 = zext i1 %1798 to i64
  %1800 = select i1 %1798, i32 0, i32 -1
  %1801 = sext i32 %1800 to i64
  store i64 %1801, ptr %46, align 8, !tbaa !48
  br label %1824

1802:                                             ; preds = %1787
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %47, ptr align 8 %46, i64 8, i1 false)
  %1803 = load i8, ptr %49, align 1, !tbaa !16
  %1804 = zext i8 %1803 to i32
  %1805 = icmp eq i32 %1804, 45
  br i1 %1805, label %1806, label %1810

1806:                                             ; preds = %1802
  %1807 = load i64, ptr %48, align 8, !tbaa !48
  %1808 = load i64, ptr %47, align 8, !tbaa !48
  %1809 = shl i64 %1808, %1807
  store i64 %1809, ptr %47, align 8, !tbaa !48
  br label %1823

1810:                                             ; preds = %1802
  %1811 = load i64, ptr %48, align 8, !tbaa !48
  %1812 = load i64, ptr %47, align 8, !tbaa !48
  %1813 = lshr i64 %1812, %1811
  store i64 %1813, ptr %47, align 8, !tbaa !48
  %1814 = load i64, ptr %46, align 8, !tbaa !48
  %1815 = icmp slt i64 %1814, 0
  br i1 %1815, label %1816, label %1822

1816:                                             ; preds = %1810
  %1817 = load i64, ptr %48, align 8, !tbaa !48
  %1818 = sub nsw i64 64, %1817
  %1819 = shl i64 -1, %1818
  %1820 = load i64, ptr %47, align 8, !tbaa !48
  %1821 = or i64 %1820, %1819
  store i64 %1821, ptr %47, align 8, !tbaa !48
  br label %1822

1822:                                             ; preds = %1816, %1810
  br label %1823

1823:                                             ; preds = %1822, %1806
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %46, ptr align 8 %47, i64 8, i1 false)
  br label %1824

1824:                                             ; preds = %1823, %1797
  br label %1825

1825:                                             ; preds = %1824, %1768
  br label %1826

1826:                                             ; preds = %1825, %1764
  br label %1827

1827:                                             ; preds = %1826, %1756
  %1828 = load i64, ptr %46, align 8, !tbaa !48
  %1829 = load ptr, ptr %17, align 8, !tbaa !5
  %1830 = getelementptr inbounds %struct.Mem, ptr %1829, i32 0, i32 0
  store i64 %1828, ptr %1830, align 8, !tbaa !16
  %1831 = load ptr, ptr %17, align 8, !tbaa !5
  %1832 = getelementptr inbounds %struct.Mem, ptr %1831, i32 0, i32 1
  %1833 = load i16, ptr %1832, align 8, !tbaa !36
  %1834 = zext i16 %1833 to i32
  %1835 = and i32 %1834, -49664
  %1836 = or i32 %1835, 4
  %1837 = trunc i32 %1836 to i16
  %1838 = load ptr, ptr %17, align 8, !tbaa !5
  %1839 = getelementptr inbounds %struct.Mem, ptr %1838, i32 0, i32 1
  store i16 %1837, ptr %1839, align 8, !tbaa !36
  store i32 7, ptr %23, align 4
  br label %1840

1840:                                             ; preds = %1827, %1743
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  br label %8475

1841:                                             ; preds = %363
  %1842 = load ptr, ptr %13, align 8, !tbaa !5
  %1843 = load ptr, ptr %5, align 8, !tbaa !5
  %1844 = getelementptr inbounds %struct.VdbeOp, ptr %1843, i32 0, i32 3
  %1845 = load i32, ptr %1844, align 4, !tbaa !35
  %1846 = sext i32 %1845 to i64
  %1847 = getelementptr inbounds %struct.Mem, ptr %1842, i64 %1846
  store ptr %1847, ptr %14, align 8, !tbaa !5
  %1848 = load ptr, ptr %14, align 8, !tbaa !5
  %1849 = call i32 @sqlite3VdbeMemIntegerify(ptr noundef %1848)
  %1850 = load ptr, ptr %5, align 8, !tbaa !5
  %1851 = getelementptr inbounds %struct.VdbeOp, ptr %1850, i32 0, i32 4
  %1852 = load i32, ptr %1851, align 8, !tbaa !33
  %1853 = sext i32 %1852 to i64
  %1854 = load ptr, ptr %14, align 8, !tbaa !5
  %1855 = getelementptr inbounds %struct.Mem, ptr %1854, i32 0, i32 0
  %1856 = load i64, ptr %1855, align 8, !tbaa !16
  %1857 = add nsw i64 %1856, %1853
  store i64 %1857, ptr %1855, align 8, !tbaa !16
  br label %8475

1858:                                             ; preds = %363
  %1859 = load ptr, ptr %13, align 8, !tbaa !5
  %1860 = load ptr, ptr %5, align 8, !tbaa !5
  %1861 = getelementptr inbounds %struct.VdbeOp, ptr %1860, i32 0, i32 3
  %1862 = load i32, ptr %1861, align 4, !tbaa !35
  %1863 = sext i32 %1862 to i64
  %1864 = getelementptr inbounds %struct.Mem, ptr %1859, i64 %1863
  store ptr %1864, ptr %14, align 8, !tbaa !5
  %1865 = load ptr, ptr %14, align 8, !tbaa !5
  %1866 = getelementptr inbounds %struct.Mem, ptr %1865, i32 0, i32 1
  %1867 = load i16, ptr %1866, align 8, !tbaa !36
  %1868 = zext i16 %1867 to i32
  %1869 = and i32 %1868, 4
  %1870 = icmp eq i32 %1869, 0
  br i1 %1870, label %1871, label %1888

1871:                                             ; preds = %1858
  %1872 = load ptr, ptr %14, align 8, !tbaa !5
  %1873 = load i8, ptr %9, align 1, !tbaa !16
  call void @applyAffinity(ptr noundef %1872, i8 noundef signext 67, i8 noundef zeroext %1873)
  %1874 = load ptr, ptr %14, align 8, !tbaa !5
  %1875 = getelementptr inbounds %struct.Mem, ptr %1874, i32 0, i32 1
  %1876 = load i16, ptr %1875, align 8, !tbaa !36
  %1877 = zext i16 %1876 to i32
  %1878 = and i32 %1877, 4
  %1879 = icmp eq i32 %1878, 0
  br i1 %1879, label %1880, label %1887

1880:                                             ; preds = %1871
  %1881 = load ptr, ptr %5, align 8, !tbaa !5
  %1882 = getelementptr inbounds %struct.VdbeOp, ptr %1881, i32 0, i32 4
  %1883 = load i32, ptr %1882, align 8, !tbaa !33
  %1884 = icmp eq i32 %1883, 0
  br i1 %1884, label %1885, label %1886

1885:                                             ; preds = %1880
  store i32 20, ptr %6, align 4, !tbaa !14
  br label %8480

1886:                                             ; preds = %1880
  br label %436

1887:                                             ; preds = %1871
  br label %1888

1888:                                             ; preds = %1887, %1858
  %1889 = load ptr, ptr %14, align 8, !tbaa !5
  %1890 = getelementptr inbounds %struct.Mem, ptr %1889, i32 0, i32 1
  %1891 = load i16, ptr %1890, align 8, !tbaa !36
  %1892 = zext i16 %1891 to i32
  %1893 = and i32 %1892, -49664
  %1894 = or i32 %1893, 4
  %1895 = trunc i32 %1894 to i16
  %1896 = load ptr, ptr %14, align 8, !tbaa !5
  %1897 = getelementptr inbounds %struct.Mem, ptr %1896, i32 0, i32 1
  store i16 %1895, ptr %1897, align 8, !tbaa !36
  br label %8475

1898:                                             ; preds = %363
  %1899 = load ptr, ptr %13, align 8, !tbaa !5
  %1900 = load ptr, ptr %5, align 8, !tbaa !5
  %1901 = getelementptr inbounds %struct.VdbeOp, ptr %1900, i32 0, i32 3
  %1902 = load i32, ptr %1901, align 4, !tbaa !35
  %1903 = sext i32 %1902 to i64
  %1904 = getelementptr inbounds %struct.Mem, ptr %1899, i64 %1903
  store ptr %1904, ptr %14, align 8, !tbaa !5
  %1905 = load ptr, ptr %14, align 8, !tbaa !5
  %1906 = getelementptr inbounds %struct.Mem, ptr %1905, i32 0, i32 1
  %1907 = load i16, ptr %1906, align 8, !tbaa !36
  %1908 = zext i16 %1907 to i32
  %1909 = and i32 %1908, 4
  %1910 = icmp ne i32 %1909, 0
  br i1 %1910, label %1911, label %1914

1911:                                             ; preds = %1898
  %1912 = load ptr, ptr %14, align 8, !tbaa !5
  %1913 = call i32 @sqlite3VdbeMemRealify(ptr noundef %1912)
  br label %1914

1914:                                             ; preds = %1911, %1898
  br label %8475

1915:                                             ; preds = %363
  %1916 = load ptr, ptr %13, align 8, !tbaa !5
  %1917 = load ptr, ptr %5, align 8, !tbaa !5
  %1918 = getelementptr inbounds %struct.VdbeOp, ptr %1917, i32 0, i32 3
  %1919 = load i32, ptr %1918, align 4, !tbaa !35
  %1920 = sext i32 %1919 to i64
  %1921 = getelementptr inbounds %struct.Mem, ptr %1916, i64 %1920
  store ptr %1921, ptr %14, align 8, !tbaa !5
  %1922 = load ptr, ptr %14, align 8, !tbaa !5
  %1923 = getelementptr inbounds %struct.Mem, ptr %1922, i32 0, i32 1
  %1924 = load i16, ptr %1923, align 8, !tbaa !36
  %1925 = zext i16 %1924 to i32
  %1926 = and i32 %1925, 16384
  %1927 = icmp ne i32 %1926, 0
  br i1 %1927, label %1928, label %1931

1928:                                             ; preds = %1915
  %1929 = load ptr, ptr %14, align 8, !tbaa !5
  %1930 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef %1929)
  br label %1932

1931:                                             ; preds = %1915
  br label %1932

1932:                                             ; preds = %1931, %1928
  %1933 = phi i32 [ %1930, %1928 ], [ 0, %1931 ]
  store i32 %1933, ptr %6, align 4, !tbaa !14
  %1934 = load ptr, ptr %14, align 8, !tbaa !5
  %1935 = load ptr, ptr %5, align 8, !tbaa !5
  %1936 = getelementptr inbounds %struct.VdbeOp, ptr %1935, i32 0, i32 4
  %1937 = load i32, ptr %1936, align 8, !tbaa !33
  %1938 = trunc i32 %1937 to i8
  %1939 = load i8, ptr %9, align 1, !tbaa !16
  call void @sqlite3VdbeMemCast(ptr noundef %1934, i8 noundef zeroext %1938, i8 noundef zeroext %1939)
  %1940 = load i32, ptr %6, align 4, !tbaa !14
  %1941 = icmp ne i32 %1940, 0
  br i1 %1941, label %1942, label %1943

1942:                                             ; preds = %1932
  br label %8480

1943:                                             ; preds = %1932
  br label %8475

1944:                                             ; preds = %363, %363, %363, %363, %363, %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %54) #5
  %1945 = load ptr, ptr %13, align 8, !tbaa !5
  %1946 = load ptr, ptr %5, align 8, !tbaa !5
  %1947 = getelementptr inbounds %struct.VdbeOp, ptr %1946, i32 0, i32 3
  %1948 = load i32, ptr %1947, align 4, !tbaa !35
  %1949 = sext i32 %1948 to i64
  %1950 = getelementptr inbounds %struct.Mem, ptr %1945, i64 %1949
  store ptr %1950, ptr %14, align 8, !tbaa !5
  %1951 = load ptr, ptr %13, align 8, !tbaa !5
  %1952 = load ptr, ptr %5, align 8, !tbaa !5
  %1953 = getelementptr inbounds %struct.VdbeOp, ptr %1952, i32 0, i32 5
  %1954 = load i32, ptr %1953, align 4, !tbaa !38
  %1955 = sext i32 %1954 to i64
  %1956 = getelementptr inbounds %struct.Mem, ptr %1951, i64 %1955
  store ptr %1956, ptr %16, align 8, !tbaa !5
  %1957 = load ptr, ptr %14, align 8, !tbaa !5
  %1958 = getelementptr inbounds %struct.Mem, ptr %1957, i32 0, i32 1
  %1959 = load i16, ptr %1958, align 8, !tbaa !36
  store i16 %1959, ptr %53, align 2, !tbaa !56
  %1960 = load ptr, ptr %16, align 8, !tbaa !5
  %1961 = getelementptr inbounds %struct.Mem, ptr %1960, i32 0, i32 1
  %1962 = load i16, ptr %1961, align 8, !tbaa !36
  store i16 %1962, ptr %54, align 2, !tbaa !56
  %1963 = load i16, ptr %53, align 2, !tbaa !56
  %1964 = zext i16 %1963 to i32
  %1965 = load i16, ptr %54, align 2, !tbaa !56
  %1966 = zext i16 %1965 to i32
  %1967 = or i32 %1964, %1966
  %1968 = and i32 %1967, 1
  %1969 = icmp ne i32 %1968, 0
  br i1 %1969, label %1970, label %2027

1970:                                             ; preds = %1944
  %1971 = load ptr, ptr %5, align 8, !tbaa !5
  %1972 = getelementptr inbounds %struct.VdbeOp, ptr %1971, i32 0, i32 2
  %1973 = load i16, ptr %1972, align 2, !tbaa !45
  %1974 = zext i16 %1973 to i32
  %1975 = and i32 %1974, 128
  %1976 = icmp ne i32 %1975, 0
  br i1 %1976, label %1977, label %1993

1977:                                             ; preds = %1970
  %1978 = load i16, ptr %53, align 2, !tbaa !56
  %1979 = zext i16 %1978 to i32
  %1980 = load i16, ptr %54, align 2, !tbaa !56
  %1981 = zext i16 %1980 to i32
  %1982 = and i32 %1979, %1981
  %1983 = and i32 %1982, 1
  %1984 = icmp ne i32 %1983, 0
  br i1 %1984, label %1985, label %1991

1985:                                             ; preds = %1977
  %1986 = load i16, ptr %54, align 2, !tbaa !56
  %1987 = zext i16 %1986 to i32
  %1988 = and i32 %1987, 256
  %1989 = icmp eq i32 %1988, 0
  br i1 %1989, label %1990, label %1991

1990:                                             ; preds = %1985
  store i32 0, ptr %50, align 4, !tbaa !14
  br label %1992

1991:                                             ; preds = %1985, %1977
  store i32 1, ptr %50, align 4, !tbaa !14
  br label %1992

1992:                                             ; preds = %1991, %1990
  br label %2026

1993:                                             ; preds = %1970
  %1994 = load ptr, ptr %5, align 8, !tbaa !5
  %1995 = getelementptr inbounds %struct.VdbeOp, ptr %1994, i32 0, i32 2
  %1996 = load i16, ptr %1995, align 2, !tbaa !45
  %1997 = zext i16 %1996 to i32
  %1998 = and i32 %1997, 32
  %1999 = icmp ne i32 %1998, 0
  br i1 %1999, label %2000, label %2016

2000:                                             ; preds = %1993
  %2001 = load ptr, ptr %13, align 8, !tbaa !5
  %2002 = load ptr, ptr %5, align 8, !tbaa !5
  %2003 = getelementptr inbounds %struct.VdbeOp, ptr %2002, i32 0, i32 4
  %2004 = load i32, ptr %2003, align 8, !tbaa !33
  %2005 = sext i32 %2004 to i64
  %2006 = getelementptr inbounds %struct.Mem, ptr %2001, i64 %2005
  store ptr %2006, ptr %17, align 8, !tbaa !5
  store i32 1, ptr %10, align 4, !tbaa !14
  %2007 = load ptr, ptr %17, align 8, !tbaa !5
  %2008 = getelementptr inbounds %struct.Mem, ptr %2007, i32 0, i32 1
  %2009 = load i16, ptr %2008, align 8, !tbaa !36
  %2010 = zext i16 %2009 to i32
  %2011 = and i32 %2010, -49664
  %2012 = or i32 %2011, 1
  %2013 = trunc i32 %2012 to i16
  %2014 = load ptr, ptr %17, align 8, !tbaa !5
  %2015 = getelementptr inbounds %struct.Mem, ptr %2014, i32 0, i32 1
  store i16 %2013, ptr %2015, align 8, !tbaa !36
  br label %2025

2016:                                             ; preds = %1993
  %2017 = load ptr, ptr %5, align 8, !tbaa !5
  %2018 = getelementptr inbounds %struct.VdbeOp, ptr %2017, i32 0, i32 2
  %2019 = load i16, ptr %2018, align 2, !tbaa !45
  %2020 = zext i16 %2019 to i32
  %2021 = and i32 %2020, 16
  %2022 = icmp ne i32 %2021, 0
  br i1 %2022, label %2023, label %2024

2023:                                             ; preds = %2016
  store i32 11, ptr %23, align 4
  br label %2245

2024:                                             ; preds = %2016
  br label %2025

2025:                                             ; preds = %2024, %2000
  store i32 7, ptr %23, align 4
  br label %2245

2026:                                             ; preds = %1992
  br label %2156

2027:                                             ; preds = %1944
  %2028 = load ptr, ptr %5, align 8, !tbaa !5
  %2029 = getelementptr inbounds %struct.VdbeOp, ptr %2028, i32 0, i32 2
  %2030 = load i16, ptr %2029, align 2, !tbaa !45
  %2031 = zext i16 %2030 to i32
  %2032 = and i32 %2031, 71
  %2033 = trunc i32 %2032 to i8
  store i8 %2033, ptr %52, align 1, !tbaa !16
  %2034 = load i8, ptr %52, align 1, !tbaa !16
  %2035 = sext i8 %2034 to i32
  %2036 = icmp sge i32 %2035, 67
  br i1 %2036, label %2037, label %2095

2037:                                             ; preds = %2027
  %2038 = load i16, ptr %53, align 2, !tbaa !56
  %2039 = zext i16 %2038 to i32
  %2040 = load i16, ptr %54, align 2, !tbaa !56
  %2041 = zext i16 %2040 to i32
  %2042 = or i32 %2039, %2041
  %2043 = and i32 %2042, 2
  %2044 = icmp ne i32 %2043, 0
  br i1 %2044, label %2045, label %2063

2045:                                             ; preds = %2037
  %2046 = load i16, ptr %53, align 2, !tbaa !56
  %2047 = zext i16 %2046 to i32
  %2048 = and i32 %2047, 14
  %2049 = icmp eq i32 %2048, 2
  br i1 %2049, label %2050, label %2055

2050:                                             ; preds = %2045
  %2051 = load ptr, ptr %14, align 8, !tbaa !5
  call void @applyNumericAffinity(ptr noundef %2051, i32 noundef 0)
  %2052 = load ptr, ptr %16, align 8, !tbaa !5
  %2053 = getelementptr inbounds %struct.Mem, ptr %2052, i32 0, i32 1
  %2054 = load i16, ptr %2053, align 8, !tbaa !36
  store i16 %2054, ptr %54, align 2, !tbaa !56
  br label %2055

2055:                                             ; preds = %2050, %2045
  %2056 = load i16, ptr %54, align 2, !tbaa !56
  %2057 = zext i16 %2056 to i32
  %2058 = and i32 %2057, 14
  %2059 = icmp eq i32 %2058, 2
  br i1 %2059, label %2060, label %2062

2060:                                             ; preds = %2055
  %2061 = load ptr, ptr %16, align 8, !tbaa !5
  call void @applyNumericAffinity(ptr noundef %2061, i32 noundef 0)
  br label %2062

2062:                                             ; preds = %2060, %2055
  br label %2063

2063:                                             ; preds = %2062, %2037
  %2064 = load ptr, ptr %14, align 8, !tbaa !5
  %2065 = getelementptr inbounds %struct.Mem, ptr %2064, i32 0, i32 1
  %2066 = load i16, ptr %2065, align 8, !tbaa !36
  %2067 = zext i16 %2066 to i32
  %2068 = load ptr, ptr %16, align 8, !tbaa !5
  %2069 = getelementptr inbounds %struct.Mem, ptr %2068, i32 0, i32 1
  %2070 = load i16, ptr %2069, align 8, !tbaa !36
  %2071 = zext i16 %2070 to i32
  %2072 = and i32 %2067, %2071
  %2073 = and i32 %2072, 4
  %2074 = icmp ne i32 %2073, 0
  br i1 %2074, label %2075, label %2094

2075:                                             ; preds = %2063
  %2076 = load ptr, ptr %16, align 8, !tbaa !5
  %2077 = getelementptr inbounds %struct.Mem, ptr %2076, i32 0, i32 0
  %2078 = load i64, ptr %2077, align 8, !tbaa !16
  %2079 = load ptr, ptr %14, align 8, !tbaa !5
  %2080 = getelementptr inbounds %struct.Mem, ptr %2079, i32 0, i32 0
  %2081 = load i64, ptr %2080, align 8, !tbaa !16
  %2082 = icmp sgt i64 %2078, %2081
  br i1 %2082, label %2083, label %2084

2083:                                             ; preds = %2075
  store i32 1, ptr %50, align 4, !tbaa !14
  br label %2157

2084:                                             ; preds = %2075
  %2085 = load ptr, ptr %16, align 8, !tbaa !5
  %2086 = getelementptr inbounds %struct.Mem, ptr %2085, i32 0, i32 0
  %2087 = load i64, ptr %2086, align 8, !tbaa !16
  %2088 = load ptr, ptr %14, align 8, !tbaa !5
  %2089 = getelementptr inbounds %struct.Mem, ptr %2088, i32 0, i32 0
  %2090 = load i64, ptr %2089, align 8, !tbaa !16
  %2091 = icmp slt i64 %2087, %2090
  br i1 %2091, label %2092, label %2093

2092:                                             ; preds = %2084
  store i32 -1, ptr %50, align 4, !tbaa !14
  br label %2157

2093:                                             ; preds = %2084
  store i32 0, ptr %50, align 4, !tbaa !14
  br label %2157

2094:                                             ; preds = %2063
  br label %2149

2095:                                             ; preds = %2027
  %2096 = load i8, ptr %52, align 1, !tbaa !16
  %2097 = sext i8 %2096 to i32
  %2098 = icmp eq i32 %2097, 66
  br i1 %2098, label %2099, label %2148

2099:                                             ; preds = %2095
  %2100 = load i16, ptr %53, align 2, !tbaa !56
  %2101 = zext i16 %2100 to i32
  %2102 = and i32 %2101, 2
  %2103 = icmp eq i32 %2102, 0
  br i1 %2103, label %2104, label %2123

2104:                                             ; preds = %2099
  %2105 = load i16, ptr %53, align 2, !tbaa !56
  %2106 = zext i16 %2105 to i32
  %2107 = and i32 %2106, 12
  %2108 = icmp ne i32 %2107, 0
  br i1 %2108, label %2109, label %2123

2109:                                             ; preds = %2104
  %2110 = load ptr, ptr %14, align 8, !tbaa !5
  %2111 = load i8, ptr %9, align 1, !tbaa !16
  %2112 = call i32 @sqlite3VdbeMemStringify(ptr noundef %2110, i8 noundef zeroext %2111, i8 noundef zeroext 1)
  %2113 = load ptr, ptr %14, align 8, !tbaa !5
  %2114 = getelementptr inbounds %struct.Mem, ptr %2113, i32 0, i32 1
  %2115 = load i16, ptr %2114, align 8, !tbaa !36
  %2116 = zext i16 %2115 to i32
  %2117 = and i32 %2116, -33280
  %2118 = load i16, ptr %53, align 2, !tbaa !56
  %2119 = zext i16 %2118 to i32
  %2120 = and i32 %2119, 33279
  %2121 = or i32 %2117, %2120
  %2122 = trunc i32 %2121 to i16
  store i16 %2122, ptr %53, align 2, !tbaa !56
  br label %2123

2123:                                             ; preds = %2109, %2104, %2099
  %2124 = load i16, ptr %54, align 2, !tbaa !56
  %2125 = zext i16 %2124 to i32
  %2126 = and i32 %2125, 2
  %2127 = icmp eq i32 %2126, 0
  br i1 %2127, label %2128, label %2147

2128:                                             ; preds = %2123
  %2129 = load i16, ptr %54, align 2, !tbaa !56
  %2130 = zext i16 %2129 to i32
  %2131 = and i32 %2130, 12
  %2132 = icmp ne i32 %2131, 0
  br i1 %2132, label %2133, label %2147

2133:                                             ; preds = %2128
  %2134 = load ptr, ptr %16, align 8, !tbaa !5
  %2135 = load i8, ptr %9, align 1, !tbaa !16
  %2136 = call i32 @sqlite3VdbeMemStringify(ptr noundef %2134, i8 noundef zeroext %2135, i8 noundef zeroext 1)
  %2137 = load ptr, ptr %16, align 8, !tbaa !5
  %2138 = getelementptr inbounds %struct.Mem, ptr %2137, i32 0, i32 1
  %2139 = load i16, ptr %2138, align 8, !tbaa !36
  %2140 = zext i16 %2139 to i32
  %2141 = and i32 %2140, -33280
  %2142 = load i16, ptr %54, align 2, !tbaa !56
  %2143 = zext i16 %2142 to i32
  %2144 = and i32 %2143, 33279
  %2145 = or i32 %2141, %2144
  %2146 = trunc i32 %2145 to i16
  store i16 %2146, ptr %54, align 2, !tbaa !56
  br label %2147

2147:                                             ; preds = %2133, %2128, %2123
  br label %2148

2148:                                             ; preds = %2147, %2095
  br label %2149

2149:                                             ; preds = %2148, %2094
  %2150 = load ptr, ptr %16, align 8, !tbaa !5
  %2151 = load ptr, ptr %14, align 8, !tbaa !5
  %2152 = load ptr, ptr %5, align 8, !tbaa !5
  %2153 = getelementptr inbounds %struct.VdbeOp, ptr %2152, i32 0, i32 6
  %2154 = load ptr, ptr %2153, align 8, !tbaa !16
  %2155 = call i32 @sqlite3MemCompare(ptr noundef %2150, ptr noundef %2151, ptr noundef %2154)
  store i32 %2155, ptr %50, align 4, !tbaa !14
  br label %2156

2156:                                             ; preds = %2149, %2026
  br label %2157

2157:                                             ; preds = %2156, %2093, %2092, %2083
  %2158 = load ptr, ptr %5, align 8, !tbaa !5
  %2159 = getelementptr inbounds %struct.VdbeOp, ptr %2158, i32 0, i32 0
  %2160 = load i8, ptr %2159, align 8, !tbaa !31
  %2161 = zext i8 %2160 to i32
  switch i32 %2161, label %2180 [
    i32 37, label %2162
    i32 36, label %2166
    i32 40, label %2168
    i32 39, label %2172
    i32 38, label %2176
  ]

2162:                                             ; preds = %2157
  %2163 = load i32, ptr %50, align 4, !tbaa !14
  %2164 = icmp eq i32 %2163, 0
  %2165 = zext i1 %2164 to i32
  store i32 %2165, ptr %51, align 4, !tbaa !14
  br label %2184

2166:                                             ; preds = %2157
  %2167 = load i32, ptr %50, align 4, !tbaa !14
  store i32 %2167, ptr %51, align 4, !tbaa !14
  br label %2184

2168:                                             ; preds = %2157
  %2169 = load i32, ptr %50, align 4, !tbaa !14
  %2170 = icmp slt i32 %2169, 0
  %2171 = zext i1 %2170 to i32
  store i32 %2171, ptr %51, align 4, !tbaa !14
  br label %2184

2172:                                             ; preds = %2157
  %2173 = load i32, ptr %50, align 4, !tbaa !14
  %2174 = icmp sle i32 %2173, 0
  %2175 = zext i1 %2174 to i32
  store i32 %2175, ptr %51, align 4, !tbaa !14
  br label %2184

2176:                                             ; preds = %2157
  %2177 = load i32, ptr %50, align 4, !tbaa !14
  %2178 = icmp sgt i32 %2177, 0
  %2179 = zext i1 %2178 to i32
  store i32 %2179, ptr %51, align 4, !tbaa !14
  br label %2184

2180:                                             ; preds = %2157
  %2181 = load i32, ptr %50, align 4, !tbaa !14
  %2182 = icmp sge i32 %2181, 0
  %2183 = zext i1 %2182 to i32
  store i32 %2183, ptr %51, align 4, !tbaa !14
  br label %2184

2184:                                             ; preds = %2180, %2176, %2172, %2168, %2166, %2162
  %2185 = load i16, ptr %53, align 2, !tbaa !56
  %2186 = load ptr, ptr %14, align 8, !tbaa !5
  %2187 = getelementptr inbounds %struct.Mem, ptr %2186, i32 0, i32 1
  store i16 %2185, ptr %2187, align 8, !tbaa !36
  %2188 = load i16, ptr %54, align 2, !tbaa !56
  %2189 = load ptr, ptr %16, align 8, !tbaa !5
  %2190 = getelementptr inbounds %struct.Mem, ptr %2189, i32 0, i32 1
  store i16 %2188, ptr %2190, align 8, !tbaa !36
  %2191 = load ptr, ptr %5, align 8, !tbaa !5
  %2192 = getelementptr inbounds %struct.VdbeOp, ptr %2191, i32 0, i32 2
  %2193 = load i16, ptr %2192, align 2, !tbaa !45
  %2194 = zext i16 %2193 to i32
  %2195 = and i32 %2194, 32
  %2196 = icmp ne i32 %2195, 0
  br i1 %2196, label %2197, label %2239

2197:                                             ; preds = %2184
  %2198 = load ptr, ptr %13, align 8, !tbaa !5
  %2199 = load ptr, ptr %5, align 8, !tbaa !5
  %2200 = getelementptr inbounds %struct.VdbeOp, ptr %2199, i32 0, i32 4
  %2201 = load i32, ptr %2200, align 8, !tbaa !33
  %2202 = sext i32 %2201 to i64
  %2203 = getelementptr inbounds %struct.Mem, ptr %2198, i64 %2202
  store ptr %2203, ptr %17, align 8, !tbaa !5
  %2204 = load i32, ptr %50, align 4, !tbaa !14
  store i32 %2204, ptr %10, align 4, !tbaa !14
  %2205 = load i32, ptr %51, align 4, !tbaa !14
  %2206 = icmp ne i32 %2205, 0
  %2207 = zext i1 %2206 to i32
  store i32 %2207, ptr %51, align 4, !tbaa !14
  %2208 = load ptr, ptr %5, align 8, !tbaa !5
  %2209 = getelementptr inbounds %struct.VdbeOp, ptr %2208, i32 0, i32 2
  %2210 = load i16, ptr %2209, align 2, !tbaa !45
  %2211 = zext i16 %2210 to i32
  %2212 = and i32 %2211, 8
  %2213 = icmp ne i32 %2212, 0
  br i1 %2213, label %2214, label %2225

2214:                                             ; preds = %2197
  %2215 = load ptr, ptr %5, align 8, !tbaa !5
  %2216 = getelementptr inbounds %struct.VdbeOp, ptr %2215, i32 0, i32 0
  %2217 = load i8, ptr %2216, align 8, !tbaa !31
  %2218 = zext i8 %2217 to i32
  %2219 = icmp eq i32 %2218, 37
  %2220 = zext i1 %2219 to i32
  %2221 = load i32, ptr %51, align 4, !tbaa !14
  %2222 = icmp eq i32 %2220, %2221
  br i1 %2222, label %2223, label %2224

2223:                                             ; preds = %2214
  store i32 7, ptr %23, align 4
  br label %2245

2224:                                             ; preds = %2214
  br label %2225

2225:                                             ; preds = %2224, %2197
  %2226 = load ptr, ptr %17, align 8, !tbaa !5
  %2227 = getelementptr inbounds %struct.Mem, ptr %2226, i32 0, i32 1
  %2228 = load i16, ptr %2227, align 8, !tbaa !36
  %2229 = zext i16 %2228 to i32
  %2230 = and i32 %2229, -49664
  %2231 = or i32 %2230, 4
  %2232 = trunc i32 %2231 to i16
  %2233 = load ptr, ptr %17, align 8, !tbaa !5
  %2234 = getelementptr inbounds %struct.Mem, ptr %2233, i32 0, i32 1
  store i16 %2232, ptr %2234, align 8, !tbaa !36
  %2235 = load i32, ptr %51, align 4, !tbaa !14
  %2236 = sext i32 %2235 to i64
  %2237 = load ptr, ptr %17, align 8, !tbaa !5
  %2238 = getelementptr inbounds %struct.Mem, ptr %2237, i32 0, i32 0
  store i64 %2236, ptr %2238, align 8, !tbaa !16
  br label %2244

2239:                                             ; preds = %2184
  %2240 = load i32, ptr %51, align 4, !tbaa !14
  %2241 = icmp ne i32 %2240, 0
  br i1 %2241, label %2242, label %2243

2242:                                             ; preds = %2239
  store i32 11, ptr %23, align 4
  br label %2245

2243:                                             ; preds = %2239
  br label %2244

2244:                                             ; preds = %2243, %2225
  store i32 7, ptr %23, align 4
  br label %2245

2245:                                             ; preds = %2244, %2242, %2223, %2025, %2023
  call void @llvm.lifetime.end.p0(i64 2, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  %2246 = load i32, ptr %23, align 4
  switch i32 %2246, label %8564 [
    i32 11, label %436
    i32 7, label %8475
  ]

2247:                                             ; preds = %363
  %2248 = load i32, ptr %10, align 4, !tbaa !14
  %2249 = icmp ne i32 %2248, 0
  br i1 %2249, label %2250, label %2251

2250:                                             ; preds = %2247
  br label %436

2251:                                             ; preds = %2247
  br label %8475

2252:                                             ; preds = %363
  br label %8475

2253:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #5
  %2254 = load ptr, ptr %5, align 8, !tbaa !5
  %2255 = getelementptr inbounds %struct.VdbeOp, ptr %2254, i32 0, i32 2
  %2256 = load i16, ptr %2255, align 2, !tbaa !45
  %2257 = zext i16 %2256 to i32
  %2258 = and i32 %2257, 1
  %2259 = icmp eq i32 %2258, 0
  br i1 %2259, label %2260, label %2261

2260:                                             ; preds = %2253
  store ptr null, ptr %63, align 8, !tbaa !5
  br label %2267

2261:                                             ; preds = %2253
  %2262 = load ptr, ptr %5, align 8, !tbaa !5
  %2263 = getelementptr inbounds %struct.VdbeOp, ptr %2262, i64 -1
  %2264 = getelementptr inbounds %struct.VdbeOp, ptr %2263, i32 0, i32 6
  %2265 = load ptr, ptr %2264, align 8, !tbaa !16
  %2266 = getelementptr inbounds i32, ptr %2265, i64 1
  store ptr %2266, ptr %63, align 8, !tbaa !5
  br label %2267

2267:                                             ; preds = %2261, %2260
  %2268 = load ptr, ptr %5, align 8, !tbaa !5
  %2269 = getelementptr inbounds %struct.VdbeOp, ptr %2268, i32 0, i32 5
  %2270 = load i32, ptr %2269, align 4, !tbaa !38
  store i32 %2270, ptr %55, align 4, !tbaa !14
  %2271 = load ptr, ptr %5, align 8, !tbaa !5
  %2272 = getelementptr inbounds %struct.VdbeOp, ptr %2271, i32 0, i32 6
  %2273 = load ptr, ptr %2272, align 8, !tbaa !16
  store ptr %2273, ptr %59, align 8, !tbaa !5
  %2274 = load ptr, ptr %5, align 8, !tbaa !5
  %2275 = getelementptr inbounds %struct.VdbeOp, ptr %2274, i32 0, i32 3
  %2276 = load i32, ptr %2275, align 4, !tbaa !35
  store i32 %2276, ptr %57, align 4, !tbaa !14
  %2277 = load ptr, ptr %5, align 8, !tbaa !5
  %2278 = getelementptr inbounds %struct.VdbeOp, ptr %2277, i32 0, i32 4
  %2279 = load i32, ptr %2278, align 8, !tbaa !33
  store i32 %2279, ptr %58, align 4, !tbaa !14
  store i32 0, ptr %56, align 4, !tbaa !14
  br label %2280

2280:                                             ; preds = %2335, %2267
  %2281 = load i32, ptr %56, align 4, !tbaa !14
  %2282 = load i32, ptr %55, align 4, !tbaa !14
  %2283 = icmp slt i32 %2281, %2282
  br i1 %2283, label %2284, label %2338

2284:                                             ; preds = %2280
  %2285 = load ptr, ptr %63, align 8, !tbaa !5
  %2286 = icmp ne ptr %2285, null
  br i1 %2286, label %2287, label %2293

2287:                                             ; preds = %2284
  %2288 = load ptr, ptr %63, align 8, !tbaa !5
  %2289 = load i32, ptr %56, align 4, !tbaa !14
  %2290 = sext i32 %2289 to i64
  %2291 = getelementptr inbounds i32, ptr %2288, i64 %2290
  %2292 = load i32, ptr %2291, align 4, !tbaa !14
  br label %2295

2293:                                             ; preds = %2284
  %2294 = load i32, ptr %56, align 4, !tbaa !14
  br label %2295

2295:                                             ; preds = %2293, %2287
  %2296 = phi i32 [ %2292, %2287 ], [ %2294, %2293 ]
  store i32 %2296, ptr %60, align 4, !tbaa !14
  %2297 = load ptr, ptr %59, align 8, !tbaa !5
  %2298 = getelementptr inbounds %struct.KeyInfo, ptr %2297, i32 0, i32 6
  %2299 = load i32, ptr %56, align 4, !tbaa !14
  %2300 = sext i32 %2299 to i64
  %2301 = getelementptr inbounds [1 x ptr], ptr %2298, i64 0, i64 %2300
  %2302 = load ptr, ptr %2301, align 8, !tbaa !5
  store ptr %2302, ptr %61, align 8, !tbaa !5
  %2303 = load ptr, ptr %59, align 8, !tbaa !5
  %2304 = getelementptr inbounds %struct.KeyInfo, ptr %2303, i32 0, i32 5
  %2305 = load ptr, ptr %2304, align 8, !tbaa !78
  %2306 = load i32, ptr %56, align 4, !tbaa !14
  %2307 = sext i32 %2306 to i64
  %2308 = getelementptr inbounds i8, ptr %2305, i64 %2307
  %2309 = load i8, ptr %2308, align 1, !tbaa !16
  %2310 = zext i8 %2309 to i32
  store i32 %2310, ptr %62, align 4, !tbaa !14
  %2311 = load ptr, ptr %13, align 8, !tbaa !5
  %2312 = load i32, ptr %57, align 4, !tbaa !14
  %2313 = load i32, ptr %60, align 4, !tbaa !14
  %2314 = add nsw i32 %2312, %2313
  %2315 = sext i32 %2314 to i64
  %2316 = getelementptr inbounds %struct.Mem, ptr %2311, i64 %2315
  %2317 = load ptr, ptr %13, align 8, !tbaa !5
  %2318 = load i32, ptr %58, align 4, !tbaa !14
  %2319 = load i32, ptr %60, align 4, !tbaa !14
  %2320 = add nsw i32 %2318, %2319
  %2321 = sext i32 %2320 to i64
  %2322 = getelementptr inbounds %struct.Mem, ptr %2317, i64 %2321
  %2323 = load ptr, ptr %61, align 8, !tbaa !5
  %2324 = call i32 @sqlite3MemCompare(ptr noundef %2316, ptr noundef %2322, ptr noundef %2323)
  store i32 %2324, ptr %10, align 4, !tbaa !14
  %2325 = load i32, ptr %10, align 4, !tbaa !14
  %2326 = icmp ne i32 %2325, 0
  br i1 %2326, label %2327, label %2334

2327:                                             ; preds = %2295
  %2328 = load i32, ptr %62, align 4, !tbaa !14
  %2329 = icmp ne i32 %2328, 0
  br i1 %2329, label %2330, label %2333

2330:                                             ; preds = %2327
  %2331 = load i32, ptr %10, align 4, !tbaa !14
  %2332 = sub nsw i32 0, %2331
  store i32 %2332, ptr %10, align 4, !tbaa !14
  br label %2333

2333:                                             ; preds = %2330, %2327
  br label %2338

2334:                                             ; preds = %2295
  br label %2335

2335:                                             ; preds = %2334
  %2336 = load i32, ptr %56, align 4, !tbaa !14
  %2337 = add nsw i32 %2336, 1
  store i32 %2337, ptr %56, align 4, !tbaa !14
  br label %2280, !llvm.loop !80

2338:                                             ; preds = %2333, %2280
  store i32 7, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  br label %8475

2339:                                             ; preds = %363
  %2340 = load i32, ptr %10, align 4, !tbaa !14
  %2341 = icmp slt i32 %2340, 0
  br i1 %2341, label %2342, label %2350

2342:                                             ; preds = %2339
  %2343 = load ptr, ptr %4, align 8, !tbaa !5
  %2344 = load ptr, ptr %5, align 8, !tbaa !5
  %2345 = getelementptr inbounds %struct.VdbeOp, ptr %2344, i32 0, i32 3
  %2346 = load i32, ptr %2345, align 4, !tbaa !35
  %2347 = sub nsw i32 %2346, 1
  %2348 = sext i32 %2347 to i64
  %2349 = getelementptr inbounds %struct.VdbeOp, ptr %2343, i64 %2348
  store ptr %2349, ptr %5, align 8, !tbaa !5
  br label %2370

2350:                                             ; preds = %2339
  %2351 = load i32, ptr %10, align 4, !tbaa !14
  %2352 = icmp eq i32 %2351, 0
  br i1 %2352, label %2353, label %2361

2353:                                             ; preds = %2350
  %2354 = load ptr, ptr %4, align 8, !tbaa !5
  %2355 = load ptr, ptr %5, align 8, !tbaa !5
  %2356 = getelementptr inbounds %struct.VdbeOp, ptr %2355, i32 0, i32 4
  %2357 = load i32, ptr %2356, align 8, !tbaa !33
  %2358 = sub nsw i32 %2357, 1
  %2359 = sext i32 %2358 to i64
  %2360 = getelementptr inbounds %struct.VdbeOp, ptr %2354, i64 %2359
  store ptr %2360, ptr %5, align 8, !tbaa !5
  br label %2369

2361:                                             ; preds = %2350
  %2362 = load ptr, ptr %4, align 8, !tbaa !5
  %2363 = load ptr, ptr %5, align 8, !tbaa !5
  %2364 = getelementptr inbounds %struct.VdbeOp, ptr %2363, i32 0, i32 5
  %2365 = load i32, ptr %2364, align 4, !tbaa !38
  %2366 = sub nsw i32 %2365, 1
  %2367 = sext i32 %2366 to i64
  %2368 = getelementptr inbounds %struct.VdbeOp, ptr %2362, i64 %2367
  store ptr %2368, ptr %5, align 8, !tbaa !5
  br label %2369

2369:                                             ; preds = %2361, %2353
  br label %2370

2370:                                             ; preds = %2369, %2342
  br label %8475

2371:                                             ; preds = %363, %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #5
  %2372 = load ptr, ptr %13, align 8, !tbaa !5
  %2373 = load ptr, ptr %5, align 8, !tbaa !5
  %2374 = getelementptr inbounds %struct.VdbeOp, ptr %2373, i32 0, i32 3
  %2375 = load i32, ptr %2374, align 4, !tbaa !35
  %2376 = sext i32 %2375 to i64
  %2377 = getelementptr inbounds %struct.Mem, ptr %2372, i64 %2376
  store ptr %2377, ptr %14, align 8, !tbaa !5
  %2378 = load ptr, ptr %14, align 8, !tbaa !5
  %2379 = getelementptr inbounds %struct.Mem, ptr %2378, i32 0, i32 1
  %2380 = load i16, ptr %2379, align 8, !tbaa !36
  %2381 = zext i16 %2380 to i32
  %2382 = and i32 %2381, 1
  %2383 = icmp ne i32 %2382, 0
  br i1 %2383, label %2384, label %2385

2384:                                             ; preds = %2371
  store i32 2, ptr %64, align 4, !tbaa !14
  br label %2390

2385:                                             ; preds = %2371
  %2386 = load ptr, ptr %14, align 8, !tbaa !5
  %2387 = call i64 @sqlite3VdbeIntValue(ptr noundef %2386)
  %2388 = icmp ne i64 %2387, 0
  %2389 = zext i1 %2388 to i32
  store i32 %2389, ptr %64, align 4, !tbaa !14
  br label %2390

2390:                                             ; preds = %2385, %2384
  %2391 = load ptr, ptr %13, align 8, !tbaa !5
  %2392 = load ptr, ptr %5, align 8, !tbaa !5
  %2393 = getelementptr inbounds %struct.VdbeOp, ptr %2392, i32 0, i32 4
  %2394 = load i32, ptr %2393, align 8, !tbaa !33
  %2395 = sext i32 %2394 to i64
  %2396 = getelementptr inbounds %struct.Mem, ptr %2391, i64 %2395
  store ptr %2396, ptr %15, align 8, !tbaa !5
  %2397 = load ptr, ptr %15, align 8, !tbaa !5
  %2398 = getelementptr inbounds %struct.Mem, ptr %2397, i32 0, i32 1
  %2399 = load i16, ptr %2398, align 8, !tbaa !36
  %2400 = zext i16 %2399 to i32
  %2401 = and i32 %2400, 1
  %2402 = icmp ne i32 %2401, 0
  br i1 %2402, label %2403, label %2404

2403:                                             ; preds = %2390
  store i32 2, ptr %65, align 4, !tbaa !14
  br label %2409

2404:                                             ; preds = %2390
  %2405 = load ptr, ptr %15, align 8, !tbaa !5
  %2406 = call i64 @sqlite3VdbeIntValue(ptr noundef %2405)
  %2407 = icmp ne i64 %2406, 0
  %2408 = zext i1 %2407 to i32
  store i32 %2408, ptr %65, align 4, !tbaa !14
  br label %2409

2409:                                             ; preds = %2404, %2403
  %2410 = load ptr, ptr %5, align 8, !tbaa !5
  %2411 = getelementptr inbounds %struct.VdbeOp, ptr %2410, i32 0, i32 0
  %2412 = load i8, ptr %2411, align 8, !tbaa !31
  %2413 = zext i8 %2412 to i32
  %2414 = icmp eq i32 %2413, 28
  br i1 %2414, label %2415, label %2424

2415:                                             ; preds = %2409
  %2416 = load i32, ptr %64, align 4, !tbaa !14
  %2417 = mul nsw i32 %2416, 3
  %2418 = load i32, ptr %65, align 4, !tbaa !14
  %2419 = add nsw i32 %2417, %2418
  %2420 = sext i32 %2419 to i64
  %2421 = getelementptr inbounds [9 x i8], ptr @sqlite3VdbeExec.and_logic, i64 0, i64 %2420
  %2422 = load i8, ptr %2421, align 1, !tbaa !16
  %2423 = zext i8 %2422 to i32
  store i32 %2423, ptr %64, align 4, !tbaa !14
  br label %2433

2424:                                             ; preds = %2409
  %2425 = load i32, ptr %64, align 4, !tbaa !14
  %2426 = mul nsw i32 %2425, 3
  %2427 = load i32, ptr %65, align 4, !tbaa !14
  %2428 = add nsw i32 %2426, %2427
  %2429 = sext i32 %2428 to i64
  %2430 = getelementptr inbounds [9 x i8], ptr @sqlite3VdbeExec.or_logic, i64 0, i64 %2429
  %2431 = load i8, ptr %2430, align 1, !tbaa !16
  %2432 = zext i8 %2431 to i32
  store i32 %2432, ptr %64, align 4, !tbaa !14
  br label %2433

2433:                                             ; preds = %2424, %2415
  %2434 = load ptr, ptr %13, align 8, !tbaa !5
  %2435 = load ptr, ptr %5, align 8, !tbaa !5
  %2436 = getelementptr inbounds %struct.VdbeOp, ptr %2435, i32 0, i32 5
  %2437 = load i32, ptr %2436, align 4, !tbaa !38
  %2438 = sext i32 %2437 to i64
  %2439 = getelementptr inbounds %struct.Mem, ptr %2434, i64 %2438
  store ptr %2439, ptr %17, align 8, !tbaa !5
  %2440 = load i32, ptr %64, align 4, !tbaa !14
  %2441 = icmp eq i32 %2440, 2
  br i1 %2441, label %2442, label %2452

2442:                                             ; preds = %2433
  %2443 = load ptr, ptr %17, align 8, !tbaa !5
  %2444 = getelementptr inbounds %struct.Mem, ptr %2443, i32 0, i32 1
  %2445 = load i16, ptr %2444, align 8, !tbaa !36
  %2446 = zext i16 %2445 to i32
  %2447 = and i32 %2446, -49664
  %2448 = or i32 %2447, 1
  %2449 = trunc i32 %2448 to i16
  %2450 = load ptr, ptr %17, align 8, !tbaa !5
  %2451 = getelementptr inbounds %struct.Mem, ptr %2450, i32 0, i32 1
  store i16 %2449, ptr %2451, align 8, !tbaa !36
  br label %2466

2452:                                             ; preds = %2433
  %2453 = load i32, ptr %64, align 4, !tbaa !14
  %2454 = sext i32 %2453 to i64
  %2455 = load ptr, ptr %17, align 8, !tbaa !5
  %2456 = getelementptr inbounds %struct.Mem, ptr %2455, i32 0, i32 0
  store i64 %2454, ptr %2456, align 8, !tbaa !16
  %2457 = load ptr, ptr %17, align 8, !tbaa !5
  %2458 = getelementptr inbounds %struct.Mem, ptr %2457, i32 0, i32 1
  %2459 = load i16, ptr %2458, align 8, !tbaa !36
  %2460 = zext i16 %2459 to i32
  %2461 = and i32 %2460, -49664
  %2462 = or i32 %2461, 4
  %2463 = trunc i32 %2462 to i16
  %2464 = load ptr, ptr %17, align 8, !tbaa !5
  %2465 = getelementptr inbounds %struct.Mem, ptr %2464, i32 0, i32 1
  store i16 %2463, ptr %2465, align 8, !tbaa !36
  br label %2466

2466:                                             ; preds = %2452, %2442
  store i32 7, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  br label %8475

2467:                                             ; preds = %363
  %2468 = load ptr, ptr %13, align 8, !tbaa !5
  %2469 = load ptr, ptr %5, align 8, !tbaa !5
  %2470 = getelementptr inbounds %struct.VdbeOp, ptr %2469, i32 0, i32 3
  %2471 = load i32, ptr %2470, align 4, !tbaa !35
  %2472 = sext i32 %2471 to i64
  %2473 = getelementptr inbounds %struct.Mem, ptr %2468, i64 %2472
  store ptr %2473, ptr %14, align 8, !tbaa !5
  %2474 = load ptr, ptr %13, align 8, !tbaa !5
  %2475 = load ptr, ptr %5, align 8, !tbaa !5
  %2476 = getelementptr inbounds %struct.VdbeOp, ptr %2475, i32 0, i32 4
  %2477 = load i32, ptr %2476, align 8, !tbaa !33
  %2478 = sext i32 %2477 to i64
  %2479 = getelementptr inbounds %struct.Mem, ptr %2474, i64 %2478
  store ptr %2479, ptr %17, align 8, !tbaa !5
  %2480 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %2480)
  %2481 = load ptr, ptr %14, align 8, !tbaa !5
  %2482 = getelementptr inbounds %struct.Mem, ptr %2481, i32 0, i32 1
  %2483 = load i16, ptr %2482, align 8, !tbaa !36
  %2484 = zext i16 %2483 to i32
  %2485 = and i32 %2484, 1
  %2486 = icmp eq i32 %2485, 0
  br i1 %2486, label %2487, label %2498

2487:                                             ; preds = %2467
  %2488 = load ptr, ptr %17, align 8, !tbaa !5
  %2489 = getelementptr inbounds %struct.Mem, ptr %2488, i32 0, i32 1
  store i16 4, ptr %2489, align 8, !tbaa !36
  %2490 = load ptr, ptr %14, align 8, !tbaa !5
  %2491 = call i64 @sqlite3VdbeIntValue(ptr noundef %2490)
  %2492 = icmp ne i64 %2491, 0
  %2493 = xor i1 %2492, true
  %2494 = zext i1 %2493 to i32
  %2495 = sext i32 %2494 to i64
  %2496 = load ptr, ptr %17, align 8, !tbaa !5
  %2497 = getelementptr inbounds %struct.Mem, ptr %2496, i32 0, i32 0
  store i64 %2495, ptr %2497, align 8, !tbaa !16
  br label %2498

2498:                                             ; preds = %2487, %2467
  br label %8475

2499:                                             ; preds = %363
  %2500 = load ptr, ptr %13, align 8, !tbaa !5
  %2501 = load ptr, ptr %5, align 8, !tbaa !5
  %2502 = getelementptr inbounds %struct.VdbeOp, ptr %2501, i32 0, i32 3
  %2503 = load i32, ptr %2502, align 4, !tbaa !35
  %2504 = sext i32 %2503 to i64
  %2505 = getelementptr inbounds %struct.Mem, ptr %2500, i64 %2504
  store ptr %2505, ptr %14, align 8, !tbaa !5
  %2506 = load ptr, ptr %13, align 8, !tbaa !5
  %2507 = load ptr, ptr %5, align 8, !tbaa !5
  %2508 = getelementptr inbounds %struct.VdbeOp, ptr %2507, i32 0, i32 4
  %2509 = load i32, ptr %2508, align 8, !tbaa !33
  %2510 = sext i32 %2509 to i64
  %2511 = getelementptr inbounds %struct.Mem, ptr %2506, i64 %2510
  store ptr %2511, ptr %17, align 8, !tbaa !5
  %2512 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %2512)
  %2513 = load ptr, ptr %14, align 8, !tbaa !5
  %2514 = getelementptr inbounds %struct.Mem, ptr %2513, i32 0, i32 1
  %2515 = load i16, ptr %2514, align 8, !tbaa !36
  %2516 = zext i16 %2515 to i32
  %2517 = and i32 %2516, 1
  %2518 = icmp eq i32 %2517, 0
  br i1 %2518, label %2519, label %2527

2519:                                             ; preds = %2499
  %2520 = load ptr, ptr %17, align 8, !tbaa !5
  %2521 = getelementptr inbounds %struct.Mem, ptr %2520, i32 0, i32 1
  store i16 4, ptr %2521, align 8, !tbaa !36
  %2522 = load ptr, ptr %14, align 8, !tbaa !5
  %2523 = call i64 @sqlite3VdbeIntValue(ptr noundef %2522)
  %2524 = xor i64 %2523, -1
  %2525 = load ptr, ptr %17, align 8, !tbaa !5
  %2526 = getelementptr inbounds %struct.Mem, ptr %2525, i32 0, i32 0
  store i64 %2524, ptr %2526, align 8, !tbaa !16
  br label %2527

2527:                                             ; preds = %2519, %2499
  br label %8475

2528:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #5
  %2529 = load ptr, ptr %3, align 8, !tbaa !5
  %2530 = getelementptr inbounds %struct.Vdbe, ptr %2529, i32 0, i32 37
  %2531 = load ptr, ptr %2530, align 8, !tbaa !39
  %2532 = icmp ne ptr %2531, null
  br i1 %2532, label %2533, label %2577

2533:                                             ; preds = %2528
  %2534 = load ptr, ptr %5, align 8, !tbaa !5
  %2535 = load ptr, ptr %3, align 8, !tbaa !5
  %2536 = getelementptr inbounds %struct.Vdbe, ptr %2535, i32 0, i32 17
  %2537 = load ptr, ptr %2536, align 8, !tbaa !9
  %2538 = ptrtoint ptr %2534 to i64
  %2539 = ptrtoint ptr %2537 to i64
  %2540 = sub i64 %2538, %2539
  %2541 = sdiv exact i64 %2540, 24
  %2542 = trunc i64 %2541 to i32
  store i32 %2542, ptr %66, align 4, !tbaa !14
  %2543 = load ptr, ptr %3, align 8, !tbaa !5
  %2544 = getelementptr inbounds %struct.Vdbe, ptr %2543, i32 0, i32 37
  %2545 = load ptr, ptr %2544, align 8, !tbaa !39
  %2546 = getelementptr inbounds %struct.VdbeFrame, ptr %2545, i32 0, i32 6
  %2547 = load ptr, ptr %2546, align 8, !tbaa !81
  %2548 = load i32, ptr %66, align 4, !tbaa !14
  %2549 = udiv i32 %2548, 8
  %2550 = zext i32 %2549 to i64
  %2551 = getelementptr inbounds i8, ptr %2547, i64 %2550
  %2552 = load i8, ptr %2551, align 1, !tbaa !16
  %2553 = zext i8 %2552 to i32
  %2554 = load i32, ptr %66, align 4, !tbaa !14
  %2555 = and i32 %2554, 7
  %2556 = shl i32 1, %2555
  %2557 = and i32 %2553, %2556
  %2558 = icmp ne i32 %2557, 0
  br i1 %2558, label %2559, label %2560

2559:                                             ; preds = %2533
  store i32 11, ptr %23, align 4
  br label %2599

2560:                                             ; preds = %2533
  %2561 = load i32, ptr %66, align 4, !tbaa !14
  %2562 = and i32 %2561, 7
  %2563 = shl i32 1, %2562
  %2564 = load ptr, ptr %3, align 8, !tbaa !5
  %2565 = getelementptr inbounds %struct.Vdbe, ptr %2564, i32 0, i32 37
  %2566 = load ptr, ptr %2565, align 8, !tbaa !39
  %2567 = getelementptr inbounds %struct.VdbeFrame, ptr %2566, i32 0, i32 6
  %2568 = load ptr, ptr %2567, align 8, !tbaa !81
  %2569 = load i32, ptr %66, align 4, !tbaa !14
  %2570 = udiv i32 %2569, 8
  %2571 = zext i32 %2570 to i64
  %2572 = getelementptr inbounds i8, ptr %2568, i64 %2571
  %2573 = load i8, ptr %2572, align 1, !tbaa !16
  %2574 = zext i8 %2573 to i32
  %2575 = or i32 %2574, %2563
  %2576 = trunc i32 %2575 to i8
  store i8 %2576, ptr %2572, align 1, !tbaa !16
  br label %2590

2577:                                             ; preds = %2528
  %2578 = load ptr, ptr %3, align 8, !tbaa !5
  %2579 = getelementptr inbounds %struct.Vdbe, ptr %2578, i32 0, i32 17
  %2580 = load ptr, ptr %2579, align 8, !tbaa !9
  %2581 = getelementptr inbounds %struct.VdbeOp, ptr %2580, i64 0
  %2582 = getelementptr inbounds %struct.VdbeOp, ptr %2581, i32 0, i32 3
  %2583 = load i32, ptr %2582, align 4, !tbaa !35
  %2584 = load ptr, ptr %5, align 8, !tbaa !5
  %2585 = getelementptr inbounds %struct.VdbeOp, ptr %2584, i32 0, i32 3
  %2586 = load i32, ptr %2585, align 4, !tbaa !35
  %2587 = icmp eq i32 %2583, %2586
  br i1 %2587, label %2588, label %2589

2588:                                             ; preds = %2577
  store i32 11, ptr %23, align 4
  br label %2599

2589:                                             ; preds = %2577
  br label %2590

2590:                                             ; preds = %2589, %2560
  %2591 = load ptr, ptr %3, align 8, !tbaa !5
  %2592 = getelementptr inbounds %struct.Vdbe, ptr %2591, i32 0, i32 17
  %2593 = load ptr, ptr %2592, align 8, !tbaa !9
  %2594 = getelementptr inbounds %struct.VdbeOp, ptr %2593, i64 0
  %2595 = getelementptr inbounds %struct.VdbeOp, ptr %2594, i32 0, i32 3
  %2596 = load i32, ptr %2595, align 4, !tbaa !35
  %2597 = load ptr, ptr %5, align 8, !tbaa !5
  %2598 = getelementptr inbounds %struct.VdbeOp, ptr %2597, i32 0, i32 3
  store i32 %2596, ptr %2598, align 4, !tbaa !35
  store i32 7, ptr %23, align 4
  br label %2599

2599:                                             ; preds = %2590, %2588, %2559
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  %2600 = load i32, ptr %23, align 4
  switch i32 %2600, label %8564 [
    i32 11, label %436
    i32 7, label %8475
  ]

2601:                                             ; preds = %363, %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #5
  %2602 = load ptr, ptr %13, align 8, !tbaa !5
  %2603 = load ptr, ptr %5, align 8, !tbaa !5
  %2604 = getelementptr inbounds %struct.VdbeOp, ptr %2603, i32 0, i32 3
  %2605 = load i32, ptr %2604, align 4, !tbaa !35
  %2606 = sext i32 %2605 to i64
  %2607 = getelementptr inbounds %struct.Mem, ptr %2602, i64 %2606
  store ptr %2607, ptr %14, align 8, !tbaa !5
  %2608 = load ptr, ptr %14, align 8, !tbaa !5
  %2609 = getelementptr inbounds %struct.Mem, ptr %2608, i32 0, i32 1
  %2610 = load i16, ptr %2609, align 8, !tbaa !36
  %2611 = zext i16 %2610 to i32
  %2612 = and i32 %2611, 1
  %2613 = icmp ne i32 %2612, 0
  br i1 %2613, label %2614, label %2618

2614:                                             ; preds = %2601
  %2615 = load ptr, ptr %5, align 8, !tbaa !5
  %2616 = getelementptr inbounds %struct.VdbeOp, ptr %2615, i32 0, i32 5
  %2617 = load i32, ptr %2616, align 4, !tbaa !38
  store i32 %2617, ptr %67, align 4, !tbaa !14
  br label %2634

2618:                                             ; preds = %2601
  %2619 = load ptr, ptr %14, align 8, !tbaa !5
  %2620 = call double @sqlite3VdbeRealValue(ptr noundef %2619)
  %2621 = fcmp une double %2620, 0.000000e+00
  %2622 = zext i1 %2621 to i32
  store i32 %2622, ptr %67, align 4, !tbaa !14
  %2623 = load ptr, ptr %5, align 8, !tbaa !5
  %2624 = getelementptr inbounds %struct.VdbeOp, ptr %2623, i32 0, i32 0
  %2625 = load i8, ptr %2624, align 8, !tbaa !31
  %2626 = zext i8 %2625 to i32
  %2627 = icmp eq i32 %2626, 22
  br i1 %2627, label %2628, label %2633

2628:                                             ; preds = %2618
  %2629 = load i32, ptr %67, align 4, !tbaa !14
  %2630 = icmp ne i32 %2629, 0
  %2631 = xor i1 %2630, true
  %2632 = zext i1 %2631 to i32
  store i32 %2632, ptr %67, align 4, !tbaa !14
  br label %2633

2633:                                             ; preds = %2628, %2618
  br label %2634

2634:                                             ; preds = %2633, %2614
  %2635 = load i32, ptr %67, align 4, !tbaa !14
  %2636 = icmp ne i32 %2635, 0
  br i1 %2636, label %2637, label %2638

2637:                                             ; preds = %2634
  store i32 11, ptr %23, align 4
  br label %2639

2638:                                             ; preds = %2634
  store i32 7, ptr %23, align 4
  br label %2639

2639:                                             ; preds = %2638, %2637
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  %2640 = load i32, ptr %23, align 4
  switch i32 %2640, label %8564 [
    i32 11, label %436
    i32 7, label %8475
  ]

2641:                                             ; preds = %363
  %2642 = load ptr, ptr %13, align 8, !tbaa !5
  %2643 = load ptr, ptr %5, align 8, !tbaa !5
  %2644 = getelementptr inbounds %struct.VdbeOp, ptr %2643, i32 0, i32 3
  %2645 = load i32, ptr %2644, align 4, !tbaa !35
  %2646 = sext i32 %2645 to i64
  %2647 = getelementptr inbounds %struct.Mem, ptr %2642, i64 %2646
  store ptr %2647, ptr %14, align 8, !tbaa !5
  %2648 = load ptr, ptr %14, align 8, !tbaa !5
  %2649 = getelementptr inbounds %struct.Mem, ptr %2648, i32 0, i32 1
  %2650 = load i16, ptr %2649, align 8, !tbaa !36
  %2651 = zext i16 %2650 to i32
  %2652 = and i32 %2651, 1
  %2653 = icmp ne i32 %2652, 0
  br i1 %2653, label %2654, label %2655

2654:                                             ; preds = %2641
  br label %436

2655:                                             ; preds = %2641
  br label %8475

2656:                                             ; preds = %363
  %2657 = load ptr, ptr %13, align 8, !tbaa !5
  %2658 = load ptr, ptr %5, align 8, !tbaa !5
  %2659 = getelementptr inbounds %struct.VdbeOp, ptr %2658, i32 0, i32 3
  %2660 = load i32, ptr %2659, align 4, !tbaa !35
  %2661 = sext i32 %2660 to i64
  %2662 = getelementptr inbounds %struct.Mem, ptr %2657, i64 %2661
  store ptr %2662, ptr %14, align 8, !tbaa !5
  %2663 = load ptr, ptr %14, align 8, !tbaa !5
  %2664 = getelementptr inbounds %struct.Mem, ptr %2663, i32 0, i32 1
  %2665 = load i16, ptr %2664, align 8, !tbaa !36
  %2666 = zext i16 %2665 to i32
  %2667 = and i32 %2666, 1
  %2668 = icmp eq i32 %2667, 0
  br i1 %2668, label %2669, label %2670

2669:                                             ; preds = %2656
  br label %436

2670:                                             ; preds = %2656
  br label %8475

2671:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 56, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  %2672 = load ptr, ptr %3, align 8, !tbaa !5
  %2673 = getelementptr inbounds %struct.Vdbe, ptr %2672, i32 0, i32 23
  %2674 = load ptr, ptr %2673, align 8, !tbaa !82
  %2675 = load ptr, ptr %5, align 8, !tbaa !5
  %2676 = getelementptr inbounds %struct.VdbeOp, ptr %2675, i32 0, i32 3
  %2677 = load i32, ptr %2676, align 4, !tbaa !35
  %2678 = sext i32 %2677 to i64
  %2679 = getelementptr inbounds ptr, ptr %2674, i64 %2678
  %2680 = load ptr, ptr %2679, align 8, !tbaa !5
  store ptr %2680, ptr %69, align 8, !tbaa !5
  %2681 = load ptr, ptr %5, align 8, !tbaa !5
  %2682 = getelementptr inbounds %struct.VdbeOp, ptr %2681, i32 0, i32 4
  %2683 = load i32, ptr %2682, align 8, !tbaa !33
  store i32 %2683, ptr %68, align 4, !tbaa !14
  %2684 = call i32 @sqlite3VdbeCursorMoveto(ptr noundef %69, ptr noundef %68)
  store i32 %2684, ptr %6, align 4, !tbaa !14
  %2685 = load i32, ptr %6, align 4, !tbaa !14
  %2686 = icmp ne i32 %2685, 0
  br i1 %2686, label %2687, label %2688

2687:                                             ; preds = %2671
  store i32 10, ptr %23, align 4
  br label %3193

2688:                                             ; preds = %2671
  %2689 = load ptr, ptr %13, align 8, !tbaa !5
  %2690 = load ptr, ptr %5, align 8, !tbaa !5
  %2691 = getelementptr inbounds %struct.VdbeOp, ptr %2690, i32 0, i32 5
  %2692 = load i32, ptr %2691, align 4, !tbaa !38
  %2693 = sext i32 %2692 to i64
  %2694 = getelementptr inbounds %struct.Mem, ptr %2689, i64 %2693
  store ptr %2694, ptr %74, align 8, !tbaa !5
  %2695 = load ptr, ptr %69, align 8, !tbaa !5
  %2696 = getelementptr inbounds %struct.VdbeCursor, ptr %2695, i32 0, i32 19
  %2697 = load ptr, ptr %2696, align 8, !tbaa !83
  store ptr %2697, ptr %71, align 8, !tbaa !5
  %2698 = load ptr, ptr %69, align 8, !tbaa !5
  %2699 = getelementptr inbounds %struct.VdbeCursor, ptr %2698, i32 0, i32 9
  %2700 = load i32, ptr %2699, align 8, !tbaa !85
  %2701 = load ptr, ptr %3, align 8, !tbaa !5
  %2702 = getelementptr inbounds %struct.Vdbe, ptr %2701, i32 0, i32 8
  %2703 = load i32, ptr %2702, align 8, !tbaa !61
  %2704 = icmp ne i32 %2700, %2703
  br i1 %2704, label %2705, label %2840

2705:                                             ; preds = %2688
  %2706 = load ptr, ptr %69, align 8, !tbaa !5
  %2707 = getelementptr inbounds %struct.VdbeCursor, ptr %2706, i32 0, i32 2
  %2708 = load i8, ptr %2707, align 2, !tbaa !86
  %2709 = icmp ne i8 %2708, 0
  br i1 %2709, label %2710, label %2738

2710:                                             ; preds = %2705
  %2711 = load ptr, ptr %69, align 8, !tbaa !5
  %2712 = getelementptr inbounds %struct.VdbeCursor, ptr %2711, i32 0, i32 0
  %2713 = load i8, ptr %2712, align 8, !tbaa !87
  %2714 = zext i8 %2713 to i32
  %2715 = icmp eq i32 %2714, 3
  br i1 %2715, label %2716, label %2735

2716:                                             ; preds = %2710
  %2717 = load ptr, ptr %13, align 8, !tbaa !5
  %2718 = load ptr, ptr %69, align 8, !tbaa !5
  %2719 = getelementptr inbounds %struct.VdbeCursor, ptr %2718, i32 0, i32 12
  %2720 = load i32, ptr %2719, align 8, !tbaa !16
  %2721 = sext i32 %2720 to i64
  %2722 = getelementptr inbounds %struct.Mem, ptr %2717, i64 %2721
  store ptr %2722, ptr %83, align 8, !tbaa !5
  %2723 = load ptr, ptr %83, align 8, !tbaa !5
  %2724 = getelementptr inbounds %struct.Mem, ptr %2723, i32 0, i32 4
  %2725 = load i32, ptr %2724, align 4, !tbaa !54
  store i32 %2725, ptr %81, align 4, !tbaa !14
  %2726 = load ptr, ptr %69, align 8, !tbaa !5
  %2727 = getelementptr inbounds %struct.VdbeCursor, ptr %2726, i32 0, i32 22
  store i32 %2725, ptr %2727, align 4, !tbaa !88
  %2728 = load ptr, ptr %69, align 8, !tbaa !5
  %2729 = getelementptr inbounds %struct.VdbeCursor, ptr %2728, i32 0, i32 21
  store i32 %2725, ptr %2729, align 8, !tbaa !89
  %2730 = load ptr, ptr %83, align 8, !tbaa !5
  %2731 = getelementptr inbounds %struct.Mem, ptr %2730, i32 0, i32 5
  %2732 = load ptr, ptr %2731, align 8, !tbaa !53
  %2733 = load ptr, ptr %69, align 8, !tbaa !5
  %2734 = getelementptr inbounds %struct.VdbeCursor, ptr %2733, i32 0, i32 20
  store ptr %2732, ptr %2734, align 8, !tbaa !90
  br label %2737

2735:                                             ; preds = %2710
  %2736 = load ptr, ptr %74, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %2736)
  br label %3192

2737:                                             ; preds = %2716
  br label %2777

2738:                                             ; preds = %2705
  %2739 = load ptr, ptr %69, align 8, !tbaa !5
  %2740 = getelementptr inbounds %struct.VdbeCursor, ptr %2739, i32 0, i32 12
  %2741 = load ptr, ptr %2740, align 8, !tbaa !16
  store ptr %2741, ptr %70, align 8, !tbaa !5
  %2742 = load ptr, ptr %70, align 8, !tbaa !5
  %2743 = call i32 @sqlite3BtreePayloadSize(ptr noundef %2742)
  %2744 = load ptr, ptr %69, align 8, !tbaa !5
  %2745 = getelementptr inbounds %struct.VdbeCursor, ptr %2744, i32 0, i32 21
  store i32 %2743, ptr %2745, align 8, !tbaa !89
  %2746 = load ptr, ptr %70, align 8, !tbaa !5
  %2747 = call ptr @sqlite3BtreePayloadFetch(ptr noundef %2746, ptr noundef %81)
  %2748 = load ptr, ptr %69, align 8, !tbaa !5
  %2749 = getelementptr inbounds %struct.VdbeCursor, ptr %2748, i32 0, i32 20
  store ptr %2747, ptr %2749, align 8, !tbaa !90
  %2750 = load ptr, ptr %69, align 8, !tbaa !5
  %2751 = getelementptr inbounds %struct.VdbeCursor, ptr %2750, i32 0, i32 21
  %2752 = load i32, ptr %2751, align 8, !tbaa !89
  %2753 = load i32, ptr %81, align 4, !tbaa !14
  %2754 = icmp ule i32 %2752, %2753
  br i1 %2754, label %2755, label %2761

2755:                                             ; preds = %2738
  %2756 = load ptr, ptr %69, align 8, !tbaa !5
  %2757 = getelementptr inbounds %struct.VdbeCursor, ptr %2756, i32 0, i32 21
  %2758 = load i32, ptr %2757, align 8, !tbaa !89
  %2759 = load ptr, ptr %69, align 8, !tbaa !5
  %2760 = getelementptr inbounds %struct.VdbeCursor, ptr %2759, i32 0, i32 22
  store i32 %2758, ptr %2760, align 4, !tbaa !88
  br label %2776

2761:                                             ; preds = %2738
  %2762 = load ptr, ptr %69, align 8, !tbaa !5
  %2763 = getelementptr inbounds %struct.VdbeCursor, ptr %2762, i32 0, i32 21
  %2764 = load i32, ptr %2763, align 8, !tbaa !89
  %2765 = load ptr, ptr %7, align 8, !tbaa !5
  %2766 = getelementptr inbounds %struct.sqlite3, ptr %2765, i32 0, i32 31
  %2767 = getelementptr inbounds [12 x i32], ptr %2766, i64 0, i64 0
  %2768 = load i32, ptr %2767, align 8, !tbaa !14
  %2769 = icmp ugt i32 %2764, %2768
  br i1 %2769, label %2770, label %2771

2770:                                             ; preds = %2761
  store i32 13, ptr %23, align 4
  br label %3193

2771:                                             ; preds = %2761
  %2772 = load i32, ptr %81, align 4, !tbaa !14
  %2773 = load ptr, ptr %69, align 8, !tbaa !5
  %2774 = getelementptr inbounds %struct.VdbeCursor, ptr %2773, i32 0, i32 22
  store i32 %2772, ptr %2774, align 4, !tbaa !88
  br label %2775

2775:                                             ; preds = %2771
  br label %2776

2776:                                             ; preds = %2775, %2755
  br label %2777

2777:                                             ; preds = %2776, %2737
  %2778 = load ptr, ptr %3, align 8, !tbaa !5
  %2779 = getelementptr inbounds %struct.Vdbe, ptr %2778, i32 0, i32 8
  %2780 = load i32, ptr %2779, align 8, !tbaa !61
  %2781 = load ptr, ptr %69, align 8, !tbaa !5
  %2782 = getelementptr inbounds %struct.VdbeCursor, ptr %2781, i32 0, i32 9
  store i32 %2780, ptr %2782, align 8, !tbaa !85
  %2783 = load ptr, ptr %69, align 8, !tbaa !5
  %2784 = getelementptr inbounds %struct.VdbeCursor, ptr %2783, i32 0, i32 20
  %2785 = load ptr, ptr %2784, align 8, !tbaa !90
  %2786 = load i8, ptr %2785, align 1, !tbaa !16
  %2787 = zext i8 %2786 to i32
  %2788 = icmp slt i32 %2787, 128
  br i1 %2788, label %2789, label %2795

2789:                                             ; preds = %2777
  %2790 = load ptr, ptr %69, align 8, !tbaa !5
  %2791 = getelementptr inbounds %struct.VdbeCursor, ptr %2790, i32 0, i32 20
  %2792 = load ptr, ptr %2791, align 8, !tbaa !90
  %2793 = load i8, ptr %2792, align 1, !tbaa !16
  %2794 = zext i8 %2793 to i32
  store i32 %2794, ptr %79, align 4, !tbaa !14
  br label %2801

2795:                                             ; preds = %2777
  %2796 = load ptr, ptr %69, align 8, !tbaa !5
  %2797 = getelementptr inbounds %struct.VdbeCursor, ptr %2796, i32 0, i32 20
  %2798 = load ptr, ptr %2797, align 8, !tbaa !90
  %2799 = call zeroext i8 @sqlite3GetVarint32(ptr noundef %2798, ptr noundef %79)
  %2800 = zext i8 %2799 to i32
  br label %2801

2801:                                             ; preds = %2795, %2789
  %2802 = phi i32 [ 1, %2789 ], [ %2800, %2795 ]
  %2803 = trunc i32 %2802 to i8
  %2804 = zext i8 %2803 to i32
  %2805 = load ptr, ptr %69, align 8, !tbaa !5
  %2806 = getelementptr inbounds %struct.VdbeCursor, ptr %2805, i32 0, i32 14
  store i32 %2804, ptr %2806, align 8, !tbaa !91
  %2807 = load ptr, ptr %69, align 8, !tbaa !5
  %2808 = getelementptr inbounds %struct.VdbeCursor, ptr %2807, i32 0, i32 17
  store i16 0, ptr %2808, align 2, !tbaa !92
  %2809 = load i32, ptr %79, align 4, !tbaa !14
  %2810 = load ptr, ptr %71, align 8, !tbaa !5
  %2811 = getelementptr inbounds i32, ptr %2810, i64 0
  store i32 %2809, ptr %2811, align 4, !tbaa !14
  %2812 = load i32, ptr %81, align 4, !tbaa !14
  %2813 = load i32, ptr %79, align 4, !tbaa !14
  %2814 = icmp ult i32 %2812, %2813
  br i1 %2814, label %2815, label %2831

2815:                                             ; preds = %2801
  %2816 = load ptr, ptr %69, align 8, !tbaa !5
  %2817 = getelementptr inbounds %struct.VdbeCursor, ptr %2816, i32 0, i32 20
  store ptr null, ptr %2817, align 8, !tbaa !90
  %2818 = load ptr, ptr %69, align 8, !tbaa !5
  %2819 = getelementptr inbounds %struct.VdbeCursor, ptr %2818, i32 0, i32 22
  store i32 0, ptr %2819, align 4, !tbaa !88
  %2820 = load i32, ptr %79, align 4, !tbaa !14
  %2821 = icmp ugt i32 %2820, 98307
  br i1 %2821, label %2828, label %2822

2822:                                             ; preds = %2815
  %2823 = load i32, ptr %79, align 4, !tbaa !14
  %2824 = load ptr, ptr %69, align 8, !tbaa !5
  %2825 = getelementptr inbounds %struct.VdbeCursor, ptr %2824, i32 0, i32 21
  %2826 = load i32, ptr %2825, align 8, !tbaa !89
  %2827 = icmp ugt i32 %2823, %2826
  br i1 %2827, label %2828, label %2830

2828:                                             ; preds = %2822, %2815
  %2829 = call i32 @sqlite3CorruptError(i32 noundef 2546)
  store i32 %2829, ptr %6, align 4, !tbaa !14
  store i32 10, ptr %23, align 4
  br label %3193

2830:                                             ; preds = %2822
  br label %2839

2831:                                             ; preds = %2801
  %2832 = load i32, ptr %79, align 4, !tbaa !14
  %2833 = icmp ugt i32 %2832, 0
  br i1 %2833, label %2834, label %2838

2834:                                             ; preds = %2831
  %2835 = load ptr, ptr %69, align 8, !tbaa !5
  %2836 = getelementptr inbounds %struct.VdbeCursor, ptr %2835, i32 0, i32 20
  %2837 = load ptr, ptr %2836, align 8, !tbaa !90
  store ptr %2837, ptr %76, align 8, !tbaa !5
  br label %2879

2838:                                             ; preds = %2831
  br label %2839

2839:                                             ; preds = %2838, %2830
  br label %2840

2840:                                             ; preds = %2839, %2688
  %2841 = load ptr, ptr %69, align 8, !tbaa !5
  %2842 = getelementptr inbounds %struct.VdbeCursor, ptr %2841, i32 0, i32 17
  %2843 = load i16, ptr %2842, align 2, !tbaa !92
  %2844 = zext i16 %2843 to i32
  %2845 = load i32, ptr %68, align 4, !tbaa !14
  %2846 = icmp sle i32 %2844, %2845
  br i1 %2846, label %2847, label %3026

2847:                                             ; preds = %2840
  %2848 = load ptr, ptr %69, align 8, !tbaa !5
  %2849 = getelementptr inbounds %struct.VdbeCursor, ptr %2848, i32 0, i32 14
  %2850 = load i32, ptr %2849, align 8, !tbaa !91
  %2851 = load ptr, ptr %71, align 8, !tbaa !5
  %2852 = getelementptr inbounds i32, ptr %2851, i64 0
  %2853 = load i32, ptr %2852, align 4, !tbaa !14
  %2854 = icmp ult i32 %2850, %2853
  br i1 %2854, label %2855, label %3003

2855:                                             ; preds = %2847
  %2856 = load ptr, ptr %69, align 8, !tbaa !5
  %2857 = getelementptr inbounds %struct.VdbeCursor, ptr %2856, i32 0, i32 20
  %2858 = load ptr, ptr %2857, align 8, !tbaa !90
  %2859 = icmp eq ptr %2858, null
  br i1 %2859, label %2860, label %2874

2860:                                             ; preds = %2855
  call void @llvm.memset.p0.i64(ptr align 8 %75, i8 0, i64 56, i1 false)
  %2861 = load ptr, ptr %69, align 8, !tbaa !5
  %2862 = getelementptr inbounds %struct.VdbeCursor, ptr %2861, i32 0, i32 12
  %2863 = load ptr, ptr %2862, align 8, !tbaa !16
  %2864 = load ptr, ptr %71, align 8, !tbaa !5
  %2865 = getelementptr inbounds i32, ptr %2864, i64 0
  %2866 = load i32, ptr %2865, align 4, !tbaa !14
  %2867 = call i32 @sqlite3VdbeMemFromBtree(ptr noundef %2863, i32 noundef 0, i32 noundef %2866, ptr noundef %75)
  store i32 %2867, ptr %6, align 4, !tbaa !14
  %2868 = load i32, ptr %6, align 4, !tbaa !14
  %2869 = icmp ne i32 %2868, 0
  br i1 %2869, label %2870, label %2871

2870:                                             ; preds = %2860
  store i32 10, ptr %23, align 4
  br label %3193

2871:                                             ; preds = %2860
  %2872 = getelementptr inbounds %struct.Mem, ptr %75, i32 0, i32 5
  %2873 = load ptr, ptr %2872, align 8, !tbaa !53
  store ptr %2873, ptr %76, align 8, !tbaa !5
  br label %2878

2874:                                             ; preds = %2855
  %2875 = load ptr, ptr %69, align 8, !tbaa !5
  %2876 = getelementptr inbounds %struct.VdbeCursor, ptr %2875, i32 0, i32 20
  %2877 = load ptr, ptr %2876, align 8, !tbaa !90
  store ptr %2877, ptr %76, align 8, !tbaa !5
  br label %2878

2878:                                             ; preds = %2874, %2871
  br label %2879

2879:                                             ; preds = %2878, %2834
  %2880 = load ptr, ptr %69, align 8, !tbaa !5
  %2881 = getelementptr inbounds %struct.VdbeCursor, ptr %2880, i32 0, i32 17
  %2882 = load i16, ptr %2881, align 2, !tbaa !92
  %2883 = zext i16 %2882 to i32
  store i32 %2883, ptr %73, align 4, !tbaa !14
  %2884 = load ptr, ptr %71, align 8, !tbaa !5
  %2885 = load i32, ptr %73, align 4, !tbaa !14
  %2886 = sext i32 %2885 to i64
  %2887 = getelementptr inbounds i32, ptr %2884, i64 %2886
  %2888 = load i32, ptr %2887, align 4, !tbaa !14
  %2889 = zext i32 %2888 to i64
  store i64 %2889, ptr %80, align 8, !tbaa !48
  %2890 = load ptr, ptr %76, align 8, !tbaa !5
  %2891 = load ptr, ptr %69, align 8, !tbaa !5
  %2892 = getelementptr inbounds %struct.VdbeCursor, ptr %2891, i32 0, i32 14
  %2893 = load i32, ptr %2892, align 8, !tbaa !91
  %2894 = zext i32 %2893 to i64
  %2895 = getelementptr inbounds i8, ptr %2890, i64 %2894
  store ptr %2895, ptr %77, align 8, !tbaa !5
  %2896 = load ptr, ptr %76, align 8, !tbaa !5
  %2897 = load ptr, ptr %71, align 8, !tbaa !5
  %2898 = getelementptr inbounds i32, ptr %2897, i64 0
  %2899 = load i32, ptr %2898, align 4, !tbaa !14
  %2900 = zext i32 %2899 to i64
  %2901 = getelementptr inbounds i8, ptr %2896, i64 %2900
  store ptr %2901, ptr %78, align 8, !tbaa !5
  br label %2902

2902:                                             ; preds = %2952, %2879
  %2903 = load ptr, ptr %77, align 8, !tbaa !5
  %2904 = getelementptr inbounds i8, ptr %2903, i64 0
  %2905 = load i8, ptr %2904, align 1, !tbaa !16
  %2906 = zext i8 %2905 to i32
  store i32 %2906, ptr %82, align 4, !tbaa !14
  %2907 = icmp ult i32 %2906, 128
  br i1 %2907, label %2908, label %2917

2908:                                             ; preds = %2902
  %2909 = load ptr, ptr %77, align 8, !tbaa !5
  %2910 = getelementptr inbounds i8, ptr %2909, i32 1
  store ptr %2910, ptr %77, align 8, !tbaa !5
  %2911 = load i32, ptr %82, align 4, !tbaa !14
  %2912 = trunc i32 %2911 to i8
  %2913 = call zeroext i8 @sqlite3VdbeOneByteSerialTypeLen(i8 noundef zeroext %2912)
  %2914 = zext i8 %2913 to i64
  %2915 = load i64, ptr %80, align 8, !tbaa !48
  %2916 = add i64 %2915, %2914
  store i64 %2916, ptr %80, align 8, !tbaa !48
  br label %2929

2917:                                             ; preds = %2902
  %2918 = load ptr, ptr %77, align 8, !tbaa !5
  %2919 = call zeroext i8 @sqlite3GetVarint32(ptr noundef %2918, ptr noundef %82)
  %2920 = zext i8 %2919 to i32
  %2921 = load ptr, ptr %77, align 8, !tbaa !5
  %2922 = sext i32 %2920 to i64
  %2923 = getelementptr inbounds i8, ptr %2921, i64 %2922
  store ptr %2923, ptr %77, align 8, !tbaa !5
  %2924 = load i32, ptr %82, align 4, !tbaa !14
  %2925 = call i32 @sqlite3VdbeSerialTypeLen(i32 noundef %2924)
  %2926 = zext i32 %2925 to i64
  %2927 = load i64, ptr %80, align 8, !tbaa !48
  %2928 = add i64 %2927, %2926
  store i64 %2928, ptr %80, align 8, !tbaa !48
  br label %2929

2929:                                             ; preds = %2917, %2908
  %2930 = load i32, ptr %82, align 4, !tbaa !14
  %2931 = load ptr, ptr %69, align 8, !tbaa !5
  %2932 = getelementptr inbounds %struct.VdbeCursor, ptr %2931, i32 0, i32 23
  %2933 = load i32, ptr %73, align 4, !tbaa !14
  %2934 = add nsw i32 %2933, 1
  store i32 %2934, ptr %73, align 4, !tbaa !14
  %2935 = sext i32 %2933 to i64
  %2936 = getelementptr inbounds [1 x i32], ptr %2932, i64 0, i64 %2935
  store i32 %2930, ptr %2936, align 4, !tbaa !14
  %2937 = load i64, ptr %80, align 8, !tbaa !48
  %2938 = and i64 %2937, 4294967295
  %2939 = trunc i64 %2938 to i32
  %2940 = load ptr, ptr %71, align 8, !tbaa !5
  %2941 = load i32, ptr %73, align 4, !tbaa !14
  %2942 = sext i32 %2941 to i64
  %2943 = getelementptr inbounds i32, ptr %2940, i64 %2942
  store i32 %2939, ptr %2943, align 4, !tbaa !14
  br label %2944

2944:                                             ; preds = %2929
  %2945 = load i32, ptr %73, align 4, !tbaa !14
  %2946 = load i32, ptr %68, align 4, !tbaa !14
  %2947 = icmp sle i32 %2945, %2946
  br i1 %2947, label %2948, label %2952

2948:                                             ; preds = %2944
  %2949 = load ptr, ptr %77, align 8, !tbaa !5
  %2950 = load ptr, ptr %78, align 8, !tbaa !5
  %2951 = icmp ult ptr %2949, %2950
  br label %2952

2952:                                             ; preds = %2948, %2944
  %2953 = phi i1 [ false, %2944 ], [ %2951, %2948 ]
  br i1 %2953, label %2902, label %2954, !llvm.loop !93

2954:                                             ; preds = %2952
  %2955 = load ptr, ptr %77, align 8, !tbaa !5
  %2956 = load ptr, ptr %78, align 8, !tbaa !5
  %2957 = icmp uge ptr %2955, %2956
  br i1 %2957, label %2958, label %2969

2958:                                             ; preds = %2954
  %2959 = load ptr, ptr %77, align 8, !tbaa !5
  %2960 = load ptr, ptr %78, align 8, !tbaa !5
  %2961 = icmp ugt ptr %2959, %2960
  br i1 %2961, label %2976, label %2962

2962:                                             ; preds = %2958
  %2963 = load i64, ptr %80, align 8, !tbaa !48
  %2964 = load ptr, ptr %69, align 8, !tbaa !5
  %2965 = getelementptr inbounds %struct.VdbeCursor, ptr %2964, i32 0, i32 21
  %2966 = load i32, ptr %2965, align 8, !tbaa !89
  %2967 = zext i32 %2966 to i64
  %2968 = icmp ne i64 %2963, %2967
  br i1 %2968, label %2976, label %2969

2969:                                             ; preds = %2962, %2954
  %2970 = load i64, ptr %80, align 8, !tbaa !48
  %2971 = load ptr, ptr %69, align 8, !tbaa !5
  %2972 = getelementptr inbounds %struct.VdbeCursor, ptr %2971, i32 0, i32 21
  %2973 = load i32, ptr %2972, align 8, !tbaa !89
  %2974 = zext i32 %2973 to i64
  %2975 = icmp ugt i64 %2970, %2974
  br i1 %2975, label %2976, label %2984

2976:                                             ; preds = %2969, %2962, %2958
  %2977 = load ptr, ptr %69, align 8, !tbaa !5
  %2978 = getelementptr inbounds %struct.VdbeCursor, ptr %2977, i32 0, i32 20
  %2979 = load ptr, ptr %2978, align 8, !tbaa !90
  %2980 = icmp eq ptr %2979, null
  br i1 %2980, label %2981, label %2982

2981:                                             ; preds = %2976
  call void @sqlite3VdbeMemRelease(ptr noundef %75)
  br label %2982

2982:                                             ; preds = %2981, %2976
  %2983 = call i32 @sqlite3CorruptError(i32 noundef 2605)
  store i32 %2983, ptr %6, align 4, !tbaa !14
  store i32 10, ptr %23, align 4
  br label %3193

2984:                                             ; preds = %2969
  %2985 = load i32, ptr %73, align 4, !tbaa !14
  %2986 = trunc i32 %2985 to i16
  %2987 = load ptr, ptr %69, align 8, !tbaa !5
  %2988 = getelementptr inbounds %struct.VdbeCursor, ptr %2987, i32 0, i32 17
  store i16 %2986, ptr %2988, align 2, !tbaa !92
  %2989 = load ptr, ptr %77, align 8, !tbaa !5
  %2990 = load ptr, ptr %76, align 8, !tbaa !5
  %2991 = ptrtoint ptr %2989 to i64
  %2992 = ptrtoint ptr %2990 to i64
  %2993 = sub i64 %2991, %2992
  %2994 = trunc i64 %2993 to i32
  %2995 = load ptr, ptr %69, align 8, !tbaa !5
  %2996 = getelementptr inbounds %struct.VdbeCursor, ptr %2995, i32 0, i32 14
  store i32 %2994, ptr %2996, align 8, !tbaa !91
  %2997 = load ptr, ptr %69, align 8, !tbaa !5
  %2998 = getelementptr inbounds %struct.VdbeCursor, ptr %2997, i32 0, i32 20
  %2999 = load ptr, ptr %2998, align 8, !tbaa !90
  %3000 = icmp eq ptr %2999, null
  br i1 %3000, label %3001, label %3002

3001:                                             ; preds = %2984
  call void @sqlite3VdbeMemRelease(ptr noundef %75)
  br label %3002

3002:                                             ; preds = %3001, %2984
  br label %3004

3003:                                             ; preds = %2847
  store i32 0, ptr %82, align 4, !tbaa !14
  br label %3004

3004:                                             ; preds = %3003, %3002
  %3005 = load ptr, ptr %69, align 8, !tbaa !5
  %3006 = getelementptr inbounds %struct.VdbeCursor, ptr %3005, i32 0, i32 17
  %3007 = load i16, ptr %3006, align 2, !tbaa !92
  %3008 = zext i16 %3007 to i32
  %3009 = load i32, ptr %68, align 4, !tbaa !14
  %3010 = icmp sle i32 %3008, %3009
  br i1 %3010, label %3011, label %3025

3011:                                             ; preds = %3004
  %3012 = load ptr, ptr %5, align 8, !tbaa !5
  %3013 = getelementptr inbounds %struct.VdbeOp, ptr %3012, i32 0, i32 1
  %3014 = load i8, ptr %3013, align 1, !tbaa !52
  %3015 = sext i8 %3014 to i32
  %3016 = icmp eq i32 %3015, -7
  br i1 %3016, label %3017, label %3022

3017:                                             ; preds = %3011
  %3018 = load ptr, ptr %74, align 8, !tbaa !5
  %3019 = load ptr, ptr %5, align 8, !tbaa !5
  %3020 = getelementptr inbounds %struct.VdbeOp, ptr %3019, i32 0, i32 6
  %3021 = load ptr, ptr %3020, align 8, !tbaa !16
  call void @sqlite3VdbeMemShallowCopy(ptr noundef %3018, ptr noundef %3021, i32 noundef 2048)
  br label %3024

3022:                                             ; preds = %3011
  %3023 = load ptr, ptr %74, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %3023)
  br label %3024

3024:                                             ; preds = %3022, %3017
  br label %3192

3025:                                             ; preds = %3004
  br label %3033

3026:                                             ; preds = %2840
  %3027 = load ptr, ptr %69, align 8, !tbaa !5
  %3028 = getelementptr inbounds %struct.VdbeCursor, ptr %3027, i32 0, i32 23
  %3029 = load i32, ptr %68, align 4, !tbaa !14
  %3030 = sext i32 %3029 to i64
  %3031 = getelementptr inbounds [1 x i32], ptr %3028, i64 0, i64 %3030
  %3032 = load i32, ptr %3031, align 4, !tbaa !14
  store i32 %3032, ptr %82, align 4, !tbaa !14
  br label %3033

3033:                                             ; preds = %3026, %3025
  %3034 = load ptr, ptr %74, align 8, !tbaa !5
  %3035 = getelementptr inbounds %struct.Mem, ptr %3034, i32 0, i32 1
  %3036 = load i16, ptr %3035, align 8, !tbaa !36
  %3037 = zext i16 %3036 to i32
  %3038 = and i32 %3037, 9312
  %3039 = icmp ne i32 %3038, 0
  br i1 %3039, label %3040, label %3042

3040:                                             ; preds = %3033
  %3041 = load ptr, ptr %74, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %3041)
  br label %3042

3042:                                             ; preds = %3040, %3033
  %3043 = load ptr, ptr %69, align 8, !tbaa !5
  %3044 = getelementptr inbounds %struct.VdbeCursor, ptr %3043, i32 0, i32 22
  %3045 = load i32, ptr %3044, align 4, !tbaa !88
  %3046 = load ptr, ptr %71, align 8, !tbaa !5
  %3047 = load i32, ptr %68, align 4, !tbaa !14
  %3048 = add nsw i32 %3047, 1
  %3049 = sext i32 %3048 to i64
  %3050 = getelementptr inbounds i32, ptr %3046, i64 %3049
  %3051 = load i32, ptr %3050, align 4, !tbaa !14
  %3052 = icmp uge i32 %3045, %3051
  br i1 %3052, label %3053, label %3130

3053:                                             ; preds = %3042
  %3054 = load ptr, ptr %69, align 8, !tbaa !5
  %3055 = getelementptr inbounds %struct.VdbeCursor, ptr %3054, i32 0, i32 20
  %3056 = load ptr, ptr %3055, align 8, !tbaa !90
  %3057 = load ptr, ptr %71, align 8, !tbaa !5
  %3058 = load i32, ptr %68, align 4, !tbaa !14
  %3059 = sext i32 %3058 to i64
  %3060 = getelementptr inbounds i32, ptr %3057, i64 %3059
  %3061 = load i32, ptr %3060, align 4, !tbaa !14
  %3062 = zext i32 %3061 to i64
  %3063 = getelementptr inbounds i8, ptr %3056, i64 %3062
  store ptr %3063, ptr %76, align 8, !tbaa !5
  %3064 = load i32, ptr %82, align 4, !tbaa !14
  %3065 = icmp ult i32 %3064, 12
  br i1 %3065, label %3066, label %3071

3066:                                             ; preds = %3053
  %3067 = load ptr, ptr %76, align 8, !tbaa !5
  %3068 = load i32, ptr %82, align 4, !tbaa !14
  %3069 = load ptr, ptr %74, align 8, !tbaa !5
  %3070 = call i32 @sqlite3VdbeSerialGet(ptr noundef %3067, i32 noundef %3068, ptr noundef %3069)
  br label %3129

3071:                                             ; preds = %3053
  %3072 = load i32, ptr %82, align 4, !tbaa !14
  %3073 = sub i32 %3072, 12
  %3074 = udiv i32 %3073, 2
  store i32 %3074, ptr %72, align 4, !tbaa !14
  %3075 = load ptr, ptr %74, align 8, !tbaa !5
  %3076 = getelementptr inbounds %struct.Mem, ptr %3075, i32 0, i32 4
  store i32 %3074, ptr %3076, align 4, !tbaa !54
  %3077 = load i8, ptr %9, align 1, !tbaa !16
  %3078 = load ptr, ptr %74, align 8, !tbaa !5
  %3079 = getelementptr inbounds %struct.Mem, ptr %3078, i32 0, i32 2
  store i8 %3077, ptr %3079, align 2, !tbaa !55
  %3080 = load ptr, ptr %74, align 8, !tbaa !5
  %3081 = getelementptr inbounds %struct.Mem, ptr %3080, i32 0, i32 7
  %3082 = load i32, ptr %3081, align 8, !tbaa !51
  %3083 = load i32, ptr %72, align 4, !tbaa !14
  %3084 = add nsw i32 %3083, 2
  %3085 = icmp slt i32 %3082, %3084
  br i1 %3085, label %3086, label %3096

3086:                                             ; preds = %3071
  %3087 = load ptr, ptr %74, align 8, !tbaa !5
  %3088 = getelementptr inbounds %struct.Mem, ptr %3087, i32 0, i32 1
  store i16 1, ptr %3088, align 8, !tbaa !36
  %3089 = load ptr, ptr %74, align 8, !tbaa !5
  %3090 = load i32, ptr %72, align 4, !tbaa !14
  %3091 = add nsw i32 %3090, 2
  %3092 = call i32 @sqlite3VdbeMemGrow(ptr noundef %3089, i32 noundef %3091, i32 noundef 0)
  %3093 = icmp ne i32 %3092, 0
  br i1 %3093, label %3094, label %3095

3094:                                             ; preds = %3086
  store i32 2, ptr %23, align 4
  br label %3193

3095:                                             ; preds = %3086
  br label %3102

3096:                                             ; preds = %3071
  %3097 = load ptr, ptr %74, align 8, !tbaa !5
  %3098 = getelementptr inbounds %struct.Mem, ptr %3097, i32 0, i32 6
  %3099 = load ptr, ptr %3098, align 8, !tbaa !94
  %3100 = load ptr, ptr %74, align 8, !tbaa !5
  %3101 = getelementptr inbounds %struct.Mem, ptr %3100, i32 0, i32 5
  store ptr %3099, ptr %3101, align 8, !tbaa !53
  br label %3102

3102:                                             ; preds = %3096, %3095
  %3103 = load ptr, ptr %74, align 8, !tbaa !5
  %3104 = getelementptr inbounds %struct.Mem, ptr %3103, i32 0, i32 5
  %3105 = load ptr, ptr %3104, align 8, !tbaa !53
  %3106 = load ptr, ptr %76, align 8, !tbaa !5
  %3107 = load i32, ptr %72, align 4, !tbaa !14
  %3108 = sext i32 %3107 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3105, ptr align 1 %3106, i64 %3108, i1 false)
  %3109 = load ptr, ptr %74, align 8, !tbaa !5
  %3110 = getelementptr inbounds %struct.Mem, ptr %3109, i32 0, i32 5
  %3111 = load ptr, ptr %3110, align 8, !tbaa !53
  %3112 = load i32, ptr %72, align 4, !tbaa !14
  %3113 = sext i32 %3112 to i64
  %3114 = getelementptr inbounds i8, ptr %3111, i64 %3113
  store i8 0, ptr %3114, align 1, !tbaa !16
  %3115 = load ptr, ptr %74, align 8, !tbaa !5
  %3116 = getelementptr inbounds %struct.Mem, ptr %3115, i32 0, i32 5
  %3117 = load ptr, ptr %3116, align 8, !tbaa !53
  %3118 = load i32, ptr %72, align 4, !tbaa !14
  %3119 = add nsw i32 %3118, 1
  %3120 = sext i32 %3119 to i64
  %3121 = getelementptr inbounds i8, ptr %3117, i64 %3120
  store i8 0, ptr %3121, align 1, !tbaa !16
  %3122 = load i32, ptr %82, align 4, !tbaa !14
  %3123 = and i32 %3122, 1
  %3124 = zext i32 %3123 to i64
  %3125 = getelementptr inbounds [2 x i16], ptr @sqlite3VdbeExec.aFlag, i64 0, i64 %3124
  %3126 = load i16, ptr %3125, align 2, !tbaa !56
  %3127 = load ptr, ptr %74, align 8, !tbaa !5
  %3128 = getelementptr inbounds %struct.Mem, ptr %3127, i32 0, i32 1
  store i16 %3126, ptr %3128, align 8, !tbaa !36
  br label %3129

3129:                                             ; preds = %3102, %3066
  br label %3191

3130:                                             ; preds = %3042
  %3131 = load i8, ptr %9, align 1, !tbaa !16
  %3132 = load ptr, ptr %74, align 8, !tbaa !5
  %3133 = getelementptr inbounds %struct.Mem, ptr %3132, i32 0, i32 2
  store i8 %3131, ptr %3133, align 2, !tbaa !55
  %3134 = load ptr, ptr %5, align 8, !tbaa !5
  %3135 = getelementptr inbounds %struct.VdbeOp, ptr %3134, i32 0, i32 2
  %3136 = load i16, ptr %3135, align 2, !tbaa !45
  %3137 = zext i16 %3136 to i32
  %3138 = and i32 %3137, 192
  %3139 = icmp ne i32 %3138, 0
  br i1 %3139, label %3140, label %3154

3140:                                             ; preds = %3130
  %3141 = load i32, ptr %82, align 4, !tbaa !14
  %3142 = icmp uge i32 %3141, 12
  br i1 %3142, label %3143, label %3147

3143:                                             ; preds = %3140
  %3144 = load i32, ptr %82, align 4, !tbaa !14
  %3145 = and i32 %3144, 1
  %3146 = icmp eq i32 %3145, 0
  br i1 %3146, label %3158, label %3147

3147:                                             ; preds = %3143, %3140
  %3148 = load ptr, ptr %5, align 8, !tbaa !5
  %3149 = getelementptr inbounds %struct.VdbeOp, ptr %3148, i32 0, i32 2
  %3150 = load i16, ptr %3149, align 2, !tbaa !45
  %3151 = zext i16 %3150 to i32
  %3152 = and i32 %3151, 128
  %3153 = icmp ne i32 %3152, 0
  br i1 %3153, label %3158, label %3154

3154:                                             ; preds = %3147, %3130
  %3155 = load i32, ptr %82, align 4, !tbaa !14
  %3156 = call i32 @sqlite3VdbeSerialTypeLen(i32 noundef %3155)
  store i32 %3156, ptr %72, align 4, !tbaa !14
  %3157 = icmp eq i32 %3156, 0
  br i1 %3157, label %3158, label %3162

3158:                                             ; preds = %3154, %3147, %3143
  %3159 = load i32, ptr %82, align 4, !tbaa !14
  %3160 = load ptr, ptr %74, align 8, !tbaa !5
  %3161 = call i32 @sqlite3VdbeSerialGet(ptr noundef @sqlite3VdbeExec.aZero, i32 noundef %3159, ptr noundef %3160)
  br label %3190

3162:                                             ; preds = %3154
  %3163 = load ptr, ptr %69, align 8, !tbaa !5
  %3164 = getelementptr inbounds %struct.VdbeCursor, ptr %3163, i32 0, i32 12
  %3165 = load ptr, ptr %3164, align 8, !tbaa !16
  %3166 = load ptr, ptr %71, align 8, !tbaa !5
  %3167 = load i32, ptr %68, align 4, !tbaa !14
  %3168 = sext i32 %3167 to i64
  %3169 = getelementptr inbounds i32, ptr %3166, i64 %3168
  %3170 = load i32, ptr %3169, align 4, !tbaa !14
  %3171 = load i32, ptr %72, align 4, !tbaa !14
  %3172 = load ptr, ptr %74, align 8, !tbaa !5
  %3173 = call i32 @sqlite3VdbeMemFromBtree(ptr noundef %3165, i32 noundef %3170, i32 noundef %3171, ptr noundef %3172)
  store i32 %3173, ptr %6, align 4, !tbaa !14
  %3174 = load i32, ptr %6, align 4, !tbaa !14
  %3175 = icmp ne i32 %3174, 0
  br i1 %3175, label %3176, label %3177

3176:                                             ; preds = %3162
  store i32 10, ptr %23, align 4
  br label %3193

3177:                                             ; preds = %3162
  %3178 = load ptr, ptr %74, align 8, !tbaa !5
  %3179 = getelementptr inbounds %struct.Mem, ptr %3178, i32 0, i32 5
  %3180 = load ptr, ptr %3179, align 8, !tbaa !53
  %3181 = load i32, ptr %82, align 4, !tbaa !14
  %3182 = load ptr, ptr %74, align 8, !tbaa !5
  %3183 = call i32 @sqlite3VdbeSerialGet(ptr noundef %3180, i32 noundef %3181, ptr noundef %3182)
  %3184 = load ptr, ptr %74, align 8, !tbaa !5
  %3185 = getelementptr inbounds %struct.Mem, ptr %3184, i32 0, i32 1
  %3186 = load i16, ptr %3185, align 8, !tbaa !36
  %3187 = zext i16 %3186 to i32
  %3188 = and i32 %3187, -4097
  %3189 = trunc i32 %3188 to i16
  store i16 %3189, ptr %3185, align 8, !tbaa !36
  br label %3190

3190:                                             ; preds = %3177, %3158
  br label %3191

3191:                                             ; preds = %3190, %3129
  br label %3192

3192:                                             ; preds = %3191, %3024, %2735
  store i32 7, ptr %23, align 4
  br label %3193

3193:                                             ; preds = %3192, %3176, %3094, %2982, %2870, %2828, %2770, %2687
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  %3194 = load i32, ptr %23, align 4
  switch i32 %3194, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 13, label %8543
    i32 2, label %8545
  ]

3195:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #5
  %3196 = load ptr, ptr %5, align 8, !tbaa !5
  %3197 = getelementptr inbounds %struct.VdbeOp, ptr %3196, i32 0, i32 6
  %3198 = load ptr, ptr %3197, align 8, !tbaa !16
  store ptr %3198, ptr %84, align 8, !tbaa !5
  %3199 = load ptr, ptr %13, align 8, !tbaa !5
  %3200 = load ptr, ptr %5, align 8, !tbaa !5
  %3201 = getelementptr inbounds %struct.VdbeOp, ptr %3200, i32 0, i32 3
  %3202 = load i32, ptr %3201, align 4, !tbaa !35
  %3203 = sext i32 %3202 to i64
  %3204 = getelementptr inbounds %struct.Mem, ptr %3199, i64 %3203
  store ptr %3204, ptr %14, align 8, !tbaa !5
  br label %3205

3205:                                             ; preds = %3211, %3195
  %3206 = load ptr, ptr %84, align 8, !tbaa !5
  %3207 = getelementptr inbounds i8, ptr %3206, i32 1
  store ptr %3207, ptr %84, align 8, !tbaa !5
  %3208 = load i8, ptr %3206, align 1, !tbaa !16
  store i8 %3208, ptr %85, align 1, !tbaa !16
  %3209 = sext i8 %3208 to i32
  %3210 = icmp ne i32 %3209, 0
  br i1 %3210, label %3211, label %3217

3211:                                             ; preds = %3205
  %3212 = load ptr, ptr %14, align 8, !tbaa !5
  %3213 = load i8, ptr %85, align 1, !tbaa !16
  %3214 = load i8, ptr %9, align 1, !tbaa !16
  call void @applyAffinity(ptr noundef %3212, i8 noundef signext %3213, i8 noundef zeroext %3214)
  %3215 = load ptr, ptr %14, align 8, !tbaa !5
  %3216 = getelementptr inbounds %struct.Mem, ptr %3215, i32 1
  store ptr %3216, ptr %14, align 8, !tbaa !5
  br label %3205, !llvm.loop !95

3217:                                             ; preds = %3205
  store i32 7, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  br label %8475

3218:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #5
  store i64 0, ptr %88, align 8, !tbaa !48
  store i32 0, ptr %89, align 4, !tbaa !14
  store i64 0, ptr %91, align 8, !tbaa !48
  %3219 = load ptr, ptr %5, align 8, !tbaa !5
  %3220 = getelementptr inbounds %struct.VdbeOp, ptr %3219, i32 0, i32 3
  %3221 = load i32, ptr %3220, align 4, !tbaa !35
  store i32 %3221, ptr %96, align 4, !tbaa !14
  %3222 = load ptr, ptr %5, align 8, !tbaa !5
  %3223 = getelementptr inbounds %struct.VdbeOp, ptr %3222, i32 0, i32 6
  %3224 = load ptr, ptr %3223, align 8, !tbaa !16
  store ptr %3224, ptr %97, align 8, !tbaa !5
  %3225 = load ptr, ptr %13, align 8, !tbaa !5
  %3226 = load i32, ptr %96, align 4, !tbaa !14
  %3227 = sext i32 %3226 to i64
  %3228 = getelementptr inbounds %struct.Mem, ptr %3225, i64 %3227
  store ptr %3228, ptr %94, align 8, !tbaa !5
  %3229 = load ptr, ptr %5, align 8, !tbaa !5
  %3230 = getelementptr inbounds %struct.VdbeOp, ptr %3229, i32 0, i32 4
  %3231 = load i32, ptr %3230, align 8, !tbaa !33
  store i32 %3231, ptr %96, align 4, !tbaa !14
  %3232 = load ptr, ptr %94, align 8, !tbaa !5
  %3233 = load i32, ptr %96, align 4, !tbaa !14
  %3234 = sub nsw i32 %3233, 1
  %3235 = sext i32 %3234 to i64
  %3236 = getelementptr inbounds %struct.Mem, ptr %3232, i64 %3235
  store ptr %3236, ptr %95, align 8, !tbaa !5
  %3237 = load ptr, ptr %3, align 8, !tbaa !5
  %3238 = getelementptr inbounds %struct.Vdbe, ptr %3237, i32 0, i32 30
  %3239 = load i8, ptr %3238, align 1, !tbaa !96
  %3240 = zext i8 %3239 to i32
  store i32 %3240, ptr %98, align 4, !tbaa !14
  %3241 = load ptr, ptr %13, align 8, !tbaa !5
  %3242 = load ptr, ptr %5, align 8, !tbaa !5
  %3243 = getelementptr inbounds %struct.VdbeOp, ptr %3242, i32 0, i32 5
  %3244 = load i32, ptr %3243, align 4, !tbaa !38
  %3245 = sext i32 %3244 to i64
  %3246 = getelementptr inbounds %struct.Mem, ptr %3241, i64 %3245
  store ptr %3246, ptr %17, align 8, !tbaa !5
  %3247 = load ptr, ptr %97, align 8, !tbaa !5
  %3248 = icmp ne ptr %3247, null
  br i1 %3248, label %3249, label %3264

3249:                                             ; preds = %3218
  %3250 = load ptr, ptr %94, align 8, !tbaa !5
  store ptr %3250, ptr %87, align 8, !tbaa !5
  br label %3251

3251:                                             ; preds = %3258, %3249
  %3252 = load ptr, ptr %87, align 8, !tbaa !5
  %3253 = getelementptr inbounds %struct.Mem, ptr %3252, i32 1
  store ptr %3253, ptr %87, align 8, !tbaa !5
  %3254 = load ptr, ptr %97, align 8, !tbaa !5
  %3255 = getelementptr inbounds i8, ptr %3254, i32 1
  store ptr %3255, ptr %97, align 8, !tbaa !5
  %3256 = load i8, ptr %3254, align 1, !tbaa !16
  %3257 = load i8, ptr %9, align 1, !tbaa !16
  call void @applyAffinity(ptr noundef %3252, i8 noundef signext %3256, i8 noundef zeroext %3257)
  br label %3258

3258:                                             ; preds = %3251
  %3259 = load ptr, ptr %97, align 8, !tbaa !5
  %3260 = getelementptr inbounds i8, ptr %3259, i64 0
  %3261 = load i8, ptr %3260, align 1, !tbaa !16
  %3262 = icmp ne i8 %3261, 0
  br i1 %3262, label %3251, label %3263, !llvm.loop !97

3263:                                             ; preds = %3258
  br label %3264

3264:                                             ; preds = %3263, %3218
  %3265 = load ptr, ptr %95, align 8, !tbaa !5
  store ptr %3265, ptr %87, align 8, !tbaa !5
  br label %3266

3266:                                             ; preds = %3323, %3264
  %3267 = load ptr, ptr %87, align 8, !tbaa !5
  %3268 = load i32, ptr %98, align 4, !tbaa !14
  %3269 = call i32 @sqlite3VdbeSerialType(ptr noundef %3267, i32 noundef %3268, ptr noundef %101)
  store i32 %3269, ptr %93, align 4, !tbaa !14
  %3270 = load ptr, ptr %87, align 8, !tbaa !5
  %3271 = getelementptr inbounds %struct.Mem, ptr %3270, i32 0, i32 8
  store i32 %3269, ptr %3271, align 4, !tbaa !98
  %3272 = load ptr, ptr %87, align 8, !tbaa !5
  %3273 = getelementptr inbounds %struct.Mem, ptr %3272, i32 0, i32 1
  %3274 = load i16, ptr %3273, align 8, !tbaa !36
  %3275 = zext i16 %3274 to i32
  %3276 = and i32 %3275, 16384
  %3277 = icmp ne i32 %3276, 0
  br i1 %3277, label %3278, label %3300

3278:                                             ; preds = %3266
  %3279 = load i64, ptr %88, align 8, !tbaa !48
  %3280 = icmp ne i64 %3279, 0
  br i1 %3280, label %3281, label %3287

3281:                                             ; preds = %3278
  %3282 = load ptr, ptr %87, align 8, !tbaa !5
  %3283 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef %3282)
  %3284 = icmp ne i32 %3283, 0
  br i1 %3284, label %3285, label %3286

3285:                                             ; preds = %3281
  store i32 2, ptr %23, align 4
  br label %3453

3286:                                             ; preds = %3281
  br label %3299

3287:                                             ; preds = %3278
  %3288 = load ptr, ptr %87, align 8, !tbaa !5
  %3289 = getelementptr inbounds %struct.Mem, ptr %3288, i32 0, i32 0
  %3290 = load i32, ptr %3289, align 8, !tbaa !16
  %3291 = sext i32 %3290 to i64
  %3292 = load i64, ptr %91, align 8, !tbaa !48
  %3293 = add nsw i64 %3292, %3291
  store i64 %3293, ptr %91, align 8, !tbaa !48
  %3294 = load ptr, ptr %87, align 8, !tbaa !5
  %3295 = getelementptr inbounds %struct.Mem, ptr %3294, i32 0, i32 0
  %3296 = load i32, ptr %3295, align 8, !tbaa !16
  %3297 = load i32, ptr %101, align 4, !tbaa !14
  %3298 = sub i32 %3297, %3296
  store i32 %3298, ptr %101, align 4, !tbaa !14
  br label %3299

3299:                                             ; preds = %3287, %3286
  br label %3300

3300:                                             ; preds = %3299, %3266
  %3301 = load i32, ptr %101, align 4, !tbaa !14
  %3302 = zext i32 %3301 to i64
  %3303 = load i64, ptr %88, align 8, !tbaa !48
  %3304 = add i64 %3303, %3302
  store i64 %3304, ptr %88, align 8, !tbaa !48
  %3305 = load i32, ptr %93, align 4, !tbaa !14
  %3306 = icmp ule i32 %3305, 127
  br i1 %3306, label %3307, label %3308

3307:                                             ; preds = %3300
  br label %3312

3308:                                             ; preds = %3300
  %3309 = load i32, ptr %93, align 4, !tbaa !14
  %3310 = zext i32 %3309 to i64
  %3311 = call i32 @sqlite3VarintLen(i64 noundef %3310)
  br label %3312

3312:                                             ; preds = %3308, %3307
  %3313 = phi i32 [ 1, %3307 ], [ %3311, %3308 ]
  %3314 = load i32, ptr %89, align 4, !tbaa !14
  %3315 = add nsw i32 %3314, %3313
  store i32 %3315, ptr %89, align 4, !tbaa !14
  %3316 = load ptr, ptr %87, align 8, !tbaa !5
  %3317 = load ptr, ptr %94, align 8, !tbaa !5
  %3318 = icmp eq ptr %3316, %3317
  br i1 %3318, label %3319, label %3320

3319:                                             ; preds = %3312
  br label %3324

3320:                                             ; preds = %3312
  %3321 = load ptr, ptr %87, align 8, !tbaa !5
  %3322 = getelementptr inbounds %struct.Mem, ptr %3321, i32 -1
  store ptr %3322, ptr %87, align 8, !tbaa !5
  br label %3323

3323:                                             ; preds = %3320
  br i1 true, label %3266, label %3324

3324:                                             ; preds = %3323, %3319
  %3325 = load i32, ptr %89, align 4, !tbaa !14
  %3326 = icmp sle i32 %3325, 126
  br i1 %3326, label %3327, label %3330

3327:                                             ; preds = %3324
  %3328 = load i32, ptr %89, align 4, !tbaa !14
  %3329 = add nsw i32 %3328, 1
  store i32 %3329, ptr %89, align 4, !tbaa !14
  br label %3346

3330:                                             ; preds = %3324
  %3331 = load i32, ptr %89, align 4, !tbaa !14
  %3332 = sext i32 %3331 to i64
  %3333 = call i32 @sqlite3VarintLen(i64 noundef %3332)
  store i32 %3333, ptr %92, align 4, !tbaa !14
  %3334 = load i32, ptr %92, align 4, !tbaa !14
  %3335 = load i32, ptr %89, align 4, !tbaa !14
  %3336 = add nsw i32 %3335, %3334
  store i32 %3336, ptr %89, align 4, !tbaa !14
  %3337 = load i32, ptr %92, align 4, !tbaa !14
  %3338 = load i32, ptr %89, align 4, !tbaa !14
  %3339 = sext i32 %3338 to i64
  %3340 = call i32 @sqlite3VarintLen(i64 noundef %3339)
  %3341 = icmp slt i32 %3337, %3340
  br i1 %3341, label %3342, label %3345

3342:                                             ; preds = %3330
  %3343 = load i32, ptr %89, align 4, !tbaa !14
  %3344 = add nsw i32 %3343, 1
  store i32 %3344, ptr %89, align 4, !tbaa !14
  br label %3345

3345:                                             ; preds = %3342, %3330
  br label %3346

3346:                                             ; preds = %3345, %3327
  %3347 = load i32, ptr %89, align 4, !tbaa !14
  %3348 = sext i32 %3347 to i64
  %3349 = load i64, ptr %88, align 8, !tbaa !48
  %3350 = add i64 %3348, %3349
  store i64 %3350, ptr %90, align 8, !tbaa !48
  %3351 = load i64, ptr %90, align 8, !tbaa !48
  %3352 = load i64, ptr %91, align 8, !tbaa !48
  %3353 = add nsw i64 %3351, %3352
  %3354 = load ptr, ptr %7, align 8, !tbaa !5
  %3355 = getelementptr inbounds %struct.sqlite3, ptr %3354, i32 0, i32 31
  %3356 = getelementptr inbounds [12 x i32], ptr %3355, i64 0, i64 0
  %3357 = load i32, ptr %3356, align 8, !tbaa !14
  %3358 = sext i32 %3357 to i64
  %3359 = icmp sgt i64 %3353, %3358
  br i1 %3359, label %3360, label %3361

3360:                                             ; preds = %3346
  store i32 13, ptr %23, align 4
  br label %3453

3361:                                             ; preds = %3346
  %3362 = load ptr, ptr %17, align 8, !tbaa !5
  %3363 = load i64, ptr %90, align 8, !tbaa !48
  %3364 = trunc i64 %3363 to i32
  %3365 = call i32 @sqlite3VdbeMemClearAndResize(ptr noundef %3362, i32 noundef %3364)
  %3366 = icmp ne i32 %3365, 0
  br i1 %3366, label %3367, label %3368

3367:                                             ; preds = %3361
  store i32 2, ptr %23, align 4
  br label %3453

3368:                                             ; preds = %3361
  %3369 = load ptr, ptr %17, align 8, !tbaa !5
  %3370 = getelementptr inbounds %struct.Mem, ptr %3369, i32 0, i32 5
  %3371 = load ptr, ptr %3370, align 8, !tbaa !53
  store ptr %3371, ptr %86, align 8, !tbaa !5
  %3372 = load i32, ptr %89, align 4, !tbaa !14
  %3373 = icmp ult i32 %3372, 128
  br i1 %3373, label %3374, label %3378

3374:                                             ; preds = %3368
  %3375 = load i32, ptr %89, align 4, !tbaa !14
  %3376 = trunc i32 %3375 to i8
  %3377 = load ptr, ptr %86, align 8, !tbaa !5
  store i8 %3376, ptr %3377, align 1, !tbaa !16
  br label %3383

3378:                                             ; preds = %3368
  %3379 = load ptr, ptr %86, align 8, !tbaa !5
  %3380 = load i32, ptr %89, align 4, !tbaa !14
  %3381 = sext i32 %3380 to i64
  %3382 = call i32 @sqlite3PutVarint(ptr noundef %3379, i64 noundef %3381)
  br label %3383

3383:                                             ; preds = %3378, %3374
  %3384 = phi i32 [ 1, %3374 ], [ %3382, %3378 ]
  %3385 = trunc i32 %3384 to i8
  %3386 = zext i8 %3385 to i32
  store i32 %3386, ptr %99, align 4, !tbaa !14
  %3387 = load i32, ptr %89, align 4, !tbaa !14
  store i32 %3387, ptr %100, align 4, !tbaa !14
  %3388 = load ptr, ptr %94, align 8, !tbaa !5
  store ptr %3388, ptr %87, align 8, !tbaa !5
  br label %3389

3389:                                             ; preds = %3425, %3383
  %3390 = load ptr, ptr %87, align 8, !tbaa !5
  %3391 = getelementptr inbounds %struct.Mem, ptr %3390, i32 0, i32 8
  %3392 = load i32, ptr %3391, align 4, !tbaa !98
  store i32 %3392, ptr %93, align 4, !tbaa !14
  %3393 = load i32, ptr %93, align 4, !tbaa !14
  %3394 = icmp ult i32 %3393, 128
  br i1 %3394, label %3395, label %3402

3395:                                             ; preds = %3389
  %3396 = load i32, ptr %93, align 4, !tbaa !14
  %3397 = trunc i32 %3396 to i8
  %3398 = load ptr, ptr %86, align 8, !tbaa !5
  %3399 = load i32, ptr %99, align 4, !tbaa !14
  %3400 = sext i32 %3399 to i64
  %3401 = getelementptr inbounds i8, ptr %3398, i64 %3400
  store i8 %3397, ptr %3401, align 1, !tbaa !16
  br label %3410

3402:                                             ; preds = %3389
  %3403 = load ptr, ptr %86, align 8, !tbaa !5
  %3404 = load i32, ptr %99, align 4, !tbaa !14
  %3405 = sext i32 %3404 to i64
  %3406 = getelementptr inbounds i8, ptr %3403, i64 %3405
  %3407 = load i32, ptr %93, align 4, !tbaa !14
  %3408 = zext i32 %3407 to i64
  %3409 = call i32 @sqlite3PutVarint(ptr noundef %3406, i64 noundef %3408)
  br label %3410

3410:                                             ; preds = %3402, %3395
  %3411 = phi i32 [ 1, %3395 ], [ %3409, %3402 ]
  %3412 = trunc i32 %3411 to i8
  %3413 = zext i8 %3412 to i32
  %3414 = load i32, ptr %99, align 4, !tbaa !14
  %3415 = add nsw i32 %3414, %3413
  store i32 %3415, ptr %99, align 4, !tbaa !14
  %3416 = load ptr, ptr %86, align 8, !tbaa !5
  %3417 = load i32, ptr %100, align 4, !tbaa !14
  %3418 = sext i32 %3417 to i64
  %3419 = getelementptr inbounds i8, ptr %3416, i64 %3418
  %3420 = load ptr, ptr %87, align 8, !tbaa !5
  %3421 = load i32, ptr %93, align 4, !tbaa !14
  %3422 = call i32 @sqlite3VdbeSerialPut(ptr noundef %3419, ptr noundef %3420, i32 noundef %3421)
  %3423 = load i32, ptr %100, align 4, !tbaa !14
  %3424 = add i32 %3423, %3422
  store i32 %3424, ptr %100, align 4, !tbaa !14
  br label %3425

3425:                                             ; preds = %3410
  %3426 = load ptr, ptr %87, align 8, !tbaa !5
  %3427 = getelementptr inbounds %struct.Mem, ptr %3426, i32 1
  store ptr %3427, ptr %87, align 8, !tbaa !5
  %3428 = load ptr, ptr %95, align 8, !tbaa !5
  %3429 = icmp ule ptr %3427, %3428
  br i1 %3429, label %3389, label %3430, !llvm.loop !99

3430:                                             ; preds = %3425
  %3431 = load i64, ptr %90, align 8, !tbaa !48
  %3432 = trunc i64 %3431 to i32
  %3433 = load ptr, ptr %17, align 8, !tbaa !5
  %3434 = getelementptr inbounds %struct.Mem, ptr %3433, i32 0, i32 4
  store i32 %3432, ptr %3434, align 4, !tbaa !54
  %3435 = load ptr, ptr %17, align 8, !tbaa !5
  %3436 = getelementptr inbounds %struct.Mem, ptr %3435, i32 0, i32 1
  store i16 16, ptr %3436, align 8, !tbaa !36
  %3437 = load i64, ptr %91, align 8, !tbaa !48
  %3438 = icmp ne i64 %3437, 0
  br i1 %3438, label %3439, label %3450

3439:                                             ; preds = %3430
  %3440 = load i64, ptr %91, align 8, !tbaa !48
  %3441 = trunc i64 %3440 to i32
  %3442 = load ptr, ptr %17, align 8, !tbaa !5
  %3443 = getelementptr inbounds %struct.Mem, ptr %3442, i32 0, i32 0
  store i32 %3441, ptr %3443, align 8, !tbaa !16
  %3444 = load ptr, ptr %17, align 8, !tbaa !5
  %3445 = getelementptr inbounds %struct.Mem, ptr %3444, i32 0, i32 1
  %3446 = load i16, ptr %3445, align 8, !tbaa !36
  %3447 = zext i16 %3446 to i32
  %3448 = or i32 %3447, 16384
  %3449 = trunc i32 %3448 to i16
  store i16 %3449, ptr %3445, align 8, !tbaa !36
  br label %3450

3450:                                             ; preds = %3439, %3430
  %3451 = load ptr, ptr %17, align 8, !tbaa !5
  %3452 = getelementptr inbounds %struct.Mem, ptr %3451, i32 0, i32 2
  store i8 1, ptr %3452, align 2, !tbaa !55
  store i32 7, ptr %23, align 4
  br label %3453

3453:                                             ; preds = %3450, %3367, %3360, %3285
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  %3454 = load i32, ptr %23, align 4
  switch i32 %3454, label %8562 [
    i32 7, label %8475
    i32 13, label %8543
    i32 2, label %8545
  ]

3455:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #5
  %3456 = load ptr, ptr %3, align 8, !tbaa !5
  %3457 = getelementptr inbounds %struct.Vdbe, ptr %3456, i32 0, i32 23
  %3458 = load ptr, ptr %3457, align 8, !tbaa !82
  %3459 = load ptr, ptr %5, align 8, !tbaa !5
  %3460 = getelementptr inbounds %struct.VdbeOp, ptr %3459, i32 0, i32 3
  %3461 = load i32, ptr %3460, align 4, !tbaa !35
  %3462 = sext i32 %3461 to i64
  %3463 = getelementptr inbounds ptr, ptr %3458, i64 %3462
  %3464 = load ptr, ptr %3463, align 8, !tbaa !5
  %3465 = getelementptr inbounds %struct.VdbeCursor, ptr %3464, i32 0, i32 12
  %3466 = load ptr, ptr %3465, align 8, !tbaa !16
  store ptr %3466, ptr %103, align 8, !tbaa !5
  store i64 0, ptr %102, align 8, !tbaa !48
  %3467 = load ptr, ptr %103, align 8, !tbaa !5
  %3468 = call i32 @sqlite3BtreeCount(ptr noundef %3467, ptr noundef %102)
  store i32 %3468, ptr %6, align 4, !tbaa !14
  %3469 = load i32, ptr %6, align 4, !tbaa !14
  %3470 = icmp ne i32 %3469, 0
  br i1 %3470, label %3471, label %3472

3471:                                             ; preds = %3455
  store i32 10, ptr %23, align 4
  br label %3479

3472:                                             ; preds = %3455
  %3473 = load ptr, ptr %3, align 8, !tbaa !5
  %3474 = load ptr, ptr %5, align 8, !tbaa !5
  %3475 = call ptr @out2Prerelease(ptr noundef %3473, ptr noundef %3474)
  store ptr %3475, ptr %17, align 8, !tbaa !5
  %3476 = load i64, ptr %102, align 8, !tbaa !48
  %3477 = load ptr, ptr %17, align 8, !tbaa !5
  %3478 = getelementptr inbounds %struct.Mem, ptr %3477, i32 0, i32 0
  store i64 %3476, ptr %3478, align 8, !tbaa !16
  store i32 7, ptr %23, align 4
  br label %3479

3479:                                             ; preds = %3472, %3471
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #5
  %3480 = load i32, ptr %23, align 4
  switch i32 %3480, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

3481:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #5
  %3482 = load ptr, ptr %5, align 8, !tbaa !5
  %3483 = getelementptr inbounds %struct.VdbeOp, ptr %3482, i32 0, i32 3
  %3484 = load i32, ptr %3483, align 4, !tbaa !35
  store i32 %3484, ptr %104, align 4, !tbaa !14
  %3485 = load ptr, ptr %5, align 8, !tbaa !5
  %3486 = getelementptr inbounds %struct.VdbeOp, ptr %3485, i32 0, i32 6
  %3487 = load ptr, ptr %3486, align 8, !tbaa !16
  store ptr %3487, ptr %105, align 8, !tbaa !5
  %3488 = load i32, ptr %104, align 4, !tbaa !14
  %3489 = icmp eq i32 %3488, 0
  br i1 %3489, label %3490, label %3568

3490:                                             ; preds = %3481
  %3491 = load ptr, ptr %7, align 8, !tbaa !5
  %3492 = getelementptr inbounds %struct.sqlite3, ptr %3491, i32 0, i32 36
  %3493 = load i32, ptr %3492, align 4, !tbaa !100
  %3494 = icmp sgt i32 %3493, 0
  br i1 %3494, label %3495, label %3497

3495:                                             ; preds = %3490
  %3496 = load ptr, ptr %3, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %3496, ptr noundef @.str.8)
  store i32 5, ptr %6, align 4, !tbaa !14
  br label %3567

3497:                                             ; preds = %3490
  %3498 = load ptr, ptr %105, align 8, !tbaa !5
  %3499 = call i32 @sqlite3Strlen30(ptr noundef %3498)
  store i32 %3499, ptr %106, align 4, !tbaa !14
  %3500 = load ptr, ptr %7, align 8, !tbaa !5
  %3501 = load ptr, ptr %7, align 8, !tbaa !5
  %3502 = getelementptr inbounds %struct.sqlite3, ptr %3501, i32 0, i32 76
  %3503 = load i32, ptr %3502, align 8, !tbaa !101
  %3504 = load ptr, ptr %7, align 8, !tbaa !5
  %3505 = getelementptr inbounds %struct.sqlite3, ptr %3504, i32 0, i32 75
  %3506 = load i32, ptr %3505, align 4, !tbaa !102
  %3507 = add nsw i32 %3503, %3506
  %3508 = call i32 @sqlite3VtabSavepoint(ptr noundef %3500, i32 noundef 0, i32 noundef %3507)
  store i32 %3508, ptr %6, align 4, !tbaa !14
  %3509 = load i32, ptr %6, align 4, !tbaa !14
  %3510 = icmp ne i32 %3509, 0
  br i1 %3510, label %3511, label %3512

3511:                                             ; preds = %3497
  store i32 10, ptr %23, align 4
  br label %3821

3512:                                             ; preds = %3497
  %3513 = load ptr, ptr %7, align 8, !tbaa !5
  %3514 = load i32, ptr %106, align 4, !tbaa !14
  %3515 = sext i32 %3514 to i64
  %3516 = add i64 32, %3515
  %3517 = add i64 %3516, 1
  %3518 = call ptr @sqlite3DbMallocRawNN(ptr noundef %3513, i64 noundef %3517)
  store ptr %3518, ptr %107, align 8, !tbaa !5
  %3519 = load ptr, ptr %107, align 8, !tbaa !5
  %3520 = icmp ne ptr %3519, null
  br i1 %3520, label %3521, label %3566

3521:                                             ; preds = %3512
  %3522 = load ptr, ptr %107, align 8, !tbaa !5
  %3523 = getelementptr inbounds %struct.Savepoint, ptr %3522, i64 1
  %3524 = load ptr, ptr %107, align 8, !tbaa !5
  %3525 = getelementptr inbounds %struct.Savepoint, ptr %3524, i32 0, i32 0
  store ptr %3523, ptr %3525, align 8, !tbaa !103
  %3526 = load ptr, ptr %107, align 8, !tbaa !5
  %3527 = getelementptr inbounds %struct.Savepoint, ptr %3526, i32 0, i32 0
  %3528 = load ptr, ptr %3527, align 8, !tbaa !103
  %3529 = load ptr, ptr %105, align 8, !tbaa !5
  %3530 = load i32, ptr %106, align 4, !tbaa !14
  %3531 = add nsw i32 %3530, 1
  %3532 = sext i32 %3531 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3528, ptr align 1 %3529, i64 %3532, i1 false)
  %3533 = load ptr, ptr %7, align 8, !tbaa !5
  %3534 = getelementptr inbounds %struct.sqlite3, ptr %3533, i32 0, i32 15
  %3535 = load i8, ptr %3534, align 1, !tbaa !105
  %3536 = icmp ne i8 %3535, 0
  br i1 %3536, label %3537, label %3542

3537:                                             ; preds = %3521
  %3538 = load ptr, ptr %7, align 8, !tbaa !5
  %3539 = getelementptr inbounds %struct.sqlite3, ptr %3538, i32 0, i32 15
  store i8 0, ptr %3539, align 1, !tbaa !105
  %3540 = load ptr, ptr %7, align 8, !tbaa !5
  %3541 = getelementptr inbounds %struct.sqlite3, ptr %3540, i32 0, i32 23
  store i8 1, ptr %3541, align 1, !tbaa !106
  br label %3547

3542:                                             ; preds = %3521
  %3543 = load ptr, ptr %7, align 8, !tbaa !5
  %3544 = getelementptr inbounds %struct.sqlite3, ptr %3543, i32 0, i32 75
  %3545 = load i32, ptr %3544, align 4, !tbaa !102
  %3546 = add nsw i32 %3545, 1
  store i32 %3546, ptr %3544, align 4, !tbaa !102
  br label %3547

3547:                                             ; preds = %3542, %3537
  %3548 = load ptr, ptr %7, align 8, !tbaa !5
  %3549 = getelementptr inbounds %struct.sqlite3, ptr %3548, i32 0, i32 73
  %3550 = load ptr, ptr %3549, align 8, !tbaa !107
  %3551 = load ptr, ptr %107, align 8, !tbaa !5
  %3552 = getelementptr inbounds %struct.Savepoint, ptr %3551, i32 0, i32 3
  store ptr %3550, ptr %3552, align 8, !tbaa !108
  %3553 = load ptr, ptr %107, align 8, !tbaa !5
  %3554 = load ptr, ptr %7, align 8, !tbaa !5
  %3555 = getelementptr inbounds %struct.sqlite3, ptr %3554, i32 0, i32 73
  store ptr %3553, ptr %3555, align 8, !tbaa !107
  %3556 = load ptr, ptr %7, align 8, !tbaa !5
  %3557 = getelementptr inbounds %struct.sqlite3, ptr %3556, i32 0, i32 77
  %3558 = load i64, ptr %3557, align 8, !tbaa !109
  %3559 = load ptr, ptr %107, align 8, !tbaa !5
  %3560 = getelementptr inbounds %struct.Savepoint, ptr %3559, i32 0, i32 1
  store i64 %3558, ptr %3560, align 8, !tbaa !110
  %3561 = load ptr, ptr %7, align 8, !tbaa !5
  %3562 = getelementptr inbounds %struct.sqlite3, ptr %3561, i32 0, i32 78
  %3563 = load i64, ptr %3562, align 8, !tbaa !111
  %3564 = load ptr, ptr %107, align 8, !tbaa !5
  %3565 = getelementptr inbounds %struct.Savepoint, ptr %3564, i32 0, i32 2
  store i64 %3563, ptr %3565, align 8, !tbaa !112
  br label %3566

3566:                                             ; preds = %3547, %3512
  br label %3567

3567:                                             ; preds = %3566, %3495
  br label %3816

3568:                                             ; preds = %3481
  store i32 0, ptr %110, align 4, !tbaa !14
  %3569 = load ptr, ptr %7, align 8, !tbaa !5
  %3570 = getelementptr inbounds %struct.sqlite3, ptr %3569, i32 0, i32 73
  %3571 = load ptr, ptr %3570, align 8, !tbaa !107
  store ptr %3571, ptr %108, align 8, !tbaa !5
  br label %3572

3572:                                             ; preds = %3587, %3568
  %3573 = load ptr, ptr %108, align 8, !tbaa !5
  %3574 = icmp ne ptr %3573, null
  br i1 %3574, label %3575, label %3582

3575:                                             ; preds = %3572
  %3576 = load ptr, ptr %108, align 8, !tbaa !5
  %3577 = getelementptr inbounds %struct.Savepoint, ptr %3576, i32 0, i32 0
  %3578 = load ptr, ptr %3577, align 8, !tbaa !103
  %3579 = load ptr, ptr %105, align 8, !tbaa !5
  %3580 = call i32 @sqlite3StrICmp(ptr noundef %3578, ptr noundef %3579)
  %3581 = icmp ne i32 %3580, 0
  br label %3582

3582:                                             ; preds = %3575, %3572
  %3583 = phi i1 [ false, %3572 ], [ %3581, %3575 ]
  br i1 %3583, label %3584, label %3591

3584:                                             ; preds = %3582
  %3585 = load i32, ptr %110, align 4, !tbaa !14
  %3586 = add nsw i32 %3585, 1
  store i32 %3586, ptr %110, align 4, !tbaa !14
  br label %3587

3587:                                             ; preds = %3584
  %3588 = load ptr, ptr %108, align 8, !tbaa !5
  %3589 = getelementptr inbounds %struct.Savepoint, ptr %3588, i32 0, i32 3
  %3590 = load ptr, ptr %3589, align 8, !tbaa !108
  store ptr %3590, ptr %108, align 8, !tbaa !5
  br label %3572, !llvm.loop !113

3591:                                             ; preds = %3582
  %3592 = load ptr, ptr %108, align 8, !tbaa !5
  %3593 = icmp ne ptr %3592, null
  br i1 %3593, label %3597, label %3594

3594:                                             ; preds = %3591
  %3595 = load ptr, ptr %3, align 8, !tbaa !5
  %3596 = load ptr, ptr %105, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %3595, ptr noundef @.str.9, ptr noundef %3596)
  store i32 1, ptr %6, align 4, !tbaa !14
  br label %3815

3597:                                             ; preds = %3591
  %3598 = load ptr, ptr %7, align 8, !tbaa !5
  %3599 = getelementptr inbounds %struct.sqlite3, ptr %3598, i32 0, i32 36
  %3600 = load i32, ptr %3599, align 4, !tbaa !100
  %3601 = icmp sgt i32 %3600, 0
  br i1 %3601, label %3602, label %3607

3602:                                             ; preds = %3597
  %3603 = load i32, ptr %104, align 4, !tbaa !14
  %3604 = icmp eq i32 %3603, 1
  br i1 %3604, label %3605, label %3607

3605:                                             ; preds = %3602
  %3606 = load ptr, ptr %3, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %3606, ptr noundef @.str.10)
  store i32 5, ptr %6, align 4, !tbaa !14
  br label %3814

3607:                                             ; preds = %3602, %3597
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #5
  %3608 = load ptr, ptr %108, align 8, !tbaa !5
  %3609 = getelementptr inbounds %struct.Savepoint, ptr %3608, i32 0, i32 3
  %3610 = load ptr, ptr %3609, align 8, !tbaa !108
  %3611 = icmp eq ptr %3610, null
  br i1 %3611, label %3612, label %3618

3612:                                             ; preds = %3607
  %3613 = load ptr, ptr %7, align 8, !tbaa !5
  %3614 = getelementptr inbounds %struct.sqlite3, ptr %3613, i32 0, i32 23
  %3615 = load i8, ptr %3614, align 1, !tbaa !106
  %3616 = zext i8 %3615 to i32
  %3617 = icmp ne i32 %3616, 0
  br label %3618

3618:                                             ; preds = %3612, %3607
  %3619 = phi i1 [ false, %3607 ], [ %3617, %3612 ]
  %3620 = zext i1 %3619 to i32
  store i32 %3620, ptr %112, align 4, !tbaa !14
  %3621 = load i32, ptr %112, align 4, !tbaa !14
  %3622 = icmp ne i32 %3621, 0
  br i1 %3622, label %3623, label %3657

3623:                                             ; preds = %3618
  %3624 = load i32, ptr %104, align 4, !tbaa !14
  %3625 = icmp eq i32 %3624, 1
  br i1 %3625, label %3626, label %3657

3626:                                             ; preds = %3623
  %3627 = load ptr, ptr %3, align 8, !tbaa !5
  %3628 = call i32 @sqlite3VdbeCheckFk(ptr noundef %3627, i32 noundef 1)
  store i32 %3628, ptr %6, align 4, !tbaa !14
  %3629 = icmp ne i32 %3628, 0
  br i1 %3629, label %3630, label %3631

3630:                                             ; preds = %3626
  store i32 12, ptr %23, align 4
  br label %3811

3631:                                             ; preds = %3626
  %3632 = load ptr, ptr %7, align 8, !tbaa !5
  %3633 = getelementptr inbounds %struct.sqlite3, ptr %3632, i32 0, i32 15
  store i8 1, ptr %3633, align 1, !tbaa !105
  %3634 = load ptr, ptr %3, align 8, !tbaa !5
  %3635 = call i32 @sqlite3VdbeHalt(ptr noundef %3634)
  %3636 = icmp eq i32 %3635, 5
  br i1 %3636, label %3637, label %3651

3637:                                             ; preds = %3631
  %3638 = load ptr, ptr %5, align 8, !tbaa !5
  %3639 = load ptr, ptr %4, align 8, !tbaa !5
  %3640 = ptrtoint ptr %3638 to i64
  %3641 = ptrtoint ptr %3639 to i64
  %3642 = sub i64 %3640, %3641
  %3643 = sdiv exact i64 %3642, 24
  %3644 = trunc i64 %3643 to i32
  %3645 = load ptr, ptr %3, align 8, !tbaa !5
  %3646 = getelementptr inbounds %struct.Vdbe, ptr %3645, i32 0, i32 9
  store i32 %3644, ptr %3646, align 4, !tbaa !30
  %3647 = load ptr, ptr %7, align 8, !tbaa !5
  %3648 = getelementptr inbounds %struct.sqlite3, ptr %3647, i32 0, i32 15
  store i8 0, ptr %3648, align 1, !tbaa !105
  store i32 5, ptr %6, align 4, !tbaa !14
  %3649 = load ptr, ptr %3, align 8, !tbaa !5
  %3650 = getelementptr inbounds %struct.Vdbe, ptr %3649, i32 0, i32 10
  store i32 5, ptr %3650, align 8, !tbaa !24
  store i32 12, ptr %23, align 4
  br label %3811

3651:                                             ; preds = %3631
  %3652 = load ptr, ptr %7, align 8, !tbaa !5
  %3653 = getelementptr inbounds %struct.sqlite3, ptr %3652, i32 0, i32 23
  store i8 0, ptr %3653, align 1, !tbaa !106
  %3654 = load ptr, ptr %3, align 8, !tbaa !5
  %3655 = getelementptr inbounds %struct.Vdbe, ptr %3654, i32 0, i32 10
  %3656 = load i32, ptr %3655, align 8, !tbaa !24
  store i32 %3656, ptr %6, align 4, !tbaa !14
  br label %3743

3657:                                             ; preds = %3623, %3618
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #5
  %3658 = load ptr, ptr %7, align 8, !tbaa !5
  %3659 = getelementptr inbounds %struct.sqlite3, ptr %3658, i32 0, i32 75
  %3660 = load i32, ptr %3659, align 4, !tbaa !102
  %3661 = load i32, ptr %110, align 4, !tbaa !14
  %3662 = sub nsw i32 %3660, %3661
  %3663 = sub nsw i32 %3662, 1
  store i32 %3663, ptr %110, align 4, !tbaa !14
  %3664 = load i32, ptr %104, align 4, !tbaa !14
  %3665 = icmp eq i32 %3664, 2
  br i1 %3665, label %3666, label %3700

3666:                                             ; preds = %3657
  %3667 = load ptr, ptr %7, align 8, !tbaa !5
  %3668 = getelementptr inbounds %struct.sqlite3, ptr %3667, i32 0, i32 6
  %3669 = load i32, ptr %3668, align 4, !tbaa !114
  %3670 = and i32 %3669, 2
  %3671 = icmp ne i32 %3670, 0
  %3672 = zext i1 %3671 to i32
  store i32 %3672, ptr %113, align 4, !tbaa !14
  store i32 0, ptr %111, align 4, !tbaa !14
  br label %3673

3673:                                             ; preds = %3696, %3666
  %3674 = load i32, ptr %111, align 4, !tbaa !14
  %3675 = load ptr, ptr %7, align 8, !tbaa !5
  %3676 = getelementptr inbounds %struct.sqlite3, ptr %3675, i32 0, i32 5
  %3677 = load i32, ptr %3676, align 8, !tbaa !115
  %3678 = icmp slt i32 %3674, %3677
  br i1 %3678, label %3679, label %3699

3679:                                             ; preds = %3673
  %3680 = load ptr, ptr %7, align 8, !tbaa !5
  %3681 = getelementptr inbounds %struct.sqlite3, ptr %3680, i32 0, i32 4
  %3682 = load ptr, ptr %3681, align 8, !tbaa !116
  %3683 = load i32, ptr %111, align 4, !tbaa !14
  %3684 = sext i32 %3683 to i64
  %3685 = getelementptr inbounds %struct.Db, ptr %3682, i64 %3684
  %3686 = getelementptr inbounds %struct.Db, ptr %3685, i32 0, i32 1
  %3687 = load ptr, ptr %3686, align 8, !tbaa !117
  %3688 = load i32, ptr %113, align 4, !tbaa !14
  %3689 = icmp eq i32 %3688, 0
  %3690 = zext i1 %3689 to i32
  %3691 = call i32 @sqlite3BtreeTripAllCursors(ptr noundef %3687, i32 noundef 516, i32 noundef %3690)
  store i32 %3691, ptr %6, align 4, !tbaa !14
  %3692 = load i32, ptr %6, align 4, !tbaa !14
  %3693 = icmp ne i32 %3692, 0
  br i1 %3693, label %3694, label %3695

3694:                                             ; preds = %3679
  store i32 10, ptr %23, align 4
  br label %3740

3695:                                             ; preds = %3679
  br label %3696

3696:                                             ; preds = %3695
  %3697 = load i32, ptr %111, align 4, !tbaa !14
  %3698 = add nsw i32 %3697, 1
  store i32 %3698, ptr %111, align 4, !tbaa !14
  br label %3673, !llvm.loop !119

3699:                                             ; preds = %3673
  br label %3701

3700:                                             ; preds = %3657
  store i32 0, ptr %113, align 4, !tbaa !14
  br label %3701

3701:                                             ; preds = %3700, %3699
  store i32 0, ptr %111, align 4, !tbaa !14
  br label %3702

3702:                                             ; preds = %3724, %3701
  %3703 = load i32, ptr %111, align 4, !tbaa !14
  %3704 = load ptr, ptr %7, align 8, !tbaa !5
  %3705 = getelementptr inbounds %struct.sqlite3, ptr %3704, i32 0, i32 5
  %3706 = load i32, ptr %3705, align 8, !tbaa !115
  %3707 = icmp slt i32 %3703, %3706
  br i1 %3707, label %3708, label %3727

3708:                                             ; preds = %3702
  %3709 = load ptr, ptr %7, align 8, !tbaa !5
  %3710 = getelementptr inbounds %struct.sqlite3, ptr %3709, i32 0, i32 4
  %3711 = load ptr, ptr %3710, align 8, !tbaa !116
  %3712 = load i32, ptr %111, align 4, !tbaa !14
  %3713 = sext i32 %3712 to i64
  %3714 = getelementptr inbounds %struct.Db, ptr %3711, i64 %3713
  %3715 = getelementptr inbounds %struct.Db, ptr %3714, i32 0, i32 1
  %3716 = load ptr, ptr %3715, align 8, !tbaa !117
  %3717 = load i32, ptr %104, align 4, !tbaa !14
  %3718 = load i32, ptr %110, align 4, !tbaa !14
  %3719 = call i32 @sqlite3BtreeSavepoint(ptr noundef %3716, i32 noundef %3717, i32 noundef %3718)
  store i32 %3719, ptr %6, align 4, !tbaa !14
  %3720 = load i32, ptr %6, align 4, !tbaa !14
  %3721 = icmp ne i32 %3720, 0
  br i1 %3721, label %3722, label %3723

3722:                                             ; preds = %3708
  store i32 10, ptr %23, align 4
  br label %3740

3723:                                             ; preds = %3708
  br label %3724

3724:                                             ; preds = %3723
  %3725 = load i32, ptr %111, align 4, !tbaa !14
  %3726 = add nsw i32 %3725, 1
  store i32 %3726, ptr %111, align 4, !tbaa !14
  br label %3702, !llvm.loop !120

3727:                                             ; preds = %3702
  %3728 = load i32, ptr %113, align 4, !tbaa !14
  %3729 = icmp ne i32 %3728, 0
  br i1 %3729, label %3730, label %3739

3730:                                             ; preds = %3727
  %3731 = load ptr, ptr %7, align 8, !tbaa !5
  call void @sqlite3ExpirePreparedStatements(ptr noundef %3731)
  %3732 = load ptr, ptr %7, align 8, !tbaa !5
  call void @sqlite3ResetAllSchemasOfConnection(ptr noundef %3732)
  %3733 = load ptr, ptr %7, align 8, !tbaa !5
  %3734 = getelementptr inbounds %struct.sqlite3, ptr %3733, i32 0, i32 6
  %3735 = load i32, ptr %3734, align 4, !tbaa !114
  %3736 = or i32 %3735, 2
  %3737 = load ptr, ptr %7, align 8, !tbaa !5
  %3738 = getelementptr inbounds %struct.sqlite3, ptr %3737, i32 0, i32 6
  store i32 %3736, ptr %3738, align 4, !tbaa !114
  br label %3739

3739:                                             ; preds = %3730, %3727
  store i32 0, ptr %23, align 4
  br label %3740

3740:                                             ; preds = %3739, %3722, %3694
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #5
  %3741 = load i32, ptr %23, align 4
  switch i32 %3741, label %3811 [
    i32 0, label %3742
  ]

3742:                                             ; preds = %3740
  br label %3743

3743:                                             ; preds = %3742, %3651
  br label %3744

3744:                                             ; preds = %3750, %3743
  %3745 = load ptr, ptr %7, align 8, !tbaa !5
  %3746 = getelementptr inbounds %struct.sqlite3, ptr %3745, i32 0, i32 73
  %3747 = load ptr, ptr %3746, align 8, !tbaa !107
  %3748 = load ptr, ptr %108, align 8, !tbaa !5
  %3749 = icmp ne ptr %3747, %3748
  br i1 %3749, label %3750, label %3765

3750:                                             ; preds = %3744
  %3751 = load ptr, ptr %7, align 8, !tbaa !5
  %3752 = getelementptr inbounds %struct.sqlite3, ptr %3751, i32 0, i32 73
  %3753 = load ptr, ptr %3752, align 8, !tbaa !107
  store ptr %3753, ptr %109, align 8, !tbaa !5
  %3754 = load ptr, ptr %109, align 8, !tbaa !5
  %3755 = getelementptr inbounds %struct.Savepoint, ptr %3754, i32 0, i32 3
  %3756 = load ptr, ptr %3755, align 8, !tbaa !108
  %3757 = load ptr, ptr %7, align 8, !tbaa !5
  %3758 = getelementptr inbounds %struct.sqlite3, ptr %3757, i32 0, i32 73
  store ptr %3756, ptr %3758, align 8, !tbaa !107
  %3759 = load ptr, ptr %7, align 8, !tbaa !5
  %3760 = load ptr, ptr %109, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %3759, ptr noundef %3760)
  %3761 = load ptr, ptr %7, align 8, !tbaa !5
  %3762 = getelementptr inbounds %struct.sqlite3, ptr %3761, i32 0, i32 75
  %3763 = load i32, ptr %3762, align 4, !tbaa !102
  %3764 = add nsw i32 %3763, -1
  store i32 %3764, ptr %3762, align 4, !tbaa !102
  br label %3744, !llvm.loop !121

3765:                                             ; preds = %3744
  %3766 = load i32, ptr %104, align 4, !tbaa !14
  %3767 = icmp eq i32 %3766, 1
  br i1 %3767, label %3768, label %3784

3768:                                             ; preds = %3765
  %3769 = load ptr, ptr %108, align 8, !tbaa !5
  %3770 = getelementptr inbounds %struct.Savepoint, ptr %3769, i32 0, i32 3
  %3771 = load ptr, ptr %3770, align 8, !tbaa !108
  %3772 = load ptr, ptr %7, align 8, !tbaa !5
  %3773 = getelementptr inbounds %struct.sqlite3, ptr %3772, i32 0, i32 73
  store ptr %3771, ptr %3773, align 8, !tbaa !107
  %3774 = load ptr, ptr %7, align 8, !tbaa !5
  %3775 = load ptr, ptr %108, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %3774, ptr noundef %3775)
  %3776 = load i32, ptr %112, align 4, !tbaa !14
  %3777 = icmp ne i32 %3776, 0
  br i1 %3777, label %3783, label %3778

3778:                                             ; preds = %3768
  %3779 = load ptr, ptr %7, align 8, !tbaa !5
  %3780 = getelementptr inbounds %struct.sqlite3, ptr %3779, i32 0, i32 75
  %3781 = load i32, ptr %3780, align 4, !tbaa !102
  %3782 = add nsw i32 %3781, -1
  store i32 %3782, ptr %3780, align 4, !tbaa !102
  br label %3783

3783:                                             ; preds = %3778, %3768
  br label %3795

3784:                                             ; preds = %3765
  %3785 = load ptr, ptr %108, align 8, !tbaa !5
  %3786 = getelementptr inbounds %struct.Savepoint, ptr %3785, i32 0, i32 1
  %3787 = load i64, ptr %3786, align 8, !tbaa !110
  %3788 = load ptr, ptr %7, align 8, !tbaa !5
  %3789 = getelementptr inbounds %struct.sqlite3, ptr %3788, i32 0, i32 77
  store i64 %3787, ptr %3789, align 8, !tbaa !109
  %3790 = load ptr, ptr %108, align 8, !tbaa !5
  %3791 = getelementptr inbounds %struct.Savepoint, ptr %3790, i32 0, i32 2
  %3792 = load i64, ptr %3791, align 8, !tbaa !112
  %3793 = load ptr, ptr %7, align 8, !tbaa !5
  %3794 = getelementptr inbounds %struct.sqlite3, ptr %3793, i32 0, i32 78
  store i64 %3792, ptr %3794, align 8, !tbaa !111
  br label %3795

3795:                                             ; preds = %3784, %3783
  %3796 = load i32, ptr %112, align 4, !tbaa !14
  %3797 = icmp ne i32 %3796, 0
  br i1 %3797, label %3798, label %3801

3798:                                             ; preds = %3795
  %3799 = load i32, ptr %104, align 4, !tbaa !14
  %3800 = icmp eq i32 %3799, 2
  br i1 %3800, label %3801, label %3810

3801:                                             ; preds = %3798, %3795
  %3802 = load ptr, ptr %7, align 8, !tbaa !5
  %3803 = load i32, ptr %104, align 4, !tbaa !14
  %3804 = load i32, ptr %110, align 4, !tbaa !14
  %3805 = call i32 @sqlite3VtabSavepoint(ptr noundef %3802, i32 noundef %3803, i32 noundef %3804)
  store i32 %3805, ptr %6, align 4, !tbaa !14
  %3806 = load i32, ptr %6, align 4, !tbaa !14
  %3807 = icmp ne i32 %3806, 0
  br i1 %3807, label %3808, label %3809

3808:                                             ; preds = %3801
  store i32 10, ptr %23, align 4
  br label %3811

3809:                                             ; preds = %3801
  br label %3810

3810:                                             ; preds = %3809, %3798
  store i32 0, ptr %23, align 4
  br label %3811

3811:                                             ; preds = %3810, %3808, %3740, %3637, %3630
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #5
  %3812 = load i32, ptr %23, align 4
  switch i32 %3812, label %3821 [
    i32 0, label %3813
  ]

3813:                                             ; preds = %3811
  br label %3814

3814:                                             ; preds = %3813, %3605
  br label %3815

3815:                                             ; preds = %3814, %3594
  br label %3816

3816:                                             ; preds = %3815, %3567
  %3817 = load i32, ptr %6, align 4, !tbaa !14
  %3818 = icmp ne i32 %3817, 0
  br i1 %3818, label %3819, label %3820

3819:                                             ; preds = %3816
  store i32 10, ptr %23, align 4
  br label %3821

3820:                                             ; preds = %3816
  store i32 7, ptr %23, align 4
  br label %3821

3821:                                             ; preds = %3820, %3819, %3811, %3511
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #5
  %3822 = load i32, ptr %23, align 4
  switch i32 %3822, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 12, label %8534
  ]

3823:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #5
  %3824 = load ptr, ptr %5, align 8, !tbaa !5
  %3825 = getelementptr inbounds %struct.VdbeOp, ptr %3824, i32 0, i32 3
  %3826 = load i32, ptr %3825, align 4, !tbaa !35
  store i32 %3826, ptr %114, align 4, !tbaa !14
  %3827 = load ptr, ptr %5, align 8, !tbaa !5
  %3828 = getelementptr inbounds %struct.VdbeOp, ptr %3827, i32 0, i32 4
  %3829 = load i32, ptr %3828, align 8, !tbaa !33
  store i32 %3829, ptr %115, align 4, !tbaa !14
  %3830 = load i32, ptr %114, align 4, !tbaa !14
  %3831 = load ptr, ptr %7, align 8, !tbaa !5
  %3832 = getelementptr inbounds %struct.sqlite3, ptr %3831, i32 0, i32 15
  %3833 = load i8, ptr %3832, align 1, !tbaa !105
  %3834 = zext i8 %3833 to i32
  %3835 = icmp ne i32 %3830, %3834
  br i1 %3835, label %3836, label %3895

3836:                                             ; preds = %3823
  %3837 = load i32, ptr %115, align 4, !tbaa !14
  %3838 = icmp ne i32 %3837, 0
  br i1 %3838, label %3839, label %3843

3839:                                             ; preds = %3836
  %3840 = load ptr, ptr %7, align 8, !tbaa !5
  call void @sqlite3RollbackAll(ptr noundef %3840, i32 noundef 516)
  %3841 = load ptr, ptr %7, align 8, !tbaa !5
  %3842 = getelementptr inbounds %struct.sqlite3, ptr %3841, i32 0, i32 15
  store i8 1, ptr %3842, align 1, !tbaa !105
  br label %3865

3843:                                             ; preds = %3836
  %3844 = load i32, ptr %114, align 4, !tbaa !14
  %3845 = icmp ne i32 %3844, 0
  br i1 %3845, label %3846, label %3853

3846:                                             ; preds = %3843
  %3847 = load ptr, ptr %7, align 8, !tbaa !5
  %3848 = getelementptr inbounds %struct.sqlite3, ptr %3847, i32 0, i32 36
  %3849 = load i32, ptr %3848, align 4, !tbaa !100
  %3850 = icmp sgt i32 %3849, 0
  br i1 %3850, label %3851, label %3853

3851:                                             ; preds = %3846
  %3852 = load ptr, ptr %3, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %3852, ptr noundef @.str.11)
  store i32 5, ptr %6, align 4, !tbaa !14
  store i32 10, ptr %23, align 4
  br label %3907

3853:                                             ; preds = %3846, %3843
  %3854 = load ptr, ptr %3, align 8, !tbaa !5
  %3855 = call i32 @sqlite3VdbeCheckFk(ptr noundef %3854, i32 noundef 1)
  store i32 %3855, ptr %6, align 4, !tbaa !14
  %3856 = icmp ne i32 %3855, 0
  br i1 %3856, label %3857, label %3858

3857:                                             ; preds = %3853
  store i32 12, ptr %23, align 4
  br label %3907

3858:                                             ; preds = %3853
  %3859 = load i32, ptr %114, align 4, !tbaa !14
  %3860 = trunc i32 %3859 to i8
  %3861 = load ptr, ptr %7, align 8, !tbaa !5
  %3862 = getelementptr inbounds %struct.sqlite3, ptr %3861, i32 0, i32 15
  store i8 %3860, ptr %3862, align 1, !tbaa !105
  br label %3863

3863:                                             ; preds = %3858
  br label %3864

3864:                                             ; preds = %3863
  br label %3865

3865:                                             ; preds = %3864, %3839
  %3866 = load ptr, ptr %3, align 8, !tbaa !5
  %3867 = call i32 @sqlite3VdbeHalt(ptr noundef %3866)
  %3868 = icmp eq i32 %3867, 5
  br i1 %3868, label %3869, label %3886

3869:                                             ; preds = %3865
  %3870 = load ptr, ptr %5, align 8, !tbaa !5
  %3871 = load ptr, ptr %4, align 8, !tbaa !5
  %3872 = ptrtoint ptr %3870 to i64
  %3873 = ptrtoint ptr %3871 to i64
  %3874 = sub i64 %3872, %3873
  %3875 = sdiv exact i64 %3874, 24
  %3876 = trunc i64 %3875 to i32
  %3877 = load ptr, ptr %3, align 8, !tbaa !5
  %3878 = getelementptr inbounds %struct.Vdbe, ptr %3877, i32 0, i32 9
  store i32 %3876, ptr %3878, align 4, !tbaa !30
  %3879 = load i32, ptr %114, align 4, !tbaa !14
  %3880 = sub nsw i32 1, %3879
  %3881 = trunc i32 %3880 to i8
  %3882 = load ptr, ptr %7, align 8, !tbaa !5
  %3883 = getelementptr inbounds %struct.sqlite3, ptr %3882, i32 0, i32 15
  store i8 %3881, ptr %3883, align 1, !tbaa !105
  store i32 5, ptr %6, align 4, !tbaa !14
  %3884 = load ptr, ptr %3, align 8, !tbaa !5
  %3885 = getelementptr inbounds %struct.Vdbe, ptr %3884, i32 0, i32 10
  store i32 5, ptr %3885, align 8, !tbaa !24
  store i32 12, ptr %23, align 4
  br label %3907

3886:                                             ; preds = %3865
  %3887 = load ptr, ptr %7, align 8, !tbaa !5
  call void @sqlite3CloseSavepoints(ptr noundef %3887)
  %3888 = load ptr, ptr %3, align 8, !tbaa !5
  %3889 = getelementptr inbounds %struct.Vdbe, ptr %3888, i32 0, i32 10
  %3890 = load i32, ptr %3889, align 8, !tbaa !24
  %3891 = icmp eq i32 %3890, 0
  br i1 %3891, label %3892, label %3893

3892:                                             ; preds = %3886
  store i32 101, ptr %6, align 4, !tbaa !14
  br label %3894

3893:                                             ; preds = %3886
  store i32 1, ptr %6, align 4, !tbaa !14
  br label %3894

3894:                                             ; preds = %3893, %3892
  store i32 12, ptr %23, align 4
  br label %3907

3895:                                             ; preds = %3823
  %3896 = load ptr, ptr %3, align 8, !tbaa !5
  %3897 = load i32, ptr %114, align 4, !tbaa !14
  %3898 = icmp ne i32 %3897, 0
  br i1 %3898, label %3900, label %3899

3899:                                             ; preds = %3895
  br label %3905

3900:                                             ; preds = %3895
  %3901 = load i32, ptr %115, align 4, !tbaa !14
  %3902 = icmp ne i32 %3901, 0
  %3903 = zext i1 %3902 to i64
  %3904 = select i1 %3902, ptr @.str.13, ptr @.str.14
  br label %3905

3905:                                             ; preds = %3900, %3899
  %3906 = phi ptr [ @.str.12, %3899 ], [ %3904, %3900 ]
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %3896, ptr noundef %3906)
  store i32 1, ptr %6, align 4, !tbaa !14
  store i32 10, ptr %23, align 4
  br label %3907

3907:                                             ; preds = %3905, %3894, %3869, %3857, %3851
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #5
  %3908 = load i32, ptr %23, align 4
  switch i32 %3908, label %8562 [
    i32 10, label %8480
    i32 12, label %8534
  ]

3909:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #5
  %3910 = load ptr, ptr %5, align 8, !tbaa !5
  %3911 = getelementptr inbounds %struct.VdbeOp, ptr %3910, i32 0, i32 4
  %3912 = load i32, ptr %3911, align 8, !tbaa !33
  %3913 = icmp ne i32 %3912, 0
  br i1 %3913, label %3914, label %3921

3914:                                             ; preds = %3909
  %3915 = load ptr, ptr %7, align 8, !tbaa !5
  %3916 = getelementptr inbounds %struct.sqlite3, ptr %3915, i32 0, i32 6
  %3917 = load i32, ptr %3916, align 4, !tbaa !114
  %3918 = and i32 %3917, 67108864
  %3919 = icmp ne i32 %3918, 0
  br i1 %3919, label %3920, label %3921

3920:                                             ; preds = %3914
  store i32 8, ptr %6, align 4, !tbaa !14
  store i32 10, ptr %23, align 4
  br label %4101

3921:                                             ; preds = %3914, %3909
  %3922 = load ptr, ptr %7, align 8, !tbaa !5
  %3923 = getelementptr inbounds %struct.sqlite3, ptr %3922, i32 0, i32 4
  %3924 = load ptr, ptr %3923, align 8, !tbaa !116
  %3925 = load ptr, ptr %5, align 8, !tbaa !5
  %3926 = getelementptr inbounds %struct.VdbeOp, ptr %3925, i32 0, i32 3
  %3927 = load i32, ptr %3926, align 4, !tbaa !35
  %3928 = sext i32 %3927 to i64
  %3929 = getelementptr inbounds %struct.Db, ptr %3924, i64 %3928
  %3930 = getelementptr inbounds %struct.Db, ptr %3929, i32 0, i32 1
  %3931 = load ptr, ptr %3930, align 8, !tbaa !117
  store ptr %3931, ptr %116, align 8, !tbaa !5
  %3932 = load ptr, ptr %116, align 8, !tbaa !5
  %3933 = icmp ne ptr %3932, null
  br i1 %3933, label %3934, label %4043

3934:                                             ; preds = %3921
  %3935 = load ptr, ptr %116, align 8, !tbaa !5
  %3936 = load ptr, ptr %5, align 8, !tbaa !5
  %3937 = getelementptr inbounds %struct.VdbeOp, ptr %3936, i32 0, i32 4
  %3938 = load i32, ptr %3937, align 8, !tbaa !33
  %3939 = call i32 @sqlite3BtreeBeginTrans(ptr noundef %3935, i32 noundef %3938)
  store i32 %3939, ptr %6, align 4, !tbaa !14
  %3940 = load i32, ptr %6, align 4, !tbaa !14
  %3941 = icmp ne i32 %3940, 0
  br i1 %3941, label %3942, label %3960

3942:                                             ; preds = %3934
  %3943 = load i32, ptr %6, align 4, !tbaa !14
  %3944 = and i32 %3943, 255
  %3945 = icmp eq i32 %3944, 5
  br i1 %3945, label %3946, label %3959

3946:                                             ; preds = %3942
  %3947 = load ptr, ptr %5, align 8, !tbaa !5
  %3948 = load ptr, ptr %4, align 8, !tbaa !5
  %3949 = ptrtoint ptr %3947 to i64
  %3950 = ptrtoint ptr %3948 to i64
  %3951 = sub i64 %3949, %3950
  %3952 = sdiv exact i64 %3951, 24
  %3953 = trunc i64 %3952 to i32
  %3954 = load ptr, ptr %3, align 8, !tbaa !5
  %3955 = getelementptr inbounds %struct.Vdbe, ptr %3954, i32 0, i32 9
  store i32 %3953, ptr %3955, align 4, !tbaa !30
  %3956 = load i32, ptr %6, align 4, !tbaa !14
  %3957 = load ptr, ptr %3, align 8, !tbaa !5
  %3958 = getelementptr inbounds %struct.Vdbe, ptr %3957, i32 0, i32 10
  store i32 %3956, ptr %3958, align 8, !tbaa !24
  store i32 12, ptr %23, align 4
  br label %4101

3959:                                             ; preds = %3942
  store i32 10, ptr %23, align 4
  br label %4101

3960:                                             ; preds = %3934
  %3961 = load ptr, ptr %5, align 8, !tbaa !5
  %3962 = getelementptr inbounds %struct.VdbeOp, ptr %3961, i32 0, i32 4
  %3963 = load i32, ptr %3962, align 8, !tbaa !33
  %3964 = icmp ne i32 %3963, 0
  br i1 %3964, label %3965, label %4029

3965:                                             ; preds = %3960
  %3966 = load ptr, ptr %3, align 8, !tbaa !5
  %3967 = getelementptr inbounds %struct.Vdbe, ptr %3966, i32 0, i32 31
  %3968 = load i16, ptr %3967, align 8
  %3969 = lshr i16 %3968, 6
  %3970 = and i16 %3969, 1
  %3971 = zext i16 %3970 to i32
  %3972 = icmp ne i32 %3971, 0
  br i1 %3972, label %3973, label %4029

3973:                                             ; preds = %3965
  %3974 = load ptr, ptr %7, align 8, !tbaa !5
  %3975 = getelementptr inbounds %struct.sqlite3, ptr %3974, i32 0, i32 15
  %3976 = load i8, ptr %3975, align 1, !tbaa !105
  %3977 = zext i8 %3976 to i32
  %3978 = icmp eq i32 %3977, 0
  br i1 %3978, label %3984, label %3979

3979:                                             ; preds = %3973
  %3980 = load ptr, ptr %7, align 8, !tbaa !5
  %3981 = getelementptr inbounds %struct.sqlite3, ptr %3980, i32 0, i32 35
  %3982 = load i32, ptr %3981, align 8, !tbaa !122
  %3983 = icmp sgt i32 %3982, 1
  br i1 %3983, label %3984, label %4029

3984:                                             ; preds = %3979, %3973
  %3985 = load ptr, ptr %3, align 8, !tbaa !5
  %3986 = getelementptr inbounds %struct.Vdbe, ptr %3985, i32 0, i32 12
  %3987 = load i32, ptr %3986, align 8, !tbaa !123
  %3988 = icmp eq i32 %3987, 0
  br i1 %3988, label %3989, label %4003

3989:                                             ; preds = %3984
  %3990 = load ptr, ptr %7, align 8, !tbaa !5
  %3991 = getelementptr inbounds %struct.sqlite3, ptr %3990, i32 0, i32 76
  %3992 = load i32, ptr %3991, align 8, !tbaa !101
  %3993 = add nsw i32 %3992, 1
  store i32 %3993, ptr %3991, align 8, !tbaa !101
  %3994 = load ptr, ptr %7, align 8, !tbaa !5
  %3995 = getelementptr inbounds %struct.sqlite3, ptr %3994, i32 0, i32 75
  %3996 = load i32, ptr %3995, align 4, !tbaa !102
  %3997 = load ptr, ptr %7, align 8, !tbaa !5
  %3998 = getelementptr inbounds %struct.sqlite3, ptr %3997, i32 0, i32 76
  %3999 = load i32, ptr %3998, align 8, !tbaa !101
  %4000 = add nsw i32 %3996, %3999
  %4001 = load ptr, ptr %3, align 8, !tbaa !5
  %4002 = getelementptr inbounds %struct.Vdbe, ptr %4001, i32 0, i32 12
  store i32 %4000, ptr %4002, align 8, !tbaa !123
  br label %4003

4003:                                             ; preds = %3989, %3984
  %4004 = load ptr, ptr %7, align 8, !tbaa !5
  %4005 = load ptr, ptr %3, align 8, !tbaa !5
  %4006 = getelementptr inbounds %struct.Vdbe, ptr %4005, i32 0, i32 12
  %4007 = load i32, ptr %4006, align 8, !tbaa !123
  %4008 = sub nsw i32 %4007, 1
  %4009 = call i32 @sqlite3VtabSavepoint(ptr noundef %4004, i32 noundef 0, i32 noundef %4008)
  store i32 %4009, ptr %6, align 4, !tbaa !14
  %4010 = load i32, ptr %6, align 4, !tbaa !14
  %4011 = icmp eq i32 %4010, 0
  br i1 %4011, label %4012, label %4018

4012:                                             ; preds = %4003
  %4013 = load ptr, ptr %116, align 8, !tbaa !5
  %4014 = load ptr, ptr %3, align 8, !tbaa !5
  %4015 = getelementptr inbounds %struct.Vdbe, ptr %4014, i32 0, i32 12
  %4016 = load i32, ptr %4015, align 8, !tbaa !123
  %4017 = call i32 @sqlite3BtreeBeginStmt(ptr noundef %4013, i32 noundef %4016)
  store i32 %4017, ptr %6, align 4, !tbaa !14
  br label %4018

4018:                                             ; preds = %4012, %4003
  %4019 = load ptr, ptr %7, align 8, !tbaa !5
  %4020 = getelementptr inbounds %struct.sqlite3, ptr %4019, i32 0, i32 77
  %4021 = load i64, ptr %4020, align 8, !tbaa !109
  %4022 = load ptr, ptr %3, align 8, !tbaa !5
  %4023 = getelementptr inbounds %struct.Vdbe, ptr %4022, i32 0, i32 15
  store i64 %4021, ptr %4023, align 8, !tbaa !124
  %4024 = load ptr, ptr %7, align 8, !tbaa !5
  %4025 = getelementptr inbounds %struct.sqlite3, ptr %4024, i32 0, i32 78
  %4026 = load i64, ptr %4025, align 8, !tbaa !111
  %4027 = load ptr, ptr %3, align 8, !tbaa !5
  %4028 = getelementptr inbounds %struct.Vdbe, ptr %4027, i32 0, i32 16
  store i64 %4026, ptr %4028, align 8, !tbaa !125
  br label %4029

4029:                                             ; preds = %4018, %3979, %3965, %3960
  %4030 = load ptr, ptr %116, align 8, !tbaa !5
  call void @sqlite3BtreeGetMeta(ptr noundef %4030, i32 noundef 1, ptr noundef %117)
  %4031 = load ptr, ptr %7, align 8, !tbaa !5
  %4032 = getelementptr inbounds %struct.sqlite3, ptr %4031, i32 0, i32 4
  %4033 = load ptr, ptr %4032, align 8, !tbaa !116
  %4034 = load ptr, ptr %5, align 8, !tbaa !5
  %4035 = getelementptr inbounds %struct.VdbeOp, ptr %4034, i32 0, i32 3
  %4036 = load i32, ptr %4035, align 4, !tbaa !35
  %4037 = sext i32 %4036 to i64
  %4038 = getelementptr inbounds %struct.Db, ptr %4033, i64 %4037
  %4039 = getelementptr inbounds %struct.Db, ptr %4038, i32 0, i32 4
  %4040 = load ptr, ptr %4039, align 8, !tbaa !126
  %4041 = getelementptr inbounds %struct.Schema, ptr %4040, i32 0, i32 1
  %4042 = load i32, ptr %4041, align 4, !tbaa !127
  store i32 %4042, ptr %118, align 4, !tbaa !14
  br label %4044

4043:                                             ; preds = %3921
  store i32 0, ptr %117, align 4, !tbaa !14
  store i32 0, ptr %118, align 4, !tbaa !14
  br label %4044

4044:                                             ; preds = %4043, %4029
  %4045 = load ptr, ptr %5, align 8, !tbaa !5
  %4046 = getelementptr inbounds %struct.VdbeOp, ptr %4045, i32 0, i32 2
  %4047 = load i16, ptr %4046, align 2, !tbaa !45
  %4048 = zext i16 %4047 to i32
  %4049 = icmp ne i32 %4048, 0
  br i1 %4049, label %4050, label %4096

4050:                                             ; preds = %4044
  %4051 = load i32, ptr %117, align 4, !tbaa !14
  %4052 = load ptr, ptr %5, align 8, !tbaa !5
  %4053 = getelementptr inbounds %struct.VdbeOp, ptr %4052, i32 0, i32 5
  %4054 = load i32, ptr %4053, align 4, !tbaa !38
  %4055 = icmp ne i32 %4051, %4054
  br i1 %4055, label %4062, label %4056

4056:                                             ; preds = %4050
  %4057 = load i32, ptr %118, align 4, !tbaa !14
  %4058 = load ptr, ptr %5, align 8, !tbaa !5
  %4059 = getelementptr inbounds %struct.VdbeOp, ptr %4058, i32 0, i32 6
  %4060 = load i32, ptr %4059, align 8, !tbaa !16
  %4061 = icmp ne i32 %4057, %4060
  br i1 %4061, label %4062, label %4096

4062:                                             ; preds = %4056, %4050
  %4063 = load ptr, ptr %7, align 8, !tbaa !5
  %4064 = load ptr, ptr %3, align 8, !tbaa !5
  %4065 = getelementptr inbounds %struct.Vdbe, ptr %4064, i32 0, i32 22
  %4066 = load ptr, ptr %4065, align 8, !tbaa !46
  call void @sqlite3DbFree(ptr noundef %4063, ptr noundef %4066)
  %4067 = load ptr, ptr %7, align 8, !tbaa !5
  %4068 = call ptr @sqlite3DbStrDup(ptr noundef %4067, ptr noundef @.str.15)
  %4069 = load ptr, ptr %3, align 8, !tbaa !5
  %4070 = getelementptr inbounds %struct.Vdbe, ptr %4069, i32 0, i32 22
  store ptr %4068, ptr %4070, align 8, !tbaa !46
  %4071 = load ptr, ptr %7, align 8, !tbaa !5
  %4072 = getelementptr inbounds %struct.sqlite3, ptr %4071, i32 0, i32 4
  %4073 = load ptr, ptr %4072, align 8, !tbaa !116
  %4074 = load ptr, ptr %5, align 8, !tbaa !5
  %4075 = getelementptr inbounds %struct.VdbeOp, ptr %4074, i32 0, i32 3
  %4076 = load i32, ptr %4075, align 4, !tbaa !35
  %4077 = sext i32 %4076 to i64
  %4078 = getelementptr inbounds %struct.Db, ptr %4073, i64 %4077
  %4079 = getelementptr inbounds %struct.Db, ptr %4078, i32 0, i32 4
  %4080 = load ptr, ptr %4079, align 8, !tbaa !126
  %4081 = getelementptr inbounds %struct.Schema, ptr %4080, i32 0, i32 0
  %4082 = load i32, ptr %4081, align 8, !tbaa !129
  %4083 = load i32, ptr %117, align 4, !tbaa !14
  %4084 = icmp ne i32 %4082, %4083
  br i1 %4084, label %4085, label %4090

4085:                                             ; preds = %4062
  %4086 = load ptr, ptr %7, align 8, !tbaa !5
  %4087 = load ptr, ptr %5, align 8, !tbaa !5
  %4088 = getelementptr inbounds %struct.VdbeOp, ptr %4087, i32 0, i32 3
  %4089 = load i32, ptr %4088, align 4, !tbaa !35
  call void @sqlite3ResetOneSchema(ptr noundef %4086, i32 noundef %4089)
  br label %4090

4090:                                             ; preds = %4085, %4062
  %4091 = load ptr, ptr %3, align 8, !tbaa !5
  %4092 = getelementptr inbounds %struct.Vdbe, ptr %4091, i32 0, i32 31
  %4093 = load i16, ptr %4092, align 8
  %4094 = and i16 %4093, -2
  %4095 = or i16 %4094, 1
  store i16 %4095, ptr %4092, align 8
  store i32 17, ptr %6, align 4, !tbaa !14
  br label %4096

4096:                                             ; preds = %4090, %4056, %4044
  %4097 = load i32, ptr %6, align 4, !tbaa !14
  %4098 = icmp ne i32 %4097, 0
  br i1 %4098, label %4099, label %4100

4099:                                             ; preds = %4096
  store i32 10, ptr %23, align 4
  br label %4101

4100:                                             ; preds = %4096
  store i32 7, ptr %23, align 4
  br label %4101

4101:                                             ; preds = %4100, %4099, %3959, %3946, %3920
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #5
  %4102 = load i32, ptr %23, align 4
  switch i32 %4102, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 12, label %8534
  ]

4103:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #5
  %4104 = load ptr, ptr %5, align 8, !tbaa !5
  %4105 = getelementptr inbounds %struct.VdbeOp, ptr %4104, i32 0, i32 3
  %4106 = load i32, ptr %4105, align 4, !tbaa !35
  store i32 %4106, ptr %120, align 4, !tbaa !14
  %4107 = load ptr, ptr %5, align 8, !tbaa !5
  %4108 = getelementptr inbounds %struct.VdbeOp, ptr %4107, i32 0, i32 5
  %4109 = load i32, ptr %4108, align 4, !tbaa !38
  store i32 %4109, ptr %121, align 4, !tbaa !14
  %4110 = load ptr, ptr %7, align 8, !tbaa !5
  %4111 = getelementptr inbounds %struct.sqlite3, ptr %4110, i32 0, i32 4
  %4112 = load ptr, ptr %4111, align 8, !tbaa !116
  %4113 = load i32, ptr %120, align 4, !tbaa !14
  %4114 = sext i32 %4113 to i64
  %4115 = getelementptr inbounds %struct.Db, ptr %4112, i64 %4114
  %4116 = getelementptr inbounds %struct.Db, ptr %4115, i32 0, i32 1
  %4117 = load ptr, ptr %4116, align 8, !tbaa !117
  %4118 = load i32, ptr %121, align 4, !tbaa !14
  call void @sqlite3BtreeGetMeta(ptr noundef %4117, i32 noundef %4118, ptr noundef %119)
  %4119 = load ptr, ptr %3, align 8, !tbaa !5
  %4120 = load ptr, ptr %5, align 8, !tbaa !5
  %4121 = call ptr @out2Prerelease(ptr noundef %4119, ptr noundef %4120)
  store ptr %4121, ptr %17, align 8, !tbaa !5
  %4122 = load i32, ptr %119, align 4, !tbaa !14
  %4123 = sext i32 %4122 to i64
  %4124 = load ptr, ptr %17, align 8, !tbaa !5
  %4125 = getelementptr inbounds %struct.Mem, ptr %4124, i32 0, i32 0
  store i64 %4123, ptr %4125, align 8, !tbaa !16
  store i32 7, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #5
  br label %8475

4126:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #5
  %4127 = load ptr, ptr %7, align 8, !tbaa !5
  %4128 = getelementptr inbounds %struct.sqlite3, ptr %4127, i32 0, i32 4
  %4129 = load ptr, ptr %4128, align 8, !tbaa !116
  %4130 = load ptr, ptr %5, align 8, !tbaa !5
  %4131 = getelementptr inbounds %struct.VdbeOp, ptr %4130, i32 0, i32 3
  %4132 = load i32, ptr %4131, align 4, !tbaa !35
  %4133 = sext i32 %4132 to i64
  %4134 = getelementptr inbounds %struct.Db, ptr %4129, i64 %4133
  store ptr %4134, ptr %122, align 8, !tbaa !5
  %4135 = load ptr, ptr %122, align 8, !tbaa !5
  %4136 = getelementptr inbounds %struct.Db, ptr %4135, i32 0, i32 1
  %4137 = load ptr, ptr %4136, align 8, !tbaa !117
  %4138 = load ptr, ptr %5, align 8, !tbaa !5
  %4139 = getelementptr inbounds %struct.VdbeOp, ptr %4138, i32 0, i32 4
  %4140 = load i32, ptr %4139, align 8, !tbaa !33
  %4141 = load ptr, ptr %5, align 8, !tbaa !5
  %4142 = getelementptr inbounds %struct.VdbeOp, ptr %4141, i32 0, i32 5
  %4143 = load i32, ptr %4142, align 4, !tbaa !38
  %4144 = call i32 @sqlite3BtreeUpdateMeta(ptr noundef %4137, i32 noundef %4140, i32 noundef %4143)
  store i32 %4144, ptr %6, align 4, !tbaa !14
  %4145 = load ptr, ptr %5, align 8, !tbaa !5
  %4146 = getelementptr inbounds %struct.VdbeOp, ptr %4145, i32 0, i32 4
  %4147 = load i32, ptr %4146, align 8, !tbaa !33
  %4148 = icmp eq i32 %4147, 1
  br i1 %4148, label %4149, label %4161

4149:                                             ; preds = %4126
  %4150 = load ptr, ptr %5, align 8, !tbaa !5
  %4151 = getelementptr inbounds %struct.VdbeOp, ptr %4150, i32 0, i32 5
  %4152 = load i32, ptr %4151, align 4, !tbaa !38
  %4153 = load ptr, ptr %122, align 8, !tbaa !5
  %4154 = getelementptr inbounds %struct.Db, ptr %4153, i32 0, i32 4
  %4155 = load ptr, ptr %4154, align 8, !tbaa !126
  %4156 = getelementptr inbounds %struct.Schema, ptr %4155, i32 0, i32 0
  store i32 %4152, ptr %4156, align 8, !tbaa !129
  %4157 = load ptr, ptr %7, align 8, !tbaa !5
  %4158 = getelementptr inbounds %struct.sqlite3, ptr %4157, i32 0, i32 6
  %4159 = load i32, ptr %4158, align 4, !tbaa !114
  %4160 = or i32 %4159, 2
  store i32 %4160, ptr %4158, align 4, !tbaa !114
  br label %4176

4161:                                             ; preds = %4126
  %4162 = load ptr, ptr %5, align 8, !tbaa !5
  %4163 = getelementptr inbounds %struct.VdbeOp, ptr %4162, i32 0, i32 4
  %4164 = load i32, ptr %4163, align 8, !tbaa !33
  %4165 = icmp eq i32 %4164, 2
  br i1 %4165, label %4166, label %4175

4166:                                             ; preds = %4161
  %4167 = load ptr, ptr %5, align 8, !tbaa !5
  %4168 = getelementptr inbounds %struct.VdbeOp, ptr %4167, i32 0, i32 5
  %4169 = load i32, ptr %4168, align 4, !tbaa !38
  %4170 = trunc i32 %4169 to i8
  %4171 = load ptr, ptr %122, align 8, !tbaa !5
  %4172 = getelementptr inbounds %struct.Db, ptr %4171, i32 0, i32 4
  %4173 = load ptr, ptr %4172, align 8, !tbaa !126
  %4174 = getelementptr inbounds %struct.Schema, ptr %4173, i32 0, i32 7
  store i8 %4170, ptr %4174, align 8, !tbaa !130
  br label %4175

4175:                                             ; preds = %4166, %4161
  br label %4176

4176:                                             ; preds = %4175, %4149
  %4177 = load ptr, ptr %5, align 8, !tbaa !5
  %4178 = getelementptr inbounds %struct.VdbeOp, ptr %4177, i32 0, i32 3
  %4179 = load i32, ptr %4178, align 4, !tbaa !35
  %4180 = icmp eq i32 %4179, 1
  br i1 %4180, label %4181, label %4188

4181:                                             ; preds = %4176
  %4182 = load ptr, ptr %7, align 8, !tbaa !5
  call void @sqlite3ExpirePreparedStatements(ptr noundef %4182)
  %4183 = load ptr, ptr %3, align 8, !tbaa !5
  %4184 = getelementptr inbounds %struct.Vdbe, ptr %4183, i32 0, i32 31
  %4185 = load i16, ptr %4184, align 8
  %4186 = and i16 %4185, -2
  %4187 = or i16 %4186, 0
  store i16 %4187, ptr %4184, align 8
  br label %4188

4188:                                             ; preds = %4181, %4176
  %4189 = load i32, ptr %6, align 4, !tbaa !14
  %4190 = icmp ne i32 %4189, 0
  br i1 %4190, label %4191, label %4192

4191:                                             ; preds = %4188
  store i32 10, ptr %23, align 4
  br label %4193

4192:                                             ; preds = %4188
  store i32 7, ptr %23, align 4
  br label %4193

4193:                                             ; preds = %4192, %4191
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #5
  %4194 = load i32, ptr %23, align 4
  switch i32 %4194, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

4195:                                             ; preds = %363
  %4196 = load ptr, ptr %3, align 8, !tbaa !5
  %4197 = getelementptr inbounds %struct.Vdbe, ptr %4196, i32 0, i32 23
  %4198 = load ptr, ptr %4197, align 8, !tbaa !82
  %4199 = load ptr, ptr %5, align 8, !tbaa !5
  %4200 = getelementptr inbounds %struct.VdbeOp, ptr %4199, i32 0, i32 3
  %4201 = load i32, ptr %4200, align 4, !tbaa !35
  %4202 = sext i32 %4201 to i64
  %4203 = getelementptr inbounds ptr, ptr %4198, i64 %4202
  %4204 = load ptr, ptr %4203, align 8, !tbaa !5
  store ptr %4204, ptr %129, align 8, !tbaa !5
  %4205 = load ptr, ptr %129, align 8, !tbaa !5
  %4206 = icmp ne ptr %4205, null
  br i1 %4206, label %4207, label %4216

4207:                                             ; preds = %4195
  %4208 = load ptr, ptr %129, align 8, !tbaa !5
  %4209 = getelementptr inbounds %struct.VdbeCursor, ptr %4208, i32 0, i32 15
  %4210 = load i32, ptr %4209, align 4, !tbaa !131
  %4211 = load ptr, ptr %5, align 8, !tbaa !5
  %4212 = getelementptr inbounds %struct.VdbeOp, ptr %4211, i32 0, i32 4
  %4213 = load i32, ptr %4212, align 8, !tbaa !33
  %4214 = icmp eq i32 %4210, %4213
  br i1 %4214, label %4215, label %4216

4215:                                             ; preds = %4207
  br label %4364

4216:                                             ; preds = %4207, %4195
  br label %4217

4217:                                             ; preds = %4216, %363, %363
  %4218 = load ptr, ptr %3, align 8, !tbaa !5
  %4219 = getelementptr inbounds %struct.Vdbe, ptr %4218, i32 0, i32 31
  %4220 = load i16, ptr %4219, align 8
  %4221 = and i16 %4220, 1
  %4222 = zext i16 %4221 to i32
  %4223 = icmp ne i32 %4222, 0
  br i1 %4223, label %4224, label %4225

4224:                                             ; preds = %4217
  store i32 516, ptr %6, align 4, !tbaa !14
  br label %8480

4225:                                             ; preds = %4217
  store i32 0, ptr %123, align 4, !tbaa !14
  store ptr null, ptr %124, align 8, !tbaa !5
  %4226 = load ptr, ptr %5, align 8, !tbaa !5
  %4227 = getelementptr inbounds %struct.VdbeOp, ptr %4226, i32 0, i32 4
  %4228 = load i32, ptr %4227, align 8, !tbaa !33
  store i32 %4228, ptr %125, align 4, !tbaa !14
  %4229 = load ptr, ptr %5, align 8, !tbaa !5
  %4230 = getelementptr inbounds %struct.VdbeOp, ptr %4229, i32 0, i32 5
  %4231 = load i32, ptr %4230, align 4, !tbaa !38
  store i32 %4231, ptr %126, align 4, !tbaa !14
  %4232 = load ptr, ptr %7, align 8, !tbaa !5
  %4233 = getelementptr inbounds %struct.sqlite3, ptr %4232, i32 0, i32 4
  %4234 = load ptr, ptr %4233, align 8, !tbaa !116
  %4235 = load i32, ptr %126, align 4, !tbaa !14
  %4236 = sext i32 %4235 to i64
  %4237 = getelementptr inbounds %struct.Db, ptr %4234, i64 %4236
  store ptr %4237, ptr %130, align 8, !tbaa !5
  %4238 = load ptr, ptr %130, align 8, !tbaa !5
  %4239 = getelementptr inbounds %struct.Db, ptr %4238, i32 0, i32 1
  %4240 = load ptr, ptr %4239, align 8, !tbaa !117
  store ptr %4240, ptr %128, align 8, !tbaa !5
  %4241 = load ptr, ptr %5, align 8, !tbaa !5
  %4242 = getelementptr inbounds %struct.VdbeOp, ptr %4241, i32 0, i32 0
  %4243 = load i8, ptr %4242, align 8, !tbaa !31
  %4244 = zext i8 %4243 to i32
  %4245 = icmp eq i32 %4244, 106
  br i1 %4245, label %4246, label %4273

4246:                                             ; preds = %4225
  %4247 = load ptr, ptr %5, align 8, !tbaa !5
  %4248 = getelementptr inbounds %struct.VdbeOp, ptr %4247, i32 0, i32 2
  %4249 = load i16, ptr %4248, align 2, !tbaa !45
  %4250 = zext i16 %4249 to i32
  %4251 = and i32 %4250, 8
  %4252 = or i32 4, %4251
  store i32 %4252, ptr %127, align 4, !tbaa !14
  %4253 = load ptr, ptr %130, align 8, !tbaa !5
  %4254 = getelementptr inbounds %struct.Db, ptr %4253, i32 0, i32 4
  %4255 = load ptr, ptr %4254, align 8, !tbaa !126
  %4256 = getelementptr inbounds %struct.Schema, ptr %4255, i32 0, i32 7
  %4257 = load i8, ptr %4256, align 8, !tbaa !130
  %4258 = zext i8 %4257 to i32
  %4259 = load ptr, ptr %3, align 8, !tbaa !5
  %4260 = getelementptr inbounds %struct.Vdbe, ptr %4259, i32 0, i32 30
  %4261 = load i8, ptr %4260, align 1, !tbaa !96
  %4262 = zext i8 %4261 to i32
  %4263 = icmp slt i32 %4258, %4262
  br i1 %4263, label %4264, label %4272

4264:                                             ; preds = %4246
  %4265 = load ptr, ptr %130, align 8, !tbaa !5
  %4266 = getelementptr inbounds %struct.Db, ptr %4265, i32 0, i32 4
  %4267 = load ptr, ptr %4266, align 8, !tbaa !126
  %4268 = getelementptr inbounds %struct.Schema, ptr %4267, i32 0, i32 7
  %4269 = load i8, ptr %4268, align 8, !tbaa !130
  %4270 = load ptr, ptr %3, align 8, !tbaa !5
  %4271 = getelementptr inbounds %struct.Vdbe, ptr %4270, i32 0, i32 30
  store i8 %4269, ptr %4271, align 1, !tbaa !96
  br label %4272

4272:                                             ; preds = %4264, %4246
  br label %4274

4273:                                             ; preds = %4225
  store i32 0, ptr %127, align 4, !tbaa !14
  br label %4274

4274:                                             ; preds = %4273, %4272
  %4275 = load ptr, ptr %5, align 8, !tbaa !5
  %4276 = getelementptr inbounds %struct.VdbeOp, ptr %4275, i32 0, i32 2
  %4277 = load i16, ptr %4276, align 2, !tbaa !45
  %4278 = zext i16 %4277 to i32
  %4279 = and i32 %4278, 16
  %4280 = icmp ne i32 %4279, 0
  br i1 %4280, label %4281, label %4292

4281:                                             ; preds = %4274
  %4282 = load ptr, ptr %13, align 8, !tbaa !5
  %4283 = load i32, ptr %125, align 4, !tbaa !14
  %4284 = sext i32 %4283 to i64
  %4285 = getelementptr inbounds %struct.Mem, ptr %4282, i64 %4284
  store ptr %4285, ptr %15, align 8, !tbaa !5
  %4286 = load ptr, ptr %15, align 8, !tbaa !5
  %4287 = call i32 @sqlite3VdbeMemIntegerify(ptr noundef %4286)
  %4288 = load ptr, ptr %15, align 8, !tbaa !5
  %4289 = getelementptr inbounds %struct.Mem, ptr %4288, i32 0, i32 0
  %4290 = load i64, ptr %4289, align 8, !tbaa !16
  %4291 = trunc i64 %4290 to i32
  store i32 %4291, ptr %125, align 4, !tbaa !14
  br label %4292

4292:                                             ; preds = %4281, %4274
  %4293 = load ptr, ptr %5, align 8, !tbaa !5
  %4294 = getelementptr inbounds %struct.VdbeOp, ptr %4293, i32 0, i32 1
  %4295 = load i8, ptr %4294, align 1, !tbaa !52
  %4296 = sext i8 %4295 to i32
  %4297 = icmp eq i32 %4296, -5
  br i1 %4297, label %4298, label %4311

4298:                                             ; preds = %4292
  %4299 = load ptr, ptr %5, align 8, !tbaa !5
  %4300 = getelementptr inbounds %struct.VdbeOp, ptr %4299, i32 0, i32 6
  %4301 = load ptr, ptr %4300, align 8, !tbaa !16
  store ptr %4301, ptr %124, align 8, !tbaa !5
  %4302 = load ptr, ptr %124, align 8, !tbaa !5
  %4303 = getelementptr inbounds %struct.KeyInfo, ptr %4302, i32 0, i32 2
  %4304 = load i16, ptr %4303, align 2, !tbaa !132
  %4305 = zext i16 %4304 to i32
  %4306 = load ptr, ptr %124, align 8, !tbaa !5
  %4307 = getelementptr inbounds %struct.KeyInfo, ptr %4306, i32 0, i32 3
  %4308 = load i16, ptr %4307, align 8, !tbaa !133
  %4309 = zext i16 %4308 to i32
  %4310 = add nsw i32 %4305, %4309
  store i32 %4310, ptr %123, align 4, !tbaa !14
  br label %4322

4311:                                             ; preds = %4292
  %4312 = load ptr, ptr %5, align 8, !tbaa !5
  %4313 = getelementptr inbounds %struct.VdbeOp, ptr %4312, i32 0, i32 1
  %4314 = load i8, ptr %4313, align 1, !tbaa !52
  %4315 = sext i8 %4314 to i32
  %4316 = icmp eq i32 %4315, -11
  br i1 %4316, label %4317, label %4321

4317:                                             ; preds = %4311
  %4318 = load ptr, ptr %5, align 8, !tbaa !5
  %4319 = getelementptr inbounds %struct.VdbeOp, ptr %4318, i32 0, i32 6
  %4320 = load i32, ptr %4319, align 8, !tbaa !16
  store i32 %4320, ptr %123, align 4, !tbaa !14
  br label %4321

4321:                                             ; preds = %4317, %4311
  br label %4322

4322:                                             ; preds = %4321, %4298
  %4323 = load ptr, ptr %3, align 8, !tbaa !5
  %4324 = load ptr, ptr %5, align 8, !tbaa !5
  %4325 = getelementptr inbounds %struct.VdbeOp, ptr %4324, i32 0, i32 3
  %4326 = load i32, ptr %4325, align 4, !tbaa !35
  %4327 = load i32, ptr %123, align 4, !tbaa !14
  %4328 = load i32, ptr %126, align 4, !tbaa !14
  %4329 = call ptr @allocateCursor(ptr noundef %4323, i32 noundef %4326, i32 noundef %4327, i32 noundef %4328, i8 noundef zeroext 0)
  store ptr %4329, ptr %129, align 8, !tbaa !5
  %4330 = load ptr, ptr %129, align 8, !tbaa !5
  %4331 = icmp eq ptr %4330, null
  br i1 %4331, label %4332, label %4333

4332:                                             ; preds = %4322
  br label %8545

4333:                                             ; preds = %4322
  %4334 = load ptr, ptr %129, align 8, !tbaa !5
  %4335 = getelementptr inbounds %struct.VdbeCursor, ptr %4334, i32 0, i32 2
  store i8 1, ptr %4335, align 2, !tbaa !86
  %4336 = load ptr, ptr %129, align 8, !tbaa !5
  %4337 = getelementptr inbounds %struct.VdbeCursor, ptr %4336, i32 0, i32 5
  %4338 = load i8, ptr %4337, align 1
  %4339 = and i8 %4338, -5
  %4340 = or i8 %4339, 4
  store i8 %4340, ptr %4337, align 1
  %4341 = load i32, ptr %125, align 4, !tbaa !14
  %4342 = load ptr, ptr %129, align 8, !tbaa !5
  %4343 = getelementptr inbounds %struct.VdbeCursor, ptr %4342, i32 0, i32 15
  store i32 %4341, ptr %4343, align 4, !tbaa !131
  %4344 = load ptr, ptr %128, align 8, !tbaa !5
  %4345 = load i32, ptr %125, align 4, !tbaa !14
  %4346 = load i32, ptr %127, align 4, !tbaa !14
  %4347 = load ptr, ptr %124, align 8, !tbaa !5
  %4348 = load ptr, ptr %129, align 8, !tbaa !5
  %4349 = getelementptr inbounds %struct.VdbeCursor, ptr %4348, i32 0, i32 12
  %4350 = load ptr, ptr %4349, align 8, !tbaa !16
  %4351 = call i32 @sqlite3BtreeCursor(ptr noundef %4344, i32 noundef %4345, i32 noundef %4346, ptr noundef %4347, ptr noundef %4350)
  store i32 %4351, ptr %6, align 4, !tbaa !14
  %4352 = load ptr, ptr %124, align 8, !tbaa !5
  %4353 = load ptr, ptr %129, align 8, !tbaa !5
  %4354 = getelementptr inbounds %struct.VdbeCursor, ptr %4353, i32 0, i32 13
  store ptr %4352, ptr %4354, align 8, !tbaa !134
  %4355 = load ptr, ptr %5, align 8, !tbaa !5
  %4356 = getelementptr inbounds %struct.VdbeOp, ptr %4355, i32 0, i32 1
  %4357 = load i8, ptr %4356, align 1, !tbaa !52
  %4358 = sext i8 %4357 to i32
  %4359 = icmp ne i32 %4358, -5
  %4360 = zext i1 %4359 to i32
  %4361 = trunc i32 %4360 to i8
  %4362 = load ptr, ptr %129, align 8, !tbaa !5
  %4363 = getelementptr inbounds %struct.VdbeCursor, ptr %4362, i32 0, i32 4
  store i8 %4361, ptr %4363, align 4, !tbaa !135
  br label %4364

4364:                                             ; preds = %4333, %4215
  %4365 = load ptr, ptr %129, align 8, !tbaa !5
  %4366 = getelementptr inbounds %struct.VdbeCursor, ptr %4365, i32 0, i32 12
  %4367 = load ptr, ptr %4366, align 8, !tbaa !16
  %4368 = load ptr, ptr %5, align 8, !tbaa !5
  %4369 = getelementptr inbounds %struct.VdbeOp, ptr %4368, i32 0, i32 2
  %4370 = load i16, ptr %4369, align 2, !tbaa !45
  %4371 = zext i16 %4370 to i32
  %4372 = and i32 %4371, 3
  call void @sqlite3BtreeCursorHintFlags(ptr noundef %4367, i32 noundef %4372)
  %4373 = load i32, ptr %6, align 4, !tbaa !14
  %4374 = icmp ne i32 %4373, 0
  br i1 %4374, label %4375, label %4376

4375:                                             ; preds = %4364
  br label %8480

4376:                                             ; preds = %4364
  br label %8475

4377:                                             ; preds = %363, %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #5
  %4378 = load ptr, ptr %3, align 8, !tbaa !5
  %4379 = load ptr, ptr %5, align 8, !tbaa !5
  %4380 = getelementptr inbounds %struct.VdbeOp, ptr %4379, i32 0, i32 3
  %4381 = load i32, ptr %4380, align 4, !tbaa !35
  %4382 = load ptr, ptr %5, align 8, !tbaa !5
  %4383 = getelementptr inbounds %struct.VdbeOp, ptr %4382, i32 0, i32 4
  %4384 = load i32, ptr %4383, align 8, !tbaa !33
  %4385 = call ptr @allocateCursor(ptr noundef %4378, i32 noundef %4381, i32 noundef %4384, i32 noundef -1, i8 noundef zeroext 0)
  store ptr %4385, ptr %131, align 8, !tbaa !5
  %4386 = load ptr, ptr %131, align 8, !tbaa !5
  %4387 = icmp eq ptr %4386, null
  br i1 %4387, label %4388, label %4389

4388:                                             ; preds = %4377
  store i32 2, ptr %23, align 4
  br label %4482

4389:                                             ; preds = %4377
  %4390 = load ptr, ptr %131, align 8, !tbaa !5
  %4391 = getelementptr inbounds %struct.VdbeCursor, ptr %4390, i32 0, i32 2
  store i8 1, ptr %4391, align 2, !tbaa !86
  %4392 = load ptr, ptr %131, align 8, !tbaa !5
  %4393 = getelementptr inbounds %struct.VdbeCursor, ptr %4392, i32 0, i32 5
  %4394 = load i8, ptr %4393, align 1
  %4395 = and i8 %4394, -2
  %4396 = or i8 %4395, 1
  store i8 %4396, ptr %4393, align 1
  %4397 = load ptr, ptr %7, align 8, !tbaa !5
  %4398 = getelementptr inbounds %struct.sqlite3, ptr %4397, i32 0, i32 0
  %4399 = load ptr, ptr %4398, align 8, !tbaa !136
  %4400 = load ptr, ptr %7, align 8, !tbaa !5
  %4401 = load ptr, ptr %131, align 8, !tbaa !5
  %4402 = getelementptr inbounds %struct.VdbeCursor, ptr %4401, i32 0, i32 6
  %4403 = load ptr, ptr %5, align 8, !tbaa !5
  %4404 = getelementptr inbounds %struct.VdbeOp, ptr %4403, i32 0, i32 2
  %4405 = load i16, ptr %4404, align 2, !tbaa !45
  %4406 = zext i16 %4405 to i32
  %4407 = or i32 5, %4406
  %4408 = call i32 @sqlite3BtreeOpen(ptr noundef %4399, ptr noundef null, ptr noundef %4400, ptr noundef %4402, i32 noundef %4407, i32 noundef 1054)
  store i32 %4408, ptr %6, align 4, !tbaa !14
  %4409 = load i32, ptr %6, align 4, !tbaa !14
  %4410 = icmp eq i32 %4409, 0
  br i1 %4410, label %4411, label %4416

4411:                                             ; preds = %4389
  %4412 = load ptr, ptr %131, align 8, !tbaa !5
  %4413 = getelementptr inbounds %struct.VdbeCursor, ptr %4412, i32 0, i32 6
  %4414 = load ptr, ptr %4413, align 8, !tbaa !137
  %4415 = call i32 @sqlite3BtreeBeginTrans(ptr noundef %4414, i32 noundef 1)
  store i32 %4415, ptr %6, align 4, !tbaa !14
  br label %4416

4416:                                             ; preds = %4411, %4389
  %4417 = load i32, ptr %6, align 4, !tbaa !14
  %4418 = icmp eq i32 %4417, 0
  br i1 %4418, label %4419, label %4462

4419:                                             ; preds = %4416
  %4420 = load ptr, ptr %5, align 8, !tbaa !5
  %4421 = getelementptr inbounds %struct.VdbeOp, ptr %4420, i32 0, i32 6
  %4422 = load ptr, ptr %4421, align 8, !tbaa !16
  store ptr %4422, ptr %132, align 8, !tbaa !5
  %4423 = load ptr, ptr %131, align 8, !tbaa !5
  %4424 = getelementptr inbounds %struct.VdbeCursor, ptr %4423, i32 0, i32 13
  store ptr %4422, ptr %4424, align 8, !tbaa !134
  %4425 = icmp ne ptr %4422, null
  br i1 %4425, label %4426, label %4451

4426:                                             ; preds = %4419
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #5
  %4427 = load ptr, ptr %131, align 8, !tbaa !5
  %4428 = getelementptr inbounds %struct.VdbeCursor, ptr %4427, i32 0, i32 6
  %4429 = load ptr, ptr %4428, align 8, !tbaa !137
  %4430 = load ptr, ptr %5, align 8, !tbaa !5
  %4431 = getelementptr inbounds %struct.VdbeOp, ptr %4430, i32 0, i32 2
  %4432 = load i16, ptr %4431, align 2, !tbaa !45
  %4433 = zext i16 %4432 to i32
  %4434 = or i32 2, %4433
  %4435 = call i32 @sqlite3BtreeCreateTable(ptr noundef %4429, ptr noundef %133, i32 noundef %4434)
  store i32 %4435, ptr %6, align 4, !tbaa !14
  %4436 = load i32, ptr %6, align 4, !tbaa !14
  %4437 = icmp eq i32 %4436, 0
  br i1 %4437, label %4438, label %4448

4438:                                             ; preds = %4426
  %4439 = load ptr, ptr %131, align 8, !tbaa !5
  %4440 = getelementptr inbounds %struct.VdbeCursor, ptr %4439, i32 0, i32 6
  %4441 = load ptr, ptr %4440, align 8, !tbaa !137
  %4442 = load i32, ptr %133, align 4, !tbaa !14
  %4443 = load ptr, ptr %132, align 8, !tbaa !5
  %4444 = load ptr, ptr %131, align 8, !tbaa !5
  %4445 = getelementptr inbounds %struct.VdbeCursor, ptr %4444, i32 0, i32 12
  %4446 = load ptr, ptr %4445, align 8, !tbaa !16
  %4447 = call i32 @sqlite3BtreeCursor(ptr noundef %4441, i32 noundef %4442, i32 noundef 4, ptr noundef %4443, ptr noundef %4446)
  store i32 %4447, ptr %6, align 4, !tbaa !14
  br label %4448

4448:                                             ; preds = %4438, %4426
  %4449 = load ptr, ptr %131, align 8, !tbaa !5
  %4450 = getelementptr inbounds %struct.VdbeCursor, ptr %4449, i32 0, i32 4
  store i8 0, ptr %4450, align 4, !tbaa !135
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #5
  br label %4461

4451:                                             ; preds = %4419
  %4452 = load ptr, ptr %131, align 8, !tbaa !5
  %4453 = getelementptr inbounds %struct.VdbeCursor, ptr %4452, i32 0, i32 6
  %4454 = load ptr, ptr %4453, align 8, !tbaa !137
  %4455 = load ptr, ptr %131, align 8, !tbaa !5
  %4456 = getelementptr inbounds %struct.VdbeCursor, ptr %4455, i32 0, i32 12
  %4457 = load ptr, ptr %4456, align 8, !tbaa !16
  %4458 = call i32 @sqlite3BtreeCursor(ptr noundef %4454, i32 noundef 1, i32 noundef 4, ptr noundef null, ptr noundef %4457)
  store i32 %4458, ptr %6, align 4, !tbaa !14
  %4459 = load ptr, ptr %131, align 8, !tbaa !5
  %4460 = getelementptr inbounds %struct.VdbeCursor, ptr %4459, i32 0, i32 4
  store i8 1, ptr %4460, align 4, !tbaa !135
  br label %4461

4461:                                             ; preds = %4451, %4448
  br label %4462

4462:                                             ; preds = %4461, %4416
  %4463 = load i32, ptr %6, align 4, !tbaa !14
  %4464 = icmp ne i32 %4463, 0
  br i1 %4464, label %4465, label %4466

4465:                                             ; preds = %4462
  store i32 10, ptr %23, align 4
  br label %4482

4466:                                             ; preds = %4462
  %4467 = load ptr, ptr %5, align 8, !tbaa !5
  %4468 = getelementptr inbounds %struct.VdbeOp, ptr %4467, i32 0, i32 2
  %4469 = load i16, ptr %4468, align 2, !tbaa !45
  %4470 = zext i16 %4469 to i32
  %4471 = icmp ne i32 %4470, 8
  %4472 = zext i1 %4471 to i32
  %4473 = load ptr, ptr %131, align 8, !tbaa !5
  %4474 = getelementptr inbounds %struct.VdbeCursor, ptr %4473, i32 0, i32 5
  %4475 = trunc i32 %4472 to i8
  %4476 = load i8, ptr %4474, align 1
  %4477 = and i8 %4475, 1
  %4478 = shl i8 %4477, 2
  %4479 = and i8 %4476, -5
  %4480 = or i8 %4479, %4478
  store i8 %4480, ptr %4474, align 1
  %4481 = zext i8 %4477 to i32
  store i32 7, ptr %23, align 4
  br label %4482

4482:                                             ; preds = %4466, %4465, %4388
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #5
  %4483 = load i32, ptr %23, align 4
  switch i32 %4483, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 2, label %8545
  ]

4484:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #5
  %4485 = load ptr, ptr %3, align 8, !tbaa !5
  %4486 = load ptr, ptr %5, align 8, !tbaa !5
  %4487 = getelementptr inbounds %struct.VdbeOp, ptr %4486, i32 0, i32 3
  %4488 = load i32, ptr %4487, align 4, !tbaa !35
  %4489 = load ptr, ptr %5, align 8, !tbaa !5
  %4490 = getelementptr inbounds %struct.VdbeOp, ptr %4489, i32 0, i32 4
  %4491 = load i32, ptr %4490, align 8, !tbaa !33
  %4492 = call ptr @allocateCursor(ptr noundef %4485, i32 noundef %4488, i32 noundef %4491, i32 noundef -1, i8 noundef zeroext 1)
  store ptr %4492, ptr %134, align 8, !tbaa !5
  %4493 = load ptr, ptr %134, align 8, !tbaa !5
  %4494 = icmp eq ptr %4493, null
  br i1 %4494, label %4495, label %4496

4495:                                             ; preds = %4484
  store i32 2, ptr %23, align 4
  br label %4512

4496:                                             ; preds = %4484
  %4497 = load ptr, ptr %5, align 8, !tbaa !5
  %4498 = getelementptr inbounds %struct.VdbeOp, ptr %4497, i32 0, i32 6
  %4499 = load ptr, ptr %4498, align 8, !tbaa !16
  %4500 = load ptr, ptr %134, align 8, !tbaa !5
  %4501 = getelementptr inbounds %struct.VdbeCursor, ptr %4500, i32 0, i32 13
  store ptr %4499, ptr %4501, align 8, !tbaa !134
  %4502 = load ptr, ptr %7, align 8, !tbaa !5
  %4503 = load ptr, ptr %5, align 8, !tbaa !5
  %4504 = getelementptr inbounds %struct.VdbeOp, ptr %4503, i32 0, i32 5
  %4505 = load i32, ptr %4504, align 4, !tbaa !38
  %4506 = load ptr, ptr %134, align 8, !tbaa !5
  %4507 = call i32 @sqlite3VdbeSorterInit(ptr noundef %4502, i32 noundef %4505, ptr noundef %4506)
  store i32 %4507, ptr %6, align 4, !tbaa !14
  %4508 = load i32, ptr %6, align 4, !tbaa !14
  %4509 = icmp ne i32 %4508, 0
  br i1 %4509, label %4510, label %4511

4510:                                             ; preds = %4496
  store i32 10, ptr %23, align 4
  br label %4512

4511:                                             ; preds = %4496
  store i32 7, ptr %23, align 4
  br label %4512

4512:                                             ; preds = %4511, %4510, %4495
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #5
  %4513 = load i32, ptr %23, align 4
  switch i32 %4513, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 2, label %8545
  ]

4514:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #5
  %4515 = load ptr, ptr %3, align 8, !tbaa !5
  %4516 = getelementptr inbounds %struct.Vdbe, ptr %4515, i32 0, i32 23
  %4517 = load ptr, ptr %4516, align 8, !tbaa !82
  %4518 = load ptr, ptr %5, align 8, !tbaa !5
  %4519 = getelementptr inbounds %struct.VdbeOp, ptr %4518, i32 0, i32 3
  %4520 = load i32, ptr %4519, align 4, !tbaa !35
  %4521 = sext i32 %4520 to i64
  %4522 = getelementptr inbounds ptr, ptr %4517, i64 %4521
  %4523 = load ptr, ptr %4522, align 8, !tbaa !5
  store ptr %4523, ptr %135, align 8, !tbaa !5
  %4524 = load ptr, ptr %135, align 8, !tbaa !5
  %4525 = getelementptr inbounds %struct.VdbeCursor, ptr %4524, i32 0, i32 7
  %4526 = load i64, ptr %4525, align 8, !tbaa !138
  %4527 = add nsw i64 %4526, 1
  store i64 %4527, ptr %4525, align 8, !tbaa !138
  %4528 = icmp eq i64 %4526, 0
  br i1 %4528, label %4529, label %4530

4529:                                             ; preds = %4514
  store i32 11, ptr %23, align 4
  br label %4531

4530:                                             ; preds = %4514
  store i32 7, ptr %23, align 4
  br label %4531

4531:                                             ; preds = %4530, %4529
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #5
  %4532 = load i32, ptr %23, align 4
  switch i32 %4532, label %8564 [
    i32 11, label %436
    i32 7, label %8475
  ]

4533:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #5
  %4534 = load ptr, ptr %3, align 8, !tbaa !5
  %4535 = load ptr, ptr %5, align 8, !tbaa !5
  %4536 = getelementptr inbounds %struct.VdbeOp, ptr %4535, i32 0, i32 3
  %4537 = load i32, ptr %4536, align 4, !tbaa !35
  %4538 = load ptr, ptr %5, align 8, !tbaa !5
  %4539 = getelementptr inbounds %struct.VdbeOp, ptr %4538, i32 0, i32 5
  %4540 = load i32, ptr %4539, align 4, !tbaa !38
  %4541 = call ptr @allocateCursor(ptr noundef %4534, i32 noundef %4537, i32 noundef %4540, i32 noundef -1, i8 noundef zeroext 3)
  store ptr %4541, ptr %136, align 8, !tbaa !5
  %4542 = load ptr, ptr %136, align 8, !tbaa !5
  %4543 = icmp eq ptr %4542, null
  br i1 %4543, label %4544, label %4545

4544:                                             ; preds = %4533
  store i32 2, ptr %23, align 4
  br label %4555

4545:                                             ; preds = %4533
  %4546 = load ptr, ptr %136, align 8, !tbaa !5
  %4547 = getelementptr inbounds %struct.VdbeCursor, ptr %4546, i32 0, i32 2
  store i8 1, ptr %4547, align 2, !tbaa !86
  %4548 = load ptr, ptr %5, align 8, !tbaa !5
  %4549 = getelementptr inbounds %struct.VdbeOp, ptr %4548, i32 0, i32 4
  %4550 = load i32, ptr %4549, align 8, !tbaa !33
  %4551 = load ptr, ptr %136, align 8, !tbaa !5
  %4552 = getelementptr inbounds %struct.VdbeCursor, ptr %4551, i32 0, i32 12
  store i32 %4550, ptr %4552, align 8, !tbaa !16
  %4553 = load ptr, ptr %136, align 8, !tbaa !5
  %4554 = getelementptr inbounds %struct.VdbeCursor, ptr %4553, i32 0, i32 4
  store i8 1, ptr %4554, align 4, !tbaa !135
  store i32 7, ptr %23, align 4
  br label %4555

4555:                                             ; preds = %4545, %4544
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #5
  %4556 = load i32, ptr %23, align 4
  switch i32 %4556, label %8562 [
    i32 7, label %8475
    i32 2, label %8545
  ]

4557:                                             ; preds = %363
  %4558 = load ptr, ptr %3, align 8, !tbaa !5
  %4559 = load ptr, ptr %3, align 8, !tbaa !5
  %4560 = getelementptr inbounds %struct.Vdbe, ptr %4559, i32 0, i32 23
  %4561 = load ptr, ptr %4560, align 8, !tbaa !82
  %4562 = load ptr, ptr %5, align 8, !tbaa !5
  %4563 = getelementptr inbounds %struct.VdbeOp, ptr %4562, i32 0, i32 3
  %4564 = load i32, ptr %4563, align 4, !tbaa !35
  %4565 = sext i32 %4564 to i64
  %4566 = getelementptr inbounds ptr, ptr %4561, i64 %4565
  %4567 = load ptr, ptr %4566, align 8, !tbaa !5
  call void @sqlite3VdbeFreeCursor(ptr noundef %4558, ptr noundef %4567)
  %4568 = load ptr, ptr %3, align 8, !tbaa !5
  %4569 = getelementptr inbounds %struct.Vdbe, ptr %4568, i32 0, i32 23
  %4570 = load ptr, ptr %4569, align 8, !tbaa !82
  %4571 = load ptr, ptr %5, align 8, !tbaa !5
  %4572 = getelementptr inbounds %struct.VdbeOp, ptr %4571, i32 0, i32 3
  %4573 = load i32, ptr %4572, align 4, !tbaa !35
  %4574 = sext i32 %4573 to i64
  %4575 = getelementptr inbounds ptr, ptr %4570, i64 %4574
  store ptr null, ptr %4575, align 8, !tbaa !5
  br label %8475

4576:                                             ; preds = %363, %363, %363, %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %140) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #5
  %4577 = load ptr, ptr %3, align 8, !tbaa !5
  %4578 = getelementptr inbounds %struct.Vdbe, ptr %4577, i32 0, i32 23
  %4579 = load ptr, ptr %4578, align 8, !tbaa !82
  %4580 = load ptr, ptr %5, align 8, !tbaa !5
  %4581 = getelementptr inbounds %struct.VdbeOp, ptr %4580, i32 0, i32 3
  %4582 = load i32, ptr %4581, align 4, !tbaa !35
  %4583 = sext i32 %4582 to i64
  %4584 = getelementptr inbounds ptr, ptr %4579, i64 %4583
  %4585 = load ptr, ptr %4584, align 8, !tbaa !5
  store ptr %4585, ptr %139, align 8, !tbaa !5
  %4586 = load ptr, ptr %5, align 8, !tbaa !5
  %4587 = getelementptr inbounds %struct.VdbeOp, ptr %4586, i32 0, i32 0
  %4588 = load i8, ptr %4587, align 8, !tbaa !31
  %4589 = zext i8 %4588 to i32
  store i32 %4589, ptr %138, align 4, !tbaa !14
  store i32 0, ptr %143, align 4, !tbaa !14
  %4590 = load ptr, ptr %139, align 8, !tbaa !5
  %4591 = getelementptr inbounds %struct.VdbeCursor, ptr %4590, i32 0, i32 2
  store i8 0, ptr %4591, align 2, !tbaa !86
  %4592 = load ptr, ptr %139, align 8, !tbaa !5
  %4593 = getelementptr inbounds %struct.VdbeCursor, ptr %4592, i32 0, i32 4
  %4594 = load i8, ptr %4593, align 4, !tbaa !135
  %4595 = icmp ne i8 %4594, 0
  br i1 %4595, label %4596, label %4673

4596:                                             ; preds = %4576
  %4597 = load ptr, ptr %13, align 8, !tbaa !5
  %4598 = load ptr, ptr %5, align 8, !tbaa !5
  %4599 = getelementptr inbounds %struct.VdbeOp, ptr %4598, i32 0, i32 5
  %4600 = load i32, ptr %4599, align 4, !tbaa !38
  %4601 = sext i32 %4600 to i64
  %4602 = getelementptr inbounds %struct.Mem, ptr %4597, i64 %4601
  store ptr %4602, ptr %16, align 8, !tbaa !5
  %4603 = load ptr, ptr %16, align 8, !tbaa !5
  %4604 = getelementptr inbounds %struct.Mem, ptr %4603, i32 0, i32 1
  %4605 = load i16, ptr %4604, align 8, !tbaa !36
  %4606 = zext i16 %4605 to i32
  %4607 = and i32 %4606, 14
  %4608 = icmp eq i32 %4607, 2
  br i1 %4608, label %4609, label %4611

4609:                                             ; preds = %4596
  %4610 = load ptr, ptr %16, align 8, !tbaa !5
  call void @applyNumericAffinity(ptr noundef %4610, i32 noundef 0)
  br label %4611

4611:                                             ; preds = %4609, %4596
  %4612 = load ptr, ptr %16, align 8, !tbaa !5
  %4613 = call i64 @sqlite3VdbeIntValue(ptr noundef %4612)
  store i64 %4613, ptr %142, align 8, !tbaa !48
  %4614 = load ptr, ptr %16, align 8, !tbaa !5
  %4615 = getelementptr inbounds %struct.Mem, ptr %4614, i32 0, i32 1
  %4616 = load i16, ptr %4615, align 8, !tbaa !36
  %4617 = zext i16 %4616 to i32
  %4618 = and i32 %4617, 4
  %4619 = icmp eq i32 %4618, 0
  br i1 %4619, label %4620, label %4660

4620:                                             ; preds = %4611
  %4621 = load ptr, ptr %16, align 8, !tbaa !5
  %4622 = getelementptr inbounds %struct.Mem, ptr %4621, i32 0, i32 1
  %4623 = load i16, ptr %4622, align 8, !tbaa !36
  %4624 = zext i16 %4623 to i32
  %4625 = and i32 %4624, 8
  %4626 = icmp eq i32 %4625, 0
  br i1 %4626, label %4627, label %4628

4627:                                             ; preds = %4620
  store i32 11, ptr %23, align 4
  br label %4788

4628:                                             ; preds = %4620
  %4629 = load ptr, ptr %16, align 8, !tbaa !5
  %4630 = getelementptr inbounds %struct.Mem, ptr %4629, i32 0, i32 0
  %4631 = load double, ptr %4630, align 8, !tbaa !16
  %4632 = load i64, ptr %142, align 8, !tbaa !48
  %4633 = sitofp i64 %4632 to double
  %4634 = fcmp olt double %4631, %4633
  br i1 %4634, label %4635, label %4643

4635:                                             ; preds = %4628
  %4636 = load i32, ptr %138, align 4, !tbaa !14
  %4637 = and i32 %4636, 1
  %4638 = icmp eq i32 %4637, 0
  br i1 %4638, label %4639, label %4642

4639:                                             ; preds = %4635
  %4640 = load i32, ptr %138, align 4, !tbaa !14
  %4641 = add nsw i32 %4640, -1
  store i32 %4641, ptr %138, align 4, !tbaa !14
  br label %4642

4642:                                             ; preds = %4639, %4635
  br label %4659

4643:                                             ; preds = %4628
  %4644 = load ptr, ptr %16, align 8, !tbaa !5
  %4645 = getelementptr inbounds %struct.Mem, ptr %4644, i32 0, i32 0
  %4646 = load double, ptr %4645, align 8, !tbaa !16
  %4647 = load i64, ptr %142, align 8, !tbaa !48
  %4648 = sitofp i64 %4647 to double
  %4649 = fcmp ogt double %4646, %4648
  br i1 %4649, label %4650, label %4658

4650:                                             ; preds = %4643
  %4651 = load i32, ptr %138, align 4, !tbaa !14
  %4652 = and i32 %4651, 1
  %4653 = icmp eq i32 %4652, 1
  br i1 %4653, label %4654, label %4657

4654:                                             ; preds = %4650
  %4655 = load i32, ptr %138, align 4, !tbaa !14
  %4656 = add nsw i32 %4655, 1
  store i32 %4656, ptr %138, align 4, !tbaa !14
  br label %4657

4657:                                             ; preds = %4654, %4650
  br label %4658

4658:                                             ; preds = %4657, %4643
  br label %4659

4659:                                             ; preds = %4658, %4642
  br label %4660

4660:                                             ; preds = %4659, %4611
  %4661 = load ptr, ptr %139, align 8, !tbaa !5
  %4662 = getelementptr inbounds %struct.VdbeCursor, ptr %4661, i32 0, i32 12
  %4663 = load ptr, ptr %4662, align 8, !tbaa !16
  %4664 = load i64, ptr %142, align 8, !tbaa !48
  %4665 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %4663, ptr noundef null, i64 noundef %4664, i32 noundef 0, ptr noundef %137)
  store i32 %4665, ptr %6, align 4, !tbaa !14
  %4666 = load i64, ptr %142, align 8, !tbaa !48
  %4667 = load ptr, ptr %139, align 8, !tbaa !5
  %4668 = getelementptr inbounds %struct.VdbeCursor, ptr %4667, i32 0, i32 18
  store i64 %4666, ptr %4668, align 8, !tbaa !139
  %4669 = load i32, ptr %6, align 4, !tbaa !14
  %4670 = icmp ne i32 %4669, 0
  br i1 %4670, label %4671, label %4672

4671:                                             ; preds = %4660
  store i32 10, ptr %23, align 4
  br label %4788

4672:                                             ; preds = %4660
  br label %4724

4673:                                             ; preds = %4576
  %4674 = load ptr, ptr %139, align 8, !tbaa !5
  %4675 = getelementptr inbounds %struct.VdbeCursor, ptr %4674, i32 0, i32 12
  %4676 = load ptr, ptr %4675, align 8, !tbaa !16
  %4677 = call i32 @sqlite3BtreeCursorHasHint(ptr noundef %4676, i32 noundef 2)
  %4678 = icmp ne i32 %4677, 0
  br i1 %4678, label %4679, label %4680

4679:                                             ; preds = %4673
  store i32 1, ptr %143, align 4, !tbaa !14
  br label %4680

4680:                                             ; preds = %4679, %4673
  %4681 = load ptr, ptr %5, align 8, !tbaa !5
  %4682 = getelementptr inbounds %struct.VdbeOp, ptr %4681, i32 0, i32 6
  %4683 = load i32, ptr %4682, align 8, !tbaa !16
  store i32 %4683, ptr %141, align 4, !tbaa !14
  %4684 = load ptr, ptr %139, align 8, !tbaa !5
  %4685 = getelementptr inbounds %struct.VdbeCursor, ptr %4684, i32 0, i32 13
  %4686 = load ptr, ptr %4685, align 8, !tbaa !134
  %4687 = getelementptr inbounds %struct.UnpackedRecord, ptr %140, i32 0, i32 0
  store ptr %4686, ptr %4687, align 8, !tbaa !140
  %4688 = load i32, ptr %141, align 4, !tbaa !14
  %4689 = trunc i32 %4688 to i16
  %4690 = getelementptr inbounds %struct.UnpackedRecord, ptr %140, i32 0, i32 2
  store i16 %4689, ptr %4690, align 8, !tbaa !142
  %4691 = load i32, ptr %138, align 4, !tbaa !14
  %4692 = sub nsw i32 %4691, 23
  %4693 = and i32 1, %4692
  %4694 = icmp ne i32 %4693, 0
  %4695 = zext i1 %4694 to i64
  %4696 = select i1 %4694, i32 -1, i32 1
  %4697 = trunc i32 %4696 to i8
  %4698 = getelementptr inbounds %struct.UnpackedRecord, ptr %140, i32 0, i32 3
  store i8 %4697, ptr %4698, align 2, !tbaa !143
  %4699 = load ptr, ptr %13, align 8, !tbaa !5
  %4700 = load ptr, ptr %5, align 8, !tbaa !5
  %4701 = getelementptr inbounds %struct.VdbeOp, ptr %4700, i32 0, i32 5
  %4702 = load i32, ptr %4701, align 4, !tbaa !38
  %4703 = sext i32 %4702 to i64
  %4704 = getelementptr inbounds %struct.Mem, ptr %4699, i64 %4703
  %4705 = getelementptr inbounds %struct.UnpackedRecord, ptr %140, i32 0, i32 1
  store ptr %4704, ptr %4705, align 8, !tbaa !144
  %4706 = getelementptr inbounds %struct.UnpackedRecord, ptr %140, i32 0, i32 7
  store i8 0, ptr %4706, align 2, !tbaa !145
  %4707 = load ptr, ptr %139, align 8, !tbaa !5
  %4708 = getelementptr inbounds %struct.VdbeCursor, ptr %4707, i32 0, i32 12
  %4709 = load ptr, ptr %4708, align 8, !tbaa !16
  %4710 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %4709, ptr noundef %140, i64 noundef 0, i32 noundef 0, ptr noundef %137)
  store i32 %4710, ptr %6, align 4, !tbaa !14
  %4711 = load i32, ptr %6, align 4, !tbaa !14
  %4712 = icmp ne i32 %4711, 0
  br i1 %4712, label %4713, label %4714

4713:                                             ; preds = %4680
  store i32 10, ptr %23, align 4
  br label %4788

4714:                                             ; preds = %4680
  %4715 = load i32, ptr %143, align 4, !tbaa !14
  %4716 = icmp ne i32 %4715, 0
  br i1 %4716, label %4717, label %4723

4717:                                             ; preds = %4714
  %4718 = getelementptr inbounds %struct.UnpackedRecord, ptr %140, i32 0, i32 7
  %4719 = load i8, ptr %4718, align 2, !tbaa !145
  %4720 = zext i8 %4719 to i32
  %4721 = icmp eq i32 %4720, 0
  br i1 %4721, label %4722, label %4723

4722:                                             ; preds = %4717
  br label %4776

4723:                                             ; preds = %4717, %4714
  br label %4724

4724:                                             ; preds = %4723, %4672
  %4725 = load ptr, ptr %139, align 8, !tbaa !5
  %4726 = getelementptr inbounds %struct.VdbeCursor, ptr %4725, i32 0, i32 3
  store i8 0, ptr %4726, align 1, !tbaa !146
  %4727 = load ptr, ptr %139, align 8, !tbaa !5
  %4728 = getelementptr inbounds %struct.VdbeCursor, ptr %4727, i32 0, i32 9
  store i32 0, ptr %4728, align 8, !tbaa !85
  %4729 = load i32, ptr %138, align 4, !tbaa !14
  %4730 = icmp sge i32 %4729, 25
  br i1 %4730, label %4731, label %4751

4731:                                             ; preds = %4724
  %4732 = load i32, ptr %137, align 4, !tbaa !14
  %4733 = icmp slt i32 %4732, 0
  br i1 %4733, label %4740, label %4734

4734:                                             ; preds = %4731
  %4735 = load i32, ptr %137, align 4, !tbaa !14
  %4736 = icmp eq i32 %4735, 0
  br i1 %4736, label %4737, label %4749

4737:                                             ; preds = %4734
  %4738 = load i32, ptr %138, align 4, !tbaa !14
  %4739 = icmp eq i32 %4738, 26
  br i1 %4739, label %4740, label %4749

4740:                                             ; preds = %4737, %4731
  store i32 0, ptr %137, align 4, !tbaa !14
  %4741 = load ptr, ptr %139, align 8, !tbaa !5
  %4742 = getelementptr inbounds %struct.VdbeCursor, ptr %4741, i32 0, i32 12
  %4743 = load ptr, ptr %4742, align 8, !tbaa !16
  %4744 = call i32 @sqlite3BtreeNext(ptr noundef %4743, ptr noundef %137)
  store i32 %4744, ptr %6, align 4, !tbaa !14
  %4745 = load i32, ptr %6, align 4, !tbaa !14
  %4746 = icmp ne i32 %4745, 0
  br i1 %4746, label %4747, label %4748

4747:                                             ; preds = %4740
  store i32 10, ptr %23, align 4
  br label %4788

4748:                                             ; preds = %4740
  br label %4750

4749:                                             ; preds = %4737, %4734
  store i32 0, ptr %137, align 4, !tbaa !14
  br label %4750

4750:                                             ; preds = %4749, %4748
  br label %4775

4751:                                             ; preds = %4724
  %4752 = load i32, ptr %137, align 4, !tbaa !14
  %4753 = icmp sgt i32 %4752, 0
  br i1 %4753, label %4760, label %4754

4754:                                             ; preds = %4751
  %4755 = load i32, ptr %137, align 4, !tbaa !14
  %4756 = icmp eq i32 %4755, 0
  br i1 %4756, label %4757, label %4769

4757:                                             ; preds = %4754
  %4758 = load i32, ptr %138, align 4, !tbaa !14
  %4759 = icmp eq i32 %4758, 23
  br i1 %4759, label %4760, label %4769

4760:                                             ; preds = %4757, %4751
  store i32 0, ptr %137, align 4, !tbaa !14
  %4761 = load ptr, ptr %139, align 8, !tbaa !5
  %4762 = getelementptr inbounds %struct.VdbeCursor, ptr %4761, i32 0, i32 12
  %4763 = load ptr, ptr %4762, align 8, !tbaa !16
  %4764 = call i32 @sqlite3BtreePrevious(ptr noundef %4763, ptr noundef %137)
  store i32 %4764, ptr %6, align 4, !tbaa !14
  %4765 = load i32, ptr %6, align 4, !tbaa !14
  %4766 = icmp ne i32 %4765, 0
  br i1 %4766, label %4767, label %4768

4767:                                             ; preds = %4760
  store i32 10, ptr %23, align 4
  br label %4788

4768:                                             ; preds = %4760
  br label %4774

4769:                                             ; preds = %4757, %4754
  %4770 = load ptr, ptr %139, align 8, !tbaa !5
  %4771 = getelementptr inbounds %struct.VdbeCursor, ptr %4770, i32 0, i32 12
  %4772 = load ptr, ptr %4771, align 8, !tbaa !16
  %4773 = call i32 @sqlite3BtreeEof(ptr noundef %4772)
  store i32 %4773, ptr %137, align 4, !tbaa !14
  br label %4774

4774:                                             ; preds = %4769, %4768
  br label %4775

4775:                                             ; preds = %4774, %4750
  br label %4776

4776:                                             ; preds = %4775, %4722
  %4777 = load i32, ptr %137, align 4, !tbaa !14
  %4778 = icmp ne i32 %4777, 0
  br i1 %4778, label %4779, label %4780

4779:                                             ; preds = %4776
  store i32 11, ptr %23, align 4
  br label %4788

4780:                                             ; preds = %4776
  %4781 = load i32, ptr %143, align 4, !tbaa !14
  %4782 = icmp ne i32 %4781, 0
  br i1 %4782, label %4783, label %4786

4783:                                             ; preds = %4780
  %4784 = load ptr, ptr %5, align 8, !tbaa !5
  %4785 = getelementptr inbounds %struct.VdbeOp, ptr %4784, i32 1
  store ptr %4785, ptr %5, align 8, !tbaa !5
  br label %4786

4786:                                             ; preds = %4783, %4780
  br label %4787

4787:                                             ; preds = %4786
  store i32 7, ptr %23, align 4
  br label %4788

4788:                                             ; preds = %4787, %4779, %4767, %4747, %4713, %4671, %4627
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %140) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #5
  %4789 = load i32, ptr %23, align 4
  switch i32 %4789, label %8562 [
    i32 11, label %436
    i32 7, label %8475
    i32 10, label %8480
  ]

4790:                                             ; preds = %363, %363, %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %151) #5
  %4791 = load ptr, ptr %3, align 8, !tbaa !5
  %4792 = getelementptr inbounds %struct.Vdbe, ptr %4791, i32 0, i32 23
  %4793 = load ptr, ptr %4792, align 8, !tbaa !82
  %4794 = load ptr, ptr %5, align 8, !tbaa !5
  %4795 = getelementptr inbounds %struct.VdbeOp, ptr %4794, i32 0, i32 3
  %4796 = load i32, ptr %4795, align 4, !tbaa !35
  %4797 = sext i32 %4796 to i64
  %4798 = getelementptr inbounds ptr, ptr %4793, i64 %4797
  %4799 = load ptr, ptr %4798, align 8, !tbaa !5
  store ptr %4799, ptr %147, align 8, !tbaa !5
  %4800 = load ptr, ptr %13, align 8, !tbaa !5
  %4801 = load ptr, ptr %5, align 8, !tbaa !5
  %4802 = getelementptr inbounds %struct.VdbeOp, ptr %4801, i32 0, i32 5
  %4803 = load i32, ptr %4802, align 4, !tbaa !38
  %4804 = sext i32 %4803 to i64
  %4805 = getelementptr inbounds %struct.Mem, ptr %4800, i64 %4804
  store ptr %4805, ptr %16, align 8, !tbaa !5
  %4806 = load ptr, ptr %5, align 8, !tbaa !5
  %4807 = getelementptr inbounds %struct.VdbeOp, ptr %4806, i32 0, i32 6
  %4808 = load i32, ptr %4807, align 8, !tbaa !16
  %4809 = icmp sgt i32 %4808, 0
  br i1 %4809, label %4810, label %4822

4810:                                             ; preds = %4790
  %4811 = load ptr, ptr %147, align 8, !tbaa !5
  %4812 = getelementptr inbounds %struct.VdbeCursor, ptr %4811, i32 0, i32 13
  %4813 = load ptr, ptr %4812, align 8, !tbaa !134
  %4814 = getelementptr inbounds %struct.UnpackedRecord, ptr %151, i32 0, i32 0
  store ptr %4813, ptr %4814, align 8, !tbaa !140
  %4815 = load ptr, ptr %5, align 8, !tbaa !5
  %4816 = getelementptr inbounds %struct.VdbeOp, ptr %4815, i32 0, i32 6
  %4817 = load i32, ptr %4816, align 8, !tbaa !16
  %4818 = trunc i32 %4817 to i16
  %4819 = getelementptr inbounds %struct.UnpackedRecord, ptr %151, i32 0, i32 2
  store i16 %4818, ptr %4819, align 8, !tbaa !142
  %4820 = load ptr, ptr %16, align 8, !tbaa !5
  %4821 = getelementptr inbounds %struct.UnpackedRecord, ptr %151, i32 0, i32 1
  store ptr %4820, ptr %4821, align 8, !tbaa !144
  store ptr %151, ptr %150, align 8, !tbaa !5
  store ptr null, ptr %149, align 8, !tbaa !5
  br label %4853

4822:                                             ; preds = %4790
  %4823 = load ptr, ptr %147, align 8, !tbaa !5
  %4824 = getelementptr inbounds %struct.VdbeCursor, ptr %4823, i32 0, i32 13
  %4825 = load ptr, ptr %4824, align 8, !tbaa !134
  %4826 = call ptr @sqlite3VdbeAllocUnpackedRecord(ptr noundef %4825)
  store ptr %4826, ptr %150, align 8, !tbaa !5
  store ptr %4826, ptr %149, align 8, !tbaa !5
  %4827 = load ptr, ptr %150, align 8, !tbaa !5
  %4828 = icmp eq ptr %4827, null
  br i1 %4828, label %4829, label %4830

4829:                                             ; preds = %4822
  store i32 2, ptr %23, align 4
  br label %4937

4830:                                             ; preds = %4822
  %4831 = load ptr, ptr %16, align 8, !tbaa !5
  %4832 = getelementptr inbounds %struct.Mem, ptr %4831, i32 0, i32 1
  %4833 = load i16, ptr %4832, align 8, !tbaa !36
  %4834 = zext i16 %4833 to i32
  %4835 = and i32 %4834, 16384
  %4836 = icmp ne i32 %4835, 0
  br i1 %4836, label %4837, label %4840

4837:                                             ; preds = %4830
  %4838 = load ptr, ptr %16, align 8, !tbaa !5
  %4839 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef %4838)
  br label %4841

4840:                                             ; preds = %4830
  br label %4841

4841:                                             ; preds = %4840, %4837
  %4842 = phi i32 [ %4839, %4837 ], [ 0, %4840 ]
  %4843 = load ptr, ptr %147, align 8, !tbaa !5
  %4844 = getelementptr inbounds %struct.VdbeCursor, ptr %4843, i32 0, i32 13
  %4845 = load ptr, ptr %4844, align 8, !tbaa !134
  %4846 = load ptr, ptr %16, align 8, !tbaa !5
  %4847 = getelementptr inbounds %struct.Mem, ptr %4846, i32 0, i32 4
  %4848 = load i32, ptr %4847, align 4, !tbaa !54
  %4849 = load ptr, ptr %16, align 8, !tbaa !5
  %4850 = getelementptr inbounds %struct.Mem, ptr %4849, i32 0, i32 5
  %4851 = load ptr, ptr %4850, align 8, !tbaa !53
  %4852 = load ptr, ptr %150, align 8, !tbaa !5
  call void @sqlite3VdbeRecordUnpack(ptr noundef %4845, i32 noundef %4848, ptr noundef %4851, ptr noundef %4852)
  br label %4853

4853:                                             ; preds = %4841, %4810
  %4854 = load ptr, ptr %150, align 8, !tbaa !5
  %4855 = getelementptr inbounds %struct.UnpackedRecord, ptr %4854, i32 0, i32 3
  store i8 0, ptr %4855, align 2, !tbaa !143
  store i32 0, ptr %145, align 4, !tbaa !14
  %4856 = load ptr, ptr %5, align 8, !tbaa !5
  %4857 = getelementptr inbounds %struct.VdbeOp, ptr %4856, i32 0, i32 0
  %4858 = load i8, ptr %4857, align 8, !tbaa !31
  %4859 = zext i8 %4858 to i32
  %4860 = icmp eq i32 %4859, 29
  br i1 %4860, label %4861, label %4887

4861:                                             ; preds = %4853
  store i32 0, ptr %146, align 4, !tbaa !14
  br label %4862

4862:                                             ; preds = %4883, %4861
  %4863 = load i32, ptr %146, align 4, !tbaa !14
  %4864 = load ptr, ptr %150, align 8, !tbaa !5
  %4865 = getelementptr inbounds %struct.UnpackedRecord, ptr %4864, i32 0, i32 2
  %4866 = load i16, ptr %4865, align 8, !tbaa !142
  %4867 = zext i16 %4866 to i32
  %4868 = icmp slt i32 %4863, %4867
  br i1 %4868, label %4869, label %4886

4869:                                             ; preds = %4862
  %4870 = load ptr, ptr %150, align 8, !tbaa !5
  %4871 = getelementptr inbounds %struct.UnpackedRecord, ptr %4870, i32 0, i32 1
  %4872 = load ptr, ptr %4871, align 8, !tbaa !144
  %4873 = load i32, ptr %146, align 4, !tbaa !14
  %4874 = sext i32 %4873 to i64
  %4875 = getelementptr inbounds %struct.Mem, ptr %4872, i64 %4874
  %4876 = getelementptr inbounds %struct.Mem, ptr %4875, i32 0, i32 1
  %4877 = load i16, ptr %4876, align 8, !tbaa !36
  %4878 = zext i16 %4877 to i32
  %4879 = and i32 %4878, 1
  %4880 = icmp ne i32 %4879, 0
  br i1 %4880, label %4881, label %4882

4881:                                             ; preds = %4869
  store i32 1, ptr %145, align 4, !tbaa !14
  br label %4886

4882:                                             ; preds = %4869
  br label %4883

4883:                                             ; preds = %4882
  %4884 = load i32, ptr %146, align 4, !tbaa !14
  %4885 = add nsw i32 %4884, 1
  store i32 %4885, ptr %146, align 4, !tbaa !14
  br label %4862, !llvm.loop !147

4886:                                             ; preds = %4881, %4862
  br label %4887

4887:                                             ; preds = %4886, %4853
  %4888 = load ptr, ptr %147, align 8, !tbaa !5
  %4889 = getelementptr inbounds %struct.VdbeCursor, ptr %4888, i32 0, i32 12
  %4890 = load ptr, ptr %4889, align 8, !tbaa !16
  %4891 = load ptr, ptr %150, align 8, !tbaa !5
  %4892 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %4890, ptr noundef %4891, i64 noundef 0, i32 noundef 0, ptr noundef %148)
  store i32 %4892, ptr %6, align 4, !tbaa !14
  %4893 = load ptr, ptr %149, align 8, !tbaa !5
  %4894 = icmp ne ptr %4893, null
  br i1 %4894, label %4895, label %4898

4895:                                             ; preds = %4887
  %4896 = load ptr, ptr %7, align 8, !tbaa !5
  %4897 = load ptr, ptr %149, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %4896, ptr noundef %4897)
  br label %4898

4898:                                             ; preds = %4895, %4887
  %4899 = load i32, ptr %6, align 4, !tbaa !14
  %4900 = icmp ne i32 %4899, 0
  br i1 %4900, label %4901, label %4902

4901:                                             ; preds = %4898
  store i32 10, ptr %23, align 4
  br label %4937

4902:                                             ; preds = %4898
  %4903 = load i32, ptr %148, align 4, !tbaa !14
  %4904 = load ptr, ptr %147, align 8, !tbaa !5
  %4905 = getelementptr inbounds %struct.VdbeCursor, ptr %4904, i32 0, i32 10
  store i32 %4903, ptr %4905, align 4, !tbaa !148
  %4906 = load i32, ptr %148, align 4, !tbaa !14
  %4907 = icmp eq i32 %4906, 0
  %4908 = zext i1 %4907 to i32
  store i32 %4908, ptr %144, align 4, !tbaa !14
  %4909 = load i32, ptr %144, align 4, !tbaa !14
  %4910 = sub nsw i32 1, %4909
  %4911 = trunc i32 %4910 to i8
  %4912 = load ptr, ptr %147, align 8, !tbaa !5
  %4913 = getelementptr inbounds %struct.VdbeCursor, ptr %4912, i32 0, i32 2
  store i8 %4911, ptr %4913, align 2, !tbaa !86
  %4914 = load ptr, ptr %147, align 8, !tbaa !5
  %4915 = getelementptr inbounds %struct.VdbeCursor, ptr %4914, i32 0, i32 3
  store i8 0, ptr %4915, align 1, !tbaa !146
  %4916 = load ptr, ptr %147, align 8, !tbaa !5
  %4917 = getelementptr inbounds %struct.VdbeCursor, ptr %4916, i32 0, i32 9
  store i32 0, ptr %4917, align 8, !tbaa !85
  %4918 = load ptr, ptr %5, align 8, !tbaa !5
  %4919 = getelementptr inbounds %struct.VdbeOp, ptr %4918, i32 0, i32 0
  %4920 = load i8, ptr %4919, align 8, !tbaa !31
  %4921 = zext i8 %4920 to i32
  %4922 = icmp eq i32 %4921, 31
  br i1 %4922, label %4923, label %4928

4923:                                             ; preds = %4902
  %4924 = load i32, ptr %144, align 4, !tbaa !14
  %4925 = icmp ne i32 %4924, 0
  br i1 %4925, label %4926, label %4927

4926:                                             ; preds = %4923
  store i32 11, ptr %23, align 4
  br label %4937

4927:                                             ; preds = %4923
  br label %4936

4928:                                             ; preds = %4902
  %4929 = load i32, ptr %145, align 4, !tbaa !14
  %4930 = icmp ne i32 %4929, 0
  br i1 %4930, label %4934, label %4931

4931:                                             ; preds = %4928
  %4932 = load i32, ptr %144, align 4, !tbaa !14
  %4933 = icmp ne i32 %4932, 0
  br i1 %4933, label %4935, label %4934

4934:                                             ; preds = %4931, %4928
  store i32 11, ptr %23, align 4
  br label %4937

4935:                                             ; preds = %4931
  br label %4936

4936:                                             ; preds = %4935, %4927
  store i32 7, ptr %23, align 4
  br label %4937

4937:                                             ; preds = %4936, %4934, %4926, %4901, %4829
  call void @llvm.lifetime.end.p0(i64 24, ptr %151) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #5
  %4938 = load i32, ptr %23, align 4
  switch i32 %4938, label %8562 [
    i32 11, label %436
    i32 7, label %8475
    i32 10, label %8480
    i32 2, label %8545
  ]

4939:                                             ; preds = %363
  %4940 = load ptr, ptr %13, align 8, !tbaa !5
  %4941 = load ptr, ptr %5, align 8, !tbaa !5
  %4942 = getelementptr inbounds %struct.VdbeOp, ptr %4941, i32 0, i32 5
  %4943 = load i32, ptr %4942, align 4, !tbaa !38
  %4944 = sext i32 %4943 to i64
  %4945 = getelementptr inbounds %struct.Mem, ptr %4940, i64 %4944
  store ptr %4945, ptr %16, align 8, !tbaa !5
  %4946 = load ptr, ptr %16, align 8, !tbaa !5
  %4947 = getelementptr inbounds %struct.Mem, ptr %4946, i32 0, i32 1
  %4948 = load i16, ptr %4947, align 8, !tbaa !36
  %4949 = zext i16 %4948 to i32
  %4950 = and i32 %4949, 4
  %4951 = icmp eq i32 %4950, 0
  br i1 %4951, label %4952, label %4963

4952:                                             ; preds = %4939
  %4953 = load ptr, ptr %16, align 8, !tbaa !5
  %4954 = load i8, ptr %9, align 1, !tbaa !16
  call void @applyAffinity(ptr noundef %4953, i8 noundef signext 67, i8 noundef zeroext %4954)
  %4955 = load ptr, ptr %16, align 8, !tbaa !5
  %4956 = getelementptr inbounds %struct.Mem, ptr %4955, i32 0, i32 1
  %4957 = load i16, ptr %4956, align 8, !tbaa !36
  %4958 = zext i16 %4957 to i32
  %4959 = and i32 %4958, 4
  %4960 = icmp eq i32 %4959, 0
  br i1 %4960, label %4961, label %4962

4961:                                             ; preds = %4952
  br label %436

4962:                                             ; preds = %4952
  br label %4963

4963:                                             ; preds = %4962, %4939
  br label %4964

4964:                                             ; preds = %4963, %363
  %4965 = load ptr, ptr %13, align 8, !tbaa !5
  %4966 = load ptr, ptr %5, align 8, !tbaa !5
  %4967 = getelementptr inbounds %struct.VdbeOp, ptr %4966, i32 0, i32 5
  %4968 = load i32, ptr %4967, align 4, !tbaa !38
  %4969 = sext i32 %4968 to i64
  %4970 = getelementptr inbounds %struct.Mem, ptr %4965, i64 %4969
  store ptr %4970, ptr %16, align 8, !tbaa !5
  %4971 = load ptr, ptr %3, align 8, !tbaa !5
  %4972 = getelementptr inbounds %struct.Vdbe, ptr %4971, i32 0, i32 23
  %4973 = load ptr, ptr %4972, align 8, !tbaa !82
  %4974 = load ptr, ptr %5, align 8, !tbaa !5
  %4975 = getelementptr inbounds %struct.VdbeOp, ptr %4974, i32 0, i32 3
  %4976 = load i32, ptr %4975, align 4, !tbaa !35
  %4977 = sext i32 %4976 to i64
  %4978 = getelementptr inbounds ptr, ptr %4973, i64 %4977
  %4979 = load ptr, ptr %4978, align 8, !tbaa !5
  store ptr %4979, ptr %152, align 8, !tbaa !5
  %4980 = load ptr, ptr %152, align 8, !tbaa !5
  %4981 = getelementptr inbounds %struct.VdbeCursor, ptr %4980, i32 0, i32 12
  %4982 = load ptr, ptr %4981, align 8, !tbaa !16
  store ptr %4982, ptr %153, align 8, !tbaa !5
  store i32 0, ptr %154, align 4, !tbaa !14
  %4983 = load ptr, ptr %16, align 8, !tbaa !5
  %4984 = getelementptr inbounds %struct.Mem, ptr %4983, i32 0, i32 0
  %4985 = load i64, ptr %4984, align 8, !tbaa !16
  store i64 %4985, ptr %155, align 8, !tbaa !48
  %4986 = load ptr, ptr %153, align 8, !tbaa !5
  %4987 = load i64, ptr %155, align 8, !tbaa !48
  %4988 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %4986, ptr noundef null, i64 noundef %4987, i32 noundef 0, ptr noundef %154)
  store i32 %4988, ptr %6, align 4, !tbaa !14
  %4989 = load i64, ptr %155, align 8, !tbaa !48
  %4990 = load ptr, ptr %152, align 8, !tbaa !5
  %4991 = getelementptr inbounds %struct.VdbeCursor, ptr %4990, i32 0, i32 18
  store i64 %4989, ptr %4991, align 8, !tbaa !139
  %4992 = load ptr, ptr %152, align 8, !tbaa !5
  %4993 = getelementptr inbounds %struct.VdbeCursor, ptr %4992, i32 0, i32 2
  store i8 0, ptr %4993, align 2, !tbaa !86
  %4994 = load ptr, ptr %152, align 8, !tbaa !5
  %4995 = getelementptr inbounds %struct.VdbeCursor, ptr %4994, i32 0, i32 9
  store i32 0, ptr %4995, align 8, !tbaa !85
  %4996 = load ptr, ptr %152, align 8, !tbaa !5
  %4997 = getelementptr inbounds %struct.VdbeCursor, ptr %4996, i32 0, i32 3
  store i8 0, ptr %4997, align 1, !tbaa !146
  %4998 = load i32, ptr %154, align 4, !tbaa !14
  %4999 = load ptr, ptr %152, align 8, !tbaa !5
  %5000 = getelementptr inbounds %struct.VdbeCursor, ptr %4999, i32 0, i32 10
  store i32 %4998, ptr %5000, align 4, !tbaa !148
  %5001 = load i32, ptr %154, align 4, !tbaa !14
  %5002 = icmp ne i32 %5001, 0
  br i1 %5002, label %5003, label %5012

5003:                                             ; preds = %4964
  %5004 = load ptr, ptr %5, align 8, !tbaa !5
  %5005 = getelementptr inbounds %struct.VdbeOp, ptr %5004, i32 0, i32 4
  %5006 = load i32, ptr %5005, align 8, !tbaa !33
  %5007 = icmp eq i32 %5006, 0
  br i1 %5007, label %5008, label %5010

5008:                                             ; preds = %5003
  %5009 = call i32 @sqlite3CorruptError(i32 noundef 4184)
  store i32 %5009, ptr %6, align 4, !tbaa !14
  br label %5011

5010:                                             ; preds = %5003
  br label %436

5011:                                             ; preds = %5008
  br label %5012

5012:                                             ; preds = %5011, %4964
  %5013 = load i32, ptr %6, align 4, !tbaa !14
  %5014 = icmp ne i32 %5013, 0
  br i1 %5014, label %5015, label %5016

5015:                                             ; preds = %5012
  br label %8480

5016:                                             ; preds = %5012
  br label %8475

5017:                                             ; preds = %363
  %5018 = load ptr, ptr %3, align 8, !tbaa !5
  %5019 = load ptr, ptr %5, align 8, !tbaa !5
  %5020 = call ptr @out2Prerelease(ptr noundef %5018, ptr noundef %5019)
  store ptr %5020, ptr %17, align 8, !tbaa !5
  %5021 = load ptr, ptr %3, align 8, !tbaa !5
  %5022 = getelementptr inbounds %struct.Vdbe, ptr %5021, i32 0, i32 23
  %5023 = load ptr, ptr %5022, align 8, !tbaa !82
  %5024 = load ptr, ptr %5, align 8, !tbaa !5
  %5025 = getelementptr inbounds %struct.VdbeOp, ptr %5024, i32 0, i32 3
  %5026 = load i32, ptr %5025, align 4, !tbaa !35
  %5027 = sext i32 %5026 to i64
  %5028 = getelementptr inbounds ptr, ptr %5023, i64 %5027
  %5029 = load ptr, ptr %5028, align 8, !tbaa !5
  %5030 = getelementptr inbounds %struct.VdbeCursor, ptr %5029, i32 0, i32 7
  %5031 = load i64, ptr %5030, align 8, !tbaa !138
  %5032 = add nsw i64 %5031, 1
  store i64 %5032, ptr %5030, align 8, !tbaa !138
  %5033 = load ptr, ptr %17, align 8, !tbaa !5
  %5034 = getelementptr inbounds %struct.Mem, ptr %5033, i32 0, i32 0
  store i64 %5031, ptr %5034, align 8, !tbaa !16
  br label %8475

5035:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #5
  store i64 0, ptr %156, align 8, !tbaa !48
  store i32 0, ptr %158, align 4, !tbaa !14
  %5036 = load ptr, ptr %3, align 8, !tbaa !5
  %5037 = load ptr, ptr %5, align 8, !tbaa !5
  %5038 = call ptr @out2Prerelease(ptr noundef %5036, ptr noundef %5037)
  store ptr %5038, ptr %17, align 8, !tbaa !5
  %5039 = load ptr, ptr %3, align 8, !tbaa !5
  %5040 = getelementptr inbounds %struct.Vdbe, ptr %5039, i32 0, i32 23
  %5041 = load ptr, ptr %5040, align 8, !tbaa !82
  %5042 = load ptr, ptr %5, align 8, !tbaa !5
  %5043 = getelementptr inbounds %struct.VdbeOp, ptr %5042, i32 0, i32 3
  %5044 = load i32, ptr %5043, align 4, !tbaa !35
  %5045 = sext i32 %5044 to i64
  %5046 = getelementptr inbounds ptr, ptr %5041, i64 %5045
  %5047 = load ptr, ptr %5046, align 8, !tbaa !5
  store ptr %5047, ptr %157, align 8, !tbaa !5
  %5048 = load ptr, ptr %157, align 8, !tbaa !5
  %5049 = getelementptr inbounds %struct.VdbeCursor, ptr %5048, i32 0, i32 5
  %5050 = load i8, ptr %5049, align 1
  %5051 = lshr i8 %5050, 1
  %5052 = and i8 %5051, 1
  %5053 = zext i8 %5052 to i32
  %5054 = icmp ne i32 %5053, 0
  br i1 %5054, label %5085, label %5055

5055:                                             ; preds = %5035
  %5056 = load ptr, ptr %157, align 8, !tbaa !5
  %5057 = getelementptr inbounds %struct.VdbeCursor, ptr %5056, i32 0, i32 12
  %5058 = load ptr, ptr %5057, align 8, !tbaa !16
  %5059 = call i32 @sqlite3BtreeLast(ptr noundef %5058, ptr noundef %158)
  store i32 %5059, ptr %6, align 4, !tbaa !14
  %5060 = load i32, ptr %6, align 4, !tbaa !14
  %5061 = icmp ne i32 %5060, 0
  br i1 %5061, label %5062, label %5063

5062:                                             ; preds = %5055
  store i32 10, ptr %23, align 4
  br label %5204

5063:                                             ; preds = %5055
  %5064 = load i32, ptr %158, align 4, !tbaa !14
  %5065 = icmp ne i32 %5064, 0
  br i1 %5065, label %5066, label %5067

5066:                                             ; preds = %5063
  store i64 1, ptr %156, align 8, !tbaa !48
  br label %5084

5067:                                             ; preds = %5063
  %5068 = load ptr, ptr %157, align 8, !tbaa !5
  %5069 = getelementptr inbounds %struct.VdbeCursor, ptr %5068, i32 0, i32 12
  %5070 = load ptr, ptr %5069, align 8, !tbaa !16
  %5071 = call i64 @sqlite3BtreeIntegerKey(ptr noundef %5070)
  store i64 %5071, ptr %156, align 8, !tbaa !48
  %5072 = load i64, ptr %156, align 8, !tbaa !48
  %5073 = icmp sge i64 %5072, 9223372036854775807
  br i1 %5073, label %5074, label %5080

5074:                                             ; preds = %5067
  %5075 = load ptr, ptr %157, align 8, !tbaa !5
  %5076 = getelementptr inbounds %struct.VdbeCursor, ptr %5075, i32 0, i32 5
  %5077 = load i8, ptr %5076, align 1
  %5078 = and i8 %5077, -3
  %5079 = or i8 %5078, 2
  store i8 %5079, ptr %5076, align 1
  br label %5083

5080:                                             ; preds = %5067
  %5081 = load i64, ptr %156, align 8, !tbaa !48
  %5082 = add nsw i64 %5081, 1
  store i64 %5082, ptr %156, align 8, !tbaa !48
  br label %5083

5083:                                             ; preds = %5080, %5074
  br label %5084

5084:                                             ; preds = %5083, %5066
  br label %5085

5085:                                             ; preds = %5084, %5035
  %5086 = load ptr, ptr %5, align 8, !tbaa !5
  %5087 = getelementptr inbounds %struct.VdbeOp, ptr %5086, i32 0, i32 5
  %5088 = load i32, ptr %5087, align 4, !tbaa !38
  %5089 = icmp ne i32 %5088, 0
  br i1 %5089, label %5090, label %5157

5090:                                             ; preds = %5085
  %5091 = load ptr, ptr %3, align 8, !tbaa !5
  %5092 = getelementptr inbounds %struct.Vdbe, ptr %5091, i32 0, i32 37
  %5093 = load ptr, ptr %5092, align 8, !tbaa !39
  %5094 = icmp ne ptr %5093, null
  br i1 %5094, label %5095, label %5118

5095:                                             ; preds = %5090
  %5096 = load ptr, ptr %3, align 8, !tbaa !5
  %5097 = getelementptr inbounds %struct.Vdbe, ptr %5096, i32 0, i32 37
  %5098 = load ptr, ptr %5097, align 8, !tbaa !39
  store ptr %5098, ptr %161, align 8, !tbaa !5
  br label %5099

5099:                                             ; preds = %5105, %5095
  %5100 = load ptr, ptr %161, align 8, !tbaa !5
  %5101 = getelementptr inbounds %struct.VdbeFrame, ptr %5100, i32 0, i32 1
  %5102 = load ptr, ptr %5101, align 8, !tbaa !40
  %5103 = icmp ne ptr %5102, null
  br i1 %5103, label %5104, label %5109

5104:                                             ; preds = %5099
  br label %5105

5105:                                             ; preds = %5104
  %5106 = load ptr, ptr %161, align 8, !tbaa !5
  %5107 = getelementptr inbounds %struct.VdbeFrame, ptr %5106, i32 0, i32 1
  %5108 = load ptr, ptr %5107, align 8, !tbaa !40
  store ptr %5108, ptr %161, align 8, !tbaa !5
  br label %5099, !llvm.loop !149

5109:                                             ; preds = %5099
  %5110 = load ptr, ptr %161, align 8, !tbaa !5
  %5111 = getelementptr inbounds %struct.VdbeFrame, ptr %5110, i32 0, i32 4
  %5112 = load ptr, ptr %5111, align 8, !tbaa !150
  %5113 = load ptr, ptr %5, align 8, !tbaa !5
  %5114 = getelementptr inbounds %struct.VdbeOp, ptr %5113, i32 0, i32 5
  %5115 = load i32, ptr %5114, align 4, !tbaa !38
  %5116 = sext i32 %5115 to i64
  %5117 = getelementptr inbounds %struct.Mem, ptr %5112, i64 %5116
  store ptr %5117, ptr %160, align 8, !tbaa !5
  br label %5125

5118:                                             ; preds = %5090
  %5119 = load ptr, ptr %13, align 8, !tbaa !5
  %5120 = load ptr, ptr %5, align 8, !tbaa !5
  %5121 = getelementptr inbounds %struct.VdbeOp, ptr %5120, i32 0, i32 5
  %5122 = load i32, ptr %5121, align 4, !tbaa !38
  %5123 = sext i32 %5122 to i64
  %5124 = getelementptr inbounds %struct.Mem, ptr %5119, i64 %5123
  store ptr %5124, ptr %160, align 8, !tbaa !5
  br label %5125

5125:                                             ; preds = %5118, %5109
  %5126 = load ptr, ptr %160, align 8, !tbaa !5
  %5127 = call i32 @sqlite3VdbeMemIntegerify(ptr noundef %5126)
  %5128 = load ptr, ptr %160, align 8, !tbaa !5
  %5129 = getelementptr inbounds %struct.Mem, ptr %5128, i32 0, i32 0
  %5130 = load i64, ptr %5129, align 8, !tbaa !16
  %5131 = icmp eq i64 %5130, 9223372036854775807
  br i1 %5131, label %5140, label %5132

5132:                                             ; preds = %5125
  %5133 = load ptr, ptr %157, align 8, !tbaa !5
  %5134 = getelementptr inbounds %struct.VdbeCursor, ptr %5133, i32 0, i32 5
  %5135 = load i8, ptr %5134, align 1
  %5136 = lshr i8 %5135, 1
  %5137 = and i8 %5136, 1
  %5138 = zext i8 %5137 to i32
  %5139 = icmp ne i32 %5138, 0
  br i1 %5139, label %5140, label %5141

5140:                                             ; preds = %5132, %5125
  store i32 13, ptr %6, align 4, !tbaa !14
  store i32 10, ptr %23, align 4
  br label %5204

5141:                                             ; preds = %5132
  %5142 = load i64, ptr %156, align 8, !tbaa !48
  %5143 = load ptr, ptr %160, align 8, !tbaa !5
  %5144 = getelementptr inbounds %struct.Mem, ptr %5143, i32 0, i32 0
  %5145 = load i64, ptr %5144, align 8, !tbaa !16
  %5146 = add nsw i64 %5145, 1
  %5147 = icmp slt i64 %5142, %5146
  br i1 %5147, label %5148, label %5153

5148:                                             ; preds = %5141
  %5149 = load ptr, ptr %160, align 8, !tbaa !5
  %5150 = getelementptr inbounds %struct.Mem, ptr %5149, i32 0, i32 0
  %5151 = load i64, ptr %5150, align 8, !tbaa !16
  %5152 = add nsw i64 %5151, 1
  store i64 %5152, ptr %156, align 8, !tbaa !48
  br label %5153

5153:                                             ; preds = %5148, %5141
  %5154 = load i64, ptr %156, align 8, !tbaa !48
  %5155 = load ptr, ptr %160, align 8, !tbaa !5
  %5156 = getelementptr inbounds %struct.Mem, ptr %5155, i32 0, i32 0
  store i64 %5154, ptr %5156, align 8, !tbaa !16
  br label %5157

5157:                                             ; preds = %5153, %5085
  %5158 = load ptr, ptr %157, align 8, !tbaa !5
  %5159 = getelementptr inbounds %struct.VdbeCursor, ptr %5158, i32 0, i32 5
  %5160 = load i8, ptr %5159, align 1
  %5161 = lshr i8 %5160, 1
  %5162 = and i8 %5161, 1
  %5163 = zext i8 %5162 to i32
  %5164 = icmp ne i32 %5163, 0
  br i1 %5164, label %5165, label %5196

5165:                                             ; preds = %5157
  store i32 0, ptr %159, align 4, !tbaa !14
  br label %5166

5166:                                             ; preds = %5185, %5165
  call void @sqlite3_randomness(i32 noundef 8, ptr noundef %156)
  %5167 = load i64, ptr %156, align 8, !tbaa !48
  %5168 = and i64 %5167, 4611686018427387903
  store i64 %5168, ptr %156, align 8, !tbaa !48
  %5169 = load i64, ptr %156, align 8, !tbaa !48
  %5170 = add nsw i64 %5169, 1
  store i64 %5170, ptr %156, align 8, !tbaa !48
  br label %5171

5171:                                             ; preds = %5166
  %5172 = load ptr, ptr %157, align 8, !tbaa !5
  %5173 = getelementptr inbounds %struct.VdbeCursor, ptr %5172, i32 0, i32 12
  %5174 = load ptr, ptr %5173, align 8, !tbaa !16
  %5175 = load i64, ptr %156, align 8, !tbaa !48
  %5176 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %5174, ptr noundef null, i64 noundef %5175, i32 noundef 0, ptr noundef %158)
  store i32 %5176, ptr %6, align 4, !tbaa !14
  %5177 = icmp eq i32 %5176, 0
  br i1 %5177, label %5178, label %5185

5178:                                             ; preds = %5171
  %5179 = load i32, ptr %158, align 4, !tbaa !14
  %5180 = icmp eq i32 %5179, 0
  br i1 %5180, label %5181, label %5185

5181:                                             ; preds = %5178
  %5182 = load i32, ptr %159, align 4, !tbaa !14
  %5183 = add nsw i32 %5182, 1
  store i32 %5183, ptr %159, align 4, !tbaa !14
  %5184 = icmp slt i32 %5183, 100
  br label %5185

5185:                                             ; preds = %5181, %5178, %5171
  %5186 = phi i1 [ false, %5178 ], [ false, %5171 ], [ %5184, %5181 ]
  br i1 %5186, label %5166, label %5187, !llvm.loop !151

5187:                                             ; preds = %5185
  %5188 = load i32, ptr %6, align 4, !tbaa !14
  %5189 = icmp ne i32 %5188, 0
  br i1 %5189, label %5190, label %5191

5190:                                             ; preds = %5187
  store i32 10, ptr %23, align 4
  br label %5204

5191:                                             ; preds = %5187
  %5192 = load i32, ptr %158, align 4, !tbaa !14
  %5193 = icmp eq i32 %5192, 0
  br i1 %5193, label %5194, label %5195

5194:                                             ; preds = %5191
  store i32 13, ptr %6, align 4, !tbaa !14
  store i32 10, ptr %23, align 4
  br label %5204

5195:                                             ; preds = %5191
  br label %5196

5196:                                             ; preds = %5195, %5157
  %5197 = load ptr, ptr %157, align 8, !tbaa !5
  %5198 = getelementptr inbounds %struct.VdbeCursor, ptr %5197, i32 0, i32 3
  store i8 0, ptr %5198, align 1, !tbaa !146
  %5199 = load ptr, ptr %157, align 8, !tbaa !5
  %5200 = getelementptr inbounds %struct.VdbeCursor, ptr %5199, i32 0, i32 9
  store i32 0, ptr %5200, align 8, !tbaa !85
  %5201 = load i64, ptr %156, align 8, !tbaa !48
  %5202 = load ptr, ptr %17, align 8, !tbaa !5
  %5203 = getelementptr inbounds %struct.Mem, ptr %5202, i32 0, i32 0
  store i64 %5201, ptr %5203, align 8, !tbaa !16
  store i32 7, ptr %23, align 4
  br label %5204

5204:                                             ; preds = %5196, %5194, %5190, %5140, %5062
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #5
  %5205 = load i32, ptr %23, align 4
  switch i32 %5205, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

5206:                                             ; preds = %363, %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #5
  call void @llvm.lifetime.start.p0(i64 48, ptr %169) #5
  store i32 0, ptr %168, align 4, !tbaa !14
  %5207 = load ptr, ptr %13, align 8, !tbaa !5
  %5208 = load ptr, ptr %5, align 8, !tbaa !5
  %5209 = getelementptr inbounds %struct.VdbeOp, ptr %5208, i32 0, i32 4
  %5210 = load i32, ptr %5209, align 8, !tbaa !33
  %5211 = sext i32 %5210 to i64
  %5212 = getelementptr inbounds %struct.Mem, ptr %5207, i64 %5211
  store ptr %5212, ptr %162, align 8, !tbaa !5
  %5213 = load ptr, ptr %3, align 8, !tbaa !5
  %5214 = getelementptr inbounds %struct.Vdbe, ptr %5213, i32 0, i32 23
  %5215 = load ptr, ptr %5214, align 8, !tbaa !82
  %5216 = load ptr, ptr %5, align 8, !tbaa !5
  %5217 = getelementptr inbounds %struct.VdbeOp, ptr %5216, i32 0, i32 3
  %5218 = load i32, ptr %5217, align 4, !tbaa !35
  %5219 = sext i32 %5218 to i64
  %5220 = getelementptr inbounds ptr, ptr %5215, i64 %5219
  %5221 = load ptr, ptr %5220, align 8, !tbaa !5
  store ptr %5221, ptr %164, align 8, !tbaa !5
  %5222 = load ptr, ptr %5, align 8, !tbaa !5
  %5223 = getelementptr inbounds %struct.VdbeOp, ptr %5222, i32 0, i32 0
  %5224 = load i8, ptr %5223, align 8, !tbaa !31
  %5225 = zext i8 %5224 to i32
  %5226 = icmp eq i32 %5225, 116
  br i1 %5226, label %5227, label %5238

5227:                                             ; preds = %5206
  %5228 = load ptr, ptr %13, align 8, !tbaa !5
  %5229 = load ptr, ptr %5, align 8, !tbaa !5
  %5230 = getelementptr inbounds %struct.VdbeOp, ptr %5229, i32 0, i32 5
  %5231 = load i32, ptr %5230, align 4, !tbaa !38
  %5232 = sext i32 %5231 to i64
  %5233 = getelementptr inbounds %struct.Mem, ptr %5228, i64 %5232
  store ptr %5233, ptr %163, align 8, !tbaa !5
  %5234 = load ptr, ptr %163, align 8, !tbaa !5
  %5235 = getelementptr inbounds %struct.Mem, ptr %5234, i32 0, i32 0
  %5236 = load i64, ptr %5235, align 8, !tbaa !16
  %5237 = getelementptr inbounds %struct.BtreePayload, ptr %169, i32 0, i32 1
  store i64 %5236, ptr %5237, align 8, !tbaa !152
  br label %5244

5238:                                             ; preds = %5206
  %5239 = load ptr, ptr %5, align 8, !tbaa !5
  %5240 = getelementptr inbounds %struct.VdbeOp, ptr %5239, i32 0, i32 5
  %5241 = load i32, ptr %5240, align 4, !tbaa !38
  %5242 = sext i32 %5241 to i64
  %5243 = getelementptr inbounds %struct.BtreePayload, ptr %169, i32 0, i32 1
  store i64 %5242, ptr %5243, align 8, !tbaa !152
  br label %5244

5244:                                             ; preds = %5238, %5227
  %5245 = load ptr, ptr %5, align 8, !tbaa !5
  %5246 = getelementptr inbounds %struct.VdbeOp, ptr %5245, i32 0, i32 1
  %5247 = load i8, ptr %5246, align 1, !tbaa !52
  %5248 = sext i8 %5247 to i32
  %5249 = icmp eq i32 %5248, -15
  br i1 %5249, label %5250, label %5277

5250:                                             ; preds = %5244
  %5251 = load ptr, ptr %7, align 8, !tbaa !5
  %5252 = getelementptr inbounds %struct.sqlite3, ptr %5251, i32 0, i32 50
  %5253 = load ptr, ptr %5252, align 8, !tbaa !154
  %5254 = icmp ne ptr %5253, null
  br i1 %5254, label %5255, label %5277

5255:                                             ; preds = %5250
  %5256 = load ptr, ptr %7, align 8, !tbaa !5
  %5257 = getelementptr inbounds %struct.sqlite3, ptr %5256, i32 0, i32 4
  %5258 = load ptr, ptr %5257, align 8, !tbaa !116
  %5259 = load ptr, ptr %164, align 8, !tbaa !5
  %5260 = getelementptr inbounds %struct.VdbeCursor, ptr %5259, i32 0, i32 1
  %5261 = load i8, ptr %5260, align 1, !tbaa !155
  %5262 = sext i8 %5261 to i64
  %5263 = getelementptr inbounds %struct.Db, ptr %5258, i64 %5262
  %5264 = getelementptr inbounds %struct.Db, ptr %5263, i32 0, i32 0
  %5265 = load ptr, ptr %5264, align 8, !tbaa !156
  store ptr %5265, ptr %166, align 8, !tbaa !5
  %5266 = load ptr, ptr %5, align 8, !tbaa !5
  %5267 = getelementptr inbounds %struct.VdbeOp, ptr %5266, i32 0, i32 6
  %5268 = load ptr, ptr %5267, align 8, !tbaa !16
  store ptr %5268, ptr %167, align 8, !tbaa !5
  %5269 = load ptr, ptr %5, align 8, !tbaa !5
  %5270 = getelementptr inbounds %struct.VdbeOp, ptr %5269, i32 0, i32 2
  %5271 = load i16, ptr %5270, align 2, !tbaa !45
  %5272 = zext i16 %5271 to i32
  %5273 = and i32 %5272, 4
  %5274 = icmp ne i32 %5273, 0
  %5275 = zext i1 %5274 to i64
  %5276 = select i1 %5274, i32 23, i32 18
  store i32 %5276, ptr %168, align 4, !tbaa !14
  br label %5278

5277:                                             ; preds = %5250, %5244
  store ptr null, ptr %167, align 8, !tbaa !5
  store ptr null, ptr %166, align 8, !tbaa !5
  br label %5278

5278:                                             ; preds = %5277, %5255
  %5279 = load ptr, ptr %5, align 8, !tbaa !5
  %5280 = getelementptr inbounds %struct.VdbeOp, ptr %5279, i32 0, i32 2
  %5281 = load i16, ptr %5280, align 2, !tbaa !45
  %5282 = zext i16 %5281 to i32
  %5283 = and i32 %5282, 1
  %5284 = icmp ne i32 %5283, 0
  br i1 %5284, label %5285, label %5290

5285:                                             ; preds = %5278
  %5286 = load ptr, ptr %3, align 8, !tbaa !5
  %5287 = getelementptr inbounds %struct.Vdbe, ptr %5286, i32 0, i32 11
  %5288 = load i32, ptr %5287, align 4, !tbaa !43
  %5289 = add nsw i32 %5288, 1
  store i32 %5289, ptr %5287, align 4, !tbaa !43
  br label %5290

5290:                                             ; preds = %5285, %5278
  %5291 = load ptr, ptr %5, align 8, !tbaa !5
  %5292 = getelementptr inbounds %struct.VdbeOp, ptr %5291, i32 0, i32 2
  %5293 = load i16, ptr %5292, align 2, !tbaa !45
  %5294 = zext i16 %5293 to i32
  %5295 = and i32 %5294, 32
  %5296 = icmp ne i32 %5295, 0
  br i1 %5296, label %5297, label %5302

5297:                                             ; preds = %5290
  %5298 = getelementptr inbounds %struct.BtreePayload, ptr %169, i32 0, i32 1
  %5299 = load i64, ptr %5298, align 8, !tbaa !152
  %5300 = load ptr, ptr %7, align 8, !tbaa !5
  %5301 = getelementptr inbounds %struct.sqlite3, ptr %5300, i32 0, i32 7
  store i64 %5299, ptr %5301, align 8, !tbaa !157
  br label %5302

5302:                                             ; preds = %5297, %5290
  %5303 = load ptr, ptr %162, align 8, !tbaa !5
  %5304 = getelementptr inbounds %struct.Mem, ptr %5303, i32 0, i32 1
  %5305 = load i16, ptr %5304, align 8, !tbaa !36
  %5306 = zext i16 %5305 to i32
  %5307 = and i32 %5306, 1
  %5308 = icmp ne i32 %5307, 0
  br i1 %5308, label %5309, label %5312

5309:                                             ; preds = %5302
  %5310 = getelementptr inbounds %struct.BtreePayload, ptr %169, i32 0, i32 2
  store ptr null, ptr %5310, align 8, !tbaa !158
  %5311 = getelementptr inbounds %struct.BtreePayload, ptr %169, i32 0, i32 5
  store i32 0, ptr %5311, align 4, !tbaa !159
  br label %5321

5312:                                             ; preds = %5302
  %5313 = load ptr, ptr %162, align 8, !tbaa !5
  %5314 = getelementptr inbounds %struct.Mem, ptr %5313, i32 0, i32 5
  %5315 = load ptr, ptr %5314, align 8, !tbaa !53
  %5316 = getelementptr inbounds %struct.BtreePayload, ptr %169, i32 0, i32 2
  store ptr %5315, ptr %5316, align 8, !tbaa !158
  %5317 = load ptr, ptr %162, align 8, !tbaa !5
  %5318 = getelementptr inbounds %struct.Mem, ptr %5317, i32 0, i32 4
  %5319 = load i32, ptr %5318, align 4, !tbaa !54
  %5320 = getelementptr inbounds %struct.BtreePayload, ptr %169, i32 0, i32 5
  store i32 %5319, ptr %5320, align 4, !tbaa !159
  br label %5321

5321:                                             ; preds = %5312, %5309
  %5322 = load ptr, ptr %5, align 8, !tbaa !5
  %5323 = getelementptr inbounds %struct.VdbeOp, ptr %5322, i32 0, i32 2
  %5324 = load i16, ptr %5323, align 2, !tbaa !45
  %5325 = zext i16 %5324 to i32
  %5326 = and i32 %5325, 16
  %5327 = icmp ne i32 %5326, 0
  br i1 %5327, label %5328, label %5332

5328:                                             ; preds = %5321
  %5329 = load ptr, ptr %164, align 8, !tbaa !5
  %5330 = getelementptr inbounds %struct.VdbeCursor, ptr %5329, i32 0, i32 10
  %5331 = load i32, ptr %5330, align 4, !tbaa !148
  br label %5333

5332:                                             ; preds = %5321
  br label %5333

5333:                                             ; preds = %5332, %5328
  %5334 = phi i32 [ %5331, %5328 ], [ 0, %5332 ]
  store i32 %5334, ptr %165, align 4, !tbaa !14
  %5335 = load ptr, ptr %162, align 8, !tbaa !5
  %5336 = getelementptr inbounds %struct.Mem, ptr %5335, i32 0, i32 1
  %5337 = load i16, ptr %5336, align 8, !tbaa !36
  %5338 = zext i16 %5337 to i32
  %5339 = and i32 %5338, 16384
  %5340 = icmp ne i32 %5339, 0
  br i1 %5340, label %5341, label %5346

5341:                                             ; preds = %5333
  %5342 = load ptr, ptr %162, align 8, !tbaa !5
  %5343 = getelementptr inbounds %struct.Mem, ptr %5342, i32 0, i32 0
  %5344 = load i32, ptr %5343, align 8, !tbaa !16
  %5345 = getelementptr inbounds %struct.BtreePayload, ptr %169, i32 0, i32 6
  store i32 %5344, ptr %5345, align 8, !tbaa !160
  br label %5348

5346:                                             ; preds = %5333
  %5347 = getelementptr inbounds %struct.BtreePayload, ptr %169, i32 0, i32 6
  store i32 0, ptr %5347, align 8, !tbaa !160
  br label %5348

5348:                                             ; preds = %5346, %5341
  %5349 = getelementptr inbounds %struct.BtreePayload, ptr %169, i32 0, i32 0
  store ptr null, ptr %5349, align 8, !tbaa !161
  %5350 = load ptr, ptr %164, align 8, !tbaa !5
  %5351 = getelementptr inbounds %struct.VdbeCursor, ptr %5350, i32 0, i32 12
  %5352 = load ptr, ptr %5351, align 8, !tbaa !16
  %5353 = load ptr, ptr %5, align 8, !tbaa !5
  %5354 = getelementptr inbounds %struct.VdbeOp, ptr %5353, i32 0, i32 2
  %5355 = load i16, ptr %5354, align 2, !tbaa !45
  %5356 = zext i16 %5355 to i32
  %5357 = and i32 %5356, 10
  %5358 = load i32, ptr %165, align 4, !tbaa !14
  %5359 = call i32 @sqlite3BtreeInsert(ptr noundef %5352, ptr noundef %169, i32 noundef %5357, i32 noundef %5358)
  store i32 %5359, ptr %6, align 4, !tbaa !14
  %5360 = load ptr, ptr %164, align 8, !tbaa !5
  %5361 = getelementptr inbounds %struct.VdbeCursor, ptr %5360, i32 0, i32 3
  store i8 0, ptr %5361, align 1, !tbaa !146
  %5362 = load ptr, ptr %164, align 8, !tbaa !5
  %5363 = getelementptr inbounds %struct.VdbeCursor, ptr %5362, i32 0, i32 9
  store i32 0, ptr %5363, align 8, !tbaa !85
  %5364 = load i32, ptr %6, align 4, !tbaa !14
  %5365 = icmp ne i32 %5364, 0
  br i1 %5365, label %5366, label %5367

5366:                                             ; preds = %5348
  store i32 10, ptr %23, align 4
  br label %5390

5367:                                             ; preds = %5348
  %5368 = load ptr, ptr %7, align 8, !tbaa !5
  %5369 = getelementptr inbounds %struct.sqlite3, ptr %5368, i32 0, i32 50
  %5370 = load ptr, ptr %5369, align 8, !tbaa !154
  %5371 = icmp ne ptr %5370, null
  br i1 %5371, label %5372, label %5389

5372:                                             ; preds = %5367
  %5373 = load i32, ptr %168, align 4, !tbaa !14
  %5374 = icmp ne i32 %5373, 0
  br i1 %5374, label %5375, label %5389

5375:                                             ; preds = %5372
  %5376 = load ptr, ptr %7, align 8, !tbaa !5
  %5377 = getelementptr inbounds %struct.sqlite3, ptr %5376, i32 0, i32 50
  %5378 = load ptr, ptr %5377, align 8, !tbaa !154
  %5379 = load ptr, ptr %7, align 8, !tbaa !5
  %5380 = getelementptr inbounds %struct.sqlite3, ptr %5379, i32 0, i32 49
  %5381 = load ptr, ptr %5380, align 8, !tbaa !162
  %5382 = load i32, ptr %168, align 4, !tbaa !14
  %5383 = load ptr, ptr %166, align 8, !tbaa !5
  %5384 = load ptr, ptr %167, align 8, !tbaa !5
  %5385 = getelementptr inbounds %struct.Table, ptr %5384, i32 0, i32 0
  %5386 = load ptr, ptr %5385, align 8, !tbaa !163
  %5387 = getelementptr inbounds %struct.BtreePayload, ptr %169, i32 0, i32 1
  %5388 = load i64, ptr %5387, align 8, !tbaa !152
  call void %5378(ptr noundef %5381, i32 noundef %5382, ptr noundef %5383, ptr noundef %5386, i64 noundef %5388)
  br label %5389

5389:                                             ; preds = %5375, %5372, %5367
  store i32 7, ptr %23, align 4
  br label %5390

5390:                                             ; preds = %5389, %5366
  call void @llvm.lifetime.end.p0(i64 48, ptr %169) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #5
  %5391 = load i32, ptr %23, align 4
  switch i32 %5391, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

5392:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #5
  %5393 = load ptr, ptr %5, align 8, !tbaa !5
  %5394 = getelementptr inbounds %struct.VdbeOp, ptr %5393, i32 0, i32 4
  %5395 = load i32, ptr %5394, align 8, !tbaa !33
  store i32 %5395, ptr %173, align 4, !tbaa !14
  %5396 = load ptr, ptr %3, align 8, !tbaa !5
  %5397 = getelementptr inbounds %struct.Vdbe, ptr %5396, i32 0, i32 23
  %5398 = load ptr, ptr %5397, align 8, !tbaa !82
  %5399 = load ptr, ptr %5, align 8, !tbaa !5
  %5400 = getelementptr inbounds %struct.VdbeOp, ptr %5399, i32 0, i32 3
  %5401 = load i32, ptr %5400, align 4, !tbaa !35
  %5402 = sext i32 %5401 to i64
  %5403 = getelementptr inbounds ptr, ptr %5398, i64 %5402
  %5404 = load ptr, ptr %5403, align 8, !tbaa !5
  store ptr %5404, ptr %170, align 8, !tbaa !5
  %5405 = load ptr, ptr %5, align 8, !tbaa !5
  %5406 = getelementptr inbounds %struct.VdbeOp, ptr %5405, i32 0, i32 1
  %5407 = load i8, ptr %5406, align 1, !tbaa !52
  %5408 = sext i8 %5407 to i32
  %5409 = icmp eq i32 %5408, -15
  br i1 %5409, label %5410, label %5449

5410:                                             ; preds = %5392
  %5411 = load ptr, ptr %7, align 8, !tbaa !5
  %5412 = getelementptr inbounds %struct.sqlite3, ptr %5411, i32 0, i32 50
  %5413 = load ptr, ptr %5412, align 8, !tbaa !154
  %5414 = icmp ne ptr %5413, null
  br i1 %5414, label %5415, label %5449

5415:                                             ; preds = %5410
  %5416 = load ptr, ptr %7, align 8, !tbaa !5
  %5417 = getelementptr inbounds %struct.sqlite3, ptr %5416, i32 0, i32 4
  %5418 = load ptr, ptr %5417, align 8, !tbaa !116
  %5419 = load ptr, ptr %170, align 8, !tbaa !5
  %5420 = getelementptr inbounds %struct.VdbeCursor, ptr %5419, i32 0, i32 1
  %5421 = load i8, ptr %5420, align 1, !tbaa !155
  %5422 = sext i8 %5421 to i64
  %5423 = getelementptr inbounds %struct.Db, ptr %5418, i64 %5422
  %5424 = getelementptr inbounds %struct.Db, ptr %5423, i32 0, i32 0
  %5425 = load ptr, ptr %5424, align 8, !tbaa !156
  store ptr %5425, ptr %171, align 8, !tbaa !5
  %5426 = load ptr, ptr %5, align 8, !tbaa !5
  %5427 = getelementptr inbounds %struct.VdbeOp, ptr %5426, i32 0, i32 6
  %5428 = load ptr, ptr %5427, align 8, !tbaa !16
  store ptr %5428, ptr %172, align 8, !tbaa !5
  %5429 = load ptr, ptr %5, align 8, !tbaa !5
  %5430 = getelementptr inbounds %struct.VdbeOp, ptr %5429, i32 0, i32 2
  %5431 = load i16, ptr %5430, align 2, !tbaa !45
  %5432 = zext i16 %5431 to i32
  %5433 = and i32 %5432, 2
  %5434 = icmp ne i32 %5433, 0
  br i1 %5434, label %5435, label %5448

5435:                                             ; preds = %5415
  %5436 = load ptr, ptr %170, align 8, !tbaa !5
  %5437 = getelementptr inbounds %struct.VdbeCursor, ptr %5436, i32 0, i32 4
  %5438 = load i8, ptr %5437, align 4, !tbaa !135
  %5439 = zext i8 %5438 to i32
  %5440 = icmp ne i32 %5439, 0
  br i1 %5440, label %5441, label %5448

5441:                                             ; preds = %5435
  %5442 = load ptr, ptr %170, align 8, !tbaa !5
  %5443 = getelementptr inbounds %struct.VdbeCursor, ptr %5442, i32 0, i32 12
  %5444 = load ptr, ptr %5443, align 8, !tbaa !16
  %5445 = call i64 @sqlite3BtreeIntegerKey(ptr noundef %5444)
  %5446 = load ptr, ptr %170, align 8, !tbaa !5
  %5447 = getelementptr inbounds %struct.VdbeCursor, ptr %5446, i32 0, i32 18
  store i64 %5445, ptr %5447, align 8, !tbaa !139
  br label %5448

5448:                                             ; preds = %5441, %5435, %5415
  br label %5450

5449:                                             ; preds = %5410, %5392
  store ptr null, ptr %171, align 8, !tbaa !5
  store ptr null, ptr %172, align 8, !tbaa !5
  br label %5450

5450:                                             ; preds = %5449, %5448
  %5451 = load ptr, ptr %170, align 8, !tbaa !5
  %5452 = getelementptr inbounds %struct.VdbeCursor, ptr %5451, i32 0, i32 12
  %5453 = load ptr, ptr %5452, align 8, !tbaa !16
  %5454 = load ptr, ptr %5, align 8, !tbaa !5
  %5455 = getelementptr inbounds %struct.VdbeOp, ptr %5454, i32 0, i32 2
  %5456 = load i16, ptr %5455, align 2, !tbaa !45
  %5457 = trunc i16 %5456 to i8
  %5458 = call i32 @sqlite3BtreeDelete(ptr noundef %5453, i8 noundef zeroext %5457)
  store i32 %5458, ptr %6, align 4, !tbaa !14
  %5459 = load ptr, ptr %170, align 8, !tbaa !5
  %5460 = getelementptr inbounds %struct.VdbeCursor, ptr %5459, i32 0, i32 9
  store i32 0, ptr %5460, align 8, !tbaa !85
  %5461 = load ptr, ptr %170, align 8, !tbaa !5
  %5462 = getelementptr inbounds %struct.VdbeCursor, ptr %5461, i32 0, i32 10
  store i32 0, ptr %5462, align 4, !tbaa !148
  %5463 = load i32, ptr %6, align 4, !tbaa !14
  %5464 = icmp ne i32 %5463, 0
  br i1 %5464, label %5465, label %5466

5465:                                             ; preds = %5450
  store i32 10, ptr %23, align 4
  br label %5501

5466:                                             ; preds = %5450
  %5467 = load i32, ptr %173, align 4, !tbaa !14
  %5468 = and i32 %5467, 1
  %5469 = icmp ne i32 %5468, 0
  br i1 %5469, label %5470, label %5500

5470:                                             ; preds = %5466
  %5471 = load ptr, ptr %3, align 8, !tbaa !5
  %5472 = getelementptr inbounds %struct.Vdbe, ptr %5471, i32 0, i32 11
  %5473 = load i32, ptr %5472, align 4, !tbaa !43
  %5474 = add nsw i32 %5473, 1
  store i32 %5474, ptr %5472, align 4, !tbaa !43
  %5475 = load ptr, ptr %7, align 8, !tbaa !5
  %5476 = getelementptr inbounds %struct.sqlite3, ptr %5475, i32 0, i32 50
  %5477 = load ptr, ptr %5476, align 8, !tbaa !154
  %5478 = icmp ne ptr %5477, null
  br i1 %5478, label %5479, label %5499

5479:                                             ; preds = %5470
  %5480 = load ptr, ptr %172, align 8, !tbaa !5
  %5481 = getelementptr inbounds %struct.Table, ptr %5480, i32 0, i32 9
  %5482 = load i32, ptr %5481, align 8, !tbaa !165
  %5483 = and i32 %5482, 32
  %5484 = icmp eq i32 %5483, 0
  br i1 %5484, label %5485, label %5499

5485:                                             ; preds = %5479
  %5486 = load ptr, ptr %7, align 8, !tbaa !5
  %5487 = getelementptr inbounds %struct.sqlite3, ptr %5486, i32 0, i32 50
  %5488 = load ptr, ptr %5487, align 8, !tbaa !154
  %5489 = load ptr, ptr %7, align 8, !tbaa !5
  %5490 = getelementptr inbounds %struct.sqlite3, ptr %5489, i32 0, i32 49
  %5491 = load ptr, ptr %5490, align 8, !tbaa !162
  %5492 = load ptr, ptr %171, align 8, !tbaa !5
  %5493 = load ptr, ptr %172, align 8, !tbaa !5
  %5494 = getelementptr inbounds %struct.Table, ptr %5493, i32 0, i32 0
  %5495 = load ptr, ptr %5494, align 8, !tbaa !163
  %5496 = load ptr, ptr %170, align 8, !tbaa !5
  %5497 = getelementptr inbounds %struct.VdbeCursor, ptr %5496, i32 0, i32 18
  %5498 = load i64, ptr %5497, align 8, !tbaa !139
  call void %5488(ptr noundef %5491, i32 noundef 9, ptr noundef %5492, ptr noundef %5495, i64 noundef %5498)
  br label %5499

5499:                                             ; preds = %5485, %5479, %5470
  br label %5500

5500:                                             ; preds = %5499, %5466
  store i32 7, ptr %23, align 4
  br label %5501

5501:                                             ; preds = %5500, %5465
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #5
  %5502 = load i32, ptr %23, align 4
  switch i32 %5502, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

5503:                                             ; preds = %363
  %5504 = load ptr, ptr %7, align 8, !tbaa !5
  %5505 = load ptr, ptr %3, align 8, !tbaa !5
  %5506 = getelementptr inbounds %struct.Vdbe, ptr %5505, i32 0, i32 11
  %5507 = load i32, ptr %5506, align 4, !tbaa !43
  call void @sqlite3VdbeSetChanges(ptr noundef %5504, i32 noundef %5507)
  %5508 = load ptr, ptr %3, align 8, !tbaa !5
  %5509 = getelementptr inbounds %struct.Vdbe, ptr %5508, i32 0, i32 11
  store i32 0, ptr %5509, align 4, !tbaa !43
  br label %8475

5510:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #5
  %5511 = load ptr, ptr %3, align 8, !tbaa !5
  %5512 = getelementptr inbounds %struct.Vdbe, ptr %5511, i32 0, i32 23
  %5513 = load ptr, ptr %5512, align 8, !tbaa !82
  %5514 = load ptr, ptr %5, align 8, !tbaa !5
  %5515 = getelementptr inbounds %struct.VdbeOp, ptr %5514, i32 0, i32 3
  %5516 = load i32, ptr %5515, align 4, !tbaa !35
  %5517 = sext i32 %5516 to i64
  %5518 = getelementptr inbounds ptr, ptr %5513, i64 %5517
  %5519 = load ptr, ptr %5518, align 8, !tbaa !5
  store ptr %5519, ptr %174, align 8, !tbaa !5
  %5520 = load ptr, ptr %13, align 8, !tbaa !5
  %5521 = load ptr, ptr %5, align 8, !tbaa !5
  %5522 = getelementptr inbounds %struct.VdbeOp, ptr %5521, i32 0, i32 5
  %5523 = load i32, ptr %5522, align 4, !tbaa !38
  %5524 = sext i32 %5523 to i64
  %5525 = getelementptr inbounds %struct.Mem, ptr %5520, i64 %5524
  store ptr %5525, ptr %16, align 8, !tbaa !5
  %5526 = load ptr, ptr %5, align 8, !tbaa !5
  %5527 = getelementptr inbounds %struct.VdbeOp, ptr %5526, i32 0, i32 6
  %5528 = load i32, ptr %5527, align 8, !tbaa !16
  store i32 %5528, ptr %176, align 4, !tbaa !14
  store i32 0, ptr %175, align 4, !tbaa !14
  %5529 = load ptr, ptr %174, align 8, !tbaa !5
  %5530 = load ptr, ptr %16, align 8, !tbaa !5
  %5531 = load i32, ptr %176, align 4, !tbaa !14
  %5532 = call i32 @sqlite3VdbeSorterCompare(ptr noundef %5529, ptr noundef %5530, i32 noundef %5531, ptr noundef %175)
  store i32 %5532, ptr %6, align 4, !tbaa !14
  %5533 = load i32, ptr %6, align 4, !tbaa !14
  %5534 = icmp ne i32 %5533, 0
  br i1 %5534, label %5535, label %5536

5535:                                             ; preds = %5510
  store i32 10, ptr %23, align 4
  br label %5541

5536:                                             ; preds = %5510
  %5537 = load i32, ptr %175, align 4, !tbaa !14
  %5538 = icmp ne i32 %5537, 0
  br i1 %5538, label %5539, label %5540

5539:                                             ; preds = %5536
  store i32 11, ptr %23, align 4
  br label %5541

5540:                                             ; preds = %5536
  store i32 7, ptr %23, align 4
  br label %5541

5541:                                             ; preds = %5540, %5539, %5535
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #5
  %5542 = load i32, ptr %23, align 4
  switch i32 %5542, label %8562 [
    i32 11, label %436
    i32 7, label %8475
    i32 10, label %8480
  ]

5543:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #5
  %5544 = load ptr, ptr %13, align 8, !tbaa !5
  %5545 = load ptr, ptr %5, align 8, !tbaa !5
  %5546 = getelementptr inbounds %struct.VdbeOp, ptr %5545, i32 0, i32 4
  %5547 = load i32, ptr %5546, align 8, !tbaa !33
  %5548 = sext i32 %5547 to i64
  %5549 = getelementptr inbounds %struct.Mem, ptr %5544, i64 %5548
  store ptr %5549, ptr %17, align 8, !tbaa !5
  %5550 = load ptr, ptr %3, align 8, !tbaa !5
  %5551 = getelementptr inbounds %struct.Vdbe, ptr %5550, i32 0, i32 23
  %5552 = load ptr, ptr %5551, align 8, !tbaa !82
  %5553 = load ptr, ptr %5, align 8, !tbaa !5
  %5554 = getelementptr inbounds %struct.VdbeOp, ptr %5553, i32 0, i32 3
  %5555 = load i32, ptr %5554, align 4, !tbaa !35
  %5556 = sext i32 %5555 to i64
  %5557 = getelementptr inbounds ptr, ptr %5552, i64 %5556
  %5558 = load ptr, ptr %5557, align 8, !tbaa !5
  store ptr %5558, ptr %177, align 8, !tbaa !5
  %5559 = load ptr, ptr %177, align 8, !tbaa !5
  %5560 = load ptr, ptr %17, align 8, !tbaa !5
  %5561 = call i32 @sqlite3VdbeSorterRowkey(ptr noundef %5559, ptr noundef %5560)
  store i32 %5561, ptr %6, align 4, !tbaa !14
  %5562 = load i32, ptr %6, align 4, !tbaa !14
  %5563 = icmp ne i32 %5562, 0
  br i1 %5563, label %5564, label %5565

5564:                                             ; preds = %5543
  store i32 10, ptr %23, align 4
  br label %5576

5565:                                             ; preds = %5543
  %5566 = load ptr, ptr %3, align 8, !tbaa !5
  %5567 = getelementptr inbounds %struct.Vdbe, ptr %5566, i32 0, i32 23
  %5568 = load ptr, ptr %5567, align 8, !tbaa !82
  %5569 = load ptr, ptr %5, align 8, !tbaa !5
  %5570 = getelementptr inbounds %struct.VdbeOp, ptr %5569, i32 0, i32 5
  %5571 = load i32, ptr %5570, align 4, !tbaa !38
  %5572 = sext i32 %5571 to i64
  %5573 = getelementptr inbounds ptr, ptr %5568, i64 %5572
  %5574 = load ptr, ptr %5573, align 8, !tbaa !5
  %5575 = getelementptr inbounds %struct.VdbeCursor, ptr %5574, i32 0, i32 9
  store i32 0, ptr %5575, align 8, !tbaa !85
  store i32 7, ptr %23, align 4
  br label %5576

5576:                                             ; preds = %5565, %5564
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #5
  %5577 = load i32, ptr %23, align 4
  switch i32 %5577, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

5578:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %179) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #5
  %5579 = load ptr, ptr %3, align 8, !tbaa !5
  %5580 = load ptr, ptr %5, align 8, !tbaa !5
  %5581 = call ptr @out2Prerelease(ptr noundef %5579, ptr noundef %5580)
  store ptr %5581, ptr %17, align 8, !tbaa !5
  %5582 = load ptr, ptr %3, align 8, !tbaa !5
  %5583 = getelementptr inbounds %struct.Vdbe, ptr %5582, i32 0, i32 23
  %5584 = load ptr, ptr %5583, align 8, !tbaa !82
  %5585 = load ptr, ptr %5, align 8, !tbaa !5
  %5586 = getelementptr inbounds %struct.VdbeOp, ptr %5585, i32 0, i32 3
  %5587 = load i32, ptr %5586, align 4, !tbaa !35
  %5588 = sext i32 %5587 to i64
  %5589 = getelementptr inbounds ptr, ptr %5584, i64 %5588
  %5590 = load ptr, ptr %5589, align 8, !tbaa !5
  store ptr %5590, ptr %178, align 8, !tbaa !5
  %5591 = load ptr, ptr %178, align 8, !tbaa !5
  %5592 = getelementptr inbounds %struct.VdbeCursor, ptr %5591, i32 0, i32 12
  %5593 = load ptr, ptr %5592, align 8, !tbaa !16
  store ptr %5593, ptr %179, align 8, !tbaa !5
  %5594 = load ptr, ptr %179, align 8, !tbaa !5
  %5595 = call i32 @sqlite3BtreePayloadSize(ptr noundef %5594)
  store i32 %5595, ptr %180, align 4, !tbaa !14
  %5596 = load i32, ptr %180, align 4, !tbaa !14
  %5597 = load ptr, ptr %7, align 8, !tbaa !5
  %5598 = getelementptr inbounds %struct.sqlite3, ptr %5597, i32 0, i32 31
  %5599 = getelementptr inbounds [12 x i32], ptr %5598, i64 0, i64 0
  %5600 = load i32, ptr %5599, align 8, !tbaa !14
  %5601 = icmp ugt i32 %5596, %5600
  br i1 %5601, label %5602, label %5603

5602:                                             ; preds = %5578
  store i32 13, ptr %23, align 4
  br label %5630

5603:                                             ; preds = %5578
  %5604 = load ptr, ptr %179, align 8, !tbaa !5
  %5605 = load i32, ptr %180, align 4, !tbaa !14
  %5606 = load ptr, ptr %17, align 8, !tbaa !5
  %5607 = call i32 @sqlite3VdbeMemFromBtree(ptr noundef %5604, i32 noundef 0, i32 noundef %5605, ptr noundef %5606)
  store i32 %5607, ptr %6, align 4, !tbaa !14
  %5608 = load i32, ptr %6, align 4, !tbaa !14
  %5609 = icmp ne i32 %5608, 0
  br i1 %5609, label %5610, label %5611

5610:                                             ; preds = %5603
  store i32 10, ptr %23, align 4
  br label %5630

5611:                                             ; preds = %5603
  %5612 = load ptr, ptr %5, align 8, !tbaa !5
  %5613 = getelementptr inbounds %struct.VdbeOp, ptr %5612, i32 0, i32 5
  %5614 = load i32, ptr %5613, align 4, !tbaa !38
  %5615 = icmp ne i32 %5614, 0
  br i1 %5615, label %5629, label %5616

5616:                                             ; preds = %5611
  %5617 = load ptr, ptr %17, align 8, !tbaa !5
  %5618 = getelementptr inbounds %struct.Mem, ptr %5617, i32 0, i32 1
  %5619 = load i16, ptr %5618, align 8, !tbaa !36
  %5620 = zext i16 %5619 to i32
  %5621 = and i32 %5620, 4096
  %5622 = icmp ne i32 %5621, 0
  br i1 %5622, label %5623, label %5628

5623:                                             ; preds = %5616
  %5624 = load ptr, ptr %17, align 8, !tbaa !5
  %5625 = call i32 @sqlite3VdbeMemMakeWriteable(ptr noundef %5624)
  %5626 = icmp ne i32 %5625, 0
  br i1 %5626, label %5627, label %5628

5627:                                             ; preds = %5623
  store i32 2, ptr %23, align 4
  br label %5630

5628:                                             ; preds = %5623, %5616
  br label %5629

5629:                                             ; preds = %5628, %5611
  store i32 7, ptr %23, align 4
  br label %5630

5630:                                             ; preds = %5629, %5627, %5610, %5602
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #5
  %5631 = load i32, ptr %23, align 4
  switch i32 %5631, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 13, label %8543
    i32 2, label %8545
  ]

5632:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %184) #5
  %5633 = load ptr, ptr %3, align 8, !tbaa !5
  %5634 = load ptr, ptr %5, align 8, !tbaa !5
  %5635 = call ptr @out2Prerelease(ptr noundef %5633, ptr noundef %5634)
  store ptr %5635, ptr %17, align 8, !tbaa !5
  %5636 = load ptr, ptr %3, align 8, !tbaa !5
  %5637 = getelementptr inbounds %struct.Vdbe, ptr %5636, i32 0, i32 23
  %5638 = load ptr, ptr %5637, align 8, !tbaa !82
  %5639 = load ptr, ptr %5, align 8, !tbaa !5
  %5640 = getelementptr inbounds %struct.VdbeOp, ptr %5639, i32 0, i32 3
  %5641 = load i32, ptr %5640, align 4, !tbaa !35
  %5642 = sext i32 %5641 to i64
  %5643 = getelementptr inbounds ptr, ptr %5638, i64 %5642
  %5644 = load ptr, ptr %5643, align 8, !tbaa !5
  store ptr %5644, ptr %181, align 8, !tbaa !5
  %5645 = load ptr, ptr %181, align 8, !tbaa !5
  %5646 = getelementptr inbounds %struct.VdbeCursor, ptr %5645, i32 0, i32 2
  %5647 = load i8, ptr %5646, align 2, !tbaa !86
  %5648 = icmp ne i8 %5647, 0
  br i1 %5648, label %5649, label %5652

5649:                                             ; preds = %5632
  %5650 = load ptr, ptr %17, align 8, !tbaa !5
  %5651 = getelementptr inbounds %struct.Mem, ptr %5650, i32 0, i32 1
  store i16 1, ptr %5651, align 8, !tbaa !36
  store i32 7, ptr %23, align 4
  br label %5714

5652:                                             ; preds = %5632
  %5653 = load ptr, ptr %181, align 8, !tbaa !5
  %5654 = getelementptr inbounds %struct.VdbeCursor, ptr %5653, i32 0, i32 3
  %5655 = load i8, ptr %5654, align 1, !tbaa !146
  %5656 = icmp ne i8 %5655, 0
  br i1 %5656, label %5657, label %5661

5657:                                             ; preds = %5652
  %5658 = load ptr, ptr %181, align 8, !tbaa !5
  %5659 = getelementptr inbounds %struct.VdbeCursor, ptr %5658, i32 0, i32 18
  %5660 = load i64, ptr %5659, align 8, !tbaa !139
  store i64 %5660, ptr %182, align 8, !tbaa !48
  br label %5709

5661:                                             ; preds = %5652
  %5662 = load ptr, ptr %181, align 8, !tbaa !5
  %5663 = getelementptr inbounds %struct.VdbeCursor, ptr %5662, i32 0, i32 0
  %5664 = load i8, ptr %5663, align 8, !tbaa !87
  %5665 = zext i8 %5664 to i32
  %5666 = icmp eq i32 %5665, 2
  br i1 %5666, label %5667, label %5689

5667:                                             ; preds = %5661
  %5668 = load ptr, ptr %181, align 8, !tbaa !5
  %5669 = getelementptr inbounds %struct.VdbeCursor, ptr %5668, i32 0, i32 12
  %5670 = load ptr, ptr %5669, align 8, !tbaa !16
  %5671 = getelementptr inbounds %struct.sqlite3_vtab_cursor, ptr %5670, i32 0, i32 0
  %5672 = load ptr, ptr %5671, align 8, !tbaa !166
  store ptr %5672, ptr %183, align 8, !tbaa !5
  %5673 = load ptr, ptr %183, align 8, !tbaa !5
  %5674 = getelementptr inbounds %struct.sqlite3_vtab, ptr %5673, i32 0, i32 0
  %5675 = load ptr, ptr %5674, align 8, !tbaa !168
  store ptr %5675, ptr %184, align 8, !tbaa !5
  %5676 = load ptr, ptr %184, align 8, !tbaa !5
  %5677 = getelementptr inbounds %struct.sqlite3_module, ptr %5676, i32 0, i32 12
  %5678 = load ptr, ptr %5677, align 8, !tbaa !170
  %5679 = load ptr, ptr %181, align 8, !tbaa !5
  %5680 = getelementptr inbounds %struct.VdbeCursor, ptr %5679, i32 0, i32 12
  %5681 = load ptr, ptr %5680, align 8, !tbaa !16
  %5682 = call i32 %5678(ptr noundef %5681, ptr noundef %182)
  store i32 %5682, ptr %6, align 4, !tbaa !14
  %5683 = load ptr, ptr %3, align 8, !tbaa !5
  %5684 = load ptr, ptr %183, align 8, !tbaa !5
  call void @sqlite3VtabImportErrmsg(ptr noundef %5683, ptr noundef %5684)
  %5685 = load i32, ptr %6, align 4, !tbaa !14
  %5686 = icmp ne i32 %5685, 0
  br i1 %5686, label %5687, label %5688

5687:                                             ; preds = %5667
  store i32 10, ptr %23, align 4
  br label %5714

5688:                                             ; preds = %5667
  br label %5708

5689:                                             ; preds = %5661
  %5690 = load ptr, ptr %181, align 8, !tbaa !5
  %5691 = call i32 @sqlite3VdbeCursorRestore(ptr noundef %5690)
  store i32 %5691, ptr %6, align 4, !tbaa !14
  %5692 = load i32, ptr %6, align 4, !tbaa !14
  %5693 = icmp ne i32 %5692, 0
  br i1 %5693, label %5694, label %5695

5694:                                             ; preds = %5689
  store i32 10, ptr %23, align 4
  br label %5714

5695:                                             ; preds = %5689
  %5696 = load ptr, ptr %181, align 8, !tbaa !5
  %5697 = getelementptr inbounds %struct.VdbeCursor, ptr %5696, i32 0, i32 2
  %5698 = load i8, ptr %5697, align 2, !tbaa !86
  %5699 = icmp ne i8 %5698, 0
  br i1 %5699, label %5700, label %5703

5700:                                             ; preds = %5695
  %5701 = load ptr, ptr %17, align 8, !tbaa !5
  %5702 = getelementptr inbounds %struct.Mem, ptr %5701, i32 0, i32 1
  store i16 1, ptr %5702, align 8, !tbaa !36
  store i32 7, ptr %23, align 4
  br label %5714

5703:                                             ; preds = %5695
  %5704 = load ptr, ptr %181, align 8, !tbaa !5
  %5705 = getelementptr inbounds %struct.VdbeCursor, ptr %5704, i32 0, i32 12
  %5706 = load ptr, ptr %5705, align 8, !tbaa !16
  %5707 = call i64 @sqlite3BtreeIntegerKey(ptr noundef %5706)
  store i64 %5707, ptr %182, align 8, !tbaa !48
  br label %5708

5708:                                             ; preds = %5703, %5688
  br label %5709

5709:                                             ; preds = %5708, %5657
  br label %5710

5710:                                             ; preds = %5709
  %5711 = load i64, ptr %182, align 8, !tbaa !48
  %5712 = load ptr, ptr %17, align 8, !tbaa !5
  %5713 = getelementptr inbounds %struct.Mem, ptr %5712, i32 0, i32 0
  store i64 %5711, ptr %5713, align 8, !tbaa !16
  store i32 7, ptr %23, align 4
  br label %5714

5714:                                             ; preds = %5710, %5700, %5694, %5687, %5649
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #5
  %5715 = load i32, ptr %23, align 4
  switch i32 %5715, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

5716:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #5
  %5717 = load ptr, ptr %3, align 8, !tbaa !5
  %5718 = getelementptr inbounds %struct.Vdbe, ptr %5717, i32 0, i32 23
  %5719 = load ptr, ptr %5718, align 8, !tbaa !82
  %5720 = load ptr, ptr %5, align 8, !tbaa !5
  %5721 = getelementptr inbounds %struct.VdbeOp, ptr %5720, i32 0, i32 3
  %5722 = load i32, ptr %5721, align 4, !tbaa !35
  %5723 = sext i32 %5722 to i64
  %5724 = getelementptr inbounds ptr, ptr %5719, i64 %5723
  %5725 = load ptr, ptr %5724, align 8, !tbaa !5
  store ptr %5725, ptr %185, align 8, !tbaa !5
  %5726 = load ptr, ptr %185, align 8, !tbaa !5
  %5727 = getelementptr inbounds %struct.VdbeCursor, ptr %5726, i32 0, i32 2
  store i8 1, ptr %5727, align 2, !tbaa !86
  %5728 = load ptr, ptr %185, align 8, !tbaa !5
  %5729 = getelementptr inbounds %struct.VdbeCursor, ptr %5728, i32 0, i32 9
  store i32 0, ptr %5729, align 8, !tbaa !85
  %5730 = load ptr, ptr %185, align 8, !tbaa !5
  %5731 = getelementptr inbounds %struct.VdbeCursor, ptr %5730, i32 0, i32 0
  %5732 = load i8, ptr %5731, align 8, !tbaa !87
  %5733 = zext i8 %5732 to i32
  %5734 = icmp eq i32 %5733, 0
  br i1 %5734, label %5735, label %5739

5735:                                             ; preds = %5716
  %5736 = load ptr, ptr %185, align 8, !tbaa !5
  %5737 = getelementptr inbounds %struct.VdbeCursor, ptr %5736, i32 0, i32 12
  %5738 = load ptr, ptr %5737, align 8, !tbaa !16
  call void @sqlite3BtreeClearCursor(ptr noundef %5738)
  br label %5739

5739:                                             ; preds = %5735, %5716
  store i32 7, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #5
  br label %8475

5740:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %187) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #5
  %5741 = load ptr, ptr %3, align 8, !tbaa !5
  %5742 = getelementptr inbounds %struct.Vdbe, ptr %5741, i32 0, i32 23
  %5743 = load ptr, ptr %5742, align 8, !tbaa !82
  %5744 = load ptr, ptr %5, align 8, !tbaa !5
  %5745 = getelementptr inbounds %struct.VdbeOp, ptr %5744, i32 0, i32 3
  %5746 = load i32, ptr %5745, align 4, !tbaa !35
  %5747 = sext i32 %5746 to i64
  %5748 = getelementptr inbounds ptr, ptr %5743, i64 %5747
  %5749 = load ptr, ptr %5748, align 8, !tbaa !5
  store ptr %5749, ptr %186, align 8, !tbaa !5
  %5750 = load ptr, ptr %186, align 8, !tbaa !5
  %5751 = getelementptr inbounds %struct.VdbeCursor, ptr %5750, i32 0, i32 12
  %5752 = load ptr, ptr %5751, align 8, !tbaa !16
  store ptr %5752, ptr %187, align 8, !tbaa !5
  store i32 0, ptr %188, align 4, !tbaa !14
  %5753 = load ptr, ptr %5, align 8, !tbaa !5
  %5754 = getelementptr inbounds %struct.VdbeOp, ptr %5753, i32 0, i32 5
  %5755 = load i32, ptr %5754, align 4, !tbaa !38
  %5756 = load ptr, ptr %186, align 8, !tbaa !5
  %5757 = getelementptr inbounds %struct.VdbeCursor, ptr %5756, i32 0, i32 10
  store i32 %5755, ptr %5757, align 4, !tbaa !148
  %5758 = load ptr, ptr %5, align 8, !tbaa !5
  %5759 = getelementptr inbounds %struct.VdbeOp, ptr %5758, i32 0, i32 5
  %5760 = load i32, ptr %5759, align 4, !tbaa !38
  %5761 = icmp eq i32 %5760, 0
  br i1 %5761, label %5766, label %5762

5762:                                             ; preds = %5740
  %5763 = load ptr, ptr %187, align 8, !tbaa !5
  %5764 = call i32 @sqlite3BtreeCursorIsValidNN(ptr noundef %5763)
  %5765 = icmp ne i32 %5764, 0
  br i1 %5765, label %5791, label %5766

5766:                                             ; preds = %5762, %5740
  %5767 = load ptr, ptr %187, align 8, !tbaa !5
  %5768 = call i32 @sqlite3BtreeLast(ptr noundef %5767, ptr noundef %188)
  store i32 %5768, ptr %6, align 4, !tbaa !14
  %5769 = load i32, ptr %188, align 4, !tbaa !14
  %5770 = trunc i32 %5769 to i8
  %5771 = load ptr, ptr %186, align 8, !tbaa !5
  %5772 = getelementptr inbounds %struct.VdbeCursor, ptr %5771, i32 0, i32 2
  store i8 %5770, ptr %5772, align 2, !tbaa !86
  %5773 = load ptr, ptr %186, align 8, !tbaa !5
  %5774 = getelementptr inbounds %struct.VdbeCursor, ptr %5773, i32 0, i32 3
  store i8 0, ptr %5774, align 1, !tbaa !146
  %5775 = load ptr, ptr %186, align 8, !tbaa !5
  %5776 = getelementptr inbounds %struct.VdbeCursor, ptr %5775, i32 0, i32 9
  store i32 0, ptr %5776, align 8, !tbaa !85
  %5777 = load i32, ptr %6, align 4, !tbaa !14
  %5778 = icmp ne i32 %5777, 0
  br i1 %5778, label %5779, label %5780

5779:                                             ; preds = %5766
  store i32 10, ptr %23, align 4
  br label %5793

5780:                                             ; preds = %5766
  %5781 = load ptr, ptr %5, align 8, !tbaa !5
  %5782 = getelementptr inbounds %struct.VdbeOp, ptr %5781, i32 0, i32 4
  %5783 = load i32, ptr %5782, align 8, !tbaa !33
  %5784 = icmp sgt i32 %5783, 0
  br i1 %5784, label %5785, label %5790

5785:                                             ; preds = %5780
  %5786 = load i32, ptr %188, align 4, !tbaa !14
  %5787 = icmp ne i32 %5786, 0
  br i1 %5787, label %5788, label %5789

5788:                                             ; preds = %5785
  store i32 11, ptr %23, align 4
  br label %5793

5789:                                             ; preds = %5785
  br label %5790

5790:                                             ; preds = %5789, %5780
  br label %5792

5791:                                             ; preds = %5762
  br label %5792

5792:                                             ; preds = %5791, %5790
  store i32 7, ptr %23, align 4
  br label %5793

5793:                                             ; preds = %5792, %5788, %5779
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #5
  %5794 = load i32, ptr %23, align 4
  switch i32 %5794, label %8562 [
    i32 11, label %436
    i32 7, label %8475
    i32 10, label %8480
  ]

5795:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %189) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %190) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %192) #5
  %5796 = load ptr, ptr %3, align 8, !tbaa !5
  %5797 = getelementptr inbounds %struct.Vdbe, ptr %5796, i32 0, i32 23
  %5798 = load ptr, ptr %5797, align 8, !tbaa !82
  %5799 = load ptr, ptr %5, align 8, !tbaa !5
  %5800 = getelementptr inbounds %struct.VdbeOp, ptr %5799, i32 0, i32 3
  %5801 = load i32, ptr %5800, align 4, !tbaa !35
  %5802 = sext i32 %5801 to i64
  %5803 = getelementptr inbounds ptr, ptr %5798, i64 %5802
  %5804 = load ptr, ptr %5803, align 8, !tbaa !5
  store ptr %5804, ptr %189, align 8, !tbaa !5
  %5805 = load ptr, ptr %189, align 8, !tbaa !5
  %5806 = getelementptr inbounds %struct.VdbeCursor, ptr %5805, i32 0, i32 12
  %5807 = load ptr, ptr %5806, align 8, !tbaa !16
  store ptr %5807, ptr %190, align 8, !tbaa !5
  %5808 = load ptr, ptr %190, align 8, !tbaa !5
  %5809 = call i32 @sqlite3BtreeFirst(ptr noundef %5808, ptr noundef %191)
  store i32 %5809, ptr %6, align 4, !tbaa !14
  %5810 = load i32, ptr %6, align 4, !tbaa !14
  %5811 = icmp ne i32 %5810, 0
  br i1 %5811, label %5812, label %5813

5812:                                             ; preds = %5795
  store i32 10, ptr %23, align 4
  br label %5836

5813:                                             ; preds = %5795
  %5814 = load i32, ptr %191, align 4, !tbaa !14
  %5815 = icmp eq i32 %5814, 0
  br i1 %5815, label %5816, label %5831

5816:                                             ; preds = %5813
  %5817 = load ptr, ptr %190, align 8, !tbaa !5
  %5818 = call i64 @sqlite3BtreeRowCountEst(ptr noundef %5817)
  store i64 %5818, ptr %192, align 8, !tbaa !48
  %5819 = load i64, ptr %192, align 8, !tbaa !48
  %5820 = icmp sge i64 %5819, 0
  br i1 %5820, label %5821, label %5830

5821:                                             ; preds = %5816
  %5822 = load i64, ptr %192, align 8, !tbaa !48
  %5823 = call signext i16 @sqlite3LogEst(i64 noundef %5822)
  %5824 = sext i16 %5823 to i32
  %5825 = load ptr, ptr %5, align 8, !tbaa !5
  %5826 = getelementptr inbounds %struct.VdbeOp, ptr %5825, i32 0, i32 5
  %5827 = load i32, ptr %5826, align 4, !tbaa !38
  %5828 = icmp slt i32 %5824, %5827
  br i1 %5828, label %5829, label %5830

5829:                                             ; preds = %5821
  store i32 1, ptr %191, align 4, !tbaa !14
  br label %5830

5830:                                             ; preds = %5829, %5821, %5816
  br label %5831

5831:                                             ; preds = %5830, %5813
  %5832 = load i32, ptr %191, align 4, !tbaa !14
  %5833 = icmp ne i32 %5832, 0
  br i1 %5833, label %5834, label %5835

5834:                                             ; preds = %5831
  store i32 11, ptr %23, align 4
  br label %5836

5835:                                             ; preds = %5831
  store i32 7, ptr %23, align 4
  br label %5836

5836:                                             ; preds = %5835, %5834, %5812
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #5
  %5837 = load i32, ptr %23, align 4
  switch i32 %5837, label %8562 [
    i32 11, label %436
    i32 7, label %8475
    i32 10, label %8480
  ]

5838:                                             ; preds = %363, %363
  %5839 = load ptr, ptr %3, align 8, !tbaa !5
  %5840 = getelementptr inbounds %struct.Vdbe, ptr %5839, i32 0, i32 34
  %5841 = getelementptr inbounds [5 x i32], ptr %5840, i64 0, i64 2
  %5842 = load i32, ptr %5841, align 4, !tbaa !14
  %5843 = add i32 %5842, 1
  store i32 %5843, ptr %5841, align 4, !tbaa !14
  br label %5844

5844:                                             ; preds = %5838, %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #5
  %5845 = load ptr, ptr %3, align 8, !tbaa !5
  %5846 = getelementptr inbounds %struct.Vdbe, ptr %5845, i32 0, i32 23
  %5847 = load ptr, ptr %5846, align 8, !tbaa !82
  %5848 = load ptr, ptr %5, align 8, !tbaa !5
  %5849 = getelementptr inbounds %struct.VdbeOp, ptr %5848, i32 0, i32 3
  %5850 = load i32, ptr %5849, align 4, !tbaa !35
  %5851 = sext i32 %5850 to i64
  %5852 = getelementptr inbounds ptr, ptr %5847, i64 %5851
  %5853 = load ptr, ptr %5852, align 8, !tbaa !5
  store ptr %5853, ptr %193, align 8, !tbaa !5
  store i32 1, ptr %195, align 4, !tbaa !14
  %5854 = load ptr, ptr %193, align 8, !tbaa !5
  %5855 = getelementptr inbounds %struct.VdbeCursor, ptr %5854, i32 0, i32 0
  %5856 = load i8, ptr %5855, align 8, !tbaa !87
  %5857 = zext i8 %5856 to i32
  %5858 = icmp eq i32 %5857, 1
  br i1 %5858, label %5859, label %5862

5859:                                             ; preds = %5844
  %5860 = load ptr, ptr %193, align 8, !tbaa !5
  %5861 = call i32 @sqlite3VdbeSorterRewind(ptr noundef %5860, ptr noundef %195)
  store i32 %5861, ptr %6, align 4, !tbaa !14
  br label %5872

5862:                                             ; preds = %5844
  %5863 = load ptr, ptr %193, align 8, !tbaa !5
  %5864 = getelementptr inbounds %struct.VdbeCursor, ptr %5863, i32 0, i32 12
  %5865 = load ptr, ptr %5864, align 8, !tbaa !16
  store ptr %5865, ptr %194, align 8, !tbaa !5
  %5866 = load ptr, ptr %194, align 8, !tbaa !5
  %5867 = call i32 @sqlite3BtreeFirst(ptr noundef %5866, ptr noundef %195)
  store i32 %5867, ptr %6, align 4, !tbaa !14
  %5868 = load ptr, ptr %193, align 8, !tbaa !5
  %5869 = getelementptr inbounds %struct.VdbeCursor, ptr %5868, i32 0, i32 3
  store i8 0, ptr %5869, align 1, !tbaa !146
  %5870 = load ptr, ptr %193, align 8, !tbaa !5
  %5871 = getelementptr inbounds %struct.VdbeCursor, ptr %5870, i32 0, i32 9
  store i32 0, ptr %5871, align 8, !tbaa !85
  br label %5872

5872:                                             ; preds = %5862, %5859
  %5873 = load i32, ptr %6, align 4, !tbaa !14
  %5874 = icmp ne i32 %5873, 0
  br i1 %5874, label %5875, label %5876

5875:                                             ; preds = %5872
  store i32 10, ptr %23, align 4
  br label %5885

5876:                                             ; preds = %5872
  %5877 = load i32, ptr %195, align 4, !tbaa !14
  %5878 = trunc i32 %5877 to i8
  %5879 = load ptr, ptr %193, align 8, !tbaa !5
  %5880 = getelementptr inbounds %struct.VdbeCursor, ptr %5879, i32 0, i32 2
  store i8 %5878, ptr %5880, align 2, !tbaa !86
  %5881 = load i32, ptr %195, align 4, !tbaa !14
  %5882 = icmp ne i32 %5881, 0
  br i1 %5882, label %5883, label %5884

5883:                                             ; preds = %5876
  store i32 11, ptr %23, align 4
  br label %5885

5884:                                             ; preds = %5876
  store i32 7, ptr %23, align 4
  br label %5885

5885:                                             ; preds = %5884, %5883, %5875
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #5
  %5886 = load i32, ptr %23, align 4
  switch i32 %5886, label %8562 [
    i32 11, label %436
    i32 7, label %8475
    i32 10, label %8480
  ]

5887:                                             ; preds = %363
  %5888 = load ptr, ptr %3, align 8, !tbaa !5
  %5889 = getelementptr inbounds %struct.Vdbe, ptr %5888, i32 0, i32 23
  %5890 = load ptr, ptr %5889, align 8, !tbaa !82
  %5891 = load ptr, ptr %5, align 8, !tbaa !5
  %5892 = getelementptr inbounds %struct.VdbeOp, ptr %5891, i32 0, i32 3
  %5893 = load i32, ptr %5892, align 4, !tbaa !35
  %5894 = sext i32 %5893 to i64
  %5895 = getelementptr inbounds ptr, ptr %5890, i64 %5894
  %5896 = load ptr, ptr %5895, align 8, !tbaa !5
  store ptr %5896, ptr %196, align 8, !tbaa !5
  store i32 0, ptr %197, align 4, !tbaa !14
  %5897 = load ptr, ptr %7, align 8, !tbaa !5
  %5898 = load ptr, ptr %196, align 8, !tbaa !5
  %5899 = call i32 @sqlite3VdbeSorterNext(ptr noundef %5897, ptr noundef %5898, ptr noundef %197)
  store i32 %5899, ptr %6, align 4, !tbaa !14
  br label %5933

5900:                                             ; preds = %363, %363
  %5901 = load ptr, ptr %3, align 8, !tbaa !5
  %5902 = getelementptr inbounds %struct.Vdbe, ptr %5901, i32 0, i32 23
  %5903 = load ptr, ptr %5902, align 8, !tbaa !82
  %5904 = load ptr, ptr %5, align 8, !tbaa !5
  %5905 = getelementptr inbounds %struct.VdbeOp, ptr %5904, i32 0, i32 3
  %5906 = load i32, ptr %5905, align 4, !tbaa !35
  %5907 = sext i32 %5906 to i64
  %5908 = getelementptr inbounds ptr, ptr %5903, i64 %5907
  %5909 = load ptr, ptr %5908, align 8, !tbaa !5
  %5910 = icmp eq ptr %5909, null
  br i1 %5910, label %5911, label %5912

5911:                                             ; preds = %5900
  br label %8475

5912:                                             ; preds = %5900
  br label %5913

5913:                                             ; preds = %5912, %363, %363
  %5914 = load ptr, ptr %3, align 8, !tbaa !5
  %5915 = getelementptr inbounds %struct.Vdbe, ptr %5914, i32 0, i32 23
  %5916 = load ptr, ptr %5915, align 8, !tbaa !82
  %5917 = load ptr, ptr %5, align 8, !tbaa !5
  %5918 = getelementptr inbounds %struct.VdbeOp, ptr %5917, i32 0, i32 3
  %5919 = load i32, ptr %5918, align 4, !tbaa !35
  %5920 = sext i32 %5919 to i64
  %5921 = getelementptr inbounds ptr, ptr %5916, i64 %5920
  %5922 = load ptr, ptr %5921, align 8, !tbaa !5
  store ptr %5922, ptr %196, align 8, !tbaa !5
  %5923 = load ptr, ptr %5, align 8, !tbaa !5
  %5924 = getelementptr inbounds %struct.VdbeOp, ptr %5923, i32 0, i32 5
  %5925 = load i32, ptr %5924, align 4, !tbaa !38
  store i32 %5925, ptr %197, align 4, !tbaa !14
  %5926 = load ptr, ptr %5, align 8, !tbaa !5
  %5927 = getelementptr inbounds %struct.VdbeOp, ptr %5926, i32 0, i32 6
  %5928 = load ptr, ptr %5927, align 8, !tbaa !16
  %5929 = load ptr, ptr %196, align 8, !tbaa !5
  %5930 = getelementptr inbounds %struct.VdbeCursor, ptr %5929, i32 0, i32 12
  %5931 = load ptr, ptr %5930, align 8, !tbaa !16
  %5932 = call i32 %5928(ptr noundef %5931, ptr noundef %197)
  store i32 %5932, ptr %6, align 4, !tbaa !14
  br label %5933

5933:                                             ; preds = %5913, %5887
  %5934 = load ptr, ptr %196, align 8, !tbaa !5
  %5935 = getelementptr inbounds %struct.VdbeCursor, ptr %5934, i32 0, i32 9
  store i32 0, ptr %5935, align 8, !tbaa !85
  %5936 = load i32, ptr %6, align 4, !tbaa !14
  %5937 = icmp ne i32 %5936, 0
  br i1 %5937, label %5938, label %5939

5938:                                             ; preds = %5933
  br label %8480

5939:                                             ; preds = %5933
  %5940 = load i32, ptr %197, align 4, !tbaa !14
  %5941 = icmp eq i32 %5940, 0
  br i1 %5941, label %5942, label %5954

5942:                                             ; preds = %5939
  %5943 = load ptr, ptr %196, align 8, !tbaa !5
  %5944 = getelementptr inbounds %struct.VdbeCursor, ptr %5943, i32 0, i32 2
  store i8 0, ptr %5944, align 2, !tbaa !86
  %5945 = load ptr, ptr %3, align 8, !tbaa !5
  %5946 = getelementptr inbounds %struct.Vdbe, ptr %5945, i32 0, i32 34
  %5947 = load ptr, ptr %5, align 8, !tbaa !5
  %5948 = getelementptr inbounds %struct.VdbeOp, ptr %5947, i32 0, i32 2
  %5949 = load i16, ptr %5948, align 2, !tbaa !45
  %5950 = zext i16 %5949 to i64
  %5951 = getelementptr inbounds [5 x i32], ptr %5946, i64 0, i64 %5950
  %5952 = load i32, ptr %5951, align 4, !tbaa !14
  %5953 = add i32 %5952, 1
  store i32 %5953, ptr %5951, align 4, !tbaa !14
  br label %371

5954:                                             ; preds = %5939
  %5955 = load ptr, ptr %196, align 8, !tbaa !5
  %5956 = getelementptr inbounds %struct.VdbeCursor, ptr %5955, i32 0, i32 2
  store i8 1, ptr %5956, align 2, !tbaa !86
  br label %5957

5957:                                             ; preds = %5954
  br label %379

5958:                                             ; preds = %363, %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #5
  call void @llvm.lifetime.start.p0(i64 48, ptr %199) #5
  %5959 = load ptr, ptr %3, align 8, !tbaa !5
  %5960 = getelementptr inbounds %struct.Vdbe, ptr %5959, i32 0, i32 23
  %5961 = load ptr, ptr %5960, align 8, !tbaa !82
  %5962 = load ptr, ptr %5, align 8, !tbaa !5
  %5963 = getelementptr inbounds %struct.VdbeOp, ptr %5962, i32 0, i32 3
  %5964 = load i32, ptr %5963, align 4, !tbaa !35
  %5965 = sext i32 %5964 to i64
  %5966 = getelementptr inbounds ptr, ptr %5961, i64 %5965
  %5967 = load ptr, ptr %5966, align 8, !tbaa !5
  store ptr %5967, ptr %198, align 8, !tbaa !5
  %5968 = load ptr, ptr %13, align 8, !tbaa !5
  %5969 = load ptr, ptr %5, align 8, !tbaa !5
  %5970 = getelementptr inbounds %struct.VdbeOp, ptr %5969, i32 0, i32 4
  %5971 = load i32, ptr %5970, align 8, !tbaa !33
  %5972 = sext i32 %5971 to i64
  %5973 = getelementptr inbounds %struct.Mem, ptr %5968, i64 %5972
  store ptr %5973, ptr %15, align 8, !tbaa !5
  %5974 = load ptr, ptr %5, align 8, !tbaa !5
  %5975 = getelementptr inbounds %struct.VdbeOp, ptr %5974, i32 0, i32 2
  %5976 = load i16, ptr %5975, align 2, !tbaa !45
  %5977 = zext i16 %5976 to i32
  %5978 = and i32 %5977, 1
  %5979 = icmp ne i32 %5978, 0
  br i1 %5979, label %5980, label %5985

5980:                                             ; preds = %5958
  %5981 = load ptr, ptr %3, align 8, !tbaa !5
  %5982 = getelementptr inbounds %struct.Vdbe, ptr %5981, i32 0, i32 11
  %5983 = load i32, ptr %5982, align 4, !tbaa !43
  %5984 = add nsw i32 %5983, 1
  store i32 %5984, ptr %5982, align 4, !tbaa !43
  br label %5985

5985:                                             ; preds = %5980, %5958
  %5986 = load ptr, ptr %15, align 8, !tbaa !5
  %5987 = getelementptr inbounds %struct.Mem, ptr %5986, i32 0, i32 1
  %5988 = load i16, ptr %5987, align 8, !tbaa !36
  %5989 = zext i16 %5988 to i32
  %5990 = and i32 %5989, 16384
  %5991 = icmp ne i32 %5990, 0
  br i1 %5991, label %5992, label %5995

5992:                                             ; preds = %5985
  %5993 = load ptr, ptr %15, align 8, !tbaa !5
  %5994 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef %5993)
  br label %5996

5995:                                             ; preds = %5985
  br label %5996

5996:                                             ; preds = %5995, %5992
  %5997 = phi i32 [ %5994, %5992 ], [ 0, %5995 ]
  store i32 %5997, ptr %6, align 4, !tbaa !14
  %5998 = load i32, ptr %6, align 4, !tbaa !14
  %5999 = icmp ne i32 %5998, 0
  br i1 %5999, label %6000, label %6001

6000:                                             ; preds = %5996
  store i32 10, ptr %23, align 4
  br label %6062

6001:                                             ; preds = %5996
  %6002 = load ptr, ptr %5, align 8, !tbaa !5
  %6003 = getelementptr inbounds %struct.VdbeOp, ptr %6002, i32 0, i32 0
  %6004 = load i8, ptr %6003, align 8, !tbaa !31
  %6005 = zext i8 %6004 to i32
  %6006 = icmp eq i32 %6005, 125
  br i1 %6006, label %6007, label %6011

6007:                                             ; preds = %6001
  %6008 = load ptr, ptr %198, align 8, !tbaa !5
  %6009 = load ptr, ptr %15, align 8, !tbaa !5
  %6010 = call i32 @sqlite3VdbeSorterWrite(ptr noundef %6008, ptr noundef %6009)
  store i32 %6010, ptr %6, align 4, !tbaa !14
  br label %6057

6011:                                             ; preds = %6001
  %6012 = load ptr, ptr %15, align 8, !tbaa !5
  %6013 = getelementptr inbounds %struct.Mem, ptr %6012, i32 0, i32 4
  %6014 = load i32, ptr %6013, align 4, !tbaa !54
  %6015 = sext i32 %6014 to i64
  %6016 = getelementptr inbounds %struct.BtreePayload, ptr %199, i32 0, i32 1
  store i64 %6015, ptr %6016, align 8, !tbaa !152
  %6017 = load ptr, ptr %15, align 8, !tbaa !5
  %6018 = getelementptr inbounds %struct.Mem, ptr %6017, i32 0, i32 5
  %6019 = load ptr, ptr %6018, align 8, !tbaa !53
  %6020 = getelementptr inbounds %struct.BtreePayload, ptr %199, i32 0, i32 0
  store ptr %6019, ptr %6020, align 8, !tbaa !161
  %6021 = load ptr, ptr %13, align 8, !tbaa !5
  %6022 = load ptr, ptr %5, align 8, !tbaa !5
  %6023 = getelementptr inbounds %struct.VdbeOp, ptr %6022, i32 0, i32 5
  %6024 = load i32, ptr %6023, align 4, !tbaa !38
  %6025 = sext i32 %6024 to i64
  %6026 = getelementptr inbounds %struct.Mem, ptr %6021, i64 %6025
  %6027 = getelementptr inbounds %struct.BtreePayload, ptr %199, i32 0, i32 3
  store ptr %6026, ptr %6027, align 8, !tbaa !172
  %6028 = load ptr, ptr %5, align 8, !tbaa !5
  %6029 = getelementptr inbounds %struct.VdbeOp, ptr %6028, i32 0, i32 6
  %6030 = load i32, ptr %6029, align 8, !tbaa !16
  %6031 = trunc i32 %6030 to i16
  %6032 = getelementptr inbounds %struct.BtreePayload, ptr %199, i32 0, i32 4
  store i16 %6031, ptr %6032, align 8, !tbaa !173
  %6033 = load ptr, ptr %198, align 8, !tbaa !5
  %6034 = getelementptr inbounds %struct.VdbeCursor, ptr %6033, i32 0, i32 12
  %6035 = load ptr, ptr %6034, align 8, !tbaa !16
  %6036 = load ptr, ptr %5, align 8, !tbaa !5
  %6037 = getelementptr inbounds %struct.VdbeOp, ptr %6036, i32 0, i32 2
  %6038 = load i16, ptr %6037, align 2, !tbaa !45
  %6039 = zext i16 %6038 to i32
  %6040 = and i32 %6039, 10
  %6041 = load ptr, ptr %5, align 8, !tbaa !5
  %6042 = getelementptr inbounds %struct.VdbeOp, ptr %6041, i32 0, i32 2
  %6043 = load i16, ptr %6042, align 2, !tbaa !45
  %6044 = zext i16 %6043 to i32
  %6045 = and i32 %6044, 16
  %6046 = icmp ne i32 %6045, 0
  br i1 %6046, label %6047, label %6051

6047:                                             ; preds = %6011
  %6048 = load ptr, ptr %198, align 8, !tbaa !5
  %6049 = getelementptr inbounds %struct.VdbeCursor, ptr %6048, i32 0, i32 10
  %6050 = load i32, ptr %6049, align 4, !tbaa !148
  br label %6052

6051:                                             ; preds = %6011
  br label %6052

6052:                                             ; preds = %6051, %6047
  %6053 = phi i32 [ %6050, %6047 ], [ 0, %6051 ]
  %6054 = call i32 @sqlite3BtreeInsert(ptr noundef %6035, ptr noundef %199, i32 noundef %6040, i32 noundef %6053)
  store i32 %6054, ptr %6, align 4, !tbaa !14
  %6055 = load ptr, ptr %198, align 8, !tbaa !5
  %6056 = getelementptr inbounds %struct.VdbeCursor, ptr %6055, i32 0, i32 9
  store i32 0, ptr %6056, align 8, !tbaa !85
  br label %6057

6057:                                             ; preds = %6052, %6007
  %6058 = load i32, ptr %6, align 4, !tbaa !14
  %6059 = icmp ne i32 %6058, 0
  br i1 %6059, label %6060, label %6061

6060:                                             ; preds = %6057
  store i32 10, ptr %23, align 4
  br label %6062

6061:                                             ; preds = %6057
  store i32 7, ptr %23, align 4
  br label %6062

6062:                                             ; preds = %6061, %6060, %6000
  call void @llvm.lifetime.end.p0(i64 48, ptr %199) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #5
  %6063 = load i32, ptr %23, align 4
  switch i32 %6063, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

6064:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %200) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %201) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %203) #5
  %6065 = load ptr, ptr %3, align 8, !tbaa !5
  %6066 = getelementptr inbounds %struct.Vdbe, ptr %6065, i32 0, i32 23
  %6067 = load ptr, ptr %6066, align 8, !tbaa !82
  %6068 = load ptr, ptr %5, align 8, !tbaa !5
  %6069 = getelementptr inbounds %struct.VdbeOp, ptr %6068, i32 0, i32 3
  %6070 = load i32, ptr %6069, align 4, !tbaa !35
  %6071 = sext i32 %6070 to i64
  %6072 = getelementptr inbounds ptr, ptr %6067, i64 %6071
  %6073 = load ptr, ptr %6072, align 8, !tbaa !5
  store ptr %6073, ptr %200, align 8, !tbaa !5
  %6074 = load ptr, ptr %200, align 8, !tbaa !5
  %6075 = getelementptr inbounds %struct.VdbeCursor, ptr %6074, i32 0, i32 12
  %6076 = load ptr, ptr %6075, align 8, !tbaa !16
  store ptr %6076, ptr %201, align 8, !tbaa !5
  %6077 = load ptr, ptr %200, align 8, !tbaa !5
  %6078 = getelementptr inbounds %struct.VdbeCursor, ptr %6077, i32 0, i32 13
  %6079 = load ptr, ptr %6078, align 8, !tbaa !134
  %6080 = getelementptr inbounds %struct.UnpackedRecord, ptr %203, i32 0, i32 0
  store ptr %6079, ptr %6080, align 8, !tbaa !140
  %6081 = load ptr, ptr %5, align 8, !tbaa !5
  %6082 = getelementptr inbounds %struct.VdbeOp, ptr %6081, i32 0, i32 5
  %6083 = load i32, ptr %6082, align 4, !tbaa !38
  %6084 = trunc i32 %6083 to i16
  %6085 = getelementptr inbounds %struct.UnpackedRecord, ptr %203, i32 0, i32 2
  store i16 %6084, ptr %6085, align 8, !tbaa !142
  %6086 = getelementptr inbounds %struct.UnpackedRecord, ptr %203, i32 0, i32 3
  store i8 0, ptr %6086, align 2, !tbaa !143
  %6087 = load ptr, ptr %13, align 8, !tbaa !5
  %6088 = load ptr, ptr %5, align 8, !tbaa !5
  %6089 = getelementptr inbounds %struct.VdbeOp, ptr %6088, i32 0, i32 4
  %6090 = load i32, ptr %6089, align 8, !tbaa !33
  %6091 = sext i32 %6090 to i64
  %6092 = getelementptr inbounds %struct.Mem, ptr %6087, i64 %6091
  %6093 = getelementptr inbounds %struct.UnpackedRecord, ptr %203, i32 0, i32 1
  store ptr %6092, ptr %6093, align 8, !tbaa !144
  %6094 = load ptr, ptr %201, align 8, !tbaa !5
  %6095 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %6094, ptr noundef %203, i64 noundef 0, i32 noundef 0, ptr noundef %202)
  store i32 %6095, ptr %6, align 4, !tbaa !14
  %6096 = load i32, ptr %6, align 4, !tbaa !14
  %6097 = icmp ne i32 %6096, 0
  br i1 %6097, label %6098, label %6099

6098:                                             ; preds = %6064
  store i32 10, ptr %23, align 4
  br label %6114

6099:                                             ; preds = %6064
  %6100 = load i32, ptr %202, align 4, !tbaa !14
  %6101 = icmp eq i32 %6100, 0
  br i1 %6101, label %6102, label %6109

6102:                                             ; preds = %6099
  %6103 = load ptr, ptr %201, align 8, !tbaa !5
  %6104 = call i32 @sqlite3BtreeDelete(ptr noundef %6103, i8 noundef zeroext 4)
  store i32 %6104, ptr %6, align 4, !tbaa !14
  %6105 = load i32, ptr %6, align 4, !tbaa !14
  %6106 = icmp ne i32 %6105, 0
  br i1 %6106, label %6107, label %6108

6107:                                             ; preds = %6102
  store i32 10, ptr %23, align 4
  br label %6114

6108:                                             ; preds = %6102
  br label %6109

6109:                                             ; preds = %6108, %6099
  %6110 = load ptr, ptr %200, align 8, !tbaa !5
  %6111 = getelementptr inbounds %struct.VdbeCursor, ptr %6110, i32 0, i32 9
  store i32 0, ptr %6111, align 8, !tbaa !85
  %6112 = load ptr, ptr %200, align 8, !tbaa !5
  %6113 = getelementptr inbounds %struct.VdbeCursor, ptr %6112, i32 0, i32 10
  store i32 0, ptr %6113, align 4, !tbaa !148
  store i32 7, ptr %23, align 4
  br label %6114

6114:                                             ; preds = %6109, %6107, %6098
  call void @llvm.lifetime.end.p0(i64 24, ptr %203) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #5
  %6115 = load i32, ptr %23, align 4
  switch i32 %6115, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

6116:                                             ; preds = %363, %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %204) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %206) #5
  %6117 = load ptr, ptr %3, align 8, !tbaa !5
  %6118 = getelementptr inbounds %struct.Vdbe, ptr %6117, i32 0, i32 23
  %6119 = load ptr, ptr %6118, align 8, !tbaa !82
  %6120 = load ptr, ptr %5, align 8, !tbaa !5
  %6121 = getelementptr inbounds %struct.VdbeOp, ptr %6120, i32 0, i32 3
  %6122 = load i32, ptr %6121, align 4, !tbaa !35
  %6123 = sext i32 %6122 to i64
  %6124 = getelementptr inbounds ptr, ptr %6119, i64 %6123
  %6125 = load ptr, ptr %6124, align 8, !tbaa !5
  store ptr %6125, ptr %204, align 8, !tbaa !5
  %6126 = load ptr, ptr %204, align 8, !tbaa !5
  %6127 = call i32 @sqlite3VdbeCursorRestore(ptr noundef %6126)
  store i32 %6127, ptr %6, align 4, !tbaa !14
  %6128 = load i32, ptr %6, align 4, !tbaa !14
  %6129 = icmp ne i32 %6128, 0
  br i1 %6129, label %6130, label %6131

6130:                                             ; preds = %6116
  store i32 10, ptr %23, align 4
  br label %6192

6131:                                             ; preds = %6116
  %6132 = load ptr, ptr %204, align 8, !tbaa !5
  %6133 = getelementptr inbounds %struct.VdbeCursor, ptr %6132, i32 0, i32 2
  %6134 = load i8, ptr %6133, align 2, !tbaa !86
  %6135 = icmp ne i8 %6134, 0
  br i1 %6135, label %6184, label %6136

6136:                                             ; preds = %6131
  store i64 0, ptr %206, align 8, !tbaa !48
  %6137 = load ptr, ptr %7, align 8, !tbaa !5
  %6138 = load ptr, ptr %204, align 8, !tbaa !5
  %6139 = getelementptr inbounds %struct.VdbeCursor, ptr %6138, i32 0, i32 12
  %6140 = load ptr, ptr %6139, align 8, !tbaa !16
  %6141 = call i32 @sqlite3VdbeIdxRowid(ptr noundef %6137, ptr noundef %6140, ptr noundef %206)
  store i32 %6141, ptr %6, align 4, !tbaa !14
  %6142 = load i32, ptr %6, align 4, !tbaa !14
  %6143 = icmp ne i32 %6142, 0
  br i1 %6143, label %6144, label %6145

6144:                                             ; preds = %6136
  store i32 10, ptr %23, align 4
  br label %6192

6145:                                             ; preds = %6136
  %6146 = load ptr, ptr %5, align 8, !tbaa !5
  %6147 = getelementptr inbounds %struct.VdbeOp, ptr %6146, i32 0, i32 0
  %6148 = load i8, ptr %6147, align 8, !tbaa !31
  %6149 = zext i8 %6148 to i32
  %6150 = icmp eq i32 %6149, 128
  br i1 %6150, label %6151, label %6176

6151:                                             ; preds = %6145
  %6152 = load ptr, ptr %3, align 8, !tbaa !5
  %6153 = getelementptr inbounds %struct.Vdbe, ptr %6152, i32 0, i32 23
  %6154 = load ptr, ptr %6153, align 8, !tbaa !82
  %6155 = load ptr, ptr %5, align 8, !tbaa !5
  %6156 = getelementptr inbounds %struct.VdbeOp, ptr %6155, i32 0, i32 5
  %6157 = load i32, ptr %6156, align 4, !tbaa !38
  %6158 = sext i32 %6157 to i64
  %6159 = getelementptr inbounds ptr, ptr %6154, i64 %6158
  %6160 = load ptr, ptr %6159, align 8, !tbaa !5
  store ptr %6160, ptr %205, align 8, !tbaa !5
  %6161 = load ptr, ptr %205, align 8, !tbaa !5
  %6162 = getelementptr inbounds %struct.VdbeCursor, ptr %6161, i32 0, i32 2
  store i8 0, ptr %6162, align 2, !tbaa !86
  %6163 = load i64, ptr %206, align 8, !tbaa !48
  %6164 = load ptr, ptr %205, align 8, !tbaa !5
  %6165 = getelementptr inbounds %struct.VdbeCursor, ptr %6164, i32 0, i32 18
  store i64 %6163, ptr %6165, align 8, !tbaa !139
  %6166 = load ptr, ptr %205, align 8, !tbaa !5
  %6167 = getelementptr inbounds %struct.VdbeCursor, ptr %6166, i32 0, i32 3
  store i8 1, ptr %6167, align 1, !tbaa !146
  %6168 = load ptr, ptr %5, align 8, !tbaa !5
  %6169 = getelementptr inbounds %struct.VdbeOp, ptr %6168, i32 0, i32 6
  %6170 = load ptr, ptr %6169, align 8, !tbaa !16
  %6171 = load ptr, ptr %205, align 8, !tbaa !5
  %6172 = getelementptr inbounds %struct.VdbeCursor, ptr %6171, i32 0, i32 8
  store ptr %6170, ptr %6172, align 8, !tbaa !174
  %6173 = load ptr, ptr %204, align 8, !tbaa !5
  %6174 = load ptr, ptr %205, align 8, !tbaa !5
  %6175 = getelementptr inbounds %struct.VdbeCursor, ptr %6174, i32 0, i32 11
  store ptr %6173, ptr %6175, align 8, !tbaa !175
  br label %6183

6176:                                             ; preds = %6145
  %6177 = load ptr, ptr %3, align 8, !tbaa !5
  %6178 = load ptr, ptr %5, align 8, !tbaa !5
  %6179 = call ptr @out2Prerelease(ptr noundef %6177, ptr noundef %6178)
  store ptr %6179, ptr %17, align 8, !tbaa !5
  %6180 = load i64, ptr %206, align 8, !tbaa !48
  %6181 = load ptr, ptr %17, align 8, !tbaa !5
  %6182 = getelementptr inbounds %struct.Mem, ptr %6181, i32 0, i32 0
  store i64 %6180, ptr %6182, align 8, !tbaa !16
  br label %6183

6183:                                             ; preds = %6176, %6151
  br label %6191

6184:                                             ; preds = %6131
  %6185 = load ptr, ptr %13, align 8, !tbaa !5
  %6186 = load ptr, ptr %5, align 8, !tbaa !5
  %6187 = getelementptr inbounds %struct.VdbeOp, ptr %6186, i32 0, i32 4
  %6188 = load i32, ptr %6187, align 8, !tbaa !33
  %6189 = sext i32 %6188 to i64
  %6190 = getelementptr inbounds %struct.Mem, ptr %6185, i64 %6189
  call void @sqlite3VdbeMemSetNull(ptr noundef %6190)
  br label %6191

6191:                                             ; preds = %6184, %6183
  store i32 7, ptr %23, align 4
  br label %6192

6192:                                             ; preds = %6191, %6144, %6130
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #5
  %6193 = load i32, ptr %23, align 4
  switch i32 %6193, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

6194:                                             ; preds = %363, %363, %363, %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %207) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %209) #5
  %6195 = load ptr, ptr %3, align 8, !tbaa !5
  %6196 = getelementptr inbounds %struct.Vdbe, ptr %6195, i32 0, i32 23
  %6197 = load ptr, ptr %6196, align 8, !tbaa !82
  %6198 = load ptr, ptr %5, align 8, !tbaa !5
  %6199 = getelementptr inbounds %struct.VdbeOp, ptr %6198, i32 0, i32 3
  %6200 = load i32, ptr %6199, align 4, !tbaa !35
  %6201 = sext i32 %6200 to i64
  %6202 = getelementptr inbounds ptr, ptr %6197, i64 %6201
  %6203 = load ptr, ptr %6202, align 8, !tbaa !5
  store ptr %6203, ptr %207, align 8, !tbaa !5
  %6204 = load ptr, ptr %207, align 8, !tbaa !5
  %6205 = getelementptr inbounds %struct.VdbeCursor, ptr %6204, i32 0, i32 13
  %6206 = load ptr, ptr %6205, align 8, !tbaa !134
  %6207 = getelementptr inbounds %struct.UnpackedRecord, ptr %209, i32 0, i32 0
  store ptr %6206, ptr %6207, align 8, !tbaa !140
  %6208 = load ptr, ptr %5, align 8, !tbaa !5
  %6209 = getelementptr inbounds %struct.VdbeOp, ptr %6208, i32 0, i32 6
  %6210 = load i32, ptr %6209, align 8, !tbaa !16
  %6211 = trunc i32 %6210 to i16
  %6212 = getelementptr inbounds %struct.UnpackedRecord, ptr %209, i32 0, i32 2
  store i16 %6211, ptr %6212, align 8, !tbaa !142
  %6213 = load ptr, ptr %5, align 8, !tbaa !5
  %6214 = getelementptr inbounds %struct.VdbeOp, ptr %6213, i32 0, i32 0
  %6215 = load i8, ptr %6214, align 8, !tbaa !31
  %6216 = zext i8 %6215 to i32
  %6217 = icmp slt i32 %6216, 61
  br i1 %6217, label %6218, label %6220

6218:                                             ; preds = %6194
  %6219 = getelementptr inbounds %struct.UnpackedRecord, ptr %209, i32 0, i32 3
  store i8 -1, ptr %6219, align 2, !tbaa !143
  br label %6222

6220:                                             ; preds = %6194
  %6221 = getelementptr inbounds %struct.UnpackedRecord, ptr %209, i32 0, i32 3
  store i8 0, ptr %6221, align 2, !tbaa !143
  br label %6222

6222:                                             ; preds = %6220, %6218
  %6223 = load ptr, ptr %13, align 8, !tbaa !5
  %6224 = load ptr, ptr %5, align 8, !tbaa !5
  %6225 = getelementptr inbounds %struct.VdbeOp, ptr %6224, i32 0, i32 5
  %6226 = load i32, ptr %6225, align 4, !tbaa !38
  %6227 = sext i32 %6226 to i64
  %6228 = getelementptr inbounds %struct.Mem, ptr %6223, i64 %6227
  %6229 = getelementptr inbounds %struct.UnpackedRecord, ptr %209, i32 0, i32 1
  store ptr %6228, ptr %6229, align 8, !tbaa !144
  store i32 0, ptr %208, align 4, !tbaa !14
  %6230 = load ptr, ptr %7, align 8, !tbaa !5
  %6231 = load ptr, ptr %207, align 8, !tbaa !5
  %6232 = call i32 @sqlite3VdbeIdxKeyCompare(ptr noundef %6230, ptr noundef %6231, ptr noundef %209, ptr noundef %208)
  store i32 %6232, ptr %6, align 4, !tbaa !14
  %6233 = load ptr, ptr %5, align 8, !tbaa !5
  %6234 = getelementptr inbounds %struct.VdbeOp, ptr %6233, i32 0, i32 0
  %6235 = load i8, ptr %6234, align 8, !tbaa !31
  %6236 = zext i8 %6235 to i32
  %6237 = and i32 %6236, 1
  %6238 = icmp eq i32 %6237, 1
  br i1 %6238, label %6239, label %6242

6239:                                             ; preds = %6222
  %6240 = load i32, ptr %208, align 4, !tbaa !14
  %6241 = sub nsw i32 0, %6240
  store i32 %6241, ptr %208, align 4, !tbaa !14
  br label %6245

6242:                                             ; preds = %6222
  %6243 = load i32, ptr %208, align 4, !tbaa !14
  %6244 = add nsw i32 %6243, 1
  store i32 %6244, ptr %208, align 4, !tbaa !14
  br label %6245

6245:                                             ; preds = %6242, %6239
  %6246 = load i32, ptr %6, align 4, !tbaa !14
  %6247 = icmp ne i32 %6246, 0
  br i1 %6247, label %6248, label %6249

6248:                                             ; preds = %6245
  store i32 10, ptr %23, align 4
  br label %6254

6249:                                             ; preds = %6245
  %6250 = load i32, ptr %208, align 4, !tbaa !14
  %6251 = icmp sgt i32 %6250, 0
  br i1 %6251, label %6252, label %6253

6252:                                             ; preds = %6249
  store i32 11, ptr %23, align 4
  br label %6254

6253:                                             ; preds = %6249
  store i32 7, ptr %23, align 4
  br label %6254

6254:                                             ; preds = %6253, %6252, %6248
  call void @llvm.lifetime.end.p0(i64 24, ptr %209) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #5
  %6255 = load i32, ptr %23, align 4
  switch i32 %6255, label %8562 [
    i32 11, label %436
    i32 7, label %8475
    i32 10, label %8480
  ]

6256:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #5
  %6257 = load ptr, ptr %3, align 8, !tbaa !5
  %6258 = load ptr, ptr %5, align 8, !tbaa !5
  %6259 = call ptr @out2Prerelease(ptr noundef %6257, ptr noundef %6258)
  store ptr %6259, ptr %17, align 8, !tbaa !5
  %6260 = load ptr, ptr %17, align 8, !tbaa !5
  %6261 = getelementptr inbounds %struct.Mem, ptr %6260, i32 0, i32 1
  store i16 1, ptr %6261, align 8, !tbaa !36
  %6262 = load ptr, ptr %7, align 8, !tbaa !5
  %6263 = getelementptr inbounds %struct.sqlite3, ptr %6262, i32 0, i32 35
  %6264 = load i32, ptr %6263, align 8, !tbaa !122
  %6265 = load ptr, ptr %7, align 8, !tbaa !5
  %6266 = getelementptr inbounds %struct.sqlite3, ptr %6265, i32 0, i32 38
  %6267 = load i32, ptr %6266, align 4, !tbaa !176
  %6268 = add nsw i32 %6267, 1
  %6269 = icmp sgt i32 %6264, %6268
  br i1 %6269, label %6270, label %6273

6270:                                             ; preds = %6256
  store i32 6, ptr %6, align 4, !tbaa !14
  %6271 = load ptr, ptr %3, align 8, !tbaa !5
  %6272 = getelementptr inbounds %struct.Vdbe, ptr %6271, i32 0, i32 29
  store i8 2, ptr %6272, align 2, !tbaa !44
  store i32 10, ptr %23, align 4
  br label %6313

6273:                                             ; preds = %6256
  %6274 = load ptr, ptr %5, align 8, !tbaa !5
  %6275 = getelementptr inbounds %struct.VdbeOp, ptr %6274, i32 0, i32 5
  %6276 = load i32, ptr %6275, align 4, !tbaa !38
  store i32 %6276, ptr %211, align 4, !tbaa !14
  store i32 0, ptr %210, align 4, !tbaa !14
  %6277 = load ptr, ptr %7, align 8, !tbaa !5
  %6278 = getelementptr inbounds %struct.sqlite3, ptr %6277, i32 0, i32 4
  %6279 = load ptr, ptr %6278, align 8, !tbaa !116
  %6280 = load i32, ptr %211, align 4, !tbaa !14
  %6281 = sext i32 %6280 to i64
  %6282 = getelementptr inbounds %struct.Db, ptr %6279, i64 %6281
  %6283 = getelementptr inbounds %struct.Db, ptr %6282, i32 0, i32 1
  %6284 = load ptr, ptr %6283, align 8, !tbaa !117
  %6285 = load ptr, ptr %5, align 8, !tbaa !5
  %6286 = getelementptr inbounds %struct.VdbeOp, ptr %6285, i32 0, i32 3
  %6287 = load i32, ptr %6286, align 4, !tbaa !35
  %6288 = call i32 @sqlite3BtreeDropTable(ptr noundef %6284, i32 noundef %6287, ptr noundef %210)
  store i32 %6288, ptr %6, align 4, !tbaa !14
  %6289 = load ptr, ptr %17, align 8, !tbaa !5
  %6290 = getelementptr inbounds %struct.Mem, ptr %6289, i32 0, i32 1
  store i16 4, ptr %6290, align 8, !tbaa !36
  %6291 = load i32, ptr %210, align 4, !tbaa !14
  %6292 = sext i32 %6291 to i64
  %6293 = load ptr, ptr %17, align 8, !tbaa !5
  %6294 = getelementptr inbounds %struct.Mem, ptr %6293, i32 0, i32 0
  store i64 %6292, ptr %6294, align 8, !tbaa !16
  %6295 = load i32, ptr %6, align 4, !tbaa !14
  %6296 = icmp ne i32 %6295, 0
  br i1 %6296, label %6297, label %6298

6297:                                             ; preds = %6273
  store i32 10, ptr %23, align 4
  br label %6313

6298:                                             ; preds = %6273
  %6299 = load i32, ptr %210, align 4, !tbaa !14
  %6300 = icmp ne i32 %6299, 0
  br i1 %6300, label %6301, label %6311

6301:                                             ; preds = %6298
  %6302 = load ptr, ptr %7, align 8, !tbaa !5
  %6303 = load i32, ptr %211, align 4, !tbaa !14
  %6304 = load i32, ptr %210, align 4, !tbaa !14
  %6305 = load ptr, ptr %5, align 8, !tbaa !5
  %6306 = getelementptr inbounds %struct.VdbeOp, ptr %6305, i32 0, i32 3
  %6307 = load i32, ptr %6306, align 4, !tbaa !35
  call void @sqlite3RootPageMoved(ptr noundef %6302, i32 noundef %6303, i32 noundef %6304, i32 noundef %6307)
  %6308 = load i32, ptr %211, align 4, !tbaa !14
  %6309 = add nsw i32 %6308, 1
  %6310 = trunc i32 %6309 to i8
  store i8 %6310, ptr %8, align 1, !tbaa !16
  br label %6311

6311:                                             ; preds = %6301, %6298
  br label %6312

6312:                                             ; preds = %6311
  store i32 7, ptr %23, align 4
  br label %6313

6313:                                             ; preds = %6312, %6297, %6270
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #5
  %6314 = load i32, ptr %23, align 4
  switch i32 %6314, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

6315:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #5
  store i32 0, ptr %212, align 4, !tbaa !14
  %6316 = load ptr, ptr %7, align 8, !tbaa !5
  %6317 = getelementptr inbounds %struct.sqlite3, ptr %6316, i32 0, i32 4
  %6318 = load ptr, ptr %6317, align 8, !tbaa !116
  %6319 = load ptr, ptr %5, align 8, !tbaa !5
  %6320 = getelementptr inbounds %struct.VdbeOp, ptr %6319, i32 0, i32 4
  %6321 = load i32, ptr %6320, align 8, !tbaa !33
  %6322 = sext i32 %6321 to i64
  %6323 = getelementptr inbounds %struct.Db, ptr %6318, i64 %6322
  %6324 = getelementptr inbounds %struct.Db, ptr %6323, i32 0, i32 1
  %6325 = load ptr, ptr %6324, align 8, !tbaa !117
  %6326 = load ptr, ptr %5, align 8, !tbaa !5
  %6327 = getelementptr inbounds %struct.VdbeOp, ptr %6326, i32 0, i32 3
  %6328 = load i32, ptr %6327, align 4, !tbaa !35
  %6329 = load ptr, ptr %5, align 8, !tbaa !5
  %6330 = getelementptr inbounds %struct.VdbeOp, ptr %6329, i32 0, i32 5
  %6331 = load i32, ptr %6330, align 4, !tbaa !38
  %6332 = icmp ne i32 %6331, 0
  br i1 %6332, label %6333, label %6334

6333:                                             ; preds = %6315
  br label %6335

6334:                                             ; preds = %6315
  br label %6335

6335:                                             ; preds = %6334, %6333
  %6336 = phi ptr [ %212, %6333 ], [ null, %6334 ]
  %6337 = call i32 @sqlite3BtreeClearTable(ptr noundef %6325, i32 noundef %6328, ptr noundef %6336)
  store i32 %6337, ptr %6, align 4, !tbaa !14
  %6338 = load ptr, ptr %5, align 8, !tbaa !5
  %6339 = getelementptr inbounds %struct.VdbeOp, ptr %6338, i32 0, i32 5
  %6340 = load i32, ptr %6339, align 4, !tbaa !38
  %6341 = icmp ne i32 %6340, 0
  br i1 %6341, label %6342, label %6365

6342:                                             ; preds = %6335
  %6343 = load i32, ptr %212, align 4, !tbaa !14
  %6344 = load ptr, ptr %3, align 8, !tbaa !5
  %6345 = getelementptr inbounds %struct.Vdbe, ptr %6344, i32 0, i32 11
  %6346 = load i32, ptr %6345, align 4, !tbaa !43
  %6347 = add nsw i32 %6346, %6343
  store i32 %6347, ptr %6345, align 4, !tbaa !43
  %6348 = load ptr, ptr %5, align 8, !tbaa !5
  %6349 = getelementptr inbounds %struct.VdbeOp, ptr %6348, i32 0, i32 5
  %6350 = load i32, ptr %6349, align 4, !tbaa !38
  %6351 = icmp sgt i32 %6350, 0
  br i1 %6351, label %6352, label %6364

6352:                                             ; preds = %6342
  %6353 = load i32, ptr %212, align 4, !tbaa !14
  %6354 = sext i32 %6353 to i64
  %6355 = load ptr, ptr %13, align 8, !tbaa !5
  %6356 = load ptr, ptr %5, align 8, !tbaa !5
  %6357 = getelementptr inbounds %struct.VdbeOp, ptr %6356, i32 0, i32 5
  %6358 = load i32, ptr %6357, align 4, !tbaa !38
  %6359 = sext i32 %6358 to i64
  %6360 = getelementptr inbounds %struct.Mem, ptr %6355, i64 %6359
  %6361 = getelementptr inbounds %struct.Mem, ptr %6360, i32 0, i32 0
  %6362 = load i64, ptr %6361, align 8, !tbaa !16
  %6363 = add nsw i64 %6362, %6354
  store i64 %6363, ptr %6361, align 8, !tbaa !16
  br label %6364

6364:                                             ; preds = %6352, %6342
  br label %6365

6365:                                             ; preds = %6364, %6335
  %6366 = load i32, ptr %6, align 4, !tbaa !14
  %6367 = icmp ne i32 %6366, 0
  br i1 %6367, label %6368, label %6369

6368:                                             ; preds = %6365
  store i32 10, ptr %23, align 4
  br label %6370

6369:                                             ; preds = %6365
  store i32 7, ptr %23, align 4
  br label %6370

6370:                                             ; preds = %6369, %6368
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #5
  %6371 = load i32, ptr %23, align 4
  switch i32 %6371, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

6372:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #5
  %6373 = load ptr, ptr %3, align 8, !tbaa !5
  %6374 = getelementptr inbounds %struct.Vdbe, ptr %6373, i32 0, i32 23
  %6375 = load ptr, ptr %6374, align 8, !tbaa !82
  %6376 = load ptr, ptr %5, align 8, !tbaa !5
  %6377 = getelementptr inbounds %struct.VdbeOp, ptr %6376, i32 0, i32 3
  %6378 = load i32, ptr %6377, align 4, !tbaa !35
  %6379 = sext i32 %6378 to i64
  %6380 = getelementptr inbounds ptr, ptr %6375, i64 %6379
  %6381 = load ptr, ptr %6380, align 8, !tbaa !5
  store ptr %6381, ptr %213, align 8, !tbaa !5
  %6382 = load ptr, ptr %213, align 8, !tbaa !5
  %6383 = getelementptr inbounds %struct.VdbeCursor, ptr %6382, i32 0, i32 0
  %6384 = load i8, ptr %6383, align 8, !tbaa !87
  %6385 = zext i8 %6384 to i32
  %6386 = icmp eq i32 %6385, 1
  br i1 %6386, label %6387, label %6392

6387:                                             ; preds = %6372
  %6388 = load ptr, ptr %7, align 8, !tbaa !5
  %6389 = load ptr, ptr %213, align 8, !tbaa !5
  %6390 = getelementptr inbounds %struct.VdbeCursor, ptr %6389, i32 0, i32 12
  %6391 = load ptr, ptr %6390, align 8, !tbaa !16
  call void @sqlite3VdbeSorterReset(ptr noundef %6388, ptr noundef %6391)
  br label %6401

6392:                                             ; preds = %6372
  %6393 = load ptr, ptr %213, align 8, !tbaa !5
  %6394 = getelementptr inbounds %struct.VdbeCursor, ptr %6393, i32 0, i32 12
  %6395 = load ptr, ptr %6394, align 8, !tbaa !16
  %6396 = call i32 @sqlite3BtreeClearTableOfCursor(ptr noundef %6395)
  store i32 %6396, ptr %6, align 4, !tbaa !14
  %6397 = load i32, ptr %6, align 4, !tbaa !14
  %6398 = icmp ne i32 %6397, 0
  br i1 %6398, label %6399, label %6400

6399:                                             ; preds = %6392
  store i32 10, ptr %23, align 4
  br label %6402

6400:                                             ; preds = %6392
  br label %6401

6401:                                             ; preds = %6400, %6387
  store i32 7, ptr %23, align 4
  br label %6402

6402:                                             ; preds = %6401, %6399
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #5
  %6403 = load i32, ptr %23, align 4
  switch i32 %6403, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

6404:                                             ; preds = %363, %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %216) #5
  %6405 = load ptr, ptr %3, align 8, !tbaa !5
  %6406 = load ptr, ptr %5, align 8, !tbaa !5
  %6407 = call ptr @out2Prerelease(ptr noundef %6405, ptr noundef %6406)
  store ptr %6407, ptr %17, align 8, !tbaa !5
  store i32 0, ptr %214, align 4, !tbaa !14
  %6408 = load ptr, ptr %7, align 8, !tbaa !5
  %6409 = getelementptr inbounds %struct.sqlite3, ptr %6408, i32 0, i32 4
  %6410 = load ptr, ptr %6409, align 8, !tbaa !116
  %6411 = load ptr, ptr %5, align 8, !tbaa !5
  %6412 = getelementptr inbounds %struct.VdbeOp, ptr %6411, i32 0, i32 3
  %6413 = load i32, ptr %6412, align 4, !tbaa !35
  %6414 = sext i32 %6413 to i64
  %6415 = getelementptr inbounds %struct.Db, ptr %6410, i64 %6414
  store ptr %6415, ptr %216, align 8, !tbaa !5
  %6416 = load ptr, ptr %5, align 8, !tbaa !5
  %6417 = getelementptr inbounds %struct.VdbeOp, ptr %6416, i32 0, i32 0
  %6418 = load i8, ptr %6417, align 8, !tbaa !31
  %6419 = zext i8 %6418 to i32
  %6420 = icmp eq i32 %6419, 135
  br i1 %6420, label %6421, label %6422

6421:                                             ; preds = %6404
  store i32 1, ptr %215, align 4, !tbaa !14
  br label %6423

6422:                                             ; preds = %6404
  store i32 2, ptr %215, align 4, !tbaa !14
  br label %6423

6423:                                             ; preds = %6422, %6421
  %6424 = load ptr, ptr %216, align 8, !tbaa !5
  %6425 = getelementptr inbounds %struct.Db, ptr %6424, i32 0, i32 1
  %6426 = load ptr, ptr %6425, align 8, !tbaa !117
  %6427 = load i32, ptr %215, align 4, !tbaa !14
  %6428 = call i32 @sqlite3BtreeCreateTable(ptr noundef %6426, ptr noundef %214, i32 noundef %6427)
  store i32 %6428, ptr %6, align 4, !tbaa !14
  %6429 = load i32, ptr %6, align 4, !tbaa !14
  %6430 = icmp ne i32 %6429, 0
  br i1 %6430, label %6431, label %6432

6431:                                             ; preds = %6423
  store i32 10, ptr %23, align 4
  br label %6437

6432:                                             ; preds = %6423
  %6433 = load i32, ptr %214, align 4, !tbaa !14
  %6434 = sext i32 %6433 to i64
  %6435 = load ptr, ptr %17, align 8, !tbaa !5
  %6436 = getelementptr inbounds %struct.Mem, ptr %6435, i32 0, i32 0
  store i64 %6434, ptr %6436, align 8, !tbaa !16
  store i32 7, ptr %23, align 4
  br label %6437

6437:                                             ; preds = %6432, %6431
  call void @llvm.lifetime.end.p0(i64 8, ptr %216) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #5
  %6438 = load i32, ptr %23, align 4
  switch i32 %6438, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

6439:                                             ; preds = %363
  %6440 = load ptr, ptr %7, align 8, !tbaa !5
  %6441 = getelementptr inbounds %struct.sqlite3, ptr %6440, i32 0, i32 26
  %6442 = load i8, ptr %6441, align 2, !tbaa !177
  %6443 = add i8 %6442, 1
  store i8 %6443, ptr %6441, align 2, !tbaa !177
  %6444 = load ptr, ptr %7, align 8, !tbaa !5
  %6445 = load ptr, ptr %5, align 8, !tbaa !5
  %6446 = getelementptr inbounds %struct.VdbeOp, ptr %6445, i32 0, i32 6
  %6447 = load ptr, ptr %6446, align 8, !tbaa !16
  %6448 = call i32 @sqlite3_exec(ptr noundef %6444, ptr noundef %6447, ptr noundef null, ptr noundef null, ptr noundef null)
  store i32 %6448, ptr %6, align 4, !tbaa !14
  %6449 = load ptr, ptr %7, align 8, !tbaa !5
  %6450 = getelementptr inbounds %struct.sqlite3, ptr %6449, i32 0, i32 26
  %6451 = load i8, ptr %6450, align 2, !tbaa !177
  %6452 = add i8 %6451, -1
  store i8 %6452, ptr %6450, align 2, !tbaa !177
  %6453 = load i32, ptr %6, align 4, !tbaa !14
  %6454 = icmp ne i32 %6453, 0
  br i1 %6454, label %6455, label %6456

6455:                                             ; preds = %6439
  br label %8480

6456:                                             ; preds = %6439
  br label %8475

6457:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %219) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %220) #5
  %6458 = load ptr, ptr %5, align 8, !tbaa !5
  %6459 = getelementptr inbounds %struct.VdbeOp, ptr %6458, i32 0, i32 3
  %6460 = load i32, ptr %6459, align 4, !tbaa !35
  store i32 %6460, ptr %217, align 4, !tbaa !14
  store ptr @.str.16, ptr %218, align 8, !tbaa !5
  %6461 = load ptr, ptr %7, align 8, !tbaa !5
  %6462 = getelementptr inbounds %struct.InitData, ptr %220, i32 0, i32 0
  store ptr %6461, ptr %6462, align 8, !tbaa !178
  %6463 = load ptr, ptr %5, align 8, !tbaa !5
  %6464 = getelementptr inbounds %struct.VdbeOp, ptr %6463, i32 0, i32 3
  %6465 = load i32, ptr %6464, align 4, !tbaa !35
  %6466 = getelementptr inbounds %struct.InitData, ptr %220, i32 0, i32 2
  store i32 %6465, ptr %6466, align 8, !tbaa !180
  %6467 = load ptr, ptr %3, align 8, !tbaa !5
  %6468 = getelementptr inbounds %struct.Vdbe, ptr %6467, i32 0, i32 22
  %6469 = getelementptr inbounds %struct.InitData, ptr %220, i32 0, i32 1
  store ptr %6468, ptr %6469, align 8, !tbaa !181
  %6470 = load ptr, ptr %7, align 8, !tbaa !5
  %6471 = load ptr, ptr %7, align 8, !tbaa !5
  %6472 = getelementptr inbounds %struct.sqlite3, ptr %6471, i32 0, i32 4
  %6473 = load ptr, ptr %6472, align 8, !tbaa !116
  %6474 = load i32, ptr %217, align 4, !tbaa !14
  %6475 = sext i32 %6474 to i64
  %6476 = getelementptr inbounds %struct.Db, ptr %6473, i64 %6475
  %6477 = getelementptr inbounds %struct.Db, ptr %6476, i32 0, i32 0
  %6478 = load ptr, ptr %6477, align 8, !tbaa !156
  %6479 = load ptr, ptr %218, align 8, !tbaa !5
  %6480 = load ptr, ptr %5, align 8, !tbaa !5
  %6481 = getelementptr inbounds %struct.VdbeOp, ptr %6480, i32 0, i32 6
  %6482 = load ptr, ptr %6481, align 8, !tbaa !16
  %6483 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %6470, ptr noundef @.str.17, ptr noundef %6478, ptr noundef %6479, ptr noundef %6482)
  store ptr %6483, ptr %219, align 8, !tbaa !5
  %6484 = load ptr, ptr %219, align 8, !tbaa !5
  %6485 = icmp eq ptr %6484, null
  br i1 %6485, label %6486, label %6487

6486:                                             ; preds = %6457
  store i32 7, ptr %6, align 4, !tbaa !14
  br label %6506

6487:                                             ; preds = %6457
  %6488 = load ptr, ptr %7, align 8, !tbaa !5
  %6489 = getelementptr inbounds %struct.sqlite3, ptr %6488, i32 0, i32 33
  %6490 = getelementptr inbounds %struct.sqlite3InitInfo, ptr %6489, i32 0, i32 2
  store i8 1, ptr %6490, align 1, !tbaa !182
  %6491 = getelementptr inbounds %struct.InitData, ptr %220, i32 0, i32 3
  store i32 0, ptr %6491, align 4, !tbaa !183
  %6492 = load ptr, ptr %7, align 8, !tbaa !5
  %6493 = load ptr, ptr %219, align 8, !tbaa !5
  %6494 = call i32 @sqlite3_exec(ptr noundef %6492, ptr noundef %6493, ptr noundef @sqlite3InitCallback, ptr noundef %220, ptr noundef null)
  store i32 %6494, ptr %6, align 4, !tbaa !14
  %6495 = load i32, ptr %6, align 4, !tbaa !14
  %6496 = icmp eq i32 %6495, 0
  br i1 %6496, label %6497, label %6500

6497:                                             ; preds = %6487
  %6498 = getelementptr inbounds %struct.InitData, ptr %220, i32 0, i32 3
  %6499 = load i32, ptr %6498, align 4, !tbaa !183
  store i32 %6499, ptr %6, align 4, !tbaa !14
  br label %6500

6500:                                             ; preds = %6497, %6487
  %6501 = load ptr, ptr %7, align 8, !tbaa !5
  %6502 = load ptr, ptr %219, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %6501, ptr noundef %6502)
  %6503 = load ptr, ptr %7, align 8, !tbaa !5
  %6504 = getelementptr inbounds %struct.sqlite3, ptr %6503, i32 0, i32 33
  %6505 = getelementptr inbounds %struct.sqlite3InitInfo, ptr %6504, i32 0, i32 2
  store i8 0, ptr %6505, align 1, !tbaa !182
  br label %6506

6506:                                             ; preds = %6500, %6486
  %6507 = load i32, ptr %6, align 4, !tbaa !14
  %6508 = icmp ne i32 %6507, 0
  br i1 %6508, label %6509, label %6515

6509:                                             ; preds = %6506
  %6510 = load ptr, ptr %7, align 8, !tbaa !5
  call void @sqlite3ResetAllSchemasOfConnection(ptr noundef %6510)
  %6511 = load i32, ptr %6, align 4, !tbaa !14
  %6512 = icmp eq i32 %6511, 7
  br i1 %6512, label %6513, label %6514

6513:                                             ; preds = %6509
  store i32 2, ptr %23, align 4
  br label %6516

6514:                                             ; preds = %6509
  store i32 10, ptr %23, align 4
  br label %6516

6515:                                             ; preds = %6506
  store i32 7, ptr %23, align 4
  br label %6516

6516:                                             ; preds = %6515, %6514, %6513
  call void @llvm.lifetime.end.p0(i64 24, ptr %220) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #5
  %6517 = load i32, ptr %23, align 4
  switch i32 %6517, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 2, label %8545
  ]

6518:                                             ; preds = %363
  %6519 = load ptr, ptr %7, align 8, !tbaa !5
  %6520 = load ptr, ptr %5, align 8, !tbaa !5
  %6521 = getelementptr inbounds %struct.VdbeOp, ptr %6520, i32 0, i32 3
  %6522 = load i32, ptr %6521, align 4, !tbaa !35
  %6523 = call i32 @sqlite3AnalysisLoad(ptr noundef %6519, i32 noundef %6522)
  store i32 %6523, ptr %6, align 4, !tbaa !14
  %6524 = load i32, ptr %6, align 4, !tbaa !14
  %6525 = icmp ne i32 %6524, 0
  br i1 %6525, label %6526, label %6527

6526:                                             ; preds = %6518
  br label %8480

6527:                                             ; preds = %6518
  br label %8475

6528:                                             ; preds = %363
  %6529 = load ptr, ptr %7, align 8, !tbaa !5
  %6530 = load ptr, ptr %5, align 8, !tbaa !5
  %6531 = getelementptr inbounds %struct.VdbeOp, ptr %6530, i32 0, i32 3
  %6532 = load i32, ptr %6531, align 4, !tbaa !35
  %6533 = load ptr, ptr %5, align 8, !tbaa !5
  %6534 = getelementptr inbounds %struct.VdbeOp, ptr %6533, i32 0, i32 6
  %6535 = load ptr, ptr %6534, align 8, !tbaa !16
  call void @sqlite3UnlinkAndDeleteTable(ptr noundef %6529, i32 noundef %6532, ptr noundef %6535)
  br label %8475

6536:                                             ; preds = %363
  %6537 = load ptr, ptr %7, align 8, !tbaa !5
  %6538 = load ptr, ptr %5, align 8, !tbaa !5
  %6539 = getelementptr inbounds %struct.VdbeOp, ptr %6538, i32 0, i32 3
  %6540 = load i32, ptr %6539, align 4, !tbaa !35
  %6541 = load ptr, ptr %5, align 8, !tbaa !5
  %6542 = getelementptr inbounds %struct.VdbeOp, ptr %6541, i32 0, i32 6
  %6543 = load ptr, ptr %6542, align 8, !tbaa !16
  call void @sqlite3UnlinkAndDeleteIndex(ptr noundef %6537, i32 noundef %6540, ptr noundef %6543)
  br label %8475

6544:                                             ; preds = %363
  %6545 = load ptr, ptr %7, align 8, !tbaa !5
  %6546 = load ptr, ptr %5, align 8, !tbaa !5
  %6547 = getelementptr inbounds %struct.VdbeOp, ptr %6546, i32 0, i32 3
  %6548 = load i32, ptr %6547, align 4, !tbaa !35
  %6549 = load ptr, ptr %5, align 8, !tbaa !5
  %6550 = getelementptr inbounds %struct.VdbeOp, ptr %6549, i32 0, i32 6
  %6551 = load ptr, ptr %6550, align 8, !tbaa !16
  call void @sqlite3UnlinkAndDeleteTrigger(ptr noundef %6545, i32 noundef %6548, ptr noundef %6551)
  br label %8475

6552:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %222) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #5
  %6553 = load ptr, ptr %5, align 8, !tbaa !5
  %6554 = getelementptr inbounds %struct.VdbeOp, ptr %6553, i32 0, i32 4
  %6555 = load i32, ptr %6554, align 8, !tbaa !33
  store i32 %6555, ptr %221, align 4, !tbaa !14
  %6556 = load ptr, ptr %5, align 8, !tbaa !5
  %6557 = getelementptr inbounds %struct.VdbeOp, ptr %6556, i32 0, i32 6
  %6558 = load ptr, ptr %6557, align 8, !tbaa !16
  store ptr %6558, ptr %222, align 8, !tbaa !5
  %6559 = load ptr, ptr %13, align 8, !tbaa !5
  %6560 = load ptr, ptr %5, align 8, !tbaa !5
  %6561 = getelementptr inbounds %struct.VdbeOp, ptr %6560, i32 0, i32 5
  %6562 = load i32, ptr %6561, align 4, !tbaa !38
  %6563 = sext i32 %6562 to i64
  %6564 = getelementptr inbounds %struct.Mem, ptr %6559, i64 %6563
  store ptr %6564, ptr %225, align 8, !tbaa !5
  %6565 = load ptr, ptr %13, align 8, !tbaa !5
  %6566 = load ptr, ptr %5, align 8, !tbaa !5
  %6567 = getelementptr inbounds %struct.VdbeOp, ptr %6566, i32 0, i32 3
  %6568 = load i32, ptr %6567, align 4, !tbaa !35
  %6569 = sext i32 %6568 to i64
  %6570 = getelementptr inbounds %struct.Mem, ptr %6565, i64 %6569
  store ptr %6570, ptr %14, align 8, !tbaa !5
  %6571 = load ptr, ptr %7, align 8, !tbaa !5
  %6572 = getelementptr inbounds %struct.sqlite3, ptr %6571, i32 0, i32 4
  %6573 = load ptr, ptr %6572, align 8, !tbaa !116
  %6574 = load ptr, ptr %5, align 8, !tbaa !5
  %6575 = getelementptr inbounds %struct.VdbeOp, ptr %6574, i32 0, i32 2
  %6576 = load i16, ptr %6575, align 2, !tbaa !45
  %6577 = zext i16 %6576 to i64
  %6578 = getelementptr inbounds %struct.Db, ptr %6573, i64 %6577
  %6579 = getelementptr inbounds %struct.Db, ptr %6578, i32 0, i32 1
  %6580 = load ptr, ptr %6579, align 8, !tbaa !117
  %6581 = load ptr, ptr %222, align 8, !tbaa !5
  %6582 = load i32, ptr %221, align 4, !tbaa !14
  %6583 = load ptr, ptr %225, align 8, !tbaa !5
  %6584 = getelementptr inbounds %struct.Mem, ptr %6583, i32 0, i32 0
  %6585 = load i64, ptr %6584, align 8, !tbaa !16
  %6586 = trunc i64 %6585 to i32
  %6587 = add nsw i32 %6586, 1
  %6588 = call ptr @sqlite3BtreeIntegrityCheck(ptr noundef %6580, ptr noundef %6581, i32 noundef %6582, i32 noundef %6587, ptr noundef %223)
  store ptr %6588, ptr %224, align 8, !tbaa !5
  %6589 = load ptr, ptr %14, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %6589)
  %6590 = load i32, ptr %223, align 4, !tbaa !14
  %6591 = icmp eq i32 %6590, 0
  br i1 %6591, label %6592, label %6593

6592:                                             ; preds = %6552
  br label %6609

6593:                                             ; preds = %6552
  %6594 = load ptr, ptr %224, align 8, !tbaa !5
  %6595 = icmp eq ptr %6594, null
  br i1 %6595, label %6596, label %6597

6596:                                             ; preds = %6593
  store i32 2, ptr %23, align 4
  br label %6614

6597:                                             ; preds = %6593
  %6598 = load i32, ptr %223, align 4, !tbaa !14
  %6599 = sub nsw i32 %6598, 1
  %6600 = sext i32 %6599 to i64
  %6601 = load ptr, ptr %225, align 8, !tbaa !5
  %6602 = getelementptr inbounds %struct.Mem, ptr %6601, i32 0, i32 0
  %6603 = load i64, ptr %6602, align 8, !tbaa !16
  %6604 = sub nsw i64 %6603, %6600
  store i64 %6604, ptr %6602, align 8, !tbaa !16
  %6605 = load ptr, ptr %14, align 8, !tbaa !5
  %6606 = load ptr, ptr %224, align 8, !tbaa !5
  %6607 = call i32 @sqlite3VdbeMemSetStr(ptr noundef %6605, ptr noundef %6606, i32 noundef -1, i8 noundef zeroext 1, ptr noundef @sqlite3_free)
  br label %6608

6608:                                             ; preds = %6597
  br label %6609

6609:                                             ; preds = %6608, %6592
  %6610 = load ptr, ptr %14, align 8, !tbaa !5
  %6611 = load i8, ptr %9, align 1, !tbaa !16
  %6612 = zext i8 %6611 to i32
  %6613 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %6610, i32 noundef %6612)
  store i32 7, ptr %23, align 4
  br label %6614

6614:                                             ; preds = %6609, %6596
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #5
  %6615 = load i32, ptr %23, align 4
  switch i32 %6615, label %8562 [
    i32 7, label %8475
    i32 2, label %8545
  ]

6616:                                             ; preds = %363
  %6617 = load ptr, ptr %13, align 8, !tbaa !5
  %6618 = load ptr, ptr %5, align 8, !tbaa !5
  %6619 = getelementptr inbounds %struct.VdbeOp, ptr %6618, i32 0, i32 3
  %6620 = load i32, ptr %6619, align 4, !tbaa !35
  %6621 = sext i32 %6620 to i64
  %6622 = getelementptr inbounds %struct.Mem, ptr %6617, i64 %6621
  store ptr %6622, ptr %14, align 8, !tbaa !5
  %6623 = load ptr, ptr %13, align 8, !tbaa !5
  %6624 = load ptr, ptr %5, align 8, !tbaa !5
  %6625 = getelementptr inbounds %struct.VdbeOp, ptr %6624, i32 0, i32 4
  %6626 = load i32, ptr %6625, align 8, !tbaa !33
  %6627 = sext i32 %6626 to i64
  %6628 = getelementptr inbounds %struct.Mem, ptr %6623, i64 %6627
  store ptr %6628, ptr %15, align 8, !tbaa !5
  %6629 = load ptr, ptr %14, align 8, !tbaa !5
  %6630 = getelementptr inbounds %struct.Mem, ptr %6629, i32 0, i32 1
  %6631 = load i16, ptr %6630, align 8, !tbaa !36
  %6632 = zext i16 %6631 to i32
  %6633 = and i32 %6632, 32
  %6634 = icmp eq i32 %6633, 0
  br i1 %6634, label %6635, label %6645

6635:                                             ; preds = %6616
  %6636 = load ptr, ptr %14, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetRowSet(ptr noundef %6636)
  %6637 = load ptr, ptr %14, align 8, !tbaa !5
  %6638 = getelementptr inbounds %struct.Mem, ptr %6637, i32 0, i32 1
  %6639 = load i16, ptr %6638, align 8, !tbaa !36
  %6640 = zext i16 %6639 to i32
  %6641 = and i32 %6640, 32
  %6642 = icmp eq i32 %6641, 0
  br i1 %6642, label %6643, label %6644

6643:                                             ; preds = %6635
  br label %8545

6644:                                             ; preds = %6635
  br label %6645

6645:                                             ; preds = %6644, %6616
  %6646 = load ptr, ptr %14, align 8, !tbaa !5
  %6647 = getelementptr inbounds %struct.Mem, ptr %6646, i32 0, i32 0
  %6648 = load ptr, ptr %6647, align 8, !tbaa !16
  %6649 = load ptr, ptr %15, align 8, !tbaa !5
  %6650 = getelementptr inbounds %struct.Mem, ptr %6649, i32 0, i32 0
  %6651 = load i64, ptr %6650, align 8, !tbaa !16
  call void @sqlite3RowSetInsert(ptr noundef %6648, i64 noundef %6651)
  br label %8475

6652:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #5
  %6653 = load ptr, ptr %13, align 8, !tbaa !5
  %6654 = load ptr, ptr %5, align 8, !tbaa !5
  %6655 = getelementptr inbounds %struct.VdbeOp, ptr %6654, i32 0, i32 3
  %6656 = load i32, ptr %6655, align 4, !tbaa !35
  %6657 = sext i32 %6656 to i64
  %6658 = getelementptr inbounds %struct.Mem, ptr %6653, i64 %6657
  store ptr %6658, ptr %14, align 8, !tbaa !5
  %6659 = load ptr, ptr %14, align 8, !tbaa !5
  %6660 = getelementptr inbounds %struct.Mem, ptr %6659, i32 0, i32 1
  %6661 = load i16, ptr %6660, align 8, !tbaa !36
  %6662 = zext i16 %6661 to i32
  %6663 = and i32 %6662, 32
  %6664 = icmp eq i32 %6663, 0
  br i1 %6664, label %6671, label %6665

6665:                                             ; preds = %6652
  %6666 = load ptr, ptr %14, align 8, !tbaa !5
  %6667 = getelementptr inbounds %struct.Mem, ptr %6666, i32 0, i32 0
  %6668 = load ptr, ptr %6667, align 8, !tbaa !16
  %6669 = call i32 @sqlite3RowSetNext(ptr noundef %6668, ptr noundef %226)
  %6670 = icmp eq i32 %6669, 0
  br i1 %6670, label %6671, label %6673

6671:                                             ; preds = %6665, %6652
  %6672 = load ptr, ptr %14, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %6672)
  store i32 8, ptr %23, align 4
  br label %6682

6673:                                             ; preds = %6665
  %6674 = load ptr, ptr %13, align 8, !tbaa !5
  %6675 = load ptr, ptr %5, align 8, !tbaa !5
  %6676 = getelementptr inbounds %struct.VdbeOp, ptr %6675, i32 0, i32 5
  %6677 = load i32, ptr %6676, align 4, !tbaa !38
  %6678 = sext i32 %6677 to i64
  %6679 = getelementptr inbounds %struct.Mem, ptr %6674, i64 %6678
  %6680 = load i64, ptr %226, align 8, !tbaa !48
  call void @sqlite3VdbeMemSetInt64(ptr noundef %6679, i64 noundef %6680)
  br label %6681

6681:                                             ; preds = %6673
  store i32 9, ptr %23, align 4
  br label %6682

6682:                                             ; preds = %6681, %6671
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #5
  %6683 = load i32, ptr %23, align 4
  switch i32 %6683, label %8564 [
    i32 8, label %371
    i32 9, label %379
  ]

6684:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #5
  %6685 = load ptr, ptr %13, align 8, !tbaa !5
  %6686 = load ptr, ptr %5, align 8, !tbaa !5
  %6687 = getelementptr inbounds %struct.VdbeOp, ptr %6686, i32 0, i32 3
  %6688 = load i32, ptr %6687, align 4, !tbaa !35
  %6689 = sext i32 %6688 to i64
  %6690 = getelementptr inbounds %struct.Mem, ptr %6685, i64 %6689
  store ptr %6690, ptr %14, align 8, !tbaa !5
  %6691 = load ptr, ptr %13, align 8, !tbaa !5
  %6692 = load ptr, ptr %5, align 8, !tbaa !5
  %6693 = getelementptr inbounds %struct.VdbeOp, ptr %6692, i32 0, i32 5
  %6694 = load i32, ptr %6693, align 4, !tbaa !38
  %6695 = sext i32 %6694 to i64
  %6696 = getelementptr inbounds %struct.Mem, ptr %6691, i64 %6695
  store ptr %6696, ptr %16, align 8, !tbaa !5
  %6697 = load ptr, ptr %5, align 8, !tbaa !5
  %6698 = getelementptr inbounds %struct.VdbeOp, ptr %6697, i32 0, i32 6
  %6699 = load i32, ptr %6698, align 8, !tbaa !16
  store i32 %6699, ptr %227, align 4, !tbaa !14
  %6700 = load ptr, ptr %14, align 8, !tbaa !5
  %6701 = getelementptr inbounds %struct.Mem, ptr %6700, i32 0, i32 1
  %6702 = load i16, ptr %6701, align 8, !tbaa !36
  %6703 = zext i16 %6702 to i32
  %6704 = and i32 %6703, 32
  %6705 = icmp eq i32 %6704, 0
  br i1 %6705, label %6706, label %6716

6706:                                             ; preds = %6684
  %6707 = load ptr, ptr %14, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetRowSet(ptr noundef %6707)
  %6708 = load ptr, ptr %14, align 8, !tbaa !5
  %6709 = getelementptr inbounds %struct.Mem, ptr %6708, i32 0, i32 1
  %6710 = load i16, ptr %6709, align 8, !tbaa !36
  %6711 = zext i16 %6710 to i32
  %6712 = and i32 %6711, 32
  %6713 = icmp eq i32 %6712, 0
  br i1 %6713, label %6714, label %6715

6714:                                             ; preds = %6706
  store i32 2, ptr %23, align 4
  br label %6743

6715:                                             ; preds = %6706
  br label %6716

6716:                                             ; preds = %6715, %6684
  %6717 = load i32, ptr %227, align 4, !tbaa !14
  %6718 = icmp ne i32 %6717, 0
  br i1 %6718, label %6719, label %6732

6719:                                             ; preds = %6716
  %6720 = load ptr, ptr %14, align 8, !tbaa !5
  %6721 = getelementptr inbounds %struct.Mem, ptr %6720, i32 0, i32 0
  %6722 = load ptr, ptr %6721, align 8, !tbaa !16
  %6723 = load i32, ptr %227, align 4, !tbaa !14
  %6724 = load ptr, ptr %16, align 8, !tbaa !5
  %6725 = getelementptr inbounds %struct.Mem, ptr %6724, i32 0, i32 0
  %6726 = load i64, ptr %6725, align 8, !tbaa !16
  %6727 = call i32 @sqlite3RowSetTest(ptr noundef %6722, i32 noundef %6723, i64 noundef %6726)
  store i32 %6727, ptr %228, align 4, !tbaa !14
  %6728 = load i32, ptr %228, align 4, !tbaa !14
  %6729 = icmp ne i32 %6728, 0
  br i1 %6729, label %6730, label %6731

6730:                                             ; preds = %6719
  store i32 11, ptr %23, align 4
  br label %6743

6731:                                             ; preds = %6719
  br label %6732

6732:                                             ; preds = %6731, %6716
  %6733 = load i32, ptr %227, align 4, !tbaa !14
  %6734 = icmp sge i32 %6733, 0
  br i1 %6734, label %6735, label %6742

6735:                                             ; preds = %6732
  %6736 = load ptr, ptr %14, align 8, !tbaa !5
  %6737 = getelementptr inbounds %struct.Mem, ptr %6736, i32 0, i32 0
  %6738 = load ptr, ptr %6737, align 8, !tbaa !16
  %6739 = load ptr, ptr %16, align 8, !tbaa !5
  %6740 = getelementptr inbounds %struct.Mem, ptr %6739, i32 0, i32 0
  %6741 = load i64, ptr %6740, align 8, !tbaa !16
  call void @sqlite3RowSetInsert(ptr noundef %6738, i64 noundef %6741)
  br label %6742

6742:                                             ; preds = %6735, %6732
  store i32 7, ptr %23, align 4
  br label %6743

6743:                                             ; preds = %6742, %6730, %6714
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #5
  %6744 = load i32, ptr %23, align 4
  switch i32 %6744, label %8562 [
    i32 11, label %436
    i32 7, label %8475
    i32 2, label %8545
  ]

6745:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %231) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %232) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %235) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #5
  %6746 = load ptr, ptr %5, align 8, !tbaa !5
  %6747 = getelementptr inbounds %struct.VdbeOp, ptr %6746, i32 0, i32 6
  %6748 = load ptr, ptr %6747, align 8, !tbaa !16
  store ptr %6748, ptr %235, align 8, !tbaa !5
  %6749 = load ptr, ptr %13, align 8, !tbaa !5
  %6750 = load ptr, ptr %5, align 8, !tbaa !5
  %6751 = getelementptr inbounds %struct.VdbeOp, ptr %6750, i32 0, i32 5
  %6752 = load i32, ptr %6751, align 4, !tbaa !38
  %6753 = sext i32 %6752 to i64
  %6754 = getelementptr inbounds %struct.Mem, ptr %6749, i64 %6753
  store ptr %6754, ptr %231, align 8, !tbaa !5
  %6755 = load ptr, ptr %5, align 8, !tbaa !5
  %6756 = getelementptr inbounds %struct.VdbeOp, ptr %6755, i32 0, i32 2
  %6757 = load i16, ptr %6756, align 2, !tbaa !45
  %6758 = icmp ne i16 %6757, 0
  br i1 %6758, label %6759, label %6787

6759:                                             ; preds = %6745
  %6760 = load ptr, ptr %235, align 8, !tbaa !5
  %6761 = getelementptr inbounds %struct.SubProgram, ptr %6760, i32 0, i32 5
  %6762 = load ptr, ptr %6761, align 8, !tbaa !184
  store ptr %6762, ptr %236, align 8, !tbaa !5
  %6763 = load ptr, ptr %3, align 8, !tbaa !5
  %6764 = getelementptr inbounds %struct.Vdbe, ptr %6763, i32 0, i32 37
  %6765 = load ptr, ptr %6764, align 8, !tbaa !39
  store ptr %6765, ptr %234, align 8, !tbaa !5
  br label %6766

6766:                                             ; preds = %6778, %6759
  %6767 = load ptr, ptr %234, align 8, !tbaa !5
  %6768 = icmp ne ptr %6767, null
  br i1 %6768, label %6769, label %6775

6769:                                             ; preds = %6766
  %6770 = load ptr, ptr %234, align 8, !tbaa !5
  %6771 = getelementptr inbounds %struct.VdbeFrame, ptr %6770, i32 0, i32 7
  %6772 = load ptr, ptr %6771, align 8, !tbaa !186
  %6773 = load ptr, ptr %236, align 8, !tbaa !5
  %6774 = icmp ne ptr %6772, %6773
  br label %6775

6775:                                             ; preds = %6769, %6766
  %6776 = phi i1 [ false, %6766 ], [ %6774, %6769 ]
  br i1 %6776, label %6777, label %6782

6777:                                             ; preds = %6775
  br label %6778

6778:                                             ; preds = %6777
  %6779 = load ptr, ptr %234, align 8, !tbaa !5
  %6780 = getelementptr inbounds %struct.VdbeFrame, ptr %6779, i32 0, i32 1
  %6781 = load ptr, ptr %6780, align 8, !tbaa !40
  store ptr %6781, ptr %234, align 8, !tbaa !5
  br label %6766, !llvm.loop !187

6782:                                             ; preds = %6775
  %6783 = load ptr, ptr %234, align 8, !tbaa !5
  %6784 = icmp ne ptr %6783, null
  br i1 %6784, label %6785, label %6786

6785:                                             ; preds = %6782
  store i32 7, ptr %23, align 4
  br label %7029

6786:                                             ; preds = %6782
  br label %6787

6787:                                             ; preds = %6786, %6745
  %6788 = load ptr, ptr %3, align 8, !tbaa !5
  %6789 = getelementptr inbounds %struct.Vdbe, ptr %6788, i32 0, i32 39
  %6790 = load i32, ptr %6789, align 8, !tbaa !42
  %6791 = load ptr, ptr %7, align 8, !tbaa !5
  %6792 = getelementptr inbounds %struct.sqlite3, ptr %6791, i32 0, i32 31
  %6793 = getelementptr inbounds [12 x i32], ptr %6792, i64 0, i64 10
  %6794 = load i32, ptr %6793, align 8, !tbaa !14
  %6795 = icmp sge i32 %6790, %6794
  br i1 %6795, label %6796, label %6798

6796:                                             ; preds = %6787
  store i32 1, ptr %6, align 4, !tbaa !14
  %6797 = load ptr, ptr %3, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %6797, ptr noundef @.str.18)
  store i32 10, ptr %23, align 4
  br label %7029

6798:                                             ; preds = %6787
  %6799 = load ptr, ptr %231, align 8, !tbaa !5
  %6800 = getelementptr inbounds %struct.Mem, ptr %6799, i32 0, i32 1
  %6801 = load i16, ptr %6800, align 8, !tbaa !36
  %6802 = zext i16 %6801 to i32
  %6803 = and i32 %6802, 64
  %6804 = icmp eq i32 %6803, 0
  br i1 %6804, label %6805, label %6931

6805:                                             ; preds = %6798
  %6806 = load ptr, ptr %235, align 8, !tbaa !5
  %6807 = getelementptr inbounds %struct.SubProgram, ptr %6806, i32 0, i32 2
  %6808 = load i32, ptr %6807, align 4, !tbaa !188
  %6809 = load ptr, ptr %235, align 8, !tbaa !5
  %6810 = getelementptr inbounds %struct.SubProgram, ptr %6809, i32 0, i32 3
  %6811 = load i32, ptr %6810, align 8, !tbaa !189
  %6812 = add nsw i32 %6808, %6811
  store i32 %6812, ptr %229, align 4, !tbaa !14
  %6813 = load ptr, ptr %235, align 8, !tbaa !5
  %6814 = getelementptr inbounds %struct.SubProgram, ptr %6813, i32 0, i32 3
  %6815 = load i32, ptr %6814, align 8, !tbaa !189
  %6816 = icmp eq i32 %6815, 0
  br i1 %6816, label %6817, label %6820

6817:                                             ; preds = %6805
  %6818 = load i32, ptr %229, align 4, !tbaa !14
  %6819 = add nsw i32 %6818, 1
  store i32 %6819, ptr %229, align 4, !tbaa !14
  br label %6820

6820:                                             ; preds = %6817, %6805
  %6821 = load i32, ptr %229, align 4, !tbaa !14
  %6822 = sext i32 %6821 to i64
  %6823 = mul i64 %6822, 56
  %6824 = add i64 112, %6823
  %6825 = load ptr, ptr %235, align 8, !tbaa !5
  %6826 = getelementptr inbounds %struct.SubProgram, ptr %6825, i32 0, i32 3
  %6827 = load i32, ptr %6826, align 8, !tbaa !189
  %6828 = sext i32 %6827 to i64
  %6829 = mul i64 %6828, 8
  %6830 = add i64 %6824, %6829
  %6831 = load ptr, ptr %235, align 8, !tbaa !5
  %6832 = getelementptr inbounds %struct.SubProgram, ptr %6831, i32 0, i32 1
  %6833 = load i32, ptr %6832, align 8, !tbaa !190
  %6834 = add nsw i32 %6833, 7
  %6835 = sdiv i32 %6834, 8
  %6836 = sext i32 %6835 to i64
  %6837 = add i64 %6830, %6836
  %6838 = trunc i64 %6837 to i32
  store i32 %6838, ptr %230, align 4, !tbaa !14
  %6839 = load ptr, ptr %7, align 8, !tbaa !5
  %6840 = load i32, ptr %230, align 4, !tbaa !14
  %6841 = sext i32 %6840 to i64
  %6842 = call ptr @sqlite3DbMallocZero(ptr noundef %6839, i64 noundef %6841)
  store ptr %6842, ptr %234, align 8, !tbaa !5
  %6843 = load ptr, ptr %234, align 8, !tbaa !5
  %6844 = icmp ne ptr %6843, null
  br i1 %6844, label %6846, label %6845

6845:                                             ; preds = %6820
  store i32 2, ptr %23, align 4
  br label %7029

6846:                                             ; preds = %6820
  %6847 = load ptr, ptr %231, align 8, !tbaa !5
  call void @sqlite3VdbeMemRelease(ptr noundef %6847)
  %6848 = load ptr, ptr %231, align 8, !tbaa !5
  %6849 = getelementptr inbounds %struct.Mem, ptr %6848, i32 0, i32 1
  store i16 64, ptr %6849, align 8, !tbaa !36
  %6850 = load ptr, ptr %234, align 8, !tbaa !5
  %6851 = load ptr, ptr %231, align 8, !tbaa !5
  %6852 = getelementptr inbounds %struct.Mem, ptr %6851, i32 0, i32 0
  store ptr %6850, ptr %6852, align 8, !tbaa !16
  %6853 = load ptr, ptr %3, align 8, !tbaa !5
  %6854 = load ptr, ptr %234, align 8, !tbaa !5
  %6855 = getelementptr inbounds %struct.VdbeFrame, ptr %6854, i32 0, i32 0
  store ptr %6853, ptr %6855, align 8, !tbaa !191
  %6856 = load i32, ptr %229, align 4, !tbaa !14
  %6857 = load ptr, ptr %234, align 8, !tbaa !5
  %6858 = getelementptr inbounds %struct.VdbeFrame, ptr %6857, i32 0, i32 14
  store i32 %6856, ptr %6858, align 8, !tbaa !192
  %6859 = load ptr, ptr %235, align 8, !tbaa !5
  %6860 = getelementptr inbounds %struct.SubProgram, ptr %6859, i32 0, i32 3
  %6861 = load i32, ptr %6860, align 8, !tbaa !189
  %6862 = load ptr, ptr %234, align 8, !tbaa !5
  %6863 = getelementptr inbounds %struct.VdbeFrame, ptr %6862, i32 0, i32 15
  store i32 %6861, ptr %6863, align 4, !tbaa !193
  %6864 = load ptr, ptr %5, align 8, !tbaa !5
  %6865 = load ptr, ptr %4, align 8, !tbaa !5
  %6866 = ptrtoint ptr %6864 to i64
  %6867 = ptrtoint ptr %6865 to i64
  %6868 = sub i64 %6866, %6867
  %6869 = sdiv exact i64 %6868, 24
  %6870 = trunc i64 %6869 to i32
  %6871 = load ptr, ptr %234, align 8, !tbaa !5
  %6872 = getelementptr inbounds %struct.VdbeFrame, ptr %6871, i32 0, i32 11
  store i32 %6870, ptr %6872, align 4, !tbaa !194
  %6873 = load ptr, ptr %3, align 8, !tbaa !5
  %6874 = getelementptr inbounds %struct.Vdbe, ptr %6873, i32 0, i32 18
  %6875 = load ptr, ptr %6874, align 8, !tbaa !23
  %6876 = load ptr, ptr %234, align 8, !tbaa !5
  %6877 = getelementptr inbounds %struct.VdbeFrame, ptr %6876, i32 0, i32 4
  store ptr %6875, ptr %6877, align 8, !tbaa !150
  %6878 = load ptr, ptr %3, align 8, !tbaa !5
  %6879 = getelementptr inbounds %struct.Vdbe, ptr %6878, i32 0, i32 6
  %6880 = load i32, ptr %6879, align 8, !tbaa !195
  %6881 = load ptr, ptr %234, align 8, !tbaa !5
  %6882 = getelementptr inbounds %struct.VdbeFrame, ptr %6881, i32 0, i32 13
  store i32 %6880, ptr %6882, align 4, !tbaa !196
  %6883 = load ptr, ptr %3, align 8, !tbaa !5
  %6884 = getelementptr inbounds %struct.Vdbe, ptr %6883, i32 0, i32 23
  %6885 = load ptr, ptr %6884, align 8, !tbaa !82
  %6886 = load ptr, ptr %234, align 8, !tbaa !5
  %6887 = getelementptr inbounds %struct.VdbeFrame, ptr %6886, i32 0, i32 5
  store ptr %6885, ptr %6887, align 8, !tbaa !197
  %6888 = load ptr, ptr %3, align 8, !tbaa !5
  %6889 = getelementptr inbounds %struct.Vdbe, ptr %6888, i32 0, i32 7
  %6890 = load i32, ptr %6889, align 4, !tbaa !198
  %6891 = load ptr, ptr %234, align 8, !tbaa !5
  %6892 = getelementptr inbounds %struct.VdbeFrame, ptr %6891, i32 0, i32 10
  store i32 %6890, ptr %6892, align 8, !tbaa !199
  %6893 = load ptr, ptr %3, align 8, !tbaa !5
  %6894 = getelementptr inbounds %struct.Vdbe, ptr %6893, i32 0, i32 17
  %6895 = load ptr, ptr %6894, align 8, !tbaa !9
  %6896 = load ptr, ptr %234, align 8, !tbaa !5
  %6897 = getelementptr inbounds %struct.VdbeFrame, ptr %6896, i32 0, i32 2
  store ptr %6895, ptr %6897, align 8, !tbaa !200
  %6898 = load ptr, ptr %3, align 8, !tbaa !5
  %6899 = getelementptr inbounds %struct.Vdbe, ptr %6898, i32 0, i32 27
  %6900 = load i32, ptr %6899, align 8, !tbaa !201
  %6901 = load ptr, ptr %234, align 8, !tbaa !5
  %6902 = getelementptr inbounds %struct.VdbeFrame, ptr %6901, i32 0, i32 12
  store i32 %6900, ptr %6902, align 8, !tbaa !202
  %6903 = load ptr, ptr %235, align 8, !tbaa !5
  %6904 = getelementptr inbounds %struct.SubProgram, ptr %6903, i32 0, i32 5
  %6905 = load ptr, ptr %6904, align 8, !tbaa !184
  %6906 = load ptr, ptr %234, align 8, !tbaa !5
  %6907 = getelementptr inbounds %struct.VdbeFrame, ptr %6906, i32 0, i32 7
  store ptr %6905, ptr %6907, align 8, !tbaa !186
  %6908 = load ptr, ptr %234, align 8, !tbaa !5
  %6909 = getelementptr inbounds i8, ptr %6908, i64 112
  %6910 = load ptr, ptr %234, align 8, !tbaa !5
  %6911 = getelementptr inbounds %struct.VdbeFrame, ptr %6910, i32 0, i32 14
  %6912 = load i32, ptr %6911, align 8, !tbaa !192
  %6913 = sext i32 %6912 to i64
  %6914 = getelementptr inbounds %struct.Mem, ptr %6909, i64 %6913
  store ptr %6914, ptr %233, align 8, !tbaa !5
  %6915 = load ptr, ptr %234, align 8, !tbaa !5
  %6916 = getelementptr inbounds i8, ptr %6915, i64 112
  store ptr %6916, ptr %232, align 8, !tbaa !5
  br label %6917

6917:                                             ; preds = %6927, %6846
  %6918 = load ptr, ptr %232, align 8, !tbaa !5
  %6919 = load ptr, ptr %233, align 8, !tbaa !5
  %6920 = icmp ne ptr %6918, %6919
  br i1 %6920, label %6921, label %6930

6921:                                             ; preds = %6917
  %6922 = load ptr, ptr %232, align 8, !tbaa !5
  %6923 = getelementptr inbounds %struct.Mem, ptr %6922, i32 0, i32 1
  store i16 128, ptr %6923, align 8, !tbaa !36
  %6924 = load ptr, ptr %7, align 8, !tbaa !5
  %6925 = load ptr, ptr %232, align 8, !tbaa !5
  %6926 = getelementptr inbounds %struct.Mem, ptr %6925, i32 0, i32 9
  store ptr %6924, ptr %6926, align 8, !tbaa !203
  br label %6927

6927:                                             ; preds = %6921
  %6928 = load ptr, ptr %232, align 8, !tbaa !5
  %6929 = getelementptr inbounds %struct.Mem, ptr %6928, i32 1
  store ptr %6929, ptr %232, align 8, !tbaa !5
  br label %6917, !llvm.loop !204

6930:                                             ; preds = %6917
  br label %6935

6931:                                             ; preds = %6798
  %6932 = load ptr, ptr %231, align 8, !tbaa !5
  %6933 = getelementptr inbounds %struct.Mem, ptr %6932, i32 0, i32 0
  %6934 = load ptr, ptr %6933, align 8, !tbaa !16
  store ptr %6934, ptr %234, align 8, !tbaa !5
  br label %6935

6935:                                             ; preds = %6931, %6930
  %6936 = load ptr, ptr %3, align 8, !tbaa !5
  %6937 = getelementptr inbounds %struct.Vdbe, ptr %6936, i32 0, i32 39
  %6938 = load i32, ptr %6937, align 8, !tbaa !42
  %6939 = add nsw i32 %6938, 1
  store i32 %6939, ptr %6937, align 8, !tbaa !42
  %6940 = load ptr, ptr %3, align 8, !tbaa !5
  %6941 = getelementptr inbounds %struct.Vdbe, ptr %6940, i32 0, i32 37
  %6942 = load ptr, ptr %6941, align 8, !tbaa !39
  %6943 = load ptr, ptr %234, align 8, !tbaa !5
  %6944 = getelementptr inbounds %struct.VdbeFrame, ptr %6943, i32 0, i32 1
  store ptr %6942, ptr %6944, align 8, !tbaa !40
  %6945 = load ptr, ptr %7, align 8, !tbaa !5
  %6946 = getelementptr inbounds %struct.sqlite3, ptr %6945, i32 0, i32 7
  %6947 = load i64, ptr %6946, align 8, !tbaa !157
  %6948 = load ptr, ptr %234, align 8, !tbaa !5
  %6949 = getelementptr inbounds %struct.VdbeFrame, ptr %6948, i32 0, i32 8
  store i64 %6947, ptr %6949, align 8, !tbaa !205
  %6950 = load ptr, ptr %3, align 8, !tbaa !5
  %6951 = getelementptr inbounds %struct.Vdbe, ptr %6950, i32 0, i32 11
  %6952 = load i32, ptr %6951, align 4, !tbaa !43
  %6953 = load ptr, ptr %234, align 8, !tbaa !5
  %6954 = getelementptr inbounds %struct.VdbeFrame, ptr %6953, i32 0, i32 16
  store i32 %6952, ptr %6954, align 8, !tbaa !206
  %6955 = load ptr, ptr %3, align 8, !tbaa !5
  %6956 = getelementptr inbounds %struct.Vdbe, ptr %6955, i32 0, i32 0
  %6957 = load ptr, ptr %6956, align 8, !tbaa !15
  %6958 = getelementptr inbounds %struct.sqlite3, ptr %6957, i32 0, i32 29
  %6959 = load i32, ptr %6958, align 8, !tbaa !207
  %6960 = load ptr, ptr %234, align 8, !tbaa !5
  %6961 = getelementptr inbounds %struct.VdbeFrame, ptr %6960, i32 0, i32 17
  store i32 %6959, ptr %6961, align 4, !tbaa !208
  %6962 = load ptr, ptr %3, align 8, !tbaa !5
  %6963 = getelementptr inbounds %struct.Vdbe, ptr %6962, i32 0, i32 42
  %6964 = load ptr, ptr %6963, align 8, !tbaa !209
  %6965 = load ptr, ptr %234, align 8, !tbaa !5
  %6966 = getelementptr inbounds %struct.VdbeFrame, ptr %6965, i32 0, i32 9
  store ptr %6964, ptr %6966, align 8, !tbaa !210
  %6967 = load ptr, ptr %3, align 8, !tbaa !5
  %6968 = getelementptr inbounds %struct.Vdbe, ptr %6967, i32 0, i32 42
  store ptr null, ptr %6968, align 8, !tbaa !209
  %6969 = load ptr, ptr %3, align 8, !tbaa !5
  %6970 = getelementptr inbounds %struct.Vdbe, ptr %6969, i32 0, i32 11
  store i32 0, ptr %6970, align 4, !tbaa !43
  %6971 = load ptr, ptr %234, align 8, !tbaa !5
  %6972 = load ptr, ptr %3, align 8, !tbaa !5
  %6973 = getelementptr inbounds %struct.Vdbe, ptr %6972, i32 0, i32 37
  store ptr %6971, ptr %6973, align 8, !tbaa !39
  %6974 = load ptr, ptr %234, align 8, !tbaa !5
  %6975 = getelementptr inbounds i8, ptr %6974, i64 112
  store ptr %6975, ptr %13, align 8, !tbaa !5
  %6976 = load ptr, ptr %3, align 8, !tbaa !5
  %6977 = getelementptr inbounds %struct.Vdbe, ptr %6976, i32 0, i32 18
  store ptr %6975, ptr %6977, align 8, !tbaa !23
  %6978 = load ptr, ptr %234, align 8, !tbaa !5
  %6979 = getelementptr inbounds %struct.VdbeFrame, ptr %6978, i32 0, i32 14
  %6980 = load i32, ptr %6979, align 8, !tbaa !192
  %6981 = load ptr, ptr %3, align 8, !tbaa !5
  %6982 = getelementptr inbounds %struct.Vdbe, ptr %6981, i32 0, i32 6
  store i32 %6980, ptr %6982, align 8, !tbaa !195
  %6983 = load ptr, ptr %234, align 8, !tbaa !5
  %6984 = getelementptr inbounds %struct.VdbeFrame, ptr %6983, i32 0, i32 15
  %6985 = load i32, ptr %6984, align 4, !tbaa !193
  %6986 = trunc i32 %6985 to i16
  %6987 = zext i16 %6986 to i32
  %6988 = load ptr, ptr %3, align 8, !tbaa !5
  %6989 = getelementptr inbounds %struct.Vdbe, ptr %6988, i32 0, i32 7
  store i32 %6987, ptr %6989, align 4, !tbaa !198
  %6990 = load ptr, ptr %13, align 8, !tbaa !5
  %6991 = load ptr, ptr %3, align 8, !tbaa !5
  %6992 = getelementptr inbounds %struct.Vdbe, ptr %6991, i32 0, i32 6
  %6993 = load i32, ptr %6992, align 8, !tbaa !195
  %6994 = sext i32 %6993 to i64
  %6995 = getelementptr inbounds %struct.Mem, ptr %6990, i64 %6994
  %6996 = load ptr, ptr %3, align 8, !tbaa !5
  %6997 = getelementptr inbounds %struct.Vdbe, ptr %6996, i32 0, i32 23
  store ptr %6995, ptr %6997, align 8, !tbaa !82
  %6998 = load ptr, ptr %3, align 8, !tbaa !5
  %6999 = getelementptr inbounds %struct.Vdbe, ptr %6998, i32 0, i32 23
  %7000 = load ptr, ptr %6999, align 8, !tbaa !82
  %7001 = load ptr, ptr %235, align 8, !tbaa !5
  %7002 = getelementptr inbounds %struct.SubProgram, ptr %7001, i32 0, i32 3
  %7003 = load i32, ptr %7002, align 8, !tbaa !189
  %7004 = sext i32 %7003 to i64
  %7005 = getelementptr inbounds ptr, ptr %7000, i64 %7004
  %7006 = load ptr, ptr %234, align 8, !tbaa !5
  %7007 = getelementptr inbounds %struct.VdbeFrame, ptr %7006, i32 0, i32 6
  store ptr %7005, ptr %7007, align 8, !tbaa !81
  %7008 = load ptr, ptr %234, align 8, !tbaa !5
  %7009 = getelementptr inbounds %struct.VdbeFrame, ptr %7008, i32 0, i32 6
  %7010 = load ptr, ptr %7009, align 8, !tbaa !81
  %7011 = load ptr, ptr %235, align 8, !tbaa !5
  %7012 = getelementptr inbounds %struct.SubProgram, ptr %7011, i32 0, i32 1
  %7013 = load i32, ptr %7012, align 8, !tbaa !190
  %7014 = add nsw i32 %7013, 7
  %7015 = sdiv i32 %7014, 8
  %7016 = sext i32 %7015 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %7010, i8 0, i64 %7016, i1 false)
  %7017 = load ptr, ptr %235, align 8, !tbaa !5
  %7018 = getelementptr inbounds %struct.SubProgram, ptr %7017, i32 0, i32 0
  %7019 = load ptr, ptr %7018, align 8, !tbaa !211
  store ptr %7019, ptr %4, align 8, !tbaa !5
  %7020 = load ptr, ptr %3, align 8, !tbaa !5
  %7021 = getelementptr inbounds %struct.Vdbe, ptr %7020, i32 0, i32 17
  store ptr %7019, ptr %7021, align 8, !tbaa !9
  %7022 = load ptr, ptr %235, align 8, !tbaa !5
  %7023 = getelementptr inbounds %struct.SubProgram, ptr %7022, i32 0, i32 1
  %7024 = load i32, ptr %7023, align 8, !tbaa !190
  %7025 = load ptr, ptr %3, align 8, !tbaa !5
  %7026 = getelementptr inbounds %struct.Vdbe, ptr %7025, i32 0, i32 27
  store i32 %7024, ptr %7026, align 8, !tbaa !201
  %7027 = load ptr, ptr %4, align 8, !tbaa !5
  %7028 = getelementptr inbounds %struct.VdbeOp, ptr %7027, i64 -1
  store ptr %7028, ptr %5, align 8, !tbaa !5
  store i32 7, ptr %23, align 4
  br label %7029

7029:                                             ; preds = %6935, %6845, %6796, %6785
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %231) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #5
  %7030 = load i32, ptr %23, align 4
  switch i32 %7030, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 2, label %8545
  ]

7031:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #5
  %7032 = load ptr, ptr %3, align 8, !tbaa !5
  %7033 = load ptr, ptr %5, align 8, !tbaa !5
  %7034 = call ptr @out2Prerelease(ptr noundef %7032, ptr noundef %7033)
  store ptr %7034, ptr %17, align 8, !tbaa !5
  %7035 = load ptr, ptr %3, align 8, !tbaa !5
  %7036 = getelementptr inbounds %struct.Vdbe, ptr %7035, i32 0, i32 37
  %7037 = load ptr, ptr %7036, align 8, !tbaa !39
  store ptr %7037, ptr %237, align 8, !tbaa !5
  %7038 = load ptr, ptr %237, align 8, !tbaa !5
  %7039 = getelementptr inbounds %struct.VdbeFrame, ptr %7038, i32 0, i32 4
  %7040 = load ptr, ptr %7039, align 8, !tbaa !150
  %7041 = load ptr, ptr %5, align 8, !tbaa !5
  %7042 = getelementptr inbounds %struct.VdbeOp, ptr %7041, i32 0, i32 3
  %7043 = load i32, ptr %7042, align 4, !tbaa !35
  %7044 = load ptr, ptr %237, align 8, !tbaa !5
  %7045 = getelementptr inbounds %struct.VdbeFrame, ptr %7044, i32 0, i32 2
  %7046 = load ptr, ptr %7045, align 8, !tbaa !200
  %7047 = load ptr, ptr %237, align 8, !tbaa !5
  %7048 = getelementptr inbounds %struct.VdbeFrame, ptr %7047, i32 0, i32 11
  %7049 = load i32, ptr %7048, align 4, !tbaa !194
  %7050 = sext i32 %7049 to i64
  %7051 = getelementptr inbounds %struct.VdbeOp, ptr %7046, i64 %7050
  %7052 = getelementptr inbounds %struct.VdbeOp, ptr %7051, i32 0, i32 3
  %7053 = load i32, ptr %7052, align 4, !tbaa !35
  %7054 = add nsw i32 %7043, %7053
  %7055 = sext i32 %7054 to i64
  %7056 = getelementptr inbounds %struct.Mem, ptr %7040, i64 %7055
  store ptr %7056, ptr %238, align 8, !tbaa !5
  %7057 = load ptr, ptr %17, align 8, !tbaa !5
  %7058 = load ptr, ptr %238, align 8, !tbaa !5
  call void @sqlite3VdbeMemShallowCopy(ptr noundef %7057, ptr noundef %7058, i32 noundef 4096)
  store i32 7, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #5
  br label %8475

7059:                                             ; preds = %363
  %7060 = load ptr, ptr %7, align 8, !tbaa !5
  %7061 = getelementptr inbounds %struct.sqlite3, ptr %7060, i32 0, i32 6
  %7062 = load i32, ptr %7061, align 4, !tbaa !114
  %7063 = and i32 %7062, 33554432
  %7064 = icmp ne i32 %7063, 0
  br i1 %7064, label %7065, label %7074

7065:                                             ; preds = %7059
  %7066 = load ptr, ptr %5, align 8, !tbaa !5
  %7067 = getelementptr inbounds %struct.VdbeOp, ptr %7066, i32 0, i32 4
  %7068 = load i32, ptr %7067, align 8, !tbaa !33
  %7069 = sext i32 %7068 to i64
  %7070 = load ptr, ptr %7, align 8, !tbaa !5
  %7071 = getelementptr inbounds %struct.sqlite3, ptr %7070, i32 0, i32 78
  %7072 = load i64, ptr %7071, align 8, !tbaa !111
  %7073 = add nsw i64 %7072, %7069
  store i64 %7073, ptr %7071, align 8, !tbaa !111
  br label %7098

7074:                                             ; preds = %7059
  %7075 = load ptr, ptr %5, align 8, !tbaa !5
  %7076 = getelementptr inbounds %struct.VdbeOp, ptr %7075, i32 0, i32 3
  %7077 = load i32, ptr %7076, align 4, !tbaa !35
  %7078 = icmp ne i32 %7077, 0
  br i1 %7078, label %7079, label %7088

7079:                                             ; preds = %7074
  %7080 = load ptr, ptr %5, align 8, !tbaa !5
  %7081 = getelementptr inbounds %struct.VdbeOp, ptr %7080, i32 0, i32 4
  %7082 = load i32, ptr %7081, align 8, !tbaa !33
  %7083 = sext i32 %7082 to i64
  %7084 = load ptr, ptr %7, align 8, !tbaa !5
  %7085 = getelementptr inbounds %struct.sqlite3, ptr %7084, i32 0, i32 77
  %7086 = load i64, ptr %7085, align 8, !tbaa !109
  %7087 = add nsw i64 %7086, %7083
  store i64 %7087, ptr %7085, align 8, !tbaa !109
  br label %7097

7088:                                             ; preds = %7074
  %7089 = load ptr, ptr %5, align 8, !tbaa !5
  %7090 = getelementptr inbounds %struct.VdbeOp, ptr %7089, i32 0, i32 4
  %7091 = load i32, ptr %7090, align 8, !tbaa !33
  %7092 = sext i32 %7091 to i64
  %7093 = load ptr, ptr %3, align 8, !tbaa !5
  %7094 = getelementptr inbounds %struct.Vdbe, ptr %7093, i32 0, i32 14
  %7095 = load i64, ptr %7094, align 8, !tbaa !212
  %7096 = add nsw i64 %7095, %7092
  store i64 %7096, ptr %7094, align 8, !tbaa !212
  br label %7097

7097:                                             ; preds = %7088, %7079
  br label %7098

7098:                                             ; preds = %7097, %7065
  br label %8475

7099:                                             ; preds = %363
  %7100 = load ptr, ptr %5, align 8, !tbaa !5
  %7101 = getelementptr inbounds %struct.VdbeOp, ptr %7100, i32 0, i32 3
  %7102 = load i32, ptr %7101, align 4, !tbaa !35
  %7103 = icmp ne i32 %7102, 0
  br i1 %7103, label %7104, label %7116

7104:                                             ; preds = %7099
  %7105 = load ptr, ptr %7, align 8, !tbaa !5
  %7106 = getelementptr inbounds %struct.sqlite3, ptr %7105, i32 0, i32 77
  %7107 = load i64, ptr %7106, align 8, !tbaa !109
  %7108 = icmp eq i64 %7107, 0
  br i1 %7108, label %7109, label %7115

7109:                                             ; preds = %7104
  %7110 = load ptr, ptr %7, align 8, !tbaa !5
  %7111 = getelementptr inbounds %struct.sqlite3, ptr %7110, i32 0, i32 78
  %7112 = load i64, ptr %7111, align 8, !tbaa !111
  %7113 = icmp eq i64 %7112, 0
  br i1 %7113, label %7114, label %7115

7114:                                             ; preds = %7109
  br label %436

7115:                                             ; preds = %7109, %7104
  br label %7128

7116:                                             ; preds = %7099
  %7117 = load ptr, ptr %3, align 8, !tbaa !5
  %7118 = getelementptr inbounds %struct.Vdbe, ptr %7117, i32 0, i32 14
  %7119 = load i64, ptr %7118, align 8, !tbaa !212
  %7120 = icmp eq i64 %7119, 0
  br i1 %7120, label %7121, label %7127

7121:                                             ; preds = %7116
  %7122 = load ptr, ptr %7, align 8, !tbaa !5
  %7123 = getelementptr inbounds %struct.sqlite3, ptr %7122, i32 0, i32 78
  %7124 = load i64, ptr %7123, align 8, !tbaa !111
  %7125 = icmp eq i64 %7124, 0
  br i1 %7125, label %7126, label %7127

7126:                                             ; preds = %7121
  br label %436

7127:                                             ; preds = %7121, %7116
  br label %7128

7128:                                             ; preds = %7127, %7115
  br label %8475

7129:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %239) #5
  %7130 = load ptr, ptr %3, align 8, !tbaa !5
  %7131 = getelementptr inbounds %struct.Vdbe, ptr %7130, i32 0, i32 37
  %7132 = load ptr, ptr %7131, align 8, !tbaa !39
  %7133 = icmp ne ptr %7132, null
  br i1 %7133, label %7134, label %7157

7134:                                             ; preds = %7129
  %7135 = load ptr, ptr %3, align 8, !tbaa !5
  %7136 = getelementptr inbounds %struct.Vdbe, ptr %7135, i32 0, i32 37
  %7137 = load ptr, ptr %7136, align 8, !tbaa !39
  store ptr %7137, ptr %239, align 8, !tbaa !5
  br label %7138

7138:                                             ; preds = %7144, %7134
  %7139 = load ptr, ptr %239, align 8, !tbaa !5
  %7140 = getelementptr inbounds %struct.VdbeFrame, ptr %7139, i32 0, i32 1
  %7141 = load ptr, ptr %7140, align 8, !tbaa !40
  %7142 = icmp ne ptr %7141, null
  br i1 %7142, label %7143, label %7148

7143:                                             ; preds = %7138
  br label %7144

7144:                                             ; preds = %7143
  %7145 = load ptr, ptr %239, align 8, !tbaa !5
  %7146 = getelementptr inbounds %struct.VdbeFrame, ptr %7145, i32 0, i32 1
  %7147 = load ptr, ptr %7146, align 8, !tbaa !40
  store ptr %7147, ptr %239, align 8, !tbaa !5
  br label %7138, !llvm.loop !213

7148:                                             ; preds = %7138
  %7149 = load ptr, ptr %239, align 8, !tbaa !5
  %7150 = getelementptr inbounds %struct.VdbeFrame, ptr %7149, i32 0, i32 4
  %7151 = load ptr, ptr %7150, align 8, !tbaa !150
  %7152 = load ptr, ptr %5, align 8, !tbaa !5
  %7153 = getelementptr inbounds %struct.VdbeOp, ptr %7152, i32 0, i32 3
  %7154 = load i32, ptr %7153, align 4, !tbaa !35
  %7155 = sext i32 %7154 to i64
  %7156 = getelementptr inbounds %struct.Mem, ptr %7151, i64 %7155
  store ptr %7156, ptr %14, align 8, !tbaa !5
  br label %7164

7157:                                             ; preds = %7129
  %7158 = load ptr, ptr %13, align 8, !tbaa !5
  %7159 = load ptr, ptr %5, align 8, !tbaa !5
  %7160 = getelementptr inbounds %struct.VdbeOp, ptr %7159, i32 0, i32 3
  %7161 = load i32, ptr %7160, align 4, !tbaa !35
  %7162 = sext i32 %7161 to i64
  %7163 = getelementptr inbounds %struct.Mem, ptr %7158, i64 %7162
  store ptr %7163, ptr %14, align 8, !tbaa !5
  br label %7164

7164:                                             ; preds = %7157, %7148
  %7165 = load ptr, ptr %14, align 8, !tbaa !5
  %7166 = call i32 @sqlite3VdbeMemIntegerify(ptr noundef %7165)
  %7167 = load ptr, ptr %13, align 8, !tbaa !5
  %7168 = load ptr, ptr %5, align 8, !tbaa !5
  %7169 = getelementptr inbounds %struct.VdbeOp, ptr %7168, i32 0, i32 4
  %7170 = load i32, ptr %7169, align 8, !tbaa !33
  %7171 = sext i32 %7170 to i64
  %7172 = getelementptr inbounds %struct.Mem, ptr %7167, i64 %7171
  store ptr %7172, ptr %15, align 8, !tbaa !5
  %7173 = load ptr, ptr %15, align 8, !tbaa !5
  %7174 = call i32 @sqlite3VdbeMemIntegerify(ptr noundef %7173)
  %7175 = load ptr, ptr %14, align 8, !tbaa !5
  %7176 = getelementptr inbounds %struct.Mem, ptr %7175, i32 0, i32 0
  %7177 = load i64, ptr %7176, align 8, !tbaa !16
  %7178 = load ptr, ptr %15, align 8, !tbaa !5
  %7179 = getelementptr inbounds %struct.Mem, ptr %7178, i32 0, i32 0
  %7180 = load i64, ptr %7179, align 8, !tbaa !16
  %7181 = icmp slt i64 %7177, %7180
  br i1 %7181, label %7182, label %7188

7182:                                             ; preds = %7164
  %7183 = load ptr, ptr %15, align 8, !tbaa !5
  %7184 = getelementptr inbounds %struct.Mem, ptr %7183, i32 0, i32 0
  %7185 = load i64, ptr %7184, align 8, !tbaa !16
  %7186 = load ptr, ptr %14, align 8, !tbaa !5
  %7187 = getelementptr inbounds %struct.Mem, ptr %7186, i32 0, i32 0
  store i64 %7185, ptr %7187, align 8, !tbaa !16
  br label %7188

7188:                                             ; preds = %7182, %7164
  store i32 7, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #5
  br label %8475

7189:                                             ; preds = %363
  %7190 = load ptr, ptr %13, align 8, !tbaa !5
  %7191 = load ptr, ptr %5, align 8, !tbaa !5
  %7192 = getelementptr inbounds %struct.VdbeOp, ptr %7191, i32 0, i32 3
  %7193 = load i32, ptr %7192, align 4, !tbaa !35
  %7194 = sext i32 %7193 to i64
  %7195 = getelementptr inbounds %struct.Mem, ptr %7190, i64 %7194
  store ptr %7195, ptr %14, align 8, !tbaa !5
  %7196 = load ptr, ptr %14, align 8, !tbaa !5
  %7197 = getelementptr inbounds %struct.Mem, ptr %7196, i32 0, i32 0
  %7198 = load i64, ptr %7197, align 8, !tbaa !16
  %7199 = icmp sgt i64 %7198, 0
  br i1 %7199, label %7200, label %7209

7200:                                             ; preds = %7189
  %7201 = load ptr, ptr %5, align 8, !tbaa !5
  %7202 = getelementptr inbounds %struct.VdbeOp, ptr %7201, i32 0, i32 5
  %7203 = load i32, ptr %7202, align 4, !tbaa !38
  %7204 = sext i32 %7203 to i64
  %7205 = load ptr, ptr %14, align 8, !tbaa !5
  %7206 = getelementptr inbounds %struct.Mem, ptr %7205, i32 0, i32 0
  %7207 = load i64, ptr %7206, align 8, !tbaa !16
  %7208 = sub nsw i64 %7207, %7204
  store i64 %7208, ptr %7206, align 8, !tbaa !16
  br label %436

7209:                                             ; preds = %7189
  br label %8475

7210:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #5
  %7211 = load ptr, ptr %13, align 8, !tbaa !5
  %7212 = load ptr, ptr %5, align 8, !tbaa !5
  %7213 = getelementptr inbounds %struct.VdbeOp, ptr %7212, i32 0, i32 3
  %7214 = load i32, ptr %7213, align 4, !tbaa !35
  %7215 = sext i32 %7214 to i64
  %7216 = getelementptr inbounds %struct.Mem, ptr %7211, i64 %7215
  store ptr %7216, ptr %14, align 8, !tbaa !5
  %7217 = load ptr, ptr %13, align 8, !tbaa !5
  %7218 = load ptr, ptr %5, align 8, !tbaa !5
  %7219 = getelementptr inbounds %struct.VdbeOp, ptr %7218, i32 0, i32 5
  %7220 = load i32, ptr %7219, align 4, !tbaa !38
  %7221 = sext i32 %7220 to i64
  %7222 = getelementptr inbounds %struct.Mem, ptr %7217, i64 %7221
  store ptr %7222, ptr %16, align 8, !tbaa !5
  %7223 = load ptr, ptr %3, align 8, !tbaa !5
  %7224 = load ptr, ptr %5, align 8, !tbaa !5
  %7225 = call ptr @out2Prerelease(ptr noundef %7223, ptr noundef %7224)
  store ptr %7225, ptr %17, align 8, !tbaa !5
  %7226 = load ptr, ptr %14, align 8, !tbaa !5
  %7227 = getelementptr inbounds %struct.Mem, ptr %7226, i32 0, i32 0
  %7228 = load i64, ptr %7227, align 8, !tbaa !16
  store i64 %7228, ptr %240, align 8, !tbaa !48
  %7229 = load i64, ptr %240, align 8, !tbaa !48
  %7230 = icmp sle i64 %7229, 0
  br i1 %7230, label %7245, label %7231

7231:                                             ; preds = %7210
  %7232 = load ptr, ptr %16, align 8, !tbaa !5
  %7233 = getelementptr inbounds %struct.Mem, ptr %7232, i32 0, i32 0
  %7234 = load i64, ptr %7233, align 8, !tbaa !16
  %7235 = icmp sgt i64 %7234, 0
  br i1 %7235, label %7236, label %7240

7236:                                             ; preds = %7231
  %7237 = load ptr, ptr %16, align 8, !tbaa !5
  %7238 = getelementptr inbounds %struct.Mem, ptr %7237, i32 0, i32 0
  %7239 = load i64, ptr %7238, align 8, !tbaa !16
  br label %7241

7240:                                             ; preds = %7231
  br label %7241

7241:                                             ; preds = %7240, %7236
  %7242 = phi i64 [ %7239, %7236 ], [ 0, %7240 ]
  %7243 = call i32 @sqlite3AddInt64(ptr noundef %240, i64 noundef %7242)
  %7244 = icmp ne i32 %7243, 0
  br i1 %7244, label %7245, label %7248

7245:                                             ; preds = %7241, %7210
  %7246 = load ptr, ptr %17, align 8, !tbaa !5
  %7247 = getelementptr inbounds %struct.Mem, ptr %7246, i32 0, i32 0
  store i64 -1, ptr %7247, align 8, !tbaa !16
  br label %7252

7248:                                             ; preds = %7241
  %7249 = load i64, ptr %240, align 8, !tbaa !48
  %7250 = load ptr, ptr %17, align 8, !tbaa !5
  %7251 = getelementptr inbounds %struct.Mem, ptr %7250, i32 0, i32 0
  store i64 %7249, ptr %7251, align 8, !tbaa !16
  br label %7252

7252:                                             ; preds = %7248, %7245
  store i32 7, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #5
  br label %8475

7253:                                             ; preds = %363
  %7254 = load ptr, ptr %13, align 8, !tbaa !5
  %7255 = load ptr, ptr %5, align 8, !tbaa !5
  %7256 = getelementptr inbounds %struct.VdbeOp, ptr %7255, i32 0, i32 3
  %7257 = load i32, ptr %7256, align 4, !tbaa !35
  %7258 = sext i32 %7257 to i64
  %7259 = getelementptr inbounds %struct.Mem, ptr %7254, i64 %7258
  store ptr %7259, ptr %14, align 8, !tbaa !5
  %7260 = load ptr, ptr %14, align 8, !tbaa !5
  %7261 = getelementptr inbounds %struct.Mem, ptr %7260, i32 0, i32 0
  %7262 = load i64, ptr %7261, align 8, !tbaa !16
  %7263 = icmp ne i64 %7262, 0
  br i1 %7263, label %7264, label %7275

7264:                                             ; preds = %7253
  %7265 = load ptr, ptr %14, align 8, !tbaa !5
  %7266 = getelementptr inbounds %struct.Mem, ptr %7265, i32 0, i32 0
  %7267 = load i64, ptr %7266, align 8, !tbaa !16
  %7268 = icmp sgt i64 %7267, 0
  br i1 %7268, label %7269, label %7274

7269:                                             ; preds = %7264
  %7270 = load ptr, ptr %14, align 8, !tbaa !5
  %7271 = getelementptr inbounds %struct.Mem, ptr %7270, i32 0, i32 0
  %7272 = load i64, ptr %7271, align 8, !tbaa !16
  %7273 = add nsw i64 %7272, -1
  store i64 %7273, ptr %7271, align 8, !tbaa !16
  br label %7274

7274:                                             ; preds = %7269, %7264
  br label %436

7275:                                             ; preds = %7253
  br label %8475

7276:                                             ; preds = %363
  %7277 = load ptr, ptr %13, align 8, !tbaa !5
  %7278 = load ptr, ptr %5, align 8, !tbaa !5
  %7279 = getelementptr inbounds %struct.VdbeOp, ptr %7278, i32 0, i32 3
  %7280 = load i32, ptr %7279, align 4, !tbaa !35
  %7281 = sext i32 %7280 to i64
  %7282 = getelementptr inbounds %struct.Mem, ptr %7277, i64 %7281
  store ptr %7282, ptr %14, align 8, !tbaa !5
  %7283 = load ptr, ptr %14, align 8, !tbaa !5
  %7284 = getelementptr inbounds %struct.Mem, ptr %7283, i32 0, i32 0
  %7285 = load i64, ptr %7284, align 8, !tbaa !16
  %7286 = icmp sgt i64 %7285, -9223372036854775808
  br i1 %7286, label %7287, label %7292

7287:                                             ; preds = %7276
  %7288 = load ptr, ptr %14, align 8, !tbaa !5
  %7289 = getelementptr inbounds %struct.Mem, ptr %7288, i32 0, i32 0
  %7290 = load i64, ptr %7289, align 8, !tbaa !16
  %7291 = add nsw i64 %7290, -1
  store i64 %7291, ptr %7289, align 8, !tbaa !16
  br label %7292

7292:                                             ; preds = %7287, %7276
  %7293 = load ptr, ptr %14, align 8, !tbaa !5
  %7294 = getelementptr inbounds %struct.Mem, ptr %7293, i32 0, i32 0
  %7295 = load i64, ptr %7294, align 8, !tbaa !16
  %7296 = icmp eq i64 %7295, 0
  br i1 %7296, label %7297, label %7298

7297:                                             ; preds = %7292
  br label %436

7298:                                             ; preds = %7292
  br label %8475

7299:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %242) #5
  %7300 = load ptr, ptr %5, align 8, !tbaa !5
  %7301 = getelementptr inbounds %struct.VdbeOp, ptr %7300, i32 0, i32 2
  %7302 = load i16, ptr %7301, align 2, !tbaa !45
  %7303 = zext i16 %7302 to i32
  store i32 %7303, ptr %241, align 4, !tbaa !14
  %7304 = load ptr, ptr %7, align 8, !tbaa !5
  %7305 = load i32, ptr %241, align 4, !tbaa !14
  %7306 = sub nsw i32 %7305, 1
  %7307 = sext i32 %7306 to i64
  %7308 = mul i64 %7307, 8
  %7309 = add i64 56, %7308
  %7310 = call ptr @sqlite3DbMallocRawNN(ptr noundef %7304, i64 noundef %7309)
  store ptr %7310, ptr %242, align 8, !tbaa !5
  %7311 = load ptr, ptr %242, align 8, !tbaa !5
  %7312 = icmp eq ptr %7311, null
  br i1 %7312, label %7313, label %7314

7313:                                             ; preds = %7299
  store i32 2, ptr %23, align 4
  br label %7345

7314:                                             ; preds = %7299
  %7315 = load ptr, ptr %242, align 8, !tbaa !5
  %7316 = getelementptr inbounds %struct.sqlite3_context, ptr %7315, i32 0, i32 2
  store ptr null, ptr %7316, align 8, !tbaa !214
  %7317 = load ptr, ptr %5, align 8, !tbaa !5
  %7318 = getelementptr inbounds %struct.VdbeOp, ptr %7317, i32 0, i32 6
  %7319 = load ptr, ptr %7318, align 8, !tbaa !16
  %7320 = load ptr, ptr %242, align 8, !tbaa !5
  %7321 = getelementptr inbounds %struct.sqlite3_context, ptr %7320, i32 0, i32 1
  store ptr %7319, ptr %7321, align 8, !tbaa !69
  %7322 = load ptr, ptr %5, align 8, !tbaa !5
  %7323 = load ptr, ptr %4, align 8, !tbaa !5
  %7324 = ptrtoint ptr %7322 to i64
  %7325 = ptrtoint ptr %7323 to i64
  %7326 = sub i64 %7324, %7325
  %7327 = sdiv exact i64 %7326, 24
  %7328 = trunc i64 %7327 to i32
  %7329 = load ptr, ptr %242, align 8, !tbaa !5
  %7330 = getelementptr inbounds %struct.sqlite3_context, ptr %7329, i32 0, i32 4
  store i32 %7328, ptr %7330, align 8, !tbaa !70
  %7331 = load ptr, ptr %3, align 8, !tbaa !5
  %7332 = load ptr, ptr %242, align 8, !tbaa !5
  %7333 = getelementptr inbounds %struct.sqlite3_context, ptr %7332, i32 0, i32 3
  store ptr %7331, ptr %7333, align 8, !tbaa !71
  %7334 = load i32, ptr %241, align 4, !tbaa !14
  %7335 = trunc i32 %7334 to i8
  %7336 = load ptr, ptr %242, align 8, !tbaa !5
  %7337 = getelementptr inbounds %struct.sqlite3_context, ptr %7336, i32 0, i32 8
  store i8 %7335, ptr %7337, align 2, !tbaa !72
  %7338 = load ptr, ptr %5, align 8, !tbaa !5
  %7339 = getelementptr inbounds %struct.VdbeOp, ptr %7338, i32 0, i32 1
  store i8 -16, ptr %7339, align 1, !tbaa !52
  %7340 = load ptr, ptr %242, align 8, !tbaa !5
  %7341 = load ptr, ptr %5, align 8, !tbaa !5
  %7342 = getelementptr inbounds %struct.VdbeOp, ptr %7341, i32 0, i32 6
  store ptr %7340, ptr %7342, align 8, !tbaa !16
  %7343 = load ptr, ptr %5, align 8, !tbaa !5
  %7344 = getelementptr inbounds %struct.VdbeOp, ptr %7343, i32 0, i32 0
  store i8 -107, ptr %7344, align 8, !tbaa !31
  store i32 0, ptr %23, align 4
  br label %7345

7345:                                             ; preds = %7314, %7313
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #5
  %7346 = load i32, ptr %23, align 4
  switch i32 %7346, label %8562 [
    i32 0, label %7347
    i32 2, label %8545
  ]

7347:                                             ; preds = %7345
  br label %7348

7348:                                             ; preds = %7347, %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %245) #5
  call void @llvm.lifetime.start.p0(i64 56, ptr %246) #5
  %7349 = load ptr, ptr %5, align 8, !tbaa !5
  %7350 = getelementptr inbounds %struct.VdbeOp, ptr %7349, i32 0, i32 6
  %7351 = load ptr, ptr %7350, align 8, !tbaa !16
  store ptr %7351, ptr %244, align 8, !tbaa !5
  %7352 = load ptr, ptr %13, align 8, !tbaa !5
  %7353 = load ptr, ptr %5, align 8, !tbaa !5
  %7354 = getelementptr inbounds %struct.VdbeOp, ptr %7353, i32 0, i32 5
  %7355 = load i32, ptr %7354, align 4, !tbaa !38
  %7356 = sext i32 %7355 to i64
  %7357 = getelementptr inbounds %struct.Mem, ptr %7352, i64 %7356
  store ptr %7357, ptr %245, align 8, !tbaa !5
  %7358 = load ptr, ptr %244, align 8, !tbaa !5
  %7359 = getelementptr inbounds %struct.sqlite3_context, ptr %7358, i32 0, i32 2
  %7360 = load ptr, ptr %7359, align 8, !tbaa !214
  %7361 = load ptr, ptr %245, align 8, !tbaa !5
  %7362 = icmp ne ptr %7360, %7361
  br i1 %7362, label %7363, label %7393

7363:                                             ; preds = %7348
  %7364 = load ptr, ptr %245, align 8, !tbaa !5
  %7365 = load ptr, ptr %244, align 8, !tbaa !5
  %7366 = getelementptr inbounds %struct.sqlite3_context, ptr %7365, i32 0, i32 2
  store ptr %7364, ptr %7366, align 8, !tbaa !214
  %7367 = load ptr, ptr %244, align 8, !tbaa !5
  %7368 = getelementptr inbounds %struct.sqlite3_context, ptr %7367, i32 0, i32 8
  %7369 = load i8, ptr %7368, align 2, !tbaa !72
  %7370 = zext i8 %7369 to i32
  %7371 = sub nsw i32 %7370, 1
  store i32 %7371, ptr %243, align 4, !tbaa !14
  br label %7372

7372:                                             ; preds = %7389, %7363
  %7373 = load i32, ptr %243, align 4, !tbaa !14
  %7374 = icmp sge i32 %7373, 0
  br i1 %7374, label %7375, label %7392

7375:                                             ; preds = %7372
  %7376 = load ptr, ptr %13, align 8, !tbaa !5
  %7377 = load ptr, ptr %5, align 8, !tbaa !5
  %7378 = getelementptr inbounds %struct.VdbeOp, ptr %7377, i32 0, i32 4
  %7379 = load i32, ptr %7378, align 8, !tbaa !33
  %7380 = load i32, ptr %243, align 4, !tbaa !14
  %7381 = add nsw i32 %7379, %7380
  %7382 = sext i32 %7381 to i64
  %7383 = getelementptr inbounds %struct.Mem, ptr %7376, i64 %7382
  %7384 = load ptr, ptr %244, align 8, !tbaa !5
  %7385 = getelementptr inbounds %struct.sqlite3_context, ptr %7384, i32 0, i32 9
  %7386 = load i32, ptr %243, align 4, !tbaa !14
  %7387 = sext i32 %7386 to i64
  %7388 = getelementptr inbounds [1 x ptr], ptr %7385, i64 0, i64 %7387
  store ptr %7383, ptr %7388, align 8, !tbaa !5
  br label %7389

7389:                                             ; preds = %7375
  %7390 = load i32, ptr %243, align 4, !tbaa !14
  %7391 = add nsw i32 %7390, -1
  store i32 %7391, ptr %243, align 4, !tbaa !14
  br label %7372, !llvm.loop !215

7392:                                             ; preds = %7372
  br label %7393

7393:                                             ; preds = %7392, %7348
  %7394 = load ptr, ptr %245, align 8, !tbaa !5
  %7395 = getelementptr inbounds %struct.Mem, ptr %7394, i32 0, i32 4
  %7396 = load i32, ptr %7395, align 4, !tbaa !54
  %7397 = add nsw i32 %7396, 1
  store i32 %7397, ptr %7395, align 4, !tbaa !54
  %7398 = load ptr, ptr %7, align 8, !tbaa !5
  call void @sqlite3VdbeMemInit(ptr noundef %246, ptr noundef %7398, i16 noundef zeroext 1)
  %7399 = load ptr, ptr %244, align 8, !tbaa !5
  %7400 = getelementptr inbounds %struct.sqlite3_context, ptr %7399, i32 0, i32 0
  store ptr %246, ptr %7400, align 8, !tbaa !67
  %7401 = load ptr, ptr %244, align 8, !tbaa !5
  %7402 = getelementptr inbounds %struct.sqlite3_context, ptr %7401, i32 0, i32 7
  store i8 0, ptr %7402, align 1, !tbaa !74
  %7403 = load ptr, ptr %244, align 8, !tbaa !5
  %7404 = getelementptr inbounds %struct.sqlite3_context, ptr %7403, i32 0, i32 6
  store i8 0, ptr %7404, align 8, !tbaa !216
  %7405 = load ptr, ptr %244, align 8, !tbaa !5
  %7406 = getelementptr inbounds %struct.sqlite3_context, ptr %7405, i32 0, i32 1
  %7407 = load ptr, ptr %7406, align 8, !tbaa !69
  %7408 = getelementptr inbounds %struct.FuncDef, ptr %7407, i32 0, i32 4
  %7409 = load ptr, ptr %7408, align 8, !tbaa !75
  %7410 = load ptr, ptr %244, align 8, !tbaa !5
  %7411 = load ptr, ptr %244, align 8, !tbaa !5
  %7412 = getelementptr inbounds %struct.sqlite3_context, ptr %7411, i32 0, i32 8
  %7413 = load i8, ptr %7412, align 2, !tbaa !72
  %7414 = zext i8 %7413 to i32
  %7415 = load ptr, ptr %244, align 8, !tbaa !5
  %7416 = getelementptr inbounds %struct.sqlite3_context, ptr %7415, i32 0, i32 9
  %7417 = getelementptr inbounds [1 x ptr], ptr %7416, i64 0, i64 0
  call void %7409(ptr noundef %7410, i32 noundef %7414, ptr noundef %7417)
  %7418 = load ptr, ptr %244, align 8, !tbaa !5
  %7419 = getelementptr inbounds %struct.sqlite3_context, ptr %7418, i32 0, i32 7
  %7420 = load i8, ptr %7419, align 1, !tbaa !74
  %7421 = icmp ne i8 %7420, 0
  br i1 %7421, label %7422, label %7438

7422:                                             ; preds = %7393
  %7423 = load ptr, ptr %244, align 8, !tbaa !5
  %7424 = getelementptr inbounds %struct.sqlite3_context, ptr %7423, i32 0, i32 5
  %7425 = load i32, ptr %7424, align 4, !tbaa !77
  %7426 = icmp ne i32 %7425, 0
  br i1 %7426, label %7427, label %7433

7427:                                             ; preds = %7422
  %7428 = load ptr, ptr %3, align 8, !tbaa !5
  %7429 = call ptr @sqlite3_value_text(ptr noundef %246)
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %7428, ptr noundef @.str.6, ptr noundef %7429)
  %7430 = load ptr, ptr %244, align 8, !tbaa !5
  %7431 = getelementptr inbounds %struct.sqlite3_context, ptr %7430, i32 0, i32 5
  %7432 = load i32, ptr %7431, align 4, !tbaa !77
  store i32 %7432, ptr %6, align 4, !tbaa !14
  br label %7433

7433:                                             ; preds = %7427, %7422
  call void @sqlite3VdbeMemRelease(ptr noundef %246)
  %7434 = load i32, ptr %6, align 4, !tbaa !14
  %7435 = icmp ne i32 %7434, 0
  br i1 %7435, label %7436, label %7437

7436:                                             ; preds = %7433
  store i32 10, ptr %23, align 4
  br label %7458

7437:                                             ; preds = %7433
  br label %7439

7438:                                             ; preds = %7393
  br label %7439

7439:                                             ; preds = %7438, %7437
  %7440 = load ptr, ptr %244, align 8, !tbaa !5
  %7441 = getelementptr inbounds %struct.sqlite3_context, ptr %7440, i32 0, i32 6
  %7442 = load i8, ptr %7441, align 8, !tbaa !216
  %7443 = icmp ne i8 %7442, 0
  br i1 %7443, label %7444, label %7457

7444:                                             ; preds = %7439
  %7445 = load ptr, ptr %5, align 8, !tbaa !5
  %7446 = getelementptr inbounds %struct.VdbeOp, ptr %7445, i64 -1
  %7447 = getelementptr inbounds %struct.VdbeOp, ptr %7446, i32 0, i32 3
  %7448 = load i32, ptr %7447, align 4, !tbaa !35
  store i32 %7448, ptr %243, align 4, !tbaa !14
  %7449 = load i32, ptr %243, align 4, !tbaa !14
  %7450 = icmp ne i32 %7449, 0
  br i1 %7450, label %7451, label %7456

7451:                                             ; preds = %7444
  %7452 = load ptr, ptr %13, align 8, !tbaa !5
  %7453 = load i32, ptr %243, align 4, !tbaa !14
  %7454 = sext i32 %7453 to i64
  %7455 = getelementptr inbounds %struct.Mem, ptr %7452, i64 %7454
  call void @sqlite3VdbeMemSetInt64(ptr noundef %7455, i64 noundef 1)
  br label %7456

7456:                                             ; preds = %7451, %7444
  br label %7457

7457:                                             ; preds = %7456, %7439
  store i32 7, ptr %23, align 4
  br label %7458

7458:                                             ; preds = %7457, %7436
  call void @llvm.lifetime.end.p0(i64 56, ptr %246) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #5
  %7459 = load i32, ptr %23, align 4
  switch i32 %7459, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

7460:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %247) #5
  %7461 = load ptr, ptr %13, align 8, !tbaa !5
  %7462 = load ptr, ptr %5, align 8, !tbaa !5
  %7463 = getelementptr inbounds %struct.VdbeOp, ptr %7462, i32 0, i32 3
  %7464 = load i32, ptr %7463, align 4, !tbaa !35
  %7465 = sext i32 %7464 to i64
  %7466 = getelementptr inbounds %struct.Mem, ptr %7461, i64 %7465
  store ptr %7466, ptr %247, align 8, !tbaa !5
  %7467 = load ptr, ptr %247, align 8, !tbaa !5
  %7468 = load ptr, ptr %5, align 8, !tbaa !5
  %7469 = getelementptr inbounds %struct.VdbeOp, ptr %7468, i32 0, i32 6
  %7470 = load ptr, ptr %7469, align 8, !tbaa !16
  %7471 = call i32 @sqlite3VdbeMemFinalize(ptr noundef %7467, ptr noundef %7470)
  store i32 %7471, ptr %6, align 4, !tbaa !14
  %7472 = load i32, ptr %6, align 4, !tbaa !14
  %7473 = icmp ne i32 %7472, 0
  br i1 %7473, label %7474, label %7478

7474:                                             ; preds = %7460
  %7475 = load ptr, ptr %3, align 8, !tbaa !5
  %7476 = load ptr, ptr %247, align 8, !tbaa !5
  %7477 = call ptr @sqlite3_value_text(ptr noundef %7476)
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %7475, ptr noundef @.str.6, ptr noundef %7477)
  store i32 10, ptr %23, align 4
  br label %7488

7478:                                             ; preds = %7460
  %7479 = load ptr, ptr %247, align 8, !tbaa !5
  %7480 = load i8, ptr %9, align 1, !tbaa !16
  %7481 = zext i8 %7480 to i32
  %7482 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %7479, i32 noundef %7481)
  %7483 = load ptr, ptr %247, align 8, !tbaa !5
  %7484 = call i32 @sqlite3VdbeMemTooBig(ptr noundef %7483)
  %7485 = icmp ne i32 %7484, 0
  br i1 %7485, label %7486, label %7487

7486:                                             ; preds = %7478
  store i32 13, ptr %23, align 4
  br label %7488

7487:                                             ; preds = %7478
  store i32 7, ptr %23, align 4
  br label %7488

7488:                                             ; preds = %7487, %7486, %7474
  call void @llvm.lifetime.end.p0(i64 8, ptr %247) #5
  %7489 = load i32, ptr %23, align 4
  switch i32 %7489, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 13, label %8543
  ]

7490:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %249) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #5
  %7491 = getelementptr inbounds [3 x i32], ptr %249, i64 0, i64 0
  store i32 0, ptr %7491, align 4, !tbaa !14
  %7492 = getelementptr inbounds [3 x i32], ptr %249, i64 0, i64 2
  store i32 -1, ptr %7492, align 4, !tbaa !14
  %7493 = getelementptr inbounds [3 x i32], ptr %249, i64 0, i64 1
  store i32 -1, ptr %7493, align 4, !tbaa !14
  %7494 = load ptr, ptr %7, align 8, !tbaa !5
  %7495 = load ptr, ptr %5, align 8, !tbaa !5
  %7496 = getelementptr inbounds %struct.VdbeOp, ptr %7495, i32 0, i32 3
  %7497 = load i32, ptr %7496, align 4, !tbaa !35
  %7498 = load ptr, ptr %5, align 8, !tbaa !5
  %7499 = getelementptr inbounds %struct.VdbeOp, ptr %7498, i32 0, i32 4
  %7500 = load i32, ptr %7499, align 8, !tbaa !33
  %7501 = getelementptr inbounds [3 x i32], ptr %249, i64 0, i64 1
  %7502 = getelementptr inbounds [3 x i32], ptr %249, i64 0, i64 2
  %7503 = call i32 @sqlite3Checkpoint(ptr noundef %7494, i32 noundef %7497, i32 noundef %7500, ptr noundef %7501, ptr noundef %7502)
  store i32 %7503, ptr %6, align 4, !tbaa !14
  %7504 = load i32, ptr %6, align 4, !tbaa !14
  %7505 = icmp ne i32 %7504, 0
  br i1 %7505, label %7506, label %7512

7506:                                             ; preds = %7490
  %7507 = load i32, ptr %6, align 4, !tbaa !14
  %7508 = icmp ne i32 %7507, 5
  br i1 %7508, label %7509, label %7510

7509:                                             ; preds = %7506
  store i32 10, ptr %23, align 4
  br label %7535

7510:                                             ; preds = %7506
  store i32 0, ptr %6, align 4, !tbaa !14
  %7511 = getelementptr inbounds [3 x i32], ptr %249, i64 0, i64 0
  store i32 1, ptr %7511, align 4, !tbaa !14
  br label %7512

7512:                                             ; preds = %7510, %7490
  store i32 0, ptr %248, align 4, !tbaa !14
  %7513 = load ptr, ptr %13, align 8, !tbaa !5
  %7514 = load ptr, ptr %5, align 8, !tbaa !5
  %7515 = getelementptr inbounds %struct.VdbeOp, ptr %7514, i32 0, i32 5
  %7516 = load i32, ptr %7515, align 4, !tbaa !38
  %7517 = sext i32 %7516 to i64
  %7518 = getelementptr inbounds %struct.Mem, ptr %7513, i64 %7517
  store ptr %7518, ptr %250, align 8, !tbaa !5
  br label %7519

7519:                                             ; preds = %7529, %7512
  %7520 = load i32, ptr %248, align 4, !tbaa !14
  %7521 = icmp slt i32 %7520, 3
  br i1 %7521, label %7522, label %7534

7522:                                             ; preds = %7519
  %7523 = load ptr, ptr %250, align 8, !tbaa !5
  %7524 = load i32, ptr %248, align 4, !tbaa !14
  %7525 = sext i32 %7524 to i64
  %7526 = getelementptr inbounds [3 x i32], ptr %249, i64 0, i64 %7525
  %7527 = load i32, ptr %7526, align 4, !tbaa !14
  %7528 = sext i32 %7527 to i64
  call void @sqlite3VdbeMemSetInt64(ptr noundef %7523, i64 noundef %7528)
  br label %7529

7529:                                             ; preds = %7522
  %7530 = load i32, ptr %248, align 4, !tbaa !14
  %7531 = add nsw i32 %7530, 1
  store i32 %7531, ptr %248, align 4, !tbaa !14
  %7532 = load ptr, ptr %250, align 8, !tbaa !5
  %7533 = getelementptr inbounds %struct.Mem, ptr %7532, i32 1
  store ptr %7533, ptr %250, align 8, !tbaa !5
  br label %7519, !llvm.loop !217

7534:                                             ; preds = %7519
  store i32 7, ptr %23, align 4
  br label %7535

7535:                                             ; preds = %7534, %7509
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %249) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #5
  %7536 = load i32, ptr %23, align 4
  switch i32 %7536, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

7537:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %251) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %252) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %255) #5
  %7538 = load ptr, ptr %3, align 8, !tbaa !5
  %7539 = load ptr, ptr %5, align 8, !tbaa !5
  %7540 = call ptr @out2Prerelease(ptr noundef %7538, ptr noundef %7539)
  store ptr %7540, ptr %17, align 8, !tbaa !5
  %7541 = load ptr, ptr %5, align 8, !tbaa !5
  %7542 = getelementptr inbounds %struct.VdbeOp, ptr %7541, i32 0, i32 5
  %7543 = load i32, ptr %7542, align 4, !tbaa !38
  store i32 %7543, ptr %253, align 4, !tbaa !14
  %7544 = load ptr, ptr %7, align 8, !tbaa !5
  %7545 = getelementptr inbounds %struct.sqlite3, ptr %7544, i32 0, i32 4
  %7546 = load ptr, ptr %7545, align 8, !tbaa !116
  %7547 = load ptr, ptr %5, align 8, !tbaa !5
  %7548 = getelementptr inbounds %struct.VdbeOp, ptr %7547, i32 0, i32 3
  %7549 = load i32, ptr %7548, align 4, !tbaa !35
  %7550 = sext i32 %7549 to i64
  %7551 = getelementptr inbounds %struct.Db, ptr %7546, i64 %7550
  %7552 = getelementptr inbounds %struct.Db, ptr %7551, i32 0, i32 1
  %7553 = load ptr, ptr %7552, align 8, !tbaa !117
  store ptr %7553, ptr %251, align 8, !tbaa !5
  %7554 = load ptr, ptr %251, align 8, !tbaa !5
  %7555 = call ptr @sqlite3BtreePager(ptr noundef %7554)
  store ptr %7555, ptr %252, align 8, !tbaa !5
  %7556 = load ptr, ptr %252, align 8, !tbaa !5
  %7557 = call i32 @sqlite3PagerGetJournalMode(ptr noundef %7556)
  store i32 %7557, ptr %254, align 4, !tbaa !14
  %7558 = load i32, ptr %253, align 4, !tbaa !14
  %7559 = icmp eq i32 %7558, -1
  br i1 %7559, label %7560, label %7562

7560:                                             ; preds = %7537
  %7561 = load i32, ptr %254, align 4, !tbaa !14
  store i32 %7561, ptr %253, align 4, !tbaa !14
  br label %7562

7562:                                             ; preds = %7560, %7537
  %7563 = load ptr, ptr %252, align 8, !tbaa !5
  %7564 = call i32 @sqlite3PagerOkToChangeJournalMode(ptr noundef %7563)
  %7565 = icmp ne i32 %7564, 0
  br i1 %7565, label %7568, label %7566

7566:                                             ; preds = %7562
  %7567 = load i32, ptr %254, align 4, !tbaa !14
  store i32 %7567, ptr %253, align 4, !tbaa !14
  br label %7568

7568:                                             ; preds = %7566, %7562
  %7569 = load ptr, ptr %252, align 8, !tbaa !5
  %7570 = call ptr @sqlite3PagerFilename(ptr noundef %7569, i32 noundef 1)
  store ptr %7570, ptr %255, align 8, !tbaa !5
  %7571 = load i32, ptr %253, align 4, !tbaa !14
  %7572 = icmp eq i32 %7571, 5
  br i1 %7572, label %7573, label %7583

7573:                                             ; preds = %7568
  %7574 = load ptr, ptr %255, align 8, !tbaa !5
  %7575 = call i32 @sqlite3Strlen30(ptr noundef %7574)
  %7576 = icmp eq i32 %7575, 0
  br i1 %7576, label %7581, label %7577

7577:                                             ; preds = %7573
  %7578 = load ptr, ptr %252, align 8, !tbaa !5
  %7579 = call i32 @sqlite3PagerWalSupported(ptr noundef %7578)
  %7580 = icmp ne i32 %7579, 0
  br i1 %7580, label %7583, label %7581

7581:                                             ; preds = %7577, %7573
  %7582 = load i32, ptr %254, align 4, !tbaa !14
  store i32 %7582, ptr %253, align 4, !tbaa !14
  br label %7583

7583:                                             ; preds = %7581, %7577, %7568
  %7584 = load i32, ptr %253, align 4, !tbaa !14
  %7585 = load i32, ptr %254, align 4, !tbaa !14
  %7586 = icmp ne i32 %7584, %7585
  br i1 %7586, label %7587, label %7642

7587:                                             ; preds = %7583
  %7588 = load i32, ptr %254, align 4, !tbaa !14
  %7589 = icmp eq i32 %7588, 5
  br i1 %7589, label %7593, label %7590

7590:                                             ; preds = %7587
  %7591 = load i32, ptr %253, align 4, !tbaa !14
  %7592 = icmp eq i32 %7591, 5
  br i1 %7592, label %7593, label %7642

7593:                                             ; preds = %7590, %7587
  %7594 = load ptr, ptr %7, align 8, !tbaa !5
  %7595 = getelementptr inbounds %struct.sqlite3, ptr %7594, i32 0, i32 15
  %7596 = load i8, ptr %7595, align 1, !tbaa !105
  %7597 = icmp ne i8 %7596, 0
  br i1 %7597, label %7598, label %7603

7598:                                             ; preds = %7593
  %7599 = load ptr, ptr %7, align 8, !tbaa !5
  %7600 = getelementptr inbounds %struct.sqlite3, ptr %7599, i32 0, i32 35
  %7601 = load i32, ptr %7600, align 8, !tbaa !122
  %7602 = icmp sgt i32 %7601, 1
  br i1 %7602, label %7603, label %7609

7603:                                             ; preds = %7598, %7593
  store i32 1, ptr %6, align 4, !tbaa !14
  %7604 = load ptr, ptr %3, align 8, !tbaa !5
  %7605 = load i32, ptr %253, align 4, !tbaa !14
  %7606 = icmp eq i32 %7605, 5
  %7607 = zext i1 %7606 to i64
  %7608 = select i1 %7606, ptr @.str.20, ptr @.str.21
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %7604, ptr noundef @.str.19, ptr noundef %7608)
  store i32 10, ptr %23, align 4
  br label %7673

7609:                                             ; preds = %7598
  %7610 = load i32, ptr %254, align 4, !tbaa !14
  %7611 = icmp eq i32 %7610, 5
  br i1 %7611, label %7612, label %7623

7612:                                             ; preds = %7609
  %7613 = load ptr, ptr %252, align 8, !tbaa !5
  %7614 = load ptr, ptr %7, align 8, !tbaa !5
  %7615 = call i32 @sqlite3PagerCloseWal(ptr noundef %7613, ptr noundef %7614)
  store i32 %7615, ptr %6, align 4, !tbaa !14
  %7616 = load i32, ptr %6, align 4, !tbaa !14
  %7617 = icmp eq i32 %7616, 0
  br i1 %7617, label %7618, label %7622

7618:                                             ; preds = %7612
  %7619 = load ptr, ptr %252, align 8, !tbaa !5
  %7620 = load i32, ptr %253, align 4, !tbaa !14
  %7621 = call i32 @sqlite3PagerSetJournalMode(ptr noundef %7619, i32 noundef %7620)
  br label %7622

7622:                                             ; preds = %7618, %7612
  br label %7630

7623:                                             ; preds = %7609
  %7624 = load i32, ptr %254, align 4, !tbaa !14
  %7625 = icmp eq i32 %7624, 4
  br i1 %7625, label %7626, label %7629

7626:                                             ; preds = %7623
  %7627 = load ptr, ptr %252, align 8, !tbaa !5
  %7628 = call i32 @sqlite3PagerSetJournalMode(ptr noundef %7627, i32 noundef 2)
  br label %7629

7629:                                             ; preds = %7626, %7623
  br label %7630

7630:                                             ; preds = %7629, %7622
  %7631 = load i32, ptr %6, align 4, !tbaa !14
  %7632 = icmp eq i32 %7631, 0
  br i1 %7632, label %7633, label %7640

7633:                                             ; preds = %7630
  %7634 = load ptr, ptr %251, align 8, !tbaa !5
  %7635 = load i32, ptr %253, align 4, !tbaa !14
  %7636 = icmp eq i32 %7635, 5
  %7637 = zext i1 %7636 to i64
  %7638 = select i1 %7636, i32 2, i32 1
  %7639 = call i32 @sqlite3BtreeSetVersion(ptr noundef %7634, i32 noundef %7638)
  store i32 %7639, ptr %6, align 4, !tbaa !14
  br label %7640

7640:                                             ; preds = %7633, %7630
  br label %7641

7641:                                             ; preds = %7640
  br label %7642

7642:                                             ; preds = %7641, %7590, %7583
  %7643 = load i32, ptr %6, align 4, !tbaa !14
  %7644 = icmp ne i32 %7643, 0
  br i1 %7644, label %7645, label %7647

7645:                                             ; preds = %7642
  %7646 = load i32, ptr %254, align 4, !tbaa !14
  store i32 %7646, ptr %253, align 4, !tbaa !14
  br label %7647

7647:                                             ; preds = %7645, %7642
  %7648 = load ptr, ptr %252, align 8, !tbaa !5
  %7649 = load i32, ptr %253, align 4, !tbaa !14
  %7650 = call i32 @sqlite3PagerSetJournalMode(ptr noundef %7648, i32 noundef %7649)
  store i32 %7650, ptr %253, align 4, !tbaa !14
  %7651 = load ptr, ptr %17, align 8, !tbaa !5
  %7652 = getelementptr inbounds %struct.Mem, ptr %7651, i32 0, i32 1
  store i16 2562, ptr %7652, align 8, !tbaa !36
  %7653 = load i32, ptr %253, align 4, !tbaa !14
  %7654 = call ptr @sqlite3JournalModename(i32 noundef %7653)
  %7655 = load ptr, ptr %17, align 8, !tbaa !5
  %7656 = getelementptr inbounds %struct.Mem, ptr %7655, i32 0, i32 5
  store ptr %7654, ptr %7656, align 8, !tbaa !53
  %7657 = load ptr, ptr %17, align 8, !tbaa !5
  %7658 = getelementptr inbounds %struct.Mem, ptr %7657, i32 0, i32 5
  %7659 = load ptr, ptr %7658, align 8, !tbaa !53
  %7660 = call i32 @sqlite3Strlen30(ptr noundef %7659)
  %7661 = load ptr, ptr %17, align 8, !tbaa !5
  %7662 = getelementptr inbounds %struct.Mem, ptr %7661, i32 0, i32 4
  store i32 %7660, ptr %7662, align 4, !tbaa !54
  %7663 = load ptr, ptr %17, align 8, !tbaa !5
  %7664 = getelementptr inbounds %struct.Mem, ptr %7663, i32 0, i32 2
  store i8 1, ptr %7664, align 2, !tbaa !55
  %7665 = load ptr, ptr %17, align 8, !tbaa !5
  %7666 = load i8, ptr %9, align 1, !tbaa !16
  %7667 = zext i8 %7666 to i32
  %7668 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %7665, i32 noundef %7667)
  %7669 = load i32, ptr %6, align 4, !tbaa !14
  %7670 = icmp ne i32 %7669, 0
  br i1 %7670, label %7671, label %7672

7671:                                             ; preds = %7647
  store i32 10, ptr %23, align 4
  br label %7673

7672:                                             ; preds = %7647
  store i32 7, ptr %23, align 4
  br label %7673

7673:                                             ; preds = %7672, %7671, %7603
  call void @llvm.lifetime.end.p0(i64 8, ptr %255) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %252) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %251) #5
  %7674 = load i32, ptr %23, align 4
  switch i32 %7674, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

7675:                                             ; preds = %363
  %7676 = load ptr, ptr %3, align 8, !tbaa !5
  %7677 = getelementptr inbounds %struct.Vdbe, ptr %7676, i32 0, i32 22
  %7678 = load ptr, ptr %7, align 8, !tbaa !5
  %7679 = load ptr, ptr %5, align 8, !tbaa !5
  %7680 = getelementptr inbounds %struct.VdbeOp, ptr %7679, i32 0, i32 3
  %7681 = load i32, ptr %7680, align 4, !tbaa !35
  %7682 = call i32 @sqlite3RunVacuum(ptr noundef %7677, ptr noundef %7678, i32 noundef %7681)
  store i32 %7682, ptr %6, align 4, !tbaa !14
  %7683 = load i32, ptr %6, align 4, !tbaa !14
  %7684 = icmp ne i32 %7683, 0
  br i1 %7684, label %7685, label %7686

7685:                                             ; preds = %7675
  br label %8480

7686:                                             ; preds = %7675
  br label %8475

7687:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %256) #5
  %7688 = load ptr, ptr %7, align 8, !tbaa !5
  %7689 = getelementptr inbounds %struct.sqlite3, ptr %7688, i32 0, i32 4
  %7690 = load ptr, ptr %7689, align 8, !tbaa !116
  %7691 = load ptr, ptr %5, align 8, !tbaa !5
  %7692 = getelementptr inbounds %struct.VdbeOp, ptr %7691, i32 0, i32 3
  %7693 = load i32, ptr %7692, align 4, !tbaa !35
  %7694 = sext i32 %7693 to i64
  %7695 = getelementptr inbounds %struct.Db, ptr %7690, i64 %7694
  %7696 = getelementptr inbounds %struct.Db, ptr %7695, i32 0, i32 1
  %7697 = load ptr, ptr %7696, align 8, !tbaa !117
  store ptr %7697, ptr %256, align 8, !tbaa !5
  %7698 = load ptr, ptr %256, align 8, !tbaa !5
  %7699 = call i32 @sqlite3BtreeIncrVacuum(ptr noundef %7698)
  store i32 %7699, ptr %6, align 4, !tbaa !14
  %7700 = load i32, ptr %6, align 4, !tbaa !14
  %7701 = icmp ne i32 %7700, 0
  br i1 %7701, label %7702, label %7707

7702:                                             ; preds = %7687
  %7703 = load i32, ptr %6, align 4, !tbaa !14
  %7704 = icmp ne i32 %7703, 101
  br i1 %7704, label %7705, label %7706

7705:                                             ; preds = %7702
  store i32 10, ptr %23, align 4
  br label %7708

7706:                                             ; preds = %7702
  store i32 0, ptr %6, align 4, !tbaa !14
  store i32 11, ptr %23, align 4
  br label %7708

7707:                                             ; preds = %7687
  store i32 7, ptr %23, align 4
  br label %7708

7708:                                             ; preds = %7707, %7706, %7705
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #5
  %7709 = load i32, ptr %23, align 4
  switch i32 %7709, label %8562 [
    i32 11, label %436
    i32 7, label %8475
    i32 10, label %8480
  ]

7710:                                             ; preds = %363
  %7711 = load ptr, ptr %5, align 8, !tbaa !5
  %7712 = getelementptr inbounds %struct.VdbeOp, ptr %7711, i32 0, i32 3
  %7713 = load i32, ptr %7712, align 4, !tbaa !35
  %7714 = icmp ne i32 %7713, 0
  br i1 %7714, label %7717, label %7715

7715:                                             ; preds = %7710
  %7716 = load ptr, ptr %7, align 8, !tbaa !5
  call void @sqlite3ExpirePreparedStatements(ptr noundef %7716)
  br label %7723

7717:                                             ; preds = %7710
  %7718 = load ptr, ptr %3, align 8, !tbaa !5
  %7719 = getelementptr inbounds %struct.Vdbe, ptr %7718, i32 0, i32 31
  %7720 = load i16, ptr %7719, align 8
  %7721 = and i16 %7720, -2
  %7722 = or i16 %7721, 1
  store i16 %7722, ptr %7719, align 8
  br label %7723

7723:                                             ; preds = %7717, %7715
  br label %8475

7724:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 1, ptr %257) #5
  %7725 = load ptr, ptr %5, align 8, !tbaa !5
  %7726 = getelementptr inbounds %struct.VdbeOp, ptr %7725, i32 0, i32 5
  %7727 = load i32, ptr %7726, align 4, !tbaa !38
  %7728 = trunc i32 %7727 to i8
  store i8 %7728, ptr %257, align 1, !tbaa !16
  %7729 = load i8, ptr %257, align 1, !tbaa !16
  %7730 = zext i8 %7729 to i32
  %7731 = icmp ne i32 %7730, 0
  br i1 %7731, label %7738, label %7732

7732:                                             ; preds = %7724
  %7733 = load ptr, ptr %7, align 8, !tbaa !5
  %7734 = getelementptr inbounds %struct.sqlite3, ptr %7733, i32 0, i32 6
  %7735 = load i32, ptr %7734, align 4, !tbaa !114
  %7736 = and i32 %7735, 16384
  %7737 = icmp eq i32 0, %7736
  br i1 %7737, label %7738, label %7772

7738:                                             ; preds = %7732, %7724
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #5
  %7739 = load ptr, ptr %5, align 8, !tbaa !5
  %7740 = getelementptr inbounds %struct.VdbeOp, ptr %7739, i32 0, i32 3
  %7741 = load i32, ptr %7740, align 4, !tbaa !35
  store i32 %7741, ptr %258, align 4, !tbaa !14
  %7742 = load ptr, ptr %7, align 8, !tbaa !5
  %7743 = getelementptr inbounds %struct.sqlite3, ptr %7742, i32 0, i32 4
  %7744 = load ptr, ptr %7743, align 8, !tbaa !116
  %7745 = load i32, ptr %258, align 4, !tbaa !14
  %7746 = sext i32 %7745 to i64
  %7747 = getelementptr inbounds %struct.Db, ptr %7744, i64 %7746
  %7748 = getelementptr inbounds %struct.Db, ptr %7747, i32 0, i32 1
  %7749 = load ptr, ptr %7748, align 8, !tbaa !117
  %7750 = load ptr, ptr %5, align 8, !tbaa !5
  %7751 = getelementptr inbounds %struct.VdbeOp, ptr %7750, i32 0, i32 4
  %7752 = load i32, ptr %7751, align 8, !tbaa !33
  %7753 = load i8, ptr %257, align 1, !tbaa !16
  %7754 = call i32 @sqlite3BtreeLockTable(ptr noundef %7749, i32 noundef %7752, i8 noundef zeroext %7753)
  store i32 %7754, ptr %6, align 4, !tbaa !14
  %7755 = load i32, ptr %6, align 4, !tbaa !14
  %7756 = icmp ne i32 %7755, 0
  br i1 %7756, label %7757, label %7768

7757:                                             ; preds = %7738
  %7758 = load i32, ptr %6, align 4, !tbaa !14
  %7759 = and i32 %7758, 255
  %7760 = icmp eq i32 %7759, 6
  br i1 %7760, label %7761, label %7767

7761:                                             ; preds = %7757
  call void @llvm.lifetime.start.p0(i64 8, ptr %259) #5
  %7762 = load ptr, ptr %5, align 8, !tbaa !5
  %7763 = getelementptr inbounds %struct.VdbeOp, ptr %7762, i32 0, i32 6
  %7764 = load ptr, ptr %7763, align 8, !tbaa !16
  store ptr %7764, ptr %259, align 8, !tbaa !5
  %7765 = load ptr, ptr %3, align 8, !tbaa !5
  %7766 = load ptr, ptr %259, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %7765, ptr noundef @.str.22, ptr noundef %7766)
  call void @llvm.lifetime.end.p0(i64 8, ptr %259) #5
  br label %7767

7767:                                             ; preds = %7761, %7757
  store i32 10, ptr %23, align 4
  br label %7769

7768:                                             ; preds = %7738
  store i32 0, ptr %23, align 4
  br label %7769

7769:                                             ; preds = %7768, %7767
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #5
  %7770 = load i32, ptr %23, align 4
  switch i32 %7770, label %7773 [
    i32 0, label %7771
  ]

7771:                                             ; preds = %7769
  br label %7772

7772:                                             ; preds = %7771, %7732
  store i32 7, ptr %23, align 4
  br label %7773

7773:                                             ; preds = %7772, %7769
  call void @llvm.lifetime.end.p0(i64 1, ptr %257) #5
  %7774 = load i32, ptr %23, align 4
  switch i32 %7774, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

7775:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %260) #5
  %7776 = load ptr, ptr %5, align 8, !tbaa !5
  %7777 = getelementptr inbounds %struct.VdbeOp, ptr %7776, i32 0, i32 6
  %7778 = load ptr, ptr %7777, align 8, !tbaa !16
  store ptr %7778, ptr %260, align 8, !tbaa !5
  %7779 = load ptr, ptr %7, align 8, !tbaa !5
  %7780 = load ptr, ptr %260, align 8, !tbaa !5
  %7781 = call i32 @sqlite3VtabBegin(ptr noundef %7779, ptr noundef %7780)
  store i32 %7781, ptr %6, align 4, !tbaa !14
  %7782 = load ptr, ptr %260, align 8, !tbaa !5
  %7783 = icmp ne ptr %7782, null
  br i1 %7783, label %7784, label %7789

7784:                                             ; preds = %7775
  %7785 = load ptr, ptr %3, align 8, !tbaa !5
  %7786 = load ptr, ptr %260, align 8, !tbaa !5
  %7787 = getelementptr inbounds %struct.VTable, ptr %7786, i32 0, i32 2
  %7788 = load ptr, ptr %7787, align 8, !tbaa !218
  call void @sqlite3VtabImportErrmsg(ptr noundef %7785, ptr noundef %7788)
  br label %7789

7789:                                             ; preds = %7784, %7775
  %7790 = load i32, ptr %6, align 4, !tbaa !14
  %7791 = icmp ne i32 %7790, 0
  br i1 %7791, label %7792, label %7793

7792:                                             ; preds = %7789
  store i32 10, ptr %23, align 4
  br label %7794

7793:                                             ; preds = %7789
  store i32 7, ptr %23, align 4
  br label %7794

7794:                                             ; preds = %7793, %7792
  call void @llvm.lifetime.end.p0(i64 8, ptr %260) #5
  %7795 = load i32, ptr %23, align 4
  switch i32 %7795, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

7796:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 56, ptr %261) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %262) #5
  call void @llvm.memset.p0.i64(ptr align 8 %261, i8 0, i64 56, i1 false)
  %7797 = load ptr, ptr %7, align 8, !tbaa !5
  %7798 = getelementptr inbounds %struct.Mem, ptr %261, i32 0, i32 9
  store ptr %7797, ptr %7798, align 8, !tbaa !203
  %7799 = load ptr, ptr %13, align 8, !tbaa !5
  %7800 = load ptr, ptr %5, align 8, !tbaa !5
  %7801 = getelementptr inbounds %struct.VdbeOp, ptr %7800, i32 0, i32 4
  %7802 = load i32, ptr %7801, align 8, !tbaa !33
  %7803 = sext i32 %7802 to i64
  %7804 = getelementptr inbounds %struct.Mem, ptr %7799, i64 %7803
  %7805 = call i32 @sqlite3VdbeMemCopy(ptr noundef %261, ptr noundef %7804)
  store i32 %7805, ptr %6, align 4, !tbaa !14
  %7806 = call ptr @sqlite3_value_text(ptr noundef %261)
  store ptr %7806, ptr %262, align 8, !tbaa !5
  %7807 = load ptr, ptr %262, align 8, !tbaa !5
  %7808 = icmp ne ptr %7807, null
  br i1 %7808, label %7809, label %7818

7809:                                             ; preds = %7796
  %7810 = load ptr, ptr %7, align 8, !tbaa !5
  %7811 = load ptr, ptr %5, align 8, !tbaa !5
  %7812 = getelementptr inbounds %struct.VdbeOp, ptr %7811, i32 0, i32 3
  %7813 = load i32, ptr %7812, align 4, !tbaa !35
  %7814 = load ptr, ptr %262, align 8, !tbaa !5
  %7815 = load ptr, ptr %3, align 8, !tbaa !5
  %7816 = getelementptr inbounds %struct.Vdbe, ptr %7815, i32 0, i32 22
  %7817 = call i32 @sqlite3VtabCallCreate(ptr noundef %7810, i32 noundef %7813, ptr noundef %7814, ptr noundef %7816)
  store i32 %7817, ptr %6, align 4, !tbaa !14
  br label %7818

7818:                                             ; preds = %7809, %7796
  call void @sqlite3VdbeMemRelease(ptr noundef %261)
  %7819 = load i32, ptr %6, align 4, !tbaa !14
  %7820 = icmp ne i32 %7819, 0
  br i1 %7820, label %7821, label %7822

7821:                                             ; preds = %7818
  store i32 10, ptr %23, align 4
  br label %7823

7822:                                             ; preds = %7818
  store i32 7, ptr %23, align 4
  br label %7823

7823:                                             ; preds = %7822, %7821
  call void @llvm.lifetime.end.p0(i64 8, ptr %262) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %261) #5
  %7824 = load i32, ptr %23, align 4
  switch i32 %7824, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

7825:                                             ; preds = %363
  %7826 = load ptr, ptr %7, align 8, !tbaa !5
  %7827 = getelementptr inbounds %struct.sqlite3, ptr %7826, i32 0, i32 38
  %7828 = load i32, ptr %7827, align 4, !tbaa !176
  %7829 = add nsw i32 %7828, 1
  store i32 %7829, ptr %7827, align 4, !tbaa !176
  %7830 = load ptr, ptr %7, align 8, !tbaa !5
  %7831 = load ptr, ptr %5, align 8, !tbaa !5
  %7832 = getelementptr inbounds %struct.VdbeOp, ptr %7831, i32 0, i32 3
  %7833 = load i32, ptr %7832, align 4, !tbaa !35
  %7834 = load ptr, ptr %5, align 8, !tbaa !5
  %7835 = getelementptr inbounds %struct.VdbeOp, ptr %7834, i32 0, i32 6
  %7836 = load ptr, ptr %7835, align 8, !tbaa !16
  %7837 = call i32 @sqlite3VtabCallDestroy(ptr noundef %7830, i32 noundef %7833, ptr noundef %7836)
  store i32 %7837, ptr %6, align 4, !tbaa !14
  %7838 = load ptr, ptr %7, align 8, !tbaa !5
  %7839 = getelementptr inbounds %struct.sqlite3, ptr %7838, i32 0, i32 38
  %7840 = load i32, ptr %7839, align 4, !tbaa !176
  %7841 = add nsw i32 %7840, -1
  store i32 %7841, ptr %7839, align 4, !tbaa !176
  %7842 = load i32, ptr %6, align 4, !tbaa !14
  %7843 = icmp ne i32 %7842, 0
  br i1 %7843, label %7844, label %7845

7844:                                             ; preds = %7825
  br label %8480

7845:                                             ; preds = %7825
  br label %8475

7846:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %263) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %264) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %265) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %266) #5
  store ptr null, ptr %263, align 8, !tbaa !5
  store ptr null, ptr %264, align 8, !tbaa !5
  %7847 = load ptr, ptr %5, align 8, !tbaa !5
  %7848 = getelementptr inbounds %struct.VdbeOp, ptr %7847, i32 0, i32 6
  %7849 = load ptr, ptr %7848, align 8, !tbaa !16
  %7850 = getelementptr inbounds %struct.VTable, ptr %7849, i32 0, i32 2
  %7851 = load ptr, ptr %7850, align 8, !tbaa !218
  store ptr %7851, ptr %265, align 8, !tbaa !5
  %7852 = load ptr, ptr %265, align 8, !tbaa !5
  %7853 = icmp eq ptr %7852, null
  br i1 %7853, label %7859, label %7854

7854:                                             ; preds = %7846
  %7855 = load ptr, ptr %265, align 8, !tbaa !5
  %7856 = getelementptr inbounds %struct.sqlite3_vtab, ptr %7855, i32 0, i32 0
  %7857 = load ptr, ptr %7856, align 8, !tbaa !168
  %7858 = icmp eq ptr %7857, null
  br i1 %7858, label %7859, label %7860

7859:                                             ; preds = %7854, %7846
  store i32 6, ptr %6, align 4, !tbaa !14
  store i32 10, ptr %23, align 4
  br label %7900

7860:                                             ; preds = %7854
  %7861 = load ptr, ptr %265, align 8, !tbaa !5
  %7862 = getelementptr inbounds %struct.sqlite3_vtab, ptr %7861, i32 0, i32 0
  %7863 = load ptr, ptr %7862, align 8, !tbaa !168
  store ptr %7863, ptr %266, align 8, !tbaa !5
  %7864 = load ptr, ptr %266, align 8, !tbaa !5
  %7865 = getelementptr inbounds %struct.sqlite3_module, ptr %7864, i32 0, i32 6
  %7866 = load ptr, ptr %7865, align 8, !tbaa !220
  %7867 = load ptr, ptr %265, align 8, !tbaa !5
  %7868 = call i32 %7866(ptr noundef %7867, ptr noundef %264)
  store i32 %7868, ptr %6, align 4, !tbaa !14
  %7869 = load ptr, ptr %3, align 8, !tbaa !5
  %7870 = load ptr, ptr %265, align 8, !tbaa !5
  call void @sqlite3VtabImportErrmsg(ptr noundef %7869, ptr noundef %7870)
  %7871 = load i32, ptr %6, align 4, !tbaa !14
  %7872 = icmp ne i32 %7871, 0
  br i1 %7872, label %7873, label %7874

7873:                                             ; preds = %7860
  store i32 10, ptr %23, align 4
  br label %7900

7874:                                             ; preds = %7860
  %7875 = load ptr, ptr %265, align 8, !tbaa !5
  %7876 = load ptr, ptr %264, align 8, !tbaa !5
  %7877 = getelementptr inbounds %struct.sqlite3_vtab_cursor, ptr %7876, i32 0, i32 0
  store ptr %7875, ptr %7877, align 8, !tbaa !166
  %7878 = load ptr, ptr %3, align 8, !tbaa !5
  %7879 = load ptr, ptr %5, align 8, !tbaa !5
  %7880 = getelementptr inbounds %struct.VdbeOp, ptr %7879, i32 0, i32 3
  %7881 = load i32, ptr %7880, align 4, !tbaa !35
  %7882 = call ptr @allocateCursor(ptr noundef %7878, i32 noundef %7881, i32 noundef 0, i32 noundef -1, i8 noundef zeroext 2)
  store ptr %7882, ptr %263, align 8, !tbaa !5
  %7883 = load ptr, ptr %263, align 8, !tbaa !5
  %7884 = icmp ne ptr %7883, null
  br i1 %7884, label %7885, label %7893

7885:                                             ; preds = %7874
  %7886 = load ptr, ptr %264, align 8, !tbaa !5
  %7887 = load ptr, ptr %263, align 8, !tbaa !5
  %7888 = getelementptr inbounds %struct.VdbeCursor, ptr %7887, i32 0, i32 12
  store ptr %7886, ptr %7888, align 8, !tbaa !16
  %7889 = load ptr, ptr %265, align 8, !tbaa !5
  %7890 = getelementptr inbounds %struct.sqlite3_vtab, ptr %7889, i32 0, i32 1
  %7891 = load i32, ptr %7890, align 8, !tbaa !221
  %7892 = add nsw i32 %7891, 1
  store i32 %7892, ptr %7890, align 8, !tbaa !221
  br label %7899

7893:                                             ; preds = %7874
  %7894 = load ptr, ptr %266, align 8, !tbaa !5
  %7895 = getelementptr inbounds %struct.sqlite3_module, ptr %7894, i32 0, i32 7
  %7896 = load ptr, ptr %7895, align 8, !tbaa !222
  %7897 = load ptr, ptr %264, align 8, !tbaa !5
  %7898 = call i32 %7896(ptr noundef %7897)
  store i32 2, ptr %23, align 4
  br label %7900

7899:                                             ; preds = %7885
  store i32 7, ptr %23, align 4
  br label %7900

7900:                                             ; preds = %7899, %7893, %7873, %7859
  call void @llvm.lifetime.end.p0(i64 8, ptr %266) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #5
  %7901 = load i32, ptr %23, align 4
  switch i32 %7901, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 2, label %8545
  ]

7902:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %269) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %270) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %271) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %272) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %273) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %274) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %277) #5
  %7903 = load ptr, ptr %13, align 8, !tbaa !5
  %7904 = load ptr, ptr %5, align 8, !tbaa !5
  %7905 = getelementptr inbounds %struct.VdbeOp, ptr %7904, i32 0, i32 5
  %7906 = load i32, ptr %7905, align 4, !tbaa !38
  %7907 = sext i32 %7906 to i64
  %7908 = getelementptr inbounds %struct.Mem, ptr %7903, i64 %7907
  store ptr %7908, ptr %270, align 8, !tbaa !5
  %7909 = load ptr, ptr %270, align 8, !tbaa !5
  %7910 = getelementptr inbounds %struct.Mem, ptr %7909, i64 1
  store ptr %7910, ptr %271, align 8, !tbaa !5
  %7911 = load ptr, ptr %3, align 8, !tbaa !5
  %7912 = getelementptr inbounds %struct.Vdbe, ptr %7911, i32 0, i32 23
  %7913 = load ptr, ptr %7912, align 8, !tbaa !82
  %7914 = load ptr, ptr %5, align 8, !tbaa !5
  %7915 = getelementptr inbounds %struct.VdbeOp, ptr %7914, i32 0, i32 3
  %7916 = load i32, ptr %7915, align 4, !tbaa !35
  %7917 = sext i32 %7916 to i64
  %7918 = getelementptr inbounds ptr, ptr %7913, i64 %7917
  %7919 = load ptr, ptr %7918, align 8, !tbaa !5
  store ptr %7919, ptr %274, align 8, !tbaa !5
  %7920 = load ptr, ptr %274, align 8, !tbaa !5
  %7921 = getelementptr inbounds %struct.VdbeCursor, ptr %7920, i32 0, i32 12
  %7922 = load ptr, ptr %7921, align 8, !tbaa !16
  store ptr %7922, ptr %272, align 8, !tbaa !5
  %7923 = load ptr, ptr %272, align 8, !tbaa !5
  %7924 = getelementptr inbounds %struct.sqlite3_vtab_cursor, ptr %7923, i32 0, i32 0
  %7925 = load ptr, ptr %7924, align 8, !tbaa !166
  store ptr %7925, ptr %273, align 8, !tbaa !5
  %7926 = load ptr, ptr %273, align 8, !tbaa !5
  %7927 = getelementptr inbounds %struct.sqlite3_vtab, ptr %7926, i32 0, i32 0
  %7928 = load ptr, ptr %7927, align 8, !tbaa !168
  store ptr %7928, ptr %269, align 8, !tbaa !5
  %7929 = load ptr, ptr %271, align 8, !tbaa !5
  %7930 = getelementptr inbounds %struct.Mem, ptr %7929, i32 0, i32 0
  %7931 = load i64, ptr %7930, align 8, !tbaa !16
  %7932 = trunc i64 %7931 to i32
  store i32 %7932, ptr %267, align 4, !tbaa !14
  %7933 = load ptr, ptr %270, align 8, !tbaa !5
  %7934 = getelementptr inbounds %struct.Mem, ptr %7933, i32 0, i32 0
  %7935 = load i64, ptr %7934, align 8, !tbaa !16
  %7936 = trunc i64 %7935 to i32
  store i32 %7936, ptr %268, align 4, !tbaa !14
  store i32 0, ptr %275, align 4, !tbaa !14
  %7937 = load ptr, ptr %3, align 8, !tbaa !5
  %7938 = getelementptr inbounds %struct.Vdbe, ptr %7937, i32 0, i32 19
  %7939 = load ptr, ptr %7938, align 8, !tbaa !223
  store ptr %7939, ptr %277, align 8, !tbaa !5
  store i32 0, ptr %276, align 4, !tbaa !14
  br label %7940

7940:                                             ; preds = %7954, %7902
  %7941 = load i32, ptr %276, align 4, !tbaa !14
  %7942 = load i32, ptr %267, align 4, !tbaa !14
  %7943 = icmp slt i32 %7941, %7942
  br i1 %7943, label %7944, label %7957

7944:                                             ; preds = %7940
  %7945 = load ptr, ptr %271, align 8, !tbaa !5
  %7946 = load i32, ptr %276, align 4, !tbaa !14
  %7947 = add nsw i32 %7946, 1
  %7948 = sext i32 %7947 to i64
  %7949 = getelementptr inbounds %struct.Mem, ptr %7945, i64 %7948
  %7950 = load ptr, ptr %277, align 8, !tbaa !5
  %7951 = load i32, ptr %276, align 4, !tbaa !14
  %7952 = sext i32 %7951 to i64
  %7953 = getelementptr inbounds ptr, ptr %7950, i64 %7952
  store ptr %7949, ptr %7953, align 8, !tbaa !5
  br label %7954

7954:                                             ; preds = %7944
  %7955 = load i32, ptr %276, align 4, !tbaa !14
  %7956 = add nsw i32 %7955, 1
  store i32 %7956, ptr %276, align 4, !tbaa !14
  br label %7940, !llvm.loop !224

7957:                                             ; preds = %7940
  %7958 = load ptr, ptr %269, align 8, !tbaa !5
  %7959 = getelementptr inbounds %struct.sqlite3_module, ptr %7958, i32 0, i32 8
  %7960 = load ptr, ptr %7959, align 8, !tbaa !225
  %7961 = load ptr, ptr %272, align 8, !tbaa !5
  %7962 = load i32, ptr %268, align 4, !tbaa !14
  %7963 = load ptr, ptr %5, align 8, !tbaa !5
  %7964 = getelementptr inbounds %struct.VdbeOp, ptr %7963, i32 0, i32 6
  %7965 = load ptr, ptr %7964, align 8, !tbaa !16
  %7966 = load i32, ptr %267, align 4, !tbaa !14
  %7967 = load ptr, ptr %277, align 8, !tbaa !5
  %7968 = call i32 %7960(ptr noundef %7961, i32 noundef %7962, ptr noundef %7965, i32 noundef %7966, ptr noundef %7967)
  store i32 %7968, ptr %6, align 4, !tbaa !14
  %7969 = load ptr, ptr %3, align 8, !tbaa !5
  %7970 = load ptr, ptr %273, align 8, !tbaa !5
  call void @sqlite3VtabImportErrmsg(ptr noundef %7969, ptr noundef %7970)
  %7971 = load i32, ptr %6, align 4, !tbaa !14
  %7972 = icmp ne i32 %7971, 0
  br i1 %7972, label %7973, label %7974

7973:                                             ; preds = %7957
  store i32 10, ptr %23, align 4
  br label %7986

7974:                                             ; preds = %7957
  %7975 = load ptr, ptr %269, align 8, !tbaa !5
  %7976 = getelementptr inbounds %struct.sqlite3_module, ptr %7975, i32 0, i32 10
  %7977 = load ptr, ptr %7976, align 8, !tbaa !226
  %7978 = load ptr, ptr %272, align 8, !tbaa !5
  %7979 = call i32 %7977(ptr noundef %7978)
  store i32 %7979, ptr %275, align 4, !tbaa !14
  %7980 = load ptr, ptr %274, align 8, !tbaa !5
  %7981 = getelementptr inbounds %struct.VdbeCursor, ptr %7980, i32 0, i32 2
  store i8 0, ptr %7981, align 2, !tbaa !86
  %7982 = load i32, ptr %275, align 4, !tbaa !14
  %7983 = icmp ne i32 %7982, 0
  br i1 %7983, label %7984, label %7985

7984:                                             ; preds = %7974
  store i32 11, ptr %23, align 4
  br label %7986

7985:                                             ; preds = %7974
  store i32 7, ptr %23, align 4
  br label %7986

7986:                                             ; preds = %7985, %7984, %7973
  call void @llvm.lifetime.end.p0(i64 8, ptr %277) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %274) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %273) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %270) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %269) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #5
  %7987 = load i32, ptr %23, align 4
  switch i32 %7987, label %8562 [
    i32 11, label %436
    i32 7, label %8475
    i32 10, label %8480
  ]

7988:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %278) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %279) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %280) #5
  call void @llvm.lifetime.start.p0(i64 56, ptr %281) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %282) #5
  %7989 = load ptr, ptr %3, align 8, !tbaa !5
  %7990 = getelementptr inbounds %struct.Vdbe, ptr %7989, i32 0, i32 23
  %7991 = load ptr, ptr %7990, align 8, !tbaa !82
  %7992 = load ptr, ptr %5, align 8, !tbaa !5
  %7993 = getelementptr inbounds %struct.VdbeOp, ptr %7992, i32 0, i32 3
  %7994 = load i32, ptr %7993, align 4, !tbaa !35
  %7995 = sext i32 %7994 to i64
  %7996 = getelementptr inbounds ptr, ptr %7991, i64 %7995
  %7997 = load ptr, ptr %7996, align 8, !tbaa !5
  store ptr %7997, ptr %282, align 8, !tbaa !5
  %7998 = load ptr, ptr %13, align 8, !tbaa !5
  %7999 = load ptr, ptr %5, align 8, !tbaa !5
  %8000 = getelementptr inbounds %struct.VdbeOp, ptr %7999, i32 0, i32 5
  %8001 = load i32, ptr %8000, align 4, !tbaa !38
  %8002 = sext i32 %8001 to i64
  %8003 = getelementptr inbounds %struct.Mem, ptr %7998, i64 %8002
  store ptr %8003, ptr %280, align 8, !tbaa !5
  %8004 = load ptr, ptr %282, align 8, !tbaa !5
  %8005 = getelementptr inbounds %struct.VdbeCursor, ptr %8004, i32 0, i32 2
  %8006 = load i8, ptr %8005, align 2, !tbaa !86
  %8007 = icmp ne i8 %8006, 0
  br i1 %8007, label %8008, label %8010

8008:                                             ; preds = %7988
  %8009 = load ptr, ptr %280, align 8, !tbaa !5
  call void @sqlite3VdbeMemSetNull(ptr noundef %8009)
  store i32 7, ptr %23, align 4
  br label %8062

8010:                                             ; preds = %7988
  %8011 = load ptr, ptr %282, align 8, !tbaa !5
  %8012 = getelementptr inbounds %struct.VdbeCursor, ptr %8011, i32 0, i32 12
  %8013 = load ptr, ptr %8012, align 8, !tbaa !16
  %8014 = getelementptr inbounds %struct.sqlite3_vtab_cursor, ptr %8013, i32 0, i32 0
  %8015 = load ptr, ptr %8014, align 8, !tbaa !166
  store ptr %8015, ptr %278, align 8, !tbaa !5
  %8016 = load ptr, ptr %278, align 8, !tbaa !5
  %8017 = getelementptr inbounds %struct.sqlite3_vtab, ptr %8016, i32 0, i32 0
  %8018 = load ptr, ptr %8017, align 8, !tbaa !168
  store ptr %8018, ptr %279, align 8, !tbaa !5
  call void @llvm.memset.p0.i64(ptr align 8 %281, i8 0, i64 56, i1 false)
  %8019 = load ptr, ptr %280, align 8, !tbaa !5
  %8020 = getelementptr inbounds %struct.sqlite3_context, ptr %281, i32 0, i32 0
  store ptr %8019, ptr %8020, align 8, !tbaa !67
  %8021 = load ptr, ptr %280, align 8, !tbaa !5
  %8022 = getelementptr inbounds %struct.Mem, ptr %8021, i32 0, i32 1
  %8023 = load i16, ptr %8022, align 8, !tbaa !36
  %8024 = zext i16 %8023 to i32
  %8025 = and i32 %8024, -49664
  %8026 = or i32 %8025, 1
  %8027 = trunc i32 %8026 to i16
  %8028 = load ptr, ptr %280, align 8, !tbaa !5
  %8029 = getelementptr inbounds %struct.Mem, ptr %8028, i32 0, i32 1
  store i16 %8027, ptr %8029, align 8, !tbaa !36
  %8030 = load ptr, ptr %279, align 8, !tbaa !5
  %8031 = getelementptr inbounds %struct.sqlite3_module, ptr %8030, i32 0, i32 11
  %8032 = load ptr, ptr %8031, align 8, !tbaa !227
  %8033 = load ptr, ptr %282, align 8, !tbaa !5
  %8034 = getelementptr inbounds %struct.VdbeCursor, ptr %8033, i32 0, i32 12
  %8035 = load ptr, ptr %8034, align 8, !tbaa !16
  %8036 = load ptr, ptr %5, align 8, !tbaa !5
  %8037 = getelementptr inbounds %struct.VdbeOp, ptr %8036, i32 0, i32 4
  %8038 = load i32, ptr %8037, align 8, !tbaa !33
  %8039 = call i32 %8032(ptr noundef %8035, ptr noundef %281, i32 noundef %8038)
  store i32 %8039, ptr %6, align 4, !tbaa !14
  %8040 = load ptr, ptr %3, align 8, !tbaa !5
  %8041 = load ptr, ptr %278, align 8, !tbaa !5
  call void @sqlite3VtabImportErrmsg(ptr noundef %8040, ptr noundef %8041)
  %8042 = getelementptr inbounds %struct.sqlite3_context, ptr %281, i32 0, i32 5
  %8043 = load i32, ptr %8042, align 4, !tbaa !77
  %8044 = icmp ne i32 %8043, 0
  br i1 %8044, label %8045, label %8048

8045:                                             ; preds = %8010
  %8046 = getelementptr inbounds %struct.sqlite3_context, ptr %281, i32 0, i32 5
  %8047 = load i32, ptr %8046, align 4, !tbaa !77
  store i32 %8047, ptr %6, align 4, !tbaa !14
  br label %8048

8048:                                             ; preds = %8045, %8010
  %8049 = load ptr, ptr %280, align 8, !tbaa !5
  %8050 = load i8, ptr %9, align 1, !tbaa !16
  %8051 = zext i8 %8050 to i32
  %8052 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %8049, i32 noundef %8051)
  %8053 = load ptr, ptr %280, align 8, !tbaa !5
  %8054 = call i32 @sqlite3VdbeMemTooBig(ptr noundef %8053)
  %8055 = icmp ne i32 %8054, 0
  br i1 %8055, label %8056, label %8057

8056:                                             ; preds = %8048
  store i32 13, ptr %23, align 4
  br label %8062

8057:                                             ; preds = %8048
  %8058 = load i32, ptr %6, align 4, !tbaa !14
  %8059 = icmp ne i32 %8058, 0
  br i1 %8059, label %8060, label %8061

8060:                                             ; preds = %8057
  store i32 10, ptr %23, align 4
  br label %8062

8061:                                             ; preds = %8057
  store i32 7, ptr %23, align 4
  br label %8062

8062:                                             ; preds = %8061, %8060, %8056, %8008
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %281) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %280) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %279) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #5
  %8063 = load i32, ptr %23, align 4
  switch i32 %8063, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
    i32 13, label %8543
  ]

8064:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %284) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %286) #5
  store i32 0, ptr %285, align 4, !tbaa !14
  %8065 = load ptr, ptr %3, align 8, !tbaa !5
  %8066 = getelementptr inbounds %struct.Vdbe, ptr %8065, i32 0, i32 23
  %8067 = load ptr, ptr %8066, align 8, !tbaa !82
  %8068 = load ptr, ptr %5, align 8, !tbaa !5
  %8069 = getelementptr inbounds %struct.VdbeOp, ptr %8068, i32 0, i32 3
  %8070 = load i32, ptr %8069, align 4, !tbaa !35
  %8071 = sext i32 %8070 to i64
  %8072 = getelementptr inbounds ptr, ptr %8067, i64 %8071
  %8073 = load ptr, ptr %8072, align 8, !tbaa !5
  store ptr %8073, ptr %286, align 8, !tbaa !5
  %8074 = load ptr, ptr %286, align 8, !tbaa !5
  %8075 = getelementptr inbounds %struct.VdbeCursor, ptr %8074, i32 0, i32 2
  %8076 = load i8, ptr %8075, align 2, !tbaa !86
  %8077 = icmp ne i8 %8076, 0
  br i1 %8077, label %8078, label %8079

8078:                                             ; preds = %8064
  store i32 7, ptr %23, align 4
  br label %8112

8079:                                             ; preds = %8064
  %8080 = load ptr, ptr %286, align 8, !tbaa !5
  %8081 = getelementptr inbounds %struct.VdbeCursor, ptr %8080, i32 0, i32 12
  %8082 = load ptr, ptr %8081, align 8, !tbaa !16
  %8083 = getelementptr inbounds %struct.sqlite3_vtab_cursor, ptr %8082, i32 0, i32 0
  %8084 = load ptr, ptr %8083, align 8, !tbaa !166
  store ptr %8084, ptr %283, align 8, !tbaa !5
  %8085 = load ptr, ptr %283, align 8, !tbaa !5
  %8086 = getelementptr inbounds %struct.sqlite3_vtab, ptr %8085, i32 0, i32 0
  %8087 = load ptr, ptr %8086, align 8, !tbaa !168
  store ptr %8087, ptr %284, align 8, !tbaa !5
  %8088 = load ptr, ptr %284, align 8, !tbaa !5
  %8089 = getelementptr inbounds %struct.sqlite3_module, ptr %8088, i32 0, i32 9
  %8090 = load ptr, ptr %8089, align 8, !tbaa !228
  %8091 = load ptr, ptr %286, align 8, !tbaa !5
  %8092 = getelementptr inbounds %struct.VdbeCursor, ptr %8091, i32 0, i32 12
  %8093 = load ptr, ptr %8092, align 8, !tbaa !16
  %8094 = call i32 %8090(ptr noundef %8093)
  store i32 %8094, ptr %6, align 4, !tbaa !14
  %8095 = load ptr, ptr %3, align 8, !tbaa !5
  %8096 = load ptr, ptr %283, align 8, !tbaa !5
  call void @sqlite3VtabImportErrmsg(ptr noundef %8095, ptr noundef %8096)
  %8097 = load i32, ptr %6, align 4, !tbaa !14
  %8098 = icmp ne i32 %8097, 0
  br i1 %8098, label %8099, label %8100

8099:                                             ; preds = %8079
  store i32 10, ptr %23, align 4
  br label %8112

8100:                                             ; preds = %8079
  %8101 = load ptr, ptr %284, align 8, !tbaa !5
  %8102 = getelementptr inbounds %struct.sqlite3_module, ptr %8101, i32 0, i32 10
  %8103 = load ptr, ptr %8102, align 8, !tbaa !226
  %8104 = load ptr, ptr %286, align 8, !tbaa !5
  %8105 = getelementptr inbounds %struct.VdbeCursor, ptr %8104, i32 0, i32 12
  %8106 = load ptr, ptr %8105, align 8, !tbaa !16
  %8107 = call i32 %8103(ptr noundef %8106)
  store i32 %8107, ptr %285, align 4, !tbaa !14
  %8108 = load i32, ptr %285, align 4, !tbaa !14
  %8109 = icmp ne i32 %8108, 0
  br i1 %8109, label %8111, label %8110

8110:                                             ; preds = %8100
  store i32 8, ptr %23, align 4
  br label %8112

8111:                                             ; preds = %8100
  store i32 9, ptr %23, align 4
  br label %8112

8112:                                             ; preds = %8111, %8110, %8099, %8078
  call void @llvm.lifetime.end.p0(i64 8, ptr %286) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %284) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #5
  %8113 = load i32, ptr %23, align 4
  switch i32 %8113, label %8562 [
    i32 7, label %8475
    i32 8, label %371
    i32 9, label %379
    i32 10, label %8480
  ]

8114:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %287) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %288) #5
  %8115 = load ptr, ptr %5, align 8, !tbaa !5
  %8116 = getelementptr inbounds %struct.VdbeOp, ptr %8115, i32 0, i32 6
  %8117 = load ptr, ptr %8116, align 8, !tbaa !16
  %8118 = getelementptr inbounds %struct.VTable, ptr %8117, i32 0, i32 2
  %8119 = load ptr, ptr %8118, align 8, !tbaa !218
  store ptr %8119, ptr %287, align 8, !tbaa !5
  %8120 = load ptr, ptr %13, align 8, !tbaa !5
  %8121 = load ptr, ptr %5, align 8, !tbaa !5
  %8122 = getelementptr inbounds %struct.VdbeOp, ptr %8121, i32 0, i32 3
  %8123 = load i32, ptr %8122, align 4, !tbaa !35
  %8124 = sext i32 %8123 to i64
  %8125 = getelementptr inbounds %struct.Mem, ptr %8120, i64 %8124
  store ptr %8125, ptr %288, align 8, !tbaa !5
  %8126 = load ptr, ptr %288, align 8, !tbaa !5
  %8127 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %8126, i32 noundef 1)
  store i32 %8127, ptr %6, align 4, !tbaa !14
  %8128 = load i32, ptr %6, align 4, !tbaa !14
  %8129 = icmp ne i32 %8128, 0
  br i1 %8129, label %8130, label %8131

8130:                                             ; preds = %8114
  store i32 10, ptr %23, align 4
  br label %8153

8131:                                             ; preds = %8114
  %8132 = load ptr, ptr %287, align 8, !tbaa !5
  %8133 = getelementptr inbounds %struct.sqlite3_vtab, ptr %8132, i32 0, i32 0
  %8134 = load ptr, ptr %8133, align 8, !tbaa !168
  %8135 = getelementptr inbounds %struct.sqlite3_module, ptr %8134, i32 0, i32 19
  %8136 = load ptr, ptr %8135, align 8, !tbaa !229
  %8137 = load ptr, ptr %287, align 8, !tbaa !5
  %8138 = load ptr, ptr %288, align 8, !tbaa !5
  %8139 = getelementptr inbounds %struct.Mem, ptr %8138, i32 0, i32 5
  %8140 = load ptr, ptr %8139, align 8, !tbaa !53
  %8141 = call i32 %8136(ptr noundef %8137, ptr noundef %8140)
  store i32 %8141, ptr %6, align 4, !tbaa !14
  %8142 = load ptr, ptr %3, align 8, !tbaa !5
  %8143 = load ptr, ptr %287, align 8, !tbaa !5
  call void @sqlite3VtabImportErrmsg(ptr noundef %8142, ptr noundef %8143)
  %8144 = load ptr, ptr %3, align 8, !tbaa !5
  %8145 = getelementptr inbounds %struct.Vdbe, ptr %8144, i32 0, i32 31
  %8146 = load i16, ptr %8145, align 8
  %8147 = and i16 %8146, -2
  %8148 = or i16 %8147, 0
  store i16 %8148, ptr %8145, align 8
  %8149 = load i32, ptr %6, align 4, !tbaa !14
  %8150 = icmp ne i32 %8149, 0
  br i1 %8150, label %8151, label %8152

8151:                                             ; preds = %8131
  store i32 10, ptr %23, align 4
  br label %8153

8152:                                             ; preds = %8131
  store i32 7, ptr %23, align 4
  br label %8153

8153:                                             ; preds = %8152, %8151, %8130
  call void @llvm.lifetime.end.p0(i64 8, ptr %288) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #5
  %8154 = load i32, ptr %23, align 4
  switch i32 %8154, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

8155:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %289) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %290) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %293) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %294) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %295) #5
  %8156 = load ptr, ptr %5, align 8, !tbaa !5
  %8157 = getelementptr inbounds %struct.VdbeOp, ptr %8156, i32 0, i32 6
  %8158 = load ptr, ptr %8157, align 8, !tbaa !16
  %8159 = getelementptr inbounds %struct.VTable, ptr %8158, i32 0, i32 2
  %8160 = load ptr, ptr %8159, align 8, !tbaa !218
  store ptr %8160, ptr %289, align 8, !tbaa !5
  %8161 = load ptr, ptr %289, align 8, !tbaa !5
  %8162 = icmp eq ptr %8161, null
  br i1 %8162, label %8168, label %8163

8163:                                             ; preds = %8155
  %8164 = load ptr, ptr %289, align 8, !tbaa !5
  %8165 = getelementptr inbounds %struct.sqlite3_vtab, ptr %8164, i32 0, i32 0
  %8166 = load ptr, ptr %8165, align 8, !tbaa !168
  %8167 = icmp eq ptr %8166, null
  br i1 %8167, label %8168, label %8169

8168:                                             ; preds = %8163, %8155
  store i32 6, ptr %6, align 4, !tbaa !14
  store i32 10, ptr %23, align 4
  br label %8289

8169:                                             ; preds = %8163
  %8170 = load ptr, ptr %289, align 8, !tbaa !5
  %8171 = getelementptr inbounds %struct.sqlite3_vtab, ptr %8170, i32 0, i32 0
  %8172 = load ptr, ptr %8171, align 8, !tbaa !168
  store ptr %8172, ptr %290, align 8, !tbaa !5
  %8173 = load ptr, ptr %5, align 8, !tbaa !5
  %8174 = getelementptr inbounds %struct.VdbeOp, ptr %8173, i32 0, i32 4
  %8175 = load i32, ptr %8174, align 8, !tbaa !33
  store i32 %8175, ptr %291, align 4, !tbaa !14
  %8176 = load ptr, ptr %290, align 8, !tbaa !5
  %8177 = getelementptr inbounds %struct.sqlite3_module, ptr %8176, i32 0, i32 13
  %8178 = load ptr, ptr %8177, align 8, !tbaa !230
  %8179 = icmp ne ptr %8178, null
  br i1 %8179, label %8180, label %8288

8180:                                             ; preds = %8169
  call void @llvm.lifetime.start.p0(i64 1, ptr %296) #5
  %8181 = load ptr, ptr %7, align 8, !tbaa !5
  %8182 = getelementptr inbounds %struct.sqlite3, ptr %8181, i32 0, i32 22
  %8183 = load i8, ptr %8182, align 2, !tbaa !231
  store i8 %8183, ptr %296, align 1, !tbaa !16
  %8184 = load ptr, ptr %3, align 8, !tbaa !5
  %8185 = getelementptr inbounds %struct.Vdbe, ptr %8184, i32 0, i32 19
  %8186 = load ptr, ptr %8185, align 8, !tbaa !223
  store ptr %8186, ptr %294, align 8, !tbaa !5
  %8187 = load ptr, ptr %13, align 8, !tbaa !5
  %8188 = load ptr, ptr %5, align 8, !tbaa !5
  %8189 = getelementptr inbounds %struct.VdbeOp, ptr %8188, i32 0, i32 5
  %8190 = load i32, ptr %8189, align 4, !tbaa !38
  %8191 = sext i32 %8190 to i64
  %8192 = getelementptr inbounds %struct.Mem, ptr %8187, i64 %8191
  store ptr %8192, ptr %295, align 8, !tbaa !5
  store i32 0, ptr %292, align 4, !tbaa !14
  br label %8193

8193:                                             ; preds = %8205, %8180
  %8194 = load i32, ptr %292, align 4, !tbaa !14
  %8195 = load i32, ptr %291, align 4, !tbaa !14
  %8196 = icmp slt i32 %8194, %8195
  br i1 %8196, label %8197, label %8208

8197:                                             ; preds = %8193
  %8198 = load ptr, ptr %295, align 8, !tbaa !5
  %8199 = load ptr, ptr %294, align 8, !tbaa !5
  %8200 = load i32, ptr %292, align 4, !tbaa !14
  %8201 = sext i32 %8200 to i64
  %8202 = getelementptr inbounds ptr, ptr %8199, i64 %8201
  store ptr %8198, ptr %8202, align 8, !tbaa !5
  %8203 = load ptr, ptr %295, align 8, !tbaa !5
  %8204 = getelementptr inbounds %struct.Mem, ptr %8203, i32 1
  store ptr %8204, ptr %295, align 8, !tbaa !5
  br label %8205

8205:                                             ; preds = %8197
  %8206 = load i32, ptr %292, align 4, !tbaa !14
  %8207 = add nsw i32 %8206, 1
  store i32 %8207, ptr %292, align 4, !tbaa !14
  br label %8193, !llvm.loop !232

8208:                                             ; preds = %8193
  %8209 = load ptr, ptr %5, align 8, !tbaa !5
  %8210 = getelementptr inbounds %struct.VdbeOp, ptr %8209, i32 0, i32 2
  %8211 = load i16, ptr %8210, align 2, !tbaa !45
  %8212 = trunc i16 %8211 to i8
  %8213 = load ptr, ptr %7, align 8, !tbaa !5
  %8214 = getelementptr inbounds %struct.sqlite3, ptr %8213, i32 0, i32 22
  store i8 %8212, ptr %8214, align 2, !tbaa !231
  %8215 = load ptr, ptr %290, align 8, !tbaa !5
  %8216 = getelementptr inbounds %struct.sqlite3_module, ptr %8215, i32 0, i32 13
  %8217 = load ptr, ptr %8216, align 8, !tbaa !230
  %8218 = load ptr, ptr %289, align 8, !tbaa !5
  %8219 = load i32, ptr %291, align 4, !tbaa !14
  %8220 = load ptr, ptr %294, align 8, !tbaa !5
  %8221 = call i32 %8217(ptr noundef %8218, i32 noundef %8219, ptr noundef %8220, ptr noundef %293)
  store i32 %8221, ptr %6, align 4, !tbaa !14
  %8222 = load i8, ptr %296, align 1, !tbaa !16
  %8223 = load ptr, ptr %7, align 8, !tbaa !5
  %8224 = getelementptr inbounds %struct.sqlite3, ptr %8223, i32 0, i32 22
  store i8 %8222, ptr %8224, align 2, !tbaa !231
  %8225 = load ptr, ptr %3, align 8, !tbaa !5
  %8226 = load ptr, ptr %289, align 8, !tbaa !5
  call void @sqlite3VtabImportErrmsg(ptr noundef %8225, ptr noundef %8226)
  %8227 = load i32, ptr %6, align 4, !tbaa !14
  %8228 = icmp eq i32 %8227, 0
  br i1 %8228, label %8229, label %8238

8229:                                             ; preds = %8208
  %8230 = load ptr, ptr %5, align 8, !tbaa !5
  %8231 = getelementptr inbounds %struct.VdbeOp, ptr %8230, i32 0, i32 3
  %8232 = load i32, ptr %8231, align 4, !tbaa !35
  %8233 = icmp ne i32 %8232, 0
  br i1 %8233, label %8234, label %8238

8234:                                             ; preds = %8229
  %8235 = load i64, ptr %293, align 8, !tbaa !48
  %8236 = load ptr, ptr %7, align 8, !tbaa !5
  %8237 = getelementptr inbounds %struct.sqlite3, ptr %8236, i32 0, i32 7
  store i64 %8235, ptr %8237, align 8, !tbaa !157
  br label %8238

8238:                                             ; preds = %8234, %8229, %8208
  %8239 = load i32, ptr %6, align 4, !tbaa !14
  %8240 = and i32 %8239, 255
  %8241 = icmp eq i32 %8240, 19
  br i1 %8241, label %8242, label %8275

8242:                                             ; preds = %8238
  %8243 = load ptr, ptr %5, align 8, !tbaa !5
  %8244 = getelementptr inbounds %struct.VdbeOp, ptr %8243, i32 0, i32 6
  %8245 = load ptr, ptr %8244, align 8, !tbaa !16
  %8246 = getelementptr inbounds %struct.VTable, ptr %8245, i32 0, i32 4
  %8247 = load i8, ptr %8246, align 4, !tbaa !233
  %8248 = zext i8 %8247 to i32
  %8249 = icmp ne i32 %8248, 0
  br i1 %8249, label %8250, label %8275

8250:                                             ; preds = %8242
  %8251 = load ptr, ptr %5, align 8, !tbaa !5
  %8252 = getelementptr inbounds %struct.VdbeOp, ptr %8251, i32 0, i32 2
  %8253 = load i16, ptr %8252, align 2, !tbaa !45
  %8254 = zext i16 %8253 to i32
  %8255 = icmp eq i32 %8254, 4
  br i1 %8255, label %8256, label %8257

8256:                                             ; preds = %8250
  store i32 0, ptr %6, align 4, !tbaa !14
  br label %8274

8257:                                             ; preds = %8250
  %8258 = load ptr, ptr %5, align 8, !tbaa !5
  %8259 = getelementptr inbounds %struct.VdbeOp, ptr %8258, i32 0, i32 2
  %8260 = load i16, ptr %8259, align 2, !tbaa !45
  %8261 = zext i16 %8260 to i32
  %8262 = icmp eq i32 %8261, 5
  br i1 %8262, label %8263, label %8264

8263:                                             ; preds = %8257
  br label %8269

8264:                                             ; preds = %8257
  %8265 = load ptr, ptr %5, align 8, !tbaa !5
  %8266 = getelementptr inbounds %struct.VdbeOp, ptr %8265, i32 0, i32 2
  %8267 = load i16, ptr %8266, align 2, !tbaa !45
  %8268 = zext i16 %8267 to i32
  br label %8269

8269:                                             ; preds = %8264, %8263
  %8270 = phi i32 [ 2, %8263 ], [ %8268, %8264 ]
  %8271 = trunc i32 %8270 to i8
  %8272 = load ptr, ptr %3, align 8, !tbaa !5
  %8273 = getelementptr inbounds %struct.Vdbe, ptr %8272, i32 0, i32 29
  store i8 %8271, ptr %8273, align 2, !tbaa !44
  br label %8274

8274:                                             ; preds = %8269, %8256
  br label %8280

8275:                                             ; preds = %8242, %8238
  %8276 = load ptr, ptr %3, align 8, !tbaa !5
  %8277 = getelementptr inbounds %struct.Vdbe, ptr %8276, i32 0, i32 11
  %8278 = load i32, ptr %8277, align 4, !tbaa !43
  %8279 = add nsw i32 %8278, 1
  store i32 %8279, ptr %8277, align 4, !tbaa !43
  br label %8280

8280:                                             ; preds = %8275, %8274
  %8281 = load i32, ptr %6, align 4, !tbaa !14
  %8282 = icmp ne i32 %8281, 0
  br i1 %8282, label %8283, label %8284

8283:                                             ; preds = %8280
  store i32 10, ptr %23, align 4
  br label %8285

8284:                                             ; preds = %8280
  store i32 0, ptr %23, align 4
  br label %8285

8285:                                             ; preds = %8284, %8283
  call void @llvm.lifetime.end.p0(i64 1, ptr %296) #5
  %8286 = load i32, ptr %23, align 4
  switch i32 %8286, label %8289 [
    i32 0, label %8287
  ]

8287:                                             ; preds = %8285
  br label %8288

8288:                                             ; preds = %8287, %8169
  store i32 7, ptr %23, align 4
  br label %8289

8289:                                             ; preds = %8288, %8285, %8168
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %293) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #5
  %8290 = load i32, ptr %23, align 4
  switch i32 %8290, label %8562 [
    i32 7, label %8475
    i32 10, label %8480
  ]

8291:                                             ; preds = %363
  %8292 = load ptr, ptr %3, align 8, !tbaa !5
  %8293 = load ptr, ptr %5, align 8, !tbaa !5
  %8294 = call ptr @out2Prerelease(ptr noundef %8292, ptr noundef %8293)
  store ptr %8294, ptr %17, align 8, !tbaa !5
  %8295 = load ptr, ptr %7, align 8, !tbaa !5
  %8296 = getelementptr inbounds %struct.sqlite3, ptr %8295, i32 0, i32 4
  %8297 = load ptr, ptr %8296, align 8, !tbaa !116
  %8298 = load ptr, ptr %5, align 8, !tbaa !5
  %8299 = getelementptr inbounds %struct.VdbeOp, ptr %8298, i32 0, i32 3
  %8300 = load i32, ptr %8299, align 4, !tbaa !35
  %8301 = sext i32 %8300 to i64
  %8302 = getelementptr inbounds %struct.Db, ptr %8297, i64 %8301
  %8303 = getelementptr inbounds %struct.Db, ptr %8302, i32 0, i32 1
  %8304 = load ptr, ptr %8303, align 8, !tbaa !117
  %8305 = call i32 @sqlite3BtreeLastPage(ptr noundef %8304)
  %8306 = zext i32 %8305 to i64
  %8307 = load ptr, ptr %17, align 8, !tbaa !5
  %8308 = getelementptr inbounds %struct.Mem, ptr %8307, i32 0, i32 0
  store i64 %8306, ptr %8308, align 8, !tbaa !16
  br label %8475

8309:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %298) #5
  %8310 = load ptr, ptr %3, align 8, !tbaa !5
  %8311 = load ptr, ptr %5, align 8, !tbaa !5
  %8312 = call ptr @out2Prerelease(ptr noundef %8310, ptr noundef %8311)
  store ptr %8312, ptr %17, align 8, !tbaa !5
  %8313 = load ptr, ptr %7, align 8, !tbaa !5
  %8314 = getelementptr inbounds %struct.sqlite3, ptr %8313, i32 0, i32 4
  %8315 = load ptr, ptr %8314, align 8, !tbaa !116
  %8316 = load ptr, ptr %5, align 8, !tbaa !5
  %8317 = getelementptr inbounds %struct.VdbeOp, ptr %8316, i32 0, i32 3
  %8318 = load i32, ptr %8317, align 4, !tbaa !35
  %8319 = sext i32 %8318 to i64
  %8320 = getelementptr inbounds %struct.Db, ptr %8315, i64 %8319
  %8321 = getelementptr inbounds %struct.Db, ptr %8320, i32 0, i32 1
  %8322 = load ptr, ptr %8321, align 8, !tbaa !117
  store ptr %8322, ptr %298, align 8, !tbaa !5
  store i32 0, ptr %297, align 4, !tbaa !14
  %8323 = load ptr, ptr %5, align 8, !tbaa !5
  %8324 = getelementptr inbounds %struct.VdbeOp, ptr %8323, i32 0, i32 5
  %8325 = load i32, ptr %8324, align 4, !tbaa !38
  %8326 = icmp ne i32 %8325, 0
  br i1 %8326, label %8327, label %8340

8327:                                             ; preds = %8309
  %8328 = load ptr, ptr %298, align 8, !tbaa !5
  %8329 = call i32 @sqlite3BtreeLastPage(ptr noundef %8328)
  store i32 %8329, ptr %297, align 4, !tbaa !14
  %8330 = load i32, ptr %297, align 4, !tbaa !14
  %8331 = load ptr, ptr %5, align 8, !tbaa !5
  %8332 = getelementptr inbounds %struct.VdbeOp, ptr %8331, i32 0, i32 5
  %8333 = load i32, ptr %8332, align 4, !tbaa !38
  %8334 = icmp ult i32 %8330, %8333
  br i1 %8334, label %8335, label %8339

8335:                                             ; preds = %8327
  %8336 = load ptr, ptr %5, align 8, !tbaa !5
  %8337 = getelementptr inbounds %struct.VdbeOp, ptr %8336, i32 0, i32 5
  %8338 = load i32, ptr %8337, align 4, !tbaa !38
  store i32 %8338, ptr %297, align 4, !tbaa !14
  br label %8339

8339:                                             ; preds = %8335, %8327
  br label %8340

8340:                                             ; preds = %8339, %8309
  %8341 = load ptr, ptr %298, align 8, !tbaa !5
  %8342 = load i32, ptr %297, align 4, !tbaa !14
  %8343 = call i32 @sqlite3BtreeMaxPageCount(ptr noundef %8341, i32 noundef %8342)
  %8344 = sext i32 %8343 to i64
  %8345 = load ptr, ptr %17, align 8, !tbaa !5
  %8346 = getelementptr inbounds %struct.Mem, ptr %8345, i32 0, i32 0
  store i64 %8344, ptr %8346, align 8, !tbaa !16
  store i32 7, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %298) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #5
  br label %8475

8347:                                             ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %299) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #5
  %8348 = load ptr, ptr %7, align 8, !tbaa !5
  %8349 = getelementptr inbounds %struct.sqlite3, ptr %8348, i32 0, i32 24
  %8350 = load i8, ptr %8349, align 4, !tbaa !64
  %8351 = zext i8 %8350 to i32
  %8352 = and i32 %8351, 129
  %8353 = icmp ne i32 %8352, 0
  br i1 %8353, label %8354, label %8430

8354:                                             ; preds = %8347
  %8355 = load ptr, ptr %3, align 8, !tbaa !5
  %8356 = getelementptr inbounds %struct.Vdbe, ptr %8355, i32 0, i32 31
  %8357 = load i16, ptr %8356, align 8
  %8358 = lshr i16 %8357, 1
  %8359 = and i16 %8358, 1
  %8360 = zext i16 %8359 to i32
  %8361 = icmp ne i32 %8360, 0
  br i1 %8361, label %8430, label %8362

8362:                                             ; preds = %8354
  %8363 = load ptr, ptr %5, align 8, !tbaa !5
  %8364 = getelementptr inbounds %struct.VdbeOp, ptr %8363, i32 0, i32 6
  %8365 = load ptr, ptr %8364, align 8, !tbaa !16
  %8366 = icmp ne ptr %8365, null
  br i1 %8366, label %8367, label %8371

8367:                                             ; preds = %8362
  %8368 = load ptr, ptr %5, align 8, !tbaa !5
  %8369 = getelementptr inbounds %struct.VdbeOp, ptr %8368, i32 0, i32 6
  %8370 = load ptr, ptr %8369, align 8, !tbaa !16
  br label %8375

8371:                                             ; preds = %8362
  %8372 = load ptr, ptr %3, align 8, !tbaa !5
  %8373 = getelementptr inbounds %struct.Vdbe, ptr %8372, i32 0, i32 35
  %8374 = load ptr, ptr %8373, align 8, !tbaa !47
  br label %8375

8375:                                             ; preds = %8371, %8367
  %8376 = phi ptr [ %8370, %8367 ], [ %8374, %8371 ]
  store ptr %8376, ptr %299, align 8, !tbaa !5
  %8377 = icmp ne ptr %8376, null
  br i1 %8377, label %8378, label %8430

8378:                                             ; preds = %8375
  %8379 = load ptr, ptr %7, align 8, !tbaa !5
  %8380 = getelementptr inbounds %struct.sqlite3, ptr %8379, i32 0, i32 24
  %8381 = load i8, ptr %8380, align 4, !tbaa !64
  %8382 = zext i8 %8381 to i32
  %8383 = and i32 %8382, 128
  %8384 = icmp ne i32 %8383, 0
  br i1 %8384, label %8385, label %8398

8385:                                             ; preds = %8378
  call void @llvm.lifetime.start.p0(i64 8, ptr %301) #5
  %8386 = load ptr, ptr %7, align 8, !tbaa !5
  %8387 = getelementptr inbounds %struct.sqlite3, ptr %8386, i32 0, i32 41
  %8388 = load ptr, ptr %8387, align 8, !tbaa !65
  store ptr %8388, ptr %301, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %302) #5
  %8389 = load ptr, ptr %3, align 8, !tbaa !5
  %8390 = load ptr, ptr %299, align 8, !tbaa !5
  %8391 = call ptr @sqlite3VdbeExpandSql(ptr noundef %8389, ptr noundef %8390)
  store ptr %8391, ptr %302, align 8, !tbaa !5
  %8392 = load ptr, ptr %301, align 8, !tbaa !5
  %8393 = load ptr, ptr %7, align 8, !tbaa !5
  %8394 = getelementptr inbounds %struct.sqlite3, ptr %8393, i32 0, i32 42
  %8395 = load ptr, ptr %8394, align 8, !tbaa !66
  %8396 = load ptr, ptr %302, align 8, !tbaa !5
  call void %8392(ptr noundef %8395, ptr noundef %8396)
  %8397 = load ptr, ptr %302, align 8, !tbaa !5
  call void @sqlite3_free(ptr noundef %8397)
  call void @llvm.lifetime.end.p0(i64 8, ptr %302) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %301) #5
  br label %8429

8398:                                             ; preds = %8378
  %8399 = load ptr, ptr %7, align 8, !tbaa !5
  %8400 = getelementptr inbounds %struct.sqlite3, ptr %8399, i32 0, i32 37
  %8401 = load i32, ptr %8400, align 8, !tbaa !234
  %8402 = icmp sgt i32 %8401, 1
  br i1 %8402, label %8403, label %8418

8403:                                             ; preds = %8398
  call void @llvm.lifetime.start.p0(i64 8, ptr %303) #5
  %8404 = load ptr, ptr %7, align 8, !tbaa !5
  %8405 = load ptr, ptr %299, align 8, !tbaa !5
  %8406 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %8404, ptr noundef @.str.23, ptr noundef %8405)
  store ptr %8406, ptr %303, align 8, !tbaa !5
  %8407 = load ptr, ptr %7, align 8, !tbaa !5
  %8408 = getelementptr inbounds %struct.sqlite3, ptr %8407, i32 0, i32 41
  %8409 = load ptr, ptr %8408, align 8, !tbaa !65
  %8410 = load ptr, ptr %7, align 8, !tbaa !5
  %8411 = getelementptr inbounds %struct.sqlite3, ptr %8410, i32 0, i32 42
  %8412 = load ptr, ptr %8411, align 8, !tbaa !66
  %8413 = load ptr, ptr %3, align 8, !tbaa !5
  %8414 = load ptr, ptr %303, align 8, !tbaa !5
  %8415 = call i32 %8409(i32 noundef 1, ptr noundef %8412, ptr noundef %8413, ptr noundef %8414)
  %8416 = load ptr, ptr %7, align 8, !tbaa !5
  %8417 = load ptr, ptr %303, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %8416, ptr noundef %8417)
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #5
  br label %8428

8418:                                             ; preds = %8398
  %8419 = load ptr, ptr %7, align 8, !tbaa !5
  %8420 = getelementptr inbounds %struct.sqlite3, ptr %8419, i32 0, i32 41
  %8421 = load ptr, ptr %8420, align 8, !tbaa !65
  %8422 = load ptr, ptr %7, align 8, !tbaa !5
  %8423 = getelementptr inbounds %struct.sqlite3, ptr %8422, i32 0, i32 42
  %8424 = load ptr, ptr %8423, align 8, !tbaa !66
  %8425 = load ptr, ptr %3, align 8, !tbaa !5
  %8426 = load ptr, ptr %299, align 8, !tbaa !5
  %8427 = call i32 %8421(i32 noundef 1, ptr noundef %8424, ptr noundef %8425, ptr noundef %8426)
  br label %8428

8428:                                             ; preds = %8418, %8403
  br label %8429

8429:                                             ; preds = %8428, %8385
  br label %8430

8430:                                             ; preds = %8429, %8375, %8354, %8347
  %8431 = load ptr, ptr %5, align 8, !tbaa !5
  %8432 = getelementptr inbounds %struct.VdbeOp, ptr %8431, i32 0, i32 3
  %8433 = load i32, ptr %8432, align 4, !tbaa !35
  %8434 = load i32, ptr getelementptr inbounds (%struct.Sqlite3Config, ptr @sqlite3Config, i32 0, i32 39), align 4, !tbaa !235
  %8435 = icmp sge i32 %8433, %8434
  br i1 %8435, label %8436, label %8469

8436:                                             ; preds = %8430
  store i32 1, ptr %300, align 4, !tbaa !14
  br label %8437

8437:                                             ; preds = %8463, %8436
  %8438 = load i32, ptr %300, align 4, !tbaa !14
  %8439 = load ptr, ptr %3, align 8, !tbaa !5
  %8440 = getelementptr inbounds %struct.Vdbe, ptr %8439, i32 0, i32 27
  %8441 = load i32, ptr %8440, align 8, !tbaa !201
  %8442 = icmp slt i32 %8438, %8441
  br i1 %8442, label %8443, label %8466

8443:                                             ; preds = %8437
  %8444 = load ptr, ptr %3, align 8, !tbaa !5
  %8445 = getelementptr inbounds %struct.Vdbe, ptr %8444, i32 0, i32 17
  %8446 = load ptr, ptr %8445, align 8, !tbaa !9
  %8447 = load i32, ptr %300, align 4, !tbaa !14
  %8448 = sext i32 %8447 to i64
  %8449 = getelementptr inbounds %struct.VdbeOp, ptr %8446, i64 %8448
  %8450 = getelementptr inbounds %struct.VdbeOp, ptr %8449, i32 0, i32 0
  %8451 = load i8, ptr %8450, align 8, !tbaa !31
  %8452 = zext i8 %8451 to i32
  %8453 = icmp eq i32 %8452, 20
  br i1 %8453, label %8454, label %8462

8454:                                             ; preds = %8443
  %8455 = load ptr, ptr %3, align 8, !tbaa !5
  %8456 = getelementptr inbounds %struct.Vdbe, ptr %8455, i32 0, i32 17
  %8457 = load ptr, ptr %8456, align 8, !tbaa !9
  %8458 = load i32, ptr %300, align 4, !tbaa !14
  %8459 = sext i32 %8458 to i64
  %8460 = getelementptr inbounds %struct.VdbeOp, ptr %8457, i64 %8459
  %8461 = getelementptr inbounds %struct.VdbeOp, ptr %8460, i32 0, i32 3
  store i32 0, ptr %8461, align 4, !tbaa !35
  br label %8462

8462:                                             ; preds = %8454, %8443
  br label %8463

8463:                                             ; preds = %8462
  %8464 = load i32, ptr %300, align 4, !tbaa !14
  %8465 = add nsw i32 %8464, 1
  store i32 %8465, ptr %300, align 4, !tbaa !14
  br label %8437, !llvm.loop !240

8466:                                             ; preds = %8437
  %8467 = load ptr, ptr %5, align 8, !tbaa !5
  %8468 = getelementptr inbounds %struct.VdbeOp, ptr %8467, i32 0, i32 3
  store i32 0, ptr %8468, align 4, !tbaa !35
  br label %8469

8469:                                             ; preds = %8466, %8430
  %8470 = load ptr, ptr %5, align 8, !tbaa !5
  %8471 = getelementptr inbounds %struct.VdbeOp, ptr %8470, i32 0, i32 3
  %8472 = load i32, ptr %8471, align 4, !tbaa !35
  %8473 = add nsw i32 %8472, 1
  store i32 %8473, ptr %8471, align 4, !tbaa !35
  store i32 11, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %299) #5
  br label %436

8474:                                             ; preds = %363
  br label %8475

8475:                                             ; preds = %8474, %8340, %8291, %8289, %8153, %8112, %8062, %7986, %7900, %7845, %7823, %7794, %7773, %7723, %7708, %7686, %7673, %7535, %7488, %7458, %7298, %7275, %7252, %7209, %7188, %7128, %7098, %7031, %7029, %6743, %6645, %6614, %6544, %6536, %6528, %6527, %6516, %6456, %6437, %6402, %6370, %6313, %6254, %6192, %6114, %6062, %5911, %5885, %5836, %5793, %5739, %5714, %5630, %5576, %5541, %5503, %5501, %5390, %5204, %5017, %5016, %4937, %4788, %4557, %4555, %4531, %4512, %4482, %4376, %4193, %4103, %4101, %3821, %3479, %3453, %3217, %3193, %2670, %2655, %2639, %2599, %2527, %2498, %2466, %2370, %2338, %2252, %2251, %2245, %1943, %1914, %1888, %1841, %1840, %1711, %1543, %1530, %1332, %1029, %1014, %1012, %968, %924, %886, %870, %869, %832, %708, %698, %688, %686, %541, %501, %480, %479, %444, %436, %416
  br label %8476

8476:                                             ; preds = %8475
  %8477 = load ptr, ptr %5, align 8, !tbaa !5
  %8478 = getelementptr inbounds %struct.VdbeOp, ptr %8477, i32 1
  store ptr %8478, ptr %5, align 8, !tbaa !5
  br label %362

8479:                                             ; preds = %362
  br label %8480

8480:                                             ; preds = %8548, %8545, %8543, %8479, %8289, %8153, %8112, %8062, %7986, %7900, %7844, %7823, %7794, %7773, %7708, %7685, %7673, %7535, %7488, %7458, %7029, %6526, %6516, %6455, %6437, %6402, %6370, %6313, %6254, %6192, %6114, %6062, %5938, %5885, %5836, %5793, %5714, %5630, %5576, %5541, %5501, %5390, %5204, %5015, %4937, %4788, %4512, %4482, %4375, %4224, %4193, %4101, %3907, %3821, %3479, %3193, %1942, %1885, %1711, %1154, %414
  %8481 = load ptr, ptr %7, align 8, !tbaa !5
  %8482 = getelementptr inbounds %struct.sqlite3, ptr %8481, i32 0, i32 17
  %8483 = load i8, ptr %8482, align 1, !tbaa !63
  %8484 = icmp ne i8 %8483, 0
  br i1 %8484, label %8485, label %8486

8485:                                             ; preds = %8480
  store i32 7, ptr %6, align 4, !tbaa !14
  br label %8486

8486:                                             ; preds = %8485, %8480
  %8487 = load ptr, ptr %3, align 8, !tbaa !5
  %8488 = getelementptr inbounds %struct.Vdbe, ptr %8487, i32 0, i32 22
  %8489 = load ptr, ptr %8488, align 8, !tbaa !46
  %8490 = icmp eq ptr %8489, null
  br i1 %8490, label %8491, label %8498

8491:                                             ; preds = %8486
  %8492 = load i32, ptr %6, align 4, !tbaa !14
  %8493 = icmp ne i32 %8492, 3082
  br i1 %8493, label %8494, label %8498

8494:                                             ; preds = %8491
  %8495 = load ptr, ptr %3, align 8, !tbaa !5
  %8496 = load i32, ptr %6, align 4, !tbaa !14
  %8497 = call ptr @sqlite3ErrStr(i32 noundef %8496)
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %8495, ptr noundef @.str.6, ptr noundef %8497)
  br label %8498

8498:                                             ; preds = %8494, %8491, %8486
  %8499 = load i32, ptr %6, align 4, !tbaa !14
  %8500 = load ptr, ptr %3, align 8, !tbaa !5
  %8501 = getelementptr inbounds %struct.Vdbe, ptr %8500, i32 0, i32 10
  store i32 %8499, ptr %8501, align 8, !tbaa !24
  %8502 = load ptr, ptr %7, align 8, !tbaa !5
  %8503 = load i32, ptr %6, align 4, !tbaa !14
  call void @sqlite3SystemError(ptr noundef %8502, i32 noundef %8503)
  %8504 = load i32, ptr %6, align 4, !tbaa !14
  %8505 = load ptr, ptr %5, align 8, !tbaa !5
  %8506 = load ptr, ptr %4, align 8, !tbaa !5
  %8507 = ptrtoint ptr %8505 to i64
  %8508 = ptrtoint ptr %8506 to i64
  %8509 = sub i64 %8507, %8508
  %8510 = sdiv exact i64 %8509, 24
  %8511 = trunc i64 %8510 to i32
  %8512 = load ptr, ptr %3, align 8, !tbaa !5
  %8513 = getelementptr inbounds %struct.Vdbe, ptr %8512, i32 0, i32 35
  %8514 = load ptr, ptr %8513, align 8, !tbaa !47
  %8515 = load ptr, ptr %3, align 8, !tbaa !5
  %8516 = getelementptr inbounds %struct.Vdbe, ptr %8515, i32 0, i32 22
  %8517 = load ptr, ptr %8516, align 8, !tbaa !46
  call void (i32, ptr, ...) @sqlite3_log(i32 noundef %8504, ptr noundef @.str.24, i32 noundef %8511, ptr noundef %8514, ptr noundef %8517)
  %8518 = load ptr, ptr %3, align 8, !tbaa !5
  %8519 = call i32 @sqlite3VdbeHalt(ptr noundef %8518)
  %8520 = load i32, ptr %6, align 4, !tbaa !14
  %8521 = icmp eq i32 %8520, 3082
  br i1 %8521, label %8522, label %8524

8522:                                             ; preds = %8498
  %8523 = load ptr, ptr %7, align 8, !tbaa !5
  call void @sqlite3OomFault(ptr noundef %8523)
  br label %8524

8524:                                             ; preds = %8522, %8498
  store i32 1, ptr %6, align 4, !tbaa !14
  %8525 = load i8, ptr %8, align 1, !tbaa !16
  %8526 = zext i8 %8525 to i32
  %8527 = icmp sgt i32 %8526, 0
  br i1 %8527, label %8528, label %8533

8528:                                             ; preds = %8524
  %8529 = load ptr, ptr %7, align 8, !tbaa !5
  %8530 = load i8, ptr %8, align 1, !tbaa !16
  %8531 = zext i8 %8530 to i32
  %8532 = sub nsw i32 %8531, 1
  call void @sqlite3ResetOneSchema(ptr noundef %8529, i32 noundef %8532)
  br label %8533

8533:                                             ; preds = %8528, %8524
  br label %8534

8534:                                             ; preds = %8533, %4101, %3907, %3821, %1154, %686
  %8535 = load i32, ptr %11, align 4, !tbaa !14
  %8536 = load ptr, ptr %3, align 8, !tbaa !5
  %8537 = getelementptr inbounds %struct.Vdbe, ptr %8536, i32 0, i32 34
  %8538 = getelementptr inbounds [5 x i32], ptr %8537, i64 0, i64 4
  %8539 = load i32, ptr %8538, align 4, !tbaa !14
  %8540 = add i32 %8539, %8535
  store i32 %8540, ptr %8538, align 4, !tbaa !14
  %8541 = load ptr, ptr %3, align 8, !tbaa !5
  call void @sqlite3VdbeLeave(ptr noundef %8541)
  %8542 = load i32, ptr %6, align 4, !tbaa !14
  store i32 %8542, ptr %2, align 4
  store i32 1, ptr %23, align 4
  br label %8562

8543:                                             ; preds = %8062, %7488, %5630, %3453, %3193, %1711, %1332, %924, %788
  %8544 = load ptr, ptr %3, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %8544, ptr noundef @.str.25)
  store i32 18, ptr %6, align 4, !tbaa !14
  br label %8480

8545:                                             ; preds = %7900, %7345, %7029, %6743, %6643, %6614, %6516, %5630, %4937, %4555, %4512, %4482, %4332, %3453, %3193, %1590, %1332, %1154, %1012, %968, %746, %322
  %8546 = load ptr, ptr %7, align 8, !tbaa !5
  call void @sqlite3OomFault(ptr noundef %8546)
  %8547 = load ptr, ptr %3, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %8547, ptr noundef @.str.26)
  store i32 7, ptr %6, align 4, !tbaa !14
  br label %8480

8548:                                             ; preds = %384, %335
  %8549 = load ptr, ptr %7, align 8, !tbaa !5
  %8550 = getelementptr inbounds %struct.sqlite3, ptr %8549, i32 0, i32 17
  %8551 = load i8, ptr %8550, align 1, !tbaa !63
  %8552 = zext i8 %8551 to i32
  %8553 = icmp ne i32 %8552, 0
  %8554 = zext i1 %8553 to i64
  %8555 = select i1 %8553, i32 7, i32 9
  store i32 %8555, ptr %6, align 4, !tbaa !14
  %8556 = load i32, ptr %6, align 4, !tbaa !14
  %8557 = load ptr, ptr %3, align 8, !tbaa !5
  %8558 = getelementptr inbounds %struct.Vdbe, ptr %8557, i32 0, i32 10
  store i32 %8556, ptr %8558, align 8, !tbaa !24
  %8559 = load ptr, ptr %3, align 8, !tbaa !5
  %8560 = load i32, ptr %6, align 4, !tbaa !14
  %8561 = call ptr @sqlite3ErrStr(i32 noundef %8560)
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %8559, ptr noundef @.str.6, ptr noundef %8561)
  br label %8480

8562:                                             ; preds = %8534, %8289, %8153, %8112, %8062, %7986, %7900, %7823, %7794, %7773, %7708, %7673, %7535, %7488, %7458, %7345, %7029, %6743, %6614, %6516, %6437, %6402, %6370, %6313, %6254, %6192, %6114, %6062, %5885, %5836, %5793, %5714, %5630, %5576, %5541, %5501, %5390, %5204, %4937, %4788, %4555, %4512, %4482, %4193, %4101, %3907, %3821, %3479, %3453, %3193, %1711, %1590, %1332, %1154, %1012, %968, %924, %686
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #5
  %8563 = load i32, ptr %2, align 4
  ret i32 %8563

8564:                                             ; preds = %6682, %4531, %2639, %2599, %2245
  unreachable
}

declare void @sqlite3VdbeEnter(ptr noundef) #2

declare void @sqlite3VdbeSetChanges(ptr noundef, i32 noundef) #2

declare i32 @sqlite3VdbeFrameRestore(ptr noundef) #2

declare void @sqlite3VdbeError(ptr noundef, ptr noundef, ...) #2

declare ptr @sqlite3MPrintf(ptr noundef, ptr noundef, ...) #2

declare void @sqlite3_log(i32 noundef, ptr noundef, ...) #2

declare i32 @sqlite3VdbeHalt(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden ptr @out2Prerelease(ptr noundef, ptr noundef) #1

declare i32 @sqlite3Strlen30(ptr noundef) #2

declare i32 @sqlite3VdbeMemSetStr(ptr noundef, ptr noundef, i32 noundef, i8 noundef zeroext, ptr noundef) #2

declare i32 @sqlite3VdbeChangeEncoding(ptr noundef, i32 noundef) #2

declare void @sqlite3DbFree(ptr noundef, ptr noundef) #2

declare void @sqlite3VdbeMemSetNull(ptr noundef) #2

declare i32 @sqlite3VdbeMemTooBig(ptr noundef) #2

declare void @sqlite3VdbeMemShallowCopy(ptr noundef, ptr noundef, i32 noundef) #2

declare void @sqlite3VdbeMemMove(ptr noundef, ptr noundef) #2

declare i32 @sqlite3VdbeMemMakeWriteable(ptr noundef) #2

declare void @sqlite3VdbeMemSetInt64(ptr noundef, i64 noundef) #2

declare i32 @sqlite3VdbeCheckFk(ptr noundef, i32 noundef) #2

declare i32 @sqlite3VdbeCloseStatement(ptr noundef, i32 noundef) #2

declare i32 @sqlite3VdbeMemNulTerminate(ptr noundef) #2

declare i32 @sqlite3VdbeMemExpandBlob(ptr noundef) #2

declare i32 @sqlite3VdbeMemStringify(ptr noundef, i8 noundef zeroext, i8 noundef zeroext) #2

declare i32 @sqlite3VdbeMemGrow(ptr noundef, i32 noundef, i32 noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3

; Function Attrs: nounwind uwtable
declare hidden zeroext i16 @numericType(ptr noundef) #1

declare i32 @sqlite3AddInt64(ptr noundef, i64 noundef) #2

declare i32 @sqlite3SubInt64(ptr noundef, i64 noundef) #2

declare i32 @sqlite3MulInt64(ptr noundef, i64 noundef) #2

declare double @sqlite3VdbeRealValue(ptr noundef) #2

declare i32 @sqlite3IsNaN(double noundef) #2

declare void @sqlite3VdbeIntegerAffinity(ptr noundef) #2

declare ptr @sqlite3DbMallocRawNN(ptr noundef, i64 noundef) #2

declare ptr @sqlite3_value_text(ptr noundef) #2

declare void @sqlite3VdbeDeleteAuxData(ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

declare i64 @sqlite3VdbeIntValue(ptr noundef) #2

declare i32 @sqlite3VdbeMemIntegerify(ptr noundef) #2

declare i32 @sqlite3VdbeMemRealify(ptr noundef) #2

declare void @sqlite3VdbeMemCast(ptr noundef, i8 noundef zeroext, i8 noundef zeroext) #2

declare i32 @sqlite3MemCompare(ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @sqlite3VdbeCursorMoveto(ptr noundef, ptr noundef) #2

declare i32 @sqlite3BtreePayloadSize(ptr noundef) #2

declare ptr @sqlite3BtreePayloadFetch(ptr noundef, ptr noundef) #2

declare zeroext i8 @sqlite3GetVarint32(ptr noundef, ptr noundef) #2

declare i32 @sqlite3CorruptError(i32 noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

declare i32 @sqlite3VdbeMemFromBtree(ptr noundef, i32 noundef, i32 noundef, ptr noundef) #2

declare zeroext i8 @sqlite3VdbeOneByteSerialTypeLen(i8 noundef zeroext) #2

declare i32 @sqlite3VdbeSerialTypeLen(i32 noundef) #2

declare void @sqlite3VdbeMemRelease(ptr noundef) #2

declare i32 @sqlite3VdbeSerialGet(ptr noundef, i32 noundef, ptr noundef) #2

declare i32 @sqlite3VdbeSerialType(ptr noundef, i32 noundef, ptr noundef) #2

declare i32 @sqlite3VarintLen(i64 noundef) #2

declare i32 @sqlite3VdbeMemClearAndResize(ptr noundef, i32 noundef) #2

declare i32 @sqlite3PutVarint(ptr noundef, i64 noundef) #2

declare i32 @sqlite3VdbeSerialPut(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @sqlite3BtreeCount(ptr noundef, ptr noundef) #2

declare i32 @sqlite3VtabSavepoint(ptr noundef, i32 noundef, i32 noundef) #2

declare i32 @sqlite3StrICmp(ptr noundef, ptr noundef) #2

declare i32 @sqlite3BtreeTripAllCursors(ptr noundef, i32 noundef, i32 noundef) #2

declare i32 @sqlite3BtreeSavepoint(ptr noundef, i32 noundef, i32 noundef) #2

declare void @sqlite3ExpirePreparedStatements(ptr noundef) #2

declare void @sqlite3ResetAllSchemasOfConnection(ptr noundef) #2

declare void @sqlite3RollbackAll(ptr noundef, i32 noundef) #2

declare void @sqlite3CloseSavepoints(ptr noundef) #2

declare i32 @sqlite3BtreeBeginTrans(ptr noundef, i32 noundef) #2

declare i32 @sqlite3BtreeBeginStmt(ptr noundef, i32 noundef) #2

declare void @sqlite3BtreeGetMeta(ptr noundef, i32 noundef, ptr noundef) #2

declare ptr @sqlite3DbStrDup(ptr noundef, ptr noundef) #2

declare void @sqlite3ResetOneSchema(ptr noundef, i32 noundef) #2

declare i32 @sqlite3BtreeUpdateMeta(ptr noundef, i32 noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden ptr @allocateCursor(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext) #1

declare i32 @sqlite3BtreeCursor(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) #2

declare void @sqlite3BtreeCursorHintFlags(ptr noundef, i32 noundef) #2

declare i32 @sqlite3BtreeOpen(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

declare i32 @sqlite3BtreeCreateTable(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @sqlite3VdbeSorterInit(ptr noundef, i32 noundef, ptr noundef) #2

declare void @sqlite3VdbeFreeCursor(ptr noundef, ptr noundef) #2

declare i32 @sqlite3BtreeMovetoUnpacked(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef) #2

declare i32 @sqlite3BtreeCursorHasHint(ptr noundef, i32 noundef) #2

declare i32 @sqlite3BtreeNext(ptr noundef, ptr noundef) #2

declare i32 @sqlite3BtreePrevious(ptr noundef, ptr noundef) #2

declare i32 @sqlite3BtreeEof(ptr noundef) #2

declare ptr @sqlite3VdbeAllocUnpackedRecord(ptr noundef) #2

declare void @sqlite3VdbeRecordUnpack(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #2

declare i32 @sqlite3BtreeLast(ptr noundef, ptr noundef) #2

declare i64 @sqlite3BtreeIntegerKey(ptr noundef) #2

declare void @sqlite3_randomness(i32 noundef, ptr noundef) #2

declare i32 @sqlite3BtreeInsert(ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

declare i32 @sqlite3BtreeDelete(ptr noundef, i8 noundef zeroext) #2

declare i32 @sqlite3VdbeSorterCompare(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #2

declare i32 @sqlite3VdbeSorterRowkey(ptr noundef, ptr noundef) #2

declare void @sqlite3VtabImportErrmsg(ptr noundef, ptr noundef) #2

declare i32 @sqlite3VdbeCursorRestore(ptr noundef) #2

declare void @sqlite3BtreeClearCursor(ptr noundef) #2

declare i32 @sqlite3BtreeCursorIsValidNN(ptr noundef) #2

declare i32 @sqlite3BtreeFirst(ptr noundef, ptr noundef) #2

declare i64 @sqlite3BtreeRowCountEst(ptr noundef) #2

declare signext i16 @sqlite3LogEst(i64 noundef) #2

declare i32 @sqlite3VdbeSorterRewind(ptr noundef, ptr noundef) #2

declare i32 @sqlite3VdbeSorterNext(ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @sqlite3VdbeSorterWrite(ptr noundef, ptr noundef) #2

declare i32 @sqlite3VdbeIdxRowid(ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @sqlite3VdbeIdxKeyCompare(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @sqlite3BtreeDropTable(ptr noundef, i32 noundef, ptr noundef) #2

declare void @sqlite3RootPageMoved(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare i32 @sqlite3BtreeClearTable(ptr noundef, i32 noundef, ptr noundef) #2

declare void @sqlite3VdbeSorterReset(ptr noundef, ptr noundef) #2

declare i32 @sqlite3BtreeClearTableOfCursor(ptr noundef) #2

declare i32 @sqlite3_exec(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @sqlite3InitCallback(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #2

declare i32 @sqlite3AnalysisLoad(ptr noundef, i32 noundef) #2

declare void @sqlite3UnlinkAndDeleteTable(ptr noundef, i32 noundef, ptr noundef) #2

declare void @sqlite3UnlinkAndDeleteIndex(ptr noundef, i32 noundef, ptr noundef) #2

declare void @sqlite3UnlinkAndDeleteTrigger(ptr noundef, i32 noundef, ptr noundef) #2

declare ptr @sqlite3BtreeIntegrityCheck(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) #2

declare void @sqlite3_free(ptr noundef) #2

declare void @sqlite3VdbeMemSetRowSet(ptr noundef) #2

declare void @sqlite3RowSetInsert(ptr noundef, i64 noundef) #2

declare i32 @sqlite3RowSetNext(ptr noundef, ptr noundef) #2

declare i32 @sqlite3RowSetTest(ptr noundef, i32 noundef, i64 noundef) #2

declare ptr @sqlite3DbMallocZero(ptr noundef, i64 noundef) #2

declare void @sqlite3VdbeMemInit(ptr noundef, ptr noundef, i16 noundef zeroext) #2

declare i32 @sqlite3VdbeMemFinalize(ptr noundef, ptr noundef) #2

declare i32 @sqlite3Checkpoint(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) #2

declare ptr @sqlite3BtreePager(ptr noundef) #2

declare i32 @sqlite3PagerGetJournalMode(ptr noundef) #2

declare i32 @sqlite3PagerOkToChangeJournalMode(ptr noundef) #2

declare ptr @sqlite3PagerFilename(ptr noundef, i32 noundef) #2

declare i32 @sqlite3PagerWalSupported(ptr noundef) #2

declare i32 @sqlite3PagerCloseWal(ptr noundef, ptr noundef) #2

declare i32 @sqlite3PagerSetJournalMode(ptr noundef, i32 noundef) #2

declare i32 @sqlite3BtreeSetVersion(ptr noundef, i32 noundef) #2

declare ptr @sqlite3JournalModename(i32 noundef) #2

declare i32 @sqlite3RunVacuum(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @sqlite3BtreeIncrVacuum(ptr noundef) #2

declare i32 @sqlite3BtreeLockTable(ptr noundef, i32 noundef, i8 noundef zeroext) #2

declare i32 @sqlite3VtabBegin(ptr noundef, ptr noundef) #2

declare i32 @sqlite3VdbeMemCopy(ptr noundef, ptr noundef) #2

declare i32 @sqlite3VtabCallCreate(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #2

declare i32 @sqlite3VtabCallDestroy(ptr noundef, i32 noundef, ptr noundef) #2

declare i32 @sqlite3BtreeLastPage(ptr noundef) #2

declare i32 @sqlite3BtreeMaxPageCount(ptr noundef, i32 noundef) #2

declare ptr @sqlite3VdbeExpandSql(ptr noundef, ptr noundef) #2

declare ptr @sqlite3ErrStr(i32 noundef) #2

declare void @sqlite3SystemError(ptr noundef, i32 noundef) #2

declare void @sqlite3OomFault(ptr noundef) #2

declare void @sqlite3VdbeLeave(ptr noundef) #2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !6, i64 104}
!10 = !{!"Vdbe", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !11, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !12, i64 60, !12, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !13, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !13, i64 176, !12, i64 184, !11, i64 188, !7, i64 190, !7, i64 191, !12, i64 192, !12, i64 192, !12, i64 192, !12, i64 192, !12, i64 192, !12, i64 192, !12, i64 192, !12, i64 193, !12, i64 193, !12, i64 196, !12, i64 200, !7, i64 204, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !12, i64 256, !12, i64 260, !6, i64 264, !6, i64 272}
!11 = !{!"short", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!"long long", !7, i64 0}
!14 = !{!12, !12, i64 0}
!15 = !{!10, !6, i64 0}
!16 = !{!7, !7, i64 0}
!17 = !{!18, !7, i64 82}
!18 = !{!"sqlite3", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !12, i64 40, !12, i64 44, !13, i64 48, !13, i64 56, !12, i64 64, !12, i64 68, !12, i64 72, !12, i64 76, !11, i64 80, !7, i64 82, !7, i64 83, !7, i64 84, !7, i64 85, !7, i64 86, !7, i64 87, !7, i64 88, !7, i64 89, !7, i64 90, !7, i64 91, !7, i64 92, !7, i64 93, !7, i64 94, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !7, i64 112, !12, i64 160, !19, i64 164, !12, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !12, i64 192, !6, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !6, i64 288, !6, i64 296, !6, i64 304, !6, i64 312, !6, i64 320, !6, i64 328, !7, i64 336, !20, i64 344, !6, i64 400, !6, i64 408, !6, i64 416, !6, i64 424, !12, i64 432, !12, i64 436, !21, i64 440, !6, i64 464, !6, i64 472, !6, i64 480, !21, i64 488, !21, i64 512, !22, i64 536, !7, i64 560, !6, i64 624, !12, i64 632, !12, i64 636, !12, i64 640, !13, i64 648, !13, i64 656, !6, i64 664}
!19 = !{!"sqlite3InitInfo", !12, i64 0, !7, i64 4, !7, i64 5, !7, i64 6, !7, i64 7}
!20 = !{!"Lookaside", !12, i64 0, !11, i64 4, !7, i64 6, !12, i64 8, !12, i64 12, !7, i64 16, !6, i64 32, !6, i64 40, !6, i64 48}
!21 = !{!"Hash", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16}
!22 = !{!"BusyHandler", !6, i64 0, !6, i64 8, !12, i64 16}
!23 = !{!10, !6, i64 112}
!24 = !{!10, !12, i64 56}
!25 = !{!10, !13, i64 72}
!26 = !{!10, !6, i64 136}
!27 = !{!18, !12, i64 552}
!28 = !{!18, !6, i64 416}
!29 = !{!18, !12, i64 432}
!30 = !{!10, !12, i64 52}
!31 = !{!32, !7, i64 0}
!32 = !{!"VdbeOp", !7, i64 0, !7, i64 1, !11, i64 2, !12, i64 4, !12, i64 8, !12, i64 12, !7, i64 16}
!33 = !{!32, !12, i64 8}
!34 = !{!18, !6, i64 424}
!35 = !{!32, !12, i64 4}
!36 = !{!37, !11, i64 8}
!37 = !{!"Mem", !7, i64 0, !11, i64 8, !7, i64 10, !7, i64 11, !12, i64 12, !6, i64 16, !6, i64 24, !12, i64 32, !12, i64 36, !6, i64 40, !6, i64 48}
!38 = !{!32, !12, i64 12}
!39 = !{!10, !6, i64 240}
!40 = !{!41, !6, i64 8}
!41 = !{!"VdbeFrame", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !13, i64 64, !6, i64 72, !12, i64 80, !12, i64 84, !12, i64 88, !12, i64 92, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108}
!42 = !{!10, !12, i64 256}
!43 = !{!10, !12, i64 60}
!44 = !{!10, !7, i64 190}
!45 = !{!32, !11, i64 2}
!46 = !{!10, !6, i64 144}
!47 = !{!10, !6, i64 224}
!48 = !{!13, !13, i64 0}
!49 = !{!50, !50, i64 0}
!50 = !{!"double", !7, i64 0}
!51 = !{!37, !12, i64 32}
!52 = !{!32, !7, i64 1}
!53 = !{!37, !6, i64 16}
!54 = !{!37, !12, i64 12}
!55 = !{!37, !7, i64 10}
!56 = !{!11, !11, i64 0}
!57 = distinct !{!57, !58}
!58 = !{!"llvm.loop.mustprogress"}
!59 = !{!10, !6, i64 160}
!60 = distinct !{!60, !58}
!61 = !{!10, !12, i64 48}
!62 = distinct !{!62, !58}
!63 = !{!18, !7, i64 85}
!64 = !{!18, !7, i64 92}
!65 = !{!18, !6, i64 208}
!66 = !{!18, !6, i64 216}
!67 = !{!68, !6, i64 0}
!68 = !{!"sqlite3_context", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !12, i64 32, !12, i64 36, !7, i64 40, !7, i64 41, !7, i64 42, !7, i64 48}
!69 = !{!68, !6, i64 8}
!70 = !{!68, !12, i64 32}
!71 = !{!68, !6, i64 24}
!72 = !{!68, !7, i64 42}
!73 = distinct !{!73, !58}
!74 = !{!68, !7, i64 41}
!75 = !{!76, !6, i64 24}
!76 = !{!"FuncDef", !7, i64 0, !11, i64 2, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !7, i64 48}
!77 = !{!68, !12, i64 36}
!78 = !{!79, !6, i64 24}
!79 = !{!"KeyInfo", !12, i64 0, !7, i64 4, !11, i64 6, !11, i64 8, !6, i64 16, !6, i64 24, !7, i64 32}
!80 = distinct !{!80, !58}
!81 = !{!41, !6, i64 48}
!82 = !{!10, !6, i64 152}
!83 = !{!84, !6, i64 88}
!84 = !{!"VdbeCursor", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !7, i64 4, !12, i64 5, !12, i64 5, !12, i64 5, !6, i64 8, !13, i64 16, !6, i64 24, !12, i64 32, !12, i64 36, !6, i64 40, !7, i64 48, !6, i64 56, !12, i64 64, !12, i64 68, !11, i64 72, !11, i64 74, !13, i64 80, !6, i64 88, !6, i64 96, !12, i64 104, !12, i64 108, !7, i64 112}
!85 = !{!84, !12, i64 32}
!86 = !{!84, !7, i64 2}
!87 = !{!84, !7, i64 0}
!88 = !{!84, !12, i64 108}
!89 = !{!84, !12, i64 104}
!90 = !{!84, !6, i64 96}
!91 = !{!84, !12, i64 64}
!92 = !{!84, !11, i64 74}
!93 = distinct !{!93, !58}
!94 = !{!37, !6, i64 24}
!95 = distinct !{!95, !58}
!96 = !{!10, !7, i64 191}
!97 = distinct !{!97, !58}
!98 = !{!37, !12, i64 36}
!99 = distinct !{!99, !58}
!100 = !{!18, !12, i64 180}
!101 = !{!18, !12, i64 640}
!102 = !{!18, !12, i64 636}
!103 = !{!104, !6, i64 0}
!104 = !{!"Savepoint", !6, i64 0, !13, i64 8, !13, i64 16, !6, i64 24}
!105 = !{!18, !7, i64 83}
!106 = !{!18, !7, i64 91}
!107 = !{!18, !6, i64 624}
!108 = !{!104, !6, i64 24}
!109 = !{!18, !13, i64 648}
!110 = !{!104, !13, i64 8}
!111 = !{!18, !13, i64 656}
!112 = !{!104, !13, i64 16}
!113 = distinct !{!113, !58}
!114 = !{!18, !12, i64 44}
!115 = !{!18, !12, i64 40}
!116 = !{!18, !6, i64 32}
!117 = !{!118, !6, i64 8}
!118 = !{!"Db", !6, i64 0, !6, i64 8, !7, i64 16, !7, i64 17, !6, i64 24}
!119 = distinct !{!119, !58}
!120 = distinct !{!120, !58}
!121 = distinct !{!121, !58}
!122 = !{!18, !12, i64 176}
!123 = !{!10, !12, i64 64}
!124 = !{!10, !13, i64 88}
!125 = !{!10, !13, i64 96}
!126 = !{!118, !6, i64 24}
!127 = !{!128, !12, i64 4}
!128 = !{!"Schema", !12, i64 0, !12, i64 4, !21, i64 8, !21, i64 32, !21, i64 56, !21, i64 80, !6, i64 104, !7, i64 112, !7, i64 113, !11, i64 114, !12, i64 116}
!129 = !{!128, !12, i64 0}
!130 = !{!128, !7, i64 112}
!131 = !{!84, !12, i64 68}
!132 = !{!79, !11, i64 6}
!133 = !{!79, !11, i64 8}
!134 = !{!84, !6, i64 56}
!135 = !{!84, !7, i64 4}
!136 = !{!18, !6, i64 0}
!137 = !{!84, !6, i64 8}
!138 = !{!84, !13, i64 16}
!139 = !{!84, !13, i64 80}
!140 = !{!141, !6, i64 0}
!141 = !{!"UnpackedRecord", !6, i64 0, !6, i64 8, !11, i64 16, !7, i64 18, !7, i64 19, !7, i64 20, !7, i64 21, !7, i64 22}
!142 = !{!141, !11, i64 16}
!143 = !{!141, !7, i64 18}
!144 = !{!141, !6, i64 8}
!145 = !{!141, !7, i64 22}
!146 = !{!84, !7, i64 3}
!147 = distinct !{!147, !58}
!148 = !{!84, !12, i64 36}
!149 = distinct !{!149, !58}
!150 = !{!41, !6, i64 32}
!151 = distinct !{!151, !58}
!152 = !{!153, !13, i64 8}
!153 = !{!"BtreePayload", !6, i64 0, !13, i64 8, !6, i64 16, !6, i64 24, !11, i64 32, !12, i64 36, !12, i64 40}
!154 = !{!18, !6, i64 280}
!155 = !{!84, !7, i64 1}
!156 = !{!118, !6, i64 0}
!157 = !{!18, !13, i64 48}
!158 = !{!153, !6, i64 16}
!159 = !{!153, !12, i64 36}
!160 = !{!153, !12, i64 40}
!161 = !{!153, !6, i64 0}
!162 = !{!18, !6, i64 272}
!163 = !{!164, !6, i64 0}
!164 = !{!"Table", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !12, i64 56, !12, i64 60, !12, i64 64, !11, i64 68, !11, i64 70, !11, i64 72, !11, i64 74, !7, i64 76, !12, i64 80, !12, i64 84, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120}
!165 = !{!164, !12, i64 64}
!166 = !{!167, !6, i64 0}
!167 = !{!"sqlite3_vtab_cursor", !6, i64 0}
!168 = !{!169, !6, i64 0}
!169 = !{!"sqlite3_vtab", !6, i64 0, !12, i64 8, !6, i64 16}
!170 = !{!171, !6, i64 96}
!171 = !{!"sqlite3_module", !12, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176}
!172 = !{!153, !6, i64 24}
!173 = !{!153, !11, i64 32}
!174 = !{!84, !6, i64 24}
!175 = !{!84, !6, i64 40}
!176 = !{!18, !12, i64 188}
!177 = !{!18, !7, i64 94}
!178 = !{!179, !6, i64 0}
!179 = !{!"", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20}
!180 = !{!179, !12, i64 16}
!181 = !{!179, !6, i64 8}
!182 = !{!18, !7, i64 169}
!183 = !{!179, !12, i64 20}
!184 = !{!185, !6, i64 32}
!185 = !{!"SubProgram", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!186 = !{!41, !6, i64 56}
!187 = distinct !{!187, !58}
!188 = !{!185, !12, i64 12}
!189 = !{!185, !12, i64 16}
!190 = !{!185, !12, i64 8}
!191 = !{!41, !6, i64 0}
!192 = !{!41, !12, i64 96}
!193 = !{!41, !12, i64 100}
!194 = !{!41, !12, i64 84}
!195 = !{!10, !12, i64 40}
!196 = !{!41, !12, i64 92}
!197 = !{!41, !6, i64 40}
!198 = !{!10, !12, i64 44}
!199 = !{!41, !12, i64 80}
!200 = !{!41, !6, i64 16}
!201 = !{!10, !12, i64 184}
!202 = !{!41, !12, i64 88}
!203 = !{!37, !6, i64 40}
!204 = distinct !{!204, !58}
!205 = !{!41, !13, i64 64}
!206 = !{!41, !12, i64 104}
!207 = !{!18, !12, i64 104}
!208 = !{!41, !12, i64 108}
!209 = !{!10, !6, i64 272}
!210 = !{!41, !6, i64 72}
!211 = !{!185, !6, i64 0}
!212 = !{!10, !13, i64 80}
!213 = distinct !{!213, !58}
!214 = !{!68, !6, i64 16}
!215 = distinct !{!215, !58}
!216 = !{!68, !7, i64 40}
!217 = distinct !{!217, !58}
!218 = !{!219, !6, i64 16}
!219 = !{!"VTable", !6, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !7, i64 28, !12, i64 32, !6, i64 40}
!220 = !{!171, !6, i64 48}
!221 = !{!169, !12, i64 8}
!222 = !{!171, !6, i64 56}
!223 = !{!10, !6, i64 120}
!224 = distinct !{!224, !58}
!225 = !{!171, !6, i64 64}
!226 = !{!171, !6, i64 80}
!227 = !{!171, !6, i64 88}
!228 = !{!171, !6, i64 72}
!229 = !{!171, !6, i64 152}
!230 = !{!171, !6, i64 104}
!231 = !{!18, !7, i64 90}
!232 = distinct !{!232, !58}
!233 = !{!219, !7, i64 28}
!234 = !{!18, !12, i64 184}
!235 = !{!236, !12, i64 428}
!236 = !{!"Sqlite3Config", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32, !12, i64 36, !237, i64 40, !238, i64 104, !239, i64 176, !6, i64 280, !12, i64 288, !12, i64 292, !12, i64 296, !13, i64 304, !13, i64 312, !6, i64 320, !12, i64 328, !12, i64 332, !6, i64 336, !12, i64 344, !12, i64 348, !12, i64 352, !12, i64 356, !12, i64 360, !12, i64 364, !12, i64 368, !12, i64 372, !12, i64 376, !12, i64 380, !12, i64 384, !6, i64 392, !6, i64 400, !6, i64 408, !6, i64 416, !12, i64 424, !12, i64 428}
!237 = !{!"sqlite3_mem_methods", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56}
!238 = !{!"sqlite3_mutex_methods", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64}
!239 = !{!"sqlite3_pcache_methods2", !12, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96}
!240 = distinct !{!240, !58}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.Sqlite3Config = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.sqlite3_mem_methods, %struct.sqlite3_mutex_methods, %struct.sqlite3_pcache_methods2, ptr, i32, i32, i32, i64, i64, ptr, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, i32, i32 }
%struct.sqlite3_mem_methods = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.sqlite3_mutex_methods = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.sqlite3_pcache_methods2 = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Mem = type { %union.MemValue, i16, i8, i8, i32, ptr, ptr, i32, i32, ptr, ptr }
%union.MemValue = type { double }
%struct.UnpackedRecord = type { ptr, ptr, i16, i8, i8, i8, i8, i8 }
%struct.BtreePayload = type { ptr, i64, ptr, ptr, i16, i32, i32 }
%struct.InitData = type { ptr, ptr, i32, i32 }
%struct.sqlite3_context = type { ptr, ptr, ptr, ptr, i32, i32, i8, i8, i8, [1 x ptr] }
%struct.VdbeOp = type { i8, i8, i16, i32, i32, i32, %union.p4union }
%union.p4union = type { ptr }
%struct.Db = type { ptr, ptr, i8, i8, ptr }

@sqlite3VdbeExec.azType = external hidden local_unnamed_addr constant [4 x ptr], align 16
@.str.4 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [24 x i8], align 1
@sqlite3VdbeExec.and_logic = external hidden local_unnamed_addr constant [9 x i8], align 1
@sqlite3VdbeExec.or_logic = external hidden local_unnamed_addr constant [9 x i8], align 1
@sqlite3VdbeExec.aFlag = external hidden local_unnamed_addr constant [2 x i16], align 2
@sqlite3VdbeExec.aZero = external hidden global [16 x i8], align 16
@.str.8 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@sqlite3Config = external local_unnamed_addr global %struct.Sqlite3Config, align 8
@.str.24 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [14 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
declare hidden void @applyNumericAffinity(ptr noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
declare hidden void @applyAffinity(ptr noundef, i8 noundef signext, i8 noundef zeroext) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local i32 @sqlite3VdbeExec(ptr noundef %0) local_unnamed_addr #1 {
  %2 = alloca i64, align 8
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca %struct.Mem, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i64, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca %struct.UnpackedRecord, align 8
  %16 = alloca i32, align 4
  %17 = alloca %struct.UnpackedRecord, align 8
  %18 = alloca i32, align 4
  %19 = alloca i64, align 8
  %20 = alloca i32, align 4
  %21 = alloca %struct.BtreePayload, align 8
  %22 = alloca i32, align 4
  %23 = alloca i64, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca %struct.BtreePayload, align 8
  %29 = alloca i32, align 4
  %30 = alloca %struct.UnpackedRecord, align 8
  %31 = alloca i64, align 8
  %32 = alloca i32, align 4
  %33 = alloca %struct.UnpackedRecord, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca %struct.InitData, align 8
  %38 = alloca i32, align 4
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca %struct.Mem, align 8
  %42 = alloca [3 x i32], align 4
  %43 = alloca %struct.Mem, align 8
  %44 = alloca ptr, align 8
  %45 = alloca %struct.sqlite3_context, align 8
  %46 = alloca i64, align 8
  %47 = getelementptr inbounds i8, ptr %0, i64 104
  %48 = load ptr, ptr %47, align 8, !tbaa !5
  %49 = load ptr, ptr %0, align 8, !tbaa !13
  %50 = getelementptr inbounds i8, ptr %49, i64 82
  %51 = load i8, ptr %50, align 2, !tbaa !14
  %52 = getelementptr inbounds i8, ptr %0, i64 112
  %53 = load ptr, ptr %52, align 8, !tbaa !20
  tail call void @sqlite3VdbeEnter(ptr noundef nonnull %0) #6
  %54 = getelementptr inbounds i8, ptr %0, i64 56
  %55 = load i32, ptr %54, align 8, !tbaa !21
  %56 = icmp eq i32 %55, 7
  br i1 %56, label %.critedge31, label %57

57:                                               ; preds = %1
  %58 = getelementptr inbounds i8, ptr %0, i64 72
  store i64 0, ptr %58, align 8, !tbaa !22
  %59 = getelementptr inbounds i8, ptr %0, i64 136
  store ptr null, ptr %59, align 8, !tbaa !23
  %60 = getelementptr inbounds i8, ptr %49, i64 552
  store i32 0, ptr %60, align 8, !tbaa !24
  %61 = getelementptr inbounds i8, ptr %49, i64 336
  %62 = load volatile i32, ptr %61, align 8, !tbaa !25
  %.not = icmp eq i32 %62, 0
  br i1 %.not, label %63, label %.loopexit3539

63:                                               ; preds = %57
  %64 = getelementptr inbounds i8, ptr %49, i64 416
  %65 = load ptr, ptr %64, align 8, !tbaa !26
  %.not2733 = icmp eq ptr %65, null
  br i1 %.not2733, label %73, label %66

66:                                               ; preds = %63
  %67 = getelementptr inbounds i8, ptr %0, i64 220
  %68 = load i32, ptr %67, align 4, !tbaa !27
  %69 = getelementptr inbounds i8, ptr %49, i64 432
  %70 = load i32, ptr %69, align 8, !tbaa !28
  %71 = urem i32 %68, %70
  %72 = sub i32 %70, %71
  br label %73

73:                                               ; preds = %66, %63
  %.02364 = phi i32 [ %72, %66 ], [ 0, %63 ]
  %74 = getelementptr inbounds i8, ptr %0, i64 52
  %75 = load i32, ptr %74, align 4, !tbaa !29
  %76 = sext i32 %75 to i64
  %77 = getelementptr inbounds %struct.VdbeOp, ptr %48, i64 %76
  %78 = getelementptr inbounds i8, ptr %49, i64 32
  %79 = getelementptr inbounds i8, ptr %49, i64 90
  %80 = getelementptr inbounds i8, ptr %0, i64 120
  %81 = getelementptr inbounds i8, ptr %49, i64 48
  %82 = getelementptr inbounds i8, ptr %0, i64 60
  %83 = getelementptr inbounds i8, ptr %0, i64 192
  %84 = getelementptr inbounds i8, ptr %0, i64 152
  %85 = getelementptr inbounds i8, ptr %45, i64 36
  %86 = zext i8 %51 to i32
  %87 = getelementptr inbounds i8, ptr %49, i64 188
  %88 = getelementptr inbounds i8, ptr %43, i64 40
  %89 = getelementptr inbounds i8, ptr %0, i64 144
  %90 = getelementptr inbounds i8, ptr %49, i64 44
  %91 = getelementptr inbounds i8, ptr %49, i64 83
  %92 = getelementptr inbounds i8, ptr %49, i64 176
  %93 = getelementptr inbounds i8, ptr %42, i64 8
  %94 = getelementptr inbounds i8, ptr %42, i64 4
  %95 = getelementptr inbounds i8, ptr %0, i64 240
  %96 = getelementptr inbounds i8, ptr %49, i64 648
  %97 = getelementptr inbounds i8, ptr %49, i64 656
  %98 = getelementptr inbounds i8, ptr %0, i64 80
  %99 = getelementptr inbounds i8, ptr %0, i64 256
  %100 = getelementptr inbounds i8, ptr %49, i64 152
  %101 = getelementptr inbounds i8, ptr %0, i64 40
  %102 = getelementptr inbounds i8, ptr %0, i64 44
  %103 = getelementptr inbounds i8, ptr %0, i64 184
  %104 = getelementptr inbounds i8, ptr %0, i64 272
  %105 = getelementptr inbounds i8, ptr %37, i64 16
  %106 = getelementptr inbounds i8, ptr %37, i64 8
  %107 = getelementptr inbounds i8, ptr %49, i64 169
  %108 = getelementptr inbounds i8, ptr %37, i64 20
  %109 = getelementptr inbounds i8, ptr %49, i64 94
  %110 = getelementptr inbounds i8, ptr %33, i64 16
  %111 = getelementptr inbounds i8, ptr %33, i64 18
  %112 = getelementptr inbounds i8, ptr %33, i64 8
  %113 = getelementptr inbounds i8, ptr %30, i64 16
  %114 = getelementptr inbounds i8, ptr %30, i64 18
  %115 = getelementptr inbounds i8, ptr %30, i64 8
  %116 = getelementptr inbounds i8, ptr %28, i64 8
  %117 = getelementptr inbounds i8, ptr %28, i64 24
  %118 = getelementptr inbounds i8, ptr %28, i64 32
  %119 = getelementptr inbounds i8, ptr %0, i64 204
  %120 = getelementptr inbounds i8, ptr %0, i64 212
  %121 = getelementptr inbounds i8, ptr %49, i64 112
  %122 = getelementptr inbounds i8, ptr %49, i64 280
  %123 = getelementptr inbounds i8, ptr %49, i64 272
  %124 = getelementptr inbounds i8, ptr %21, i64 8
  %125 = getelementptr inbounds i8, ptr %21, i64 16
  %126 = getelementptr inbounds i8, ptr %21, i64 36
  %127 = getelementptr inbounds i8, ptr %21, i64 40
  %128 = getelementptr inbounds i8, ptr %17, i64 16
  %129 = getelementptr inbounds i8, ptr %17, i64 8
  %130 = getelementptr inbounds i8, ptr %15, i64 16
  %131 = getelementptr inbounds i8, ptr %15, i64 18
  %132 = getelementptr inbounds i8, ptr %15, i64 8
  %133 = getelementptr inbounds i8, ptr %15, i64 22
  %134 = getelementptr inbounds i8, ptr %0, i64 191
  %135 = getelementptr inbounds i8, ptr %0, i64 64
  %136 = getelementptr inbounds i8, ptr %49, i64 640
  %137 = getelementptr inbounds i8, ptr %49, i64 636
  %138 = getelementptr inbounds i8, ptr %0, i64 88
  %139 = getelementptr inbounds i8, ptr %49, i64 624
  %140 = getelementptr inbounds i8, ptr %49, i64 180
  %141 = getelementptr inbounds i8, ptr %49, i64 91
  %142 = getelementptr inbounds i8, ptr %49, i64 40
  %143 = getelementptr inbounds i8, ptr %0, i64 48
  %144 = getelementptr inbounds i8, ptr %5, i64 16
  %145 = getelementptr inbounds i8, ptr %49, i64 92
  %146 = getelementptr inbounds i8, ptr %0, i64 224
  %147 = getelementptr inbounds i8, ptr %49, i64 208
  %148 = getelementptr inbounds i8, ptr %49, i64 216
  %149 = getelementptr inbounds i8, ptr %49, i64 184
  %150 = getelementptr inbounds i8, ptr %0, i64 160
  %.not3018 = icmp eq i8 %51, 1
  %151 = getelementptr inbounds i8, ptr %49, i64 432
  %152 = getelementptr inbounds i8, ptr %49, i64 424
  %153 = getelementptr inbounds i8, ptr %45, i64 8
  br label %154

154:                                              ; preds = %.thread3118, %73
  %.02367 = phi ptr [ %53, %73 ], [ %.32370, %.thread3118 ]
  %.12365 = phi i32 [ %.02364, %73 ], [ %.22366, %.thread3118 ]
  %.02358 = phi i32 [ 0, %73 ], [ %155, %.thread3118 ]
  %.02349 = phi i32 [ 0, %73 ], [ %.72356, %.thread3118 ]
  %.02341 = phi i8 [ 0, %73 ], [ %.32344, %.thread3118 ]
  %.02330 = phi i32 [ 0, %73 ], [ %.86, %.thread3118 ]
  %.02322 = phi ptr [ %77, %73 ], [ %3971, %.thread3118 ]
  %.02321 = phi ptr [ %48, %73 ], [ %.3, %.thread3118 ]
  %155 = add i32 %.02358, 1
  %156 = load i8, ptr %.02322, align 8, !tbaa !30
  switch i8 %156, label %.thread3118 [
    i8 13, label %.thread3455
    i8 14, label %172
    i8 73, label %188
    i8 15, label %196
    i8 74, label %208
    i8 16, label %220
    i8 75, label %234
    i8 76, label %242
    i8 77, label %313
    i8 78, label %318
    i8 -124, label %323
    i8 97, label %329
    i8 79, label %358
    i8 80, label %380
    i8 81, label %398
    i8 82, label %406
    i8 83, label %414
    i8 84, label %426
    i8 85, label %447
    i8 86, label %470
    i8 87, label %479
    i8 88, label %489
    i8 52, label %535
    i8 47, label %621
    i8 48, label %621
    i8 49, label %621
    i8 50, label %621
    i8 51, label %621
    i8 89, label %710
    i8 90, label %716
    i8 91, label %._crit_edge4660
    i8 43, label %799
    i8 44, label %799
    i8 45, label %799
    i8 46, label %799
    i8 92, label %855
    i8 17, label %866
    i8 93, label %887
    i8 94, label %897
    i8 37, label %913
    i8 36, label %913
    i8 40, label %913
    i8 39, label %913
    i8 38, label %913
    i8 41, label %913
    i8 42, label %1039
    i8 72, label %3913
    i8 96, label %1040
    i8 18, label %1083
    i8 28, label %1105
    i8 27, label %1105
    i8 19, label %1152
    i8 54, label %1169
    i8 20, label %1186
    i8 21, label %1217
    i8 22, label %1217
    i8 34, label %1238
    i8 35, label %1245
    i8 98, label %1253
    i8 99, label %1541
    i8 100, label %1553
    i8 101, label %1664
    i8 0, label %1677
    i8 1, label %1793
    i8 2, label %1828
    i8 102, label %1914
    i8 103, label %1926
    i8 104, label %1959
    i8 105, label %1972
    i8 106, label %1972
    i8 107, label %2047
    i8 108, label %2047
    i8 109, label %2102
    i8 110, label %2116
    i8 111, label %2127
    i8 112, label %2139
    i8 23, label %2150
    i8 24, label %2150
    i8 25, label %2150
    i8 26, label %2150
    i8 29, label %2244
    i8 30, label %2244
    i8 31, label %2244
    i8 32, label %2308
    i8 33, label %2321
    i8 114, label %2349
    i8 115, label %2360
    i8 116, label %2431
    i8 117, label %2431
    i8 118, label %2516
    i8 119, label %2575
    i8 120, label %2577
    i8 121, label %2592
    i8 122, label %2611
    i8 123, label %2635
    i8 124, label %2677
    i8 53, label %2691
    i8 55, label %2720
    i8 56, label %2744
    i8 57, label %2744
    i8 58, label %2747
    i8 3, label %2770
    i8 4, label %2778
    i8 5, label %2778
    i8 6, label %2786
    i8 7, label %2786
    i8 125, label %2814
    i8 126, label %2814
    i8 127, label %2869
    i8 -128, label %2896
    i8 -127, label %2896
    i8 59, label %2938
    i8 60, label %2938
    i8 61, label %2938
    i8 62, label %2938
    i8 -126, label %2962
    i8 -125, label %2988
    i8 -123, label %3013
    i8 -122, label %3027
    i8 -121, label %3027
    i8 -120, label %3041
    i8 -119, label %3049
    i8 -118, label %3067
    i8 -117, label %3071
    i8 -116, label %3076
    i8 -115, label %3081
    i8 -114, label %3086
    i8 -113, label %3121
    i8 63, label %3141
    i8 64, label %3160
    i8 65, label %3188
    i8 -112, label %3315
    i8 -111, label %3332
    i8 66, label %3353
    i8 -110, label %3368
    i8 67, label %3390
    i8 -109, label %3402
    i8 68, label %3419
    i8 69, label %3429
    i8 -108, label %3438
    i8 -107, label %._crit_edge4615
    i8 -106, label %3523
    i8 8, label %3535
    i8 9, label %3555
    i8 10, label %3609
    i8 70, label %3613
    i8 -105, label %3621
    i8 -104, label %3628
    i8 -103, label %3653
    i8 -102, label %3661
    i8 -101, label %3673
    i8 -100, label %3683
    i8 11, label %3711
    i8 -99, label %3752
    i8 71, label %3786
    i8 -98, label %3808
    i8 12, label %3827
    i8 -97, label %3887
    i8 -96, label %3897
  ]

._crit_edge4660:                                  ; preds = %154
  %.phi.trans.insert4661 = getelementptr inbounds i8, ptr %.02322, i64 16
  %.pre4662 = load ptr, ptr %.phi.trans.insert4661, align 8, !tbaa !25
  br label %737

._crit_edge4615:                                  ; preds = %154
  %.phi.trans.insert = getelementptr inbounds i8, ptr %.02322, i64 16
  %.pre4616 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !25
  br label %3460

.thread3455:                                      ; preds = %3803, %.thread3370, %154, %2806
  %.12331 = phi i32 [ 0, %2806 ], [ %.02330, %154 ], [ %.02330, %.thread3370 ], [ 0, %3803 ]
  %157 = getelementptr inbounds i8, ptr %.02322, i64 8
  %158 = load i32, ptr %157, align 8, !tbaa !32
  %159 = add nsw i32 %158, -1
  %160 = sext i32 %159 to i64
  %161 = getelementptr inbounds %struct.VdbeOp, ptr %.02321, i64 %160
  br label %.thread3458

.thread3458:                                      ; preds = %3803, %3154, %2813, %.thread3455
  %.22332 = phi i32 [ %.12331, %.thread3455 ], [ %.02330, %3154 ], [ 0, %2813 ], [ 0, %3803 ]
  %.12323 = phi ptr [ %161, %.thread3455 ], [ %.02322, %3154 ], [ %.02322, %2813 ], [ %.02322, %3803 ]
  %162 = load volatile i32, ptr %61, align 8, !tbaa !25
  %.not3028 = icmp eq i32 %162, 0
  br i1 %.not3028, label %163, label %.loopexit3539

163:                                              ; preds = %.thread3458
  %164 = load ptr, ptr %64, align 8, !tbaa !26
  %.not3029 = icmp eq ptr %164, null
  %.not3030 = icmp ult i32 %155, %.12365
  %or.cond3035 = select i1 %.not3029, i1 true, i1 %.not3030
  br i1 %or.cond3035, label %.thread3118, label %165

165:                                              ; preds = %163
  %166 = load i32, ptr %151, align 8, !tbaa !28
  %167 = add i32 %166, %155
  %168 = urem i32 %155, %166
  %169 = sub i32 %167, %168
  %170 = load ptr, ptr %152, align 8, !tbaa !33
  %171 = call i32 %164(ptr noundef %170) #6
  %.not3031 = icmp eq i32 %171, 0
  br i1 %.not3031, label %.thread3118, label %.thread3123

172:                                              ; preds = %154
  %173 = getelementptr inbounds i8, ptr %.02322, i64 4
  %174 = load i32, ptr %173, align 4, !tbaa !34
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %175
  %177 = getelementptr inbounds i8, ptr %176, i64 8
  store i16 4, ptr %177, align 8, !tbaa !35
  %178 = ptrtoint ptr %.02322 to i64
  %179 = ptrtoint ptr %.02321 to i64
  %180 = sub i64 %178, %179
  %181 = sdiv exact i64 %180, 24
  %sext3027 = shl i64 %181, 32
  %182 = ashr exact i64 %sext3027, 32
  store i64 %182, ptr %176, align 8, !tbaa !25
  br label %.thread3154

.thread3154:                                      ; preds = %2765, %1038, %950, %3747, %3613, %3180, %1208, %1189, %.thread3314, %.thread3310, %.thread3271, %.thread3266, %2116, %1237, %3435, %3425, %3427, %3365, %3359, %2342, %2317, %1245, %1238, %1039, %879, %196, %._crit_edge4053, %3397, %2938, %2577, %172
  %.32333 = phi i32 [ %.02330, %3435 ], [ %.02330, %3427 ], [ %.02330, %3425 ], [ %.02330, %3397 ], [ %.02330, %3359 ], [ %.02330, %3365 ], [ %2955, %2938 ], [ %2590, %2577 ], [ %2335, %2342 ], [ %.02330, %2317 ], [ %.02330, %2116 ], [ %.02330, %1245 ], [ %.02330, %1238 ], [ %.02330, %1237 ], [ %.02330, %._crit_edge4053 ], [ %.02330, %1039 ], [ %.02330, %879 ], [ %.02330, %196 ], [ %.02330, %172 ], [ %.41.ph3265, %.thread3266 ], [ 0, %.thread3271 ], [ 0, %.thread3310 ], [ 0, %.thread3314 ], [ %.02330, %1189 ], [ %.02330, %1208 ], [ %.02330, %3180 ], [ 0, %3613 ], [ 0, %3747 ], [ %.02330, %950 ], [ %.02330, %1038 ], [ 0, %2765 ]
  %183 = getelementptr inbounds i8, ptr %.02322, i64 8
  %184 = load i32, ptr %183, align 8, !tbaa !32
  %185 = add nsw i32 %184, -1
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds %struct.VdbeOp, ptr %.02321, i64 %186
  br label %.thread3118

188:                                              ; preds = %154
  %189 = getelementptr inbounds i8, ptr %.02322, i64 4
  %190 = load i32, ptr %189, align 4, !tbaa !34
  %191 = sext i32 %190 to i64
  %192 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %191
  %193 = load i64, ptr %192, align 8, !tbaa !25
  %194 = getelementptr inbounds %struct.VdbeOp, ptr %.02321, i64 %193
  %195 = getelementptr inbounds i8, ptr %192, i64 8
  store i16 128, ptr %195, align 8, !tbaa !35
  br label %.thread3118

196:                                              ; preds = %154
  %197 = getelementptr inbounds i8, ptr %.02322, i64 4
  %198 = load i32, ptr %197, align 4, !tbaa !34
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %199
  %201 = getelementptr inbounds i8, ptr %.02322, i64 12
  %202 = load i32, ptr %201, align 4, !tbaa !37
  %203 = add nsw i32 %202, -1
  %204 = sext i32 %203 to i64
  store i64 %204, ptr %200, align 8, !tbaa !25
  %205 = getelementptr inbounds i8, ptr %200, i64 8
  store i16 4, ptr %205, align 8, !tbaa !35
  %206 = getelementptr inbounds i8, ptr %.02322, i64 8
  %207 = load i32, ptr %206, align 8, !tbaa !32
  %.not3026 = icmp eq i32 %207, 0
  br i1 %.not3026, label %.thread3118, label %.thread3154

208:                                              ; preds = %154
  %209 = getelementptr inbounds i8, ptr %.02322, i64 4
  %210 = load i32, ptr %209, align 4, !tbaa !34
  %211 = sext i32 %210 to i64
  %212 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %211
  %213 = load i64, ptr %212, align 8, !tbaa !25
  %214 = getelementptr inbounds %struct.VdbeOp, ptr %.02321, i64 %213, i32 4
  %215 = load i32, ptr %214, align 8, !tbaa !32
  %216 = add nsw i32 %215, -1
  %217 = sext i32 %216 to i64
  %218 = getelementptr inbounds %struct.VdbeOp, ptr %.02321, i64 %217
  %219 = getelementptr inbounds i8, ptr %212, i64 8
  store i16 128, ptr %219, align 8, !tbaa !35
  br label %.thread3118

220:                                              ; preds = %154
  %221 = getelementptr inbounds i8, ptr %.02322, i64 4
  %222 = load i32, ptr %221, align 4, !tbaa !34
  %223 = sext i32 %222 to i64
  %224 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %223
  %225 = getelementptr inbounds i8, ptr %224, i64 8
  store i16 4, ptr %225, align 8, !tbaa !35
  %226 = load i64, ptr %224, align 8, !tbaa !25
  %227 = ptrtoint ptr %.02322 to i64
  %228 = ptrtoint ptr %.02321 to i64
  %229 = sub i64 %227, %228
  %230 = sdiv exact i64 %229, 24
  %sext = shl i64 %230, 32
  %231 = ashr exact i64 %sext, 32
  store i64 %231, ptr %224, align 8, !tbaa !25
  %sext3025 = shl i64 %226, 32
  %232 = ashr exact i64 %sext3025, 32
  %233 = getelementptr inbounds %struct.VdbeOp, ptr %.02321, i64 %232
  br label %.thread3118

234:                                              ; preds = %154
  %235 = getelementptr inbounds i8, ptr %.02322, i64 12
  %236 = load i32, ptr %235, align 4, !tbaa !37
  %237 = sext i32 %236 to i64
  %238 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %237, i32 1
  %239 = load i16, ptr %238, align 8, !tbaa !35
  %240 = and i16 %239, 1
  %241 = icmp eq i16 %240, 0
  br i1 %241, label %.thread3118, label %242

242:                                              ; preds = %234, %154
  %243 = getelementptr inbounds i8, ptr %.02322, i64 4
  %244 = load i32, ptr %243, align 4, !tbaa !34
  %245 = icmp eq i32 %244, 0
  br i1 %245, label %246, label %272

246:                                              ; preds = %242
  %247 = load ptr, ptr %95, align 8, !tbaa !38
  %.not3020 = icmp eq ptr %247, null
  br i1 %.not3020, label %.thread, label %257

.thread:                                          ; preds = %246
  %248 = ptrtoint ptr %.02322 to i64
  %249 = ptrtoint ptr %.02321 to i64
  %250 = sub i64 %248, %249
  %251 = sdiv exact i64 %250, 24
  %252 = trunc i64 %251 to i32
  store i32 0, ptr %54, align 8, !tbaa !21
  %253 = getelementptr inbounds i8, ptr %.02322, i64 8
  %254 = load i32, ptr %253, align 8, !tbaa !32
  %255 = trunc i32 %254 to i8
  %256 = getelementptr inbounds i8, ptr %0, i64 190
  store i8 %255, ptr %256, align 2, !tbaa !39
  store i32 %252, ptr %74, align 4, !tbaa !29
  br label %302

257:                                              ; preds = %246
  %258 = getelementptr inbounds i8, ptr %247, i64 8
  %259 = load ptr, ptr %258, align 8, !tbaa !40
  store ptr %259, ptr %95, align 8, !tbaa !38
  %260 = load i32, ptr %99, align 8, !tbaa !42
  %261 = add nsw i32 %260, -1
  store i32 %261, ptr %99, align 8, !tbaa !42
  %262 = load i32, ptr %82, align 4, !tbaa !43
  call void @sqlite3VdbeSetChanges(ptr noundef %49, i32 noundef %262) #6
  %263 = call i32 @sqlite3VdbeFrameRestore(ptr noundef nonnull %247) #6
  %264 = getelementptr inbounds i8, ptr %.02322, i64 8
  %265 = load i32, ptr %264, align 8, !tbaa !32
  %266 = icmp eq i32 %265, 4
  %.pre4669 = load ptr, ptr %47, align 8, !tbaa !5
  br i1 %266, label %267, label %309

267:                                              ; preds = %257
  %268 = sext i32 %263 to i64
  %269 = getelementptr inbounds %struct.VdbeOp, ptr %.pre4669, i64 %268, i32 4
  %270 = load i32, ptr %269, align 8, !tbaa !32
  %271 = add nsw i32 %270, -1
  br label %309

272:                                              ; preds = %242
  %273 = getelementptr inbounds i8, ptr %.02322, i64 4
  %274 = ptrtoint ptr %.02322 to i64
  %275 = ptrtoint ptr %.02321 to i64
  %276 = sub i64 %274, %275
  %277 = sdiv exact i64 %276, 24
  %278 = trunc i64 %277 to i32
  store i32 %244, ptr %54, align 8, !tbaa !21
  %279 = getelementptr inbounds i8, ptr %.02322, i64 8
  %280 = load i32, ptr %279, align 8, !tbaa !32
  %281 = trunc i32 %280 to i8
  %282 = getelementptr inbounds i8, ptr %0, i64 190
  store i8 %281, ptr %282, align 2, !tbaa !39
  store i32 %278, ptr %74, align 4, !tbaa !29
  %283 = getelementptr inbounds i8, ptr %.02322, i64 2
  %284 = load i16, ptr %283, align 2, !tbaa !44
  %.not3022 = icmp eq i16 %284, 0
  br i1 %.not3022, label %295, label %285

285:                                              ; preds = %272
  %286 = zext i16 %284 to i64
  %287 = add nuw nsw i64 %286, 4294967295
  %288 = and i64 %287, 4294967295
  %289 = getelementptr inbounds [4 x ptr], ptr @sqlite3VdbeExec.azType, i64 0, i64 %288
  %290 = load ptr, ptr %289, align 8, !tbaa !45
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef nonnull %0, ptr noundef nonnull @.str.4, ptr noundef %290) #6
  %291 = getelementptr inbounds i8, ptr %.02322, i64 16
  %292 = load ptr, ptr %291, align 8, !tbaa !25
  %.not3023 = icmp eq ptr %292, null
  %.pre4668 = load ptr, ptr %89, align 8, !tbaa !46
  br i1 %.not3023, label %298, label %293

293:                                              ; preds = %285
  %294 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %49, ptr noundef nonnull @.str.5, ptr noundef %.pre4668, ptr noundef nonnull %292) #6
  store ptr %294, ptr %89, align 8, !tbaa !46
  br label %298

295:                                              ; preds = %272
  %296 = getelementptr inbounds i8, ptr %.02322, i64 16
  %297 = load ptr, ptr %296, align 8, !tbaa !25
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef nonnull %0, ptr noundef nonnull @.str.6, ptr noundef %297) #6
  %.pre4667 = load ptr, ptr %89, align 8, !tbaa !46
  br label %298

298:                                              ; preds = %285, %293, %295
  %299 = phi ptr [ %.pre4668, %285 ], [ %294, %293 ], [ %.pre4667, %295 ]
  %300 = load i32, ptr %273, align 4, !tbaa !34
  %301 = load ptr, ptr %146, align 8, !tbaa !47
  call void (i32, ptr, ...) @sqlite3_log(i32 noundef %300, ptr noundef nonnull @.str.7, i32 noundef %278, ptr noundef %301, ptr noundef %299) #6
  br label %302

302:                                              ; preds = %.thread, %298
  %303 = call i32 @sqlite3VdbeHalt(ptr noundef nonnull %0) #6
  %304 = icmp eq i32 %303, 5
  br i1 %304, label %305, label %306

305:                                              ; preds = %302
  store i32 5, ptr %54, align 8, !tbaa !21
  br label %.thread3110

306:                                              ; preds = %302
  %307 = load i32, ptr %54, align 8, !tbaa !21
  %.not3024 = icmp eq i32 %307, 0
  %308 = select i1 %.not3024, i32 101, i32 1
  br label %.thread3110

309:                                              ; preds = %257, %267
  %.02378 = phi i32 [ %271, %267 ], [ %263, %257 ]
  %310 = load ptr, ptr %52, align 8, !tbaa !20
  %311 = sext i32 %.02378 to i64
  %312 = getelementptr inbounds %struct.VdbeOp, ptr %.pre4669, i64 %311
  br label %.thread3118

313:                                              ; preds = %154
  %314 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %315 = getelementptr inbounds i8, ptr %.02322, i64 4
  %316 = load i32, ptr %315, align 4, !tbaa !34
  %317 = sext i32 %316 to i64
  store i64 %317, ptr %314, align 8, !tbaa !25
  br label %.thread3118

318:                                              ; preds = %154
  %319 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %320 = getelementptr inbounds i8, ptr %.02322, i64 16
  %321 = load ptr, ptr %320, align 8, !tbaa !25
  %322 = load i64, ptr %321, align 8, !tbaa !48
  store i64 %322, ptr %319, align 8, !tbaa !25
  br label %.thread3118

323:                                              ; preds = %154
  %324 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %325 = getelementptr inbounds i8, ptr %324, i64 8
  store i16 8, ptr %325, align 8, !tbaa !35
  %326 = getelementptr inbounds i8, ptr %.02322, i64 16
  %327 = load ptr, ptr %326, align 8, !tbaa !25
  %328 = load double, ptr %327, align 8, !tbaa !49
  store double %328, ptr %324, align 8, !tbaa !25
  br label %.thread3118

329:                                              ; preds = %154
  %330 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  store i8 79, ptr %.02322, align 8, !tbaa !30
  %331 = getelementptr inbounds i8, ptr %.02322, i64 16
  %332 = load ptr, ptr %331, align 8, !tbaa !25
  %333 = call i32 @sqlite3Strlen30(ptr noundef %332) #6
  %334 = getelementptr inbounds i8, ptr %.02322, i64 4
  store i32 %333, ptr %334, align 4, !tbaa !34
  br i1 %.not3018, label %354, label %335

335:                                              ; preds = %329
  %336 = load ptr, ptr %331, align 8, !tbaa !25
  %337 = call i32 @sqlite3VdbeMemSetStr(ptr noundef %330, ptr noundef %336, i32 noundef -1, i8 noundef zeroext 1, ptr noundef null) #6
  %338 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %330, i32 noundef %86) #6
  %.not3019 = icmp eq i32 %338, 0
  br i1 %.not3019, label %339, label %.critedge31

339:                                              ; preds = %335
  %340 = getelementptr inbounds i8, ptr %330, i64 32
  store i32 0, ptr %340, align 8, !tbaa !51
  %341 = getelementptr inbounds i8, ptr %330, i64 8
  %342 = load i16, ptr %341, align 8, !tbaa !35
  %343 = or i16 %342, 2048
  store i16 %343, ptr %341, align 8, !tbaa !35
  %344 = getelementptr inbounds i8, ptr %.02322, i64 1
  %345 = load i8, ptr %344, align 1, !tbaa !52
  %346 = icmp eq i8 %345, -1
  br i1 %346, label %347, label %349

347:                                              ; preds = %339
  %348 = load ptr, ptr %331, align 8, !tbaa !25
  call void @sqlite3DbFree(ptr noundef %49, ptr noundef %348) #6
  br label %349

349:                                              ; preds = %347, %339
  store i8 -1, ptr %344, align 1, !tbaa !52
  %350 = getelementptr inbounds i8, ptr %330, i64 16
  %351 = load ptr, ptr %350, align 8, !tbaa !53
  store ptr %351, ptr %331, align 8, !tbaa !25
  %352 = getelementptr inbounds i8, ptr %330, i64 12
  %353 = load i32, ptr %352, align 4, !tbaa !54
  store i32 %353, ptr %334, align 4, !tbaa !34
  br label %354

354:                                              ; preds = %349, %329
  %355 = phi i32 [ %353, %349 ], [ %333, %329 ]
  %.62336 = phi i32 [ %337, %349 ], [ %.02330, %329 ]
  %356 = load i32, ptr %121, align 8, !tbaa !27
  %357 = icmp sgt i32 %355, %356
  br i1 %357, label %.thread3298, label %358

358:                                              ; preds = %354, %154
  %.72337 = phi i32 [ %.02330, %154 ], [ %.62336, %354 ]
  %359 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %360 = getelementptr inbounds i8, ptr %359, i64 8
  store i16 2562, ptr %360, align 8, !tbaa !35
  %361 = getelementptr inbounds i8, ptr %.02322, i64 16
  %362 = load ptr, ptr %361, align 8, !tbaa !25
  %363 = getelementptr inbounds i8, ptr %359, i64 16
  store ptr %362, ptr %363, align 8, !tbaa !53
  %364 = getelementptr inbounds i8, ptr %.02322, i64 4
  %365 = load i32, ptr %364, align 4, !tbaa !34
  %366 = getelementptr inbounds i8, ptr %359, i64 12
  store i32 %365, ptr %366, align 4, !tbaa !54
  %367 = getelementptr inbounds i8, ptr %359, i64 10
  store i8 %51, ptr %367, align 2, !tbaa !55
  %368 = getelementptr inbounds i8, ptr %.02322, i64 12
  %369 = load i32, ptr %368, align 4, !tbaa !37
  %370 = icmp sgt i32 %369, 0
  br i1 %370, label %371, label %.thread3118

371:                                              ; preds = %358
  %372 = zext nneg i32 %369 to i64
  %373 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %372
  %374 = load i64, ptr %373, align 8, !tbaa !25
  %375 = getelementptr inbounds i8, ptr %.02322, i64 2
  %376 = load i16, ptr %375, align 2, !tbaa !44
  %377 = zext i16 %376 to i64
  %378 = icmp eq i64 %374, %377
  br i1 %378, label %379, label %.thread3118

379:                                              ; preds = %371
  store i16 2576, ptr %360, align 8, !tbaa !35
  br label %.thread3118

380:                                              ; preds = %154
  %381 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %382 = getelementptr inbounds i8, ptr %.02322, i64 12
  %383 = load i32, ptr %382, align 4, !tbaa !37
  %384 = getelementptr inbounds i8, ptr %.02322, i64 8
  %385 = load i32, ptr %384, align 8, !tbaa !32
  %386 = sub nsw i32 %383, %385
  %387 = getelementptr inbounds i8, ptr %.02322, i64 4
  %388 = load i32, ptr %387, align 4, !tbaa !34
  %.not3017 = icmp eq i32 %388, 0
  %389 = select i1 %.not3017, i16 1, i16 257
  %390 = getelementptr inbounds i8, ptr %381, i64 8
  store i16 %389, ptr %390, align 8, !tbaa !35
  %391 = getelementptr inbounds i8, ptr %381, i64 12
  store i32 0, ptr %391, align 4, !tbaa !54
  %392 = icmp sgt i32 %386, 0
  br i1 %392, label %.lr.ph4060, label %.thread3118

.lr.ph4060:                                       ; preds = %380, %.lr.ph4060
  %.023754058 = phi ptr [ %393, %.lr.ph4060 ], [ %381, %380 ]
  %.024454057 = phi i32 [ %396, %.lr.ph4060 ], [ %386, %380 ]
  %393 = getelementptr inbounds i8, ptr %.023754058, i64 56
  call void @sqlite3VdbeMemSetNull(ptr noundef nonnull %393) #6
  %394 = getelementptr inbounds i8, ptr %.023754058, i64 64
  store i16 %389, ptr %394, align 8, !tbaa !35
  %395 = getelementptr inbounds i8, ptr %.023754058, i64 68
  store i32 0, ptr %395, align 4, !tbaa !54
  %396 = add nsw i32 %.024454057, -1
  %397 = icmp ugt i32 %.024454057, 1
  br i1 %397, label %.lr.ph4060, label %.thread3118, !llvm.loop !56

398:                                              ; preds = %154
  %399 = getelementptr inbounds i8, ptr %.02322, i64 4
  %400 = load i32, ptr %399, align 4, !tbaa !34
  %401 = sext i32 %400 to i64
  %402 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %401, i32 1
  %403 = load i16, ptr %402, align 8, !tbaa !35
  %404 = and i16 %403, -130
  %405 = or disjoint i16 %404, 1
  store i16 %405, ptr %402, align 8, !tbaa !35
  br label %.thread3118

406:                                              ; preds = %154
  %407 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %408 = getelementptr inbounds i8, ptr %.02322, i64 16
  %409 = load ptr, ptr %408, align 8, !tbaa !25
  %410 = getelementptr inbounds i8, ptr %.02322, i64 4
  %411 = load i32, ptr %410, align 4, !tbaa !34
  %412 = call i32 @sqlite3VdbeMemSetStr(ptr noundef %407, ptr noundef %409, i32 noundef %411, i8 noundef zeroext 0, ptr noundef null) #6
  %413 = getelementptr inbounds i8, ptr %407, i64 10
  store i8 %51, ptr %413, align 2, !tbaa !55
  br label %.thread3118

414:                                              ; preds = %154
  %415 = load ptr, ptr %150, align 8, !tbaa !58
  %416 = getelementptr inbounds i8, ptr %.02322, i64 4
  %417 = load i32, ptr %416, align 4, !tbaa !34
  %418 = sext i32 %417 to i64
  %419 = getelementptr %struct.Mem, ptr %415, i64 %418
  %420 = getelementptr i8, ptr %419, i64 -56
  %421 = call i32 @sqlite3VdbeMemTooBig(ptr noundef %420) #6
  %.not3016 = icmp eq i32 %421, 0
  br i1 %.not3016, label %.thread3116, label %.thread3298

.thread3116:                                      ; preds = %414
  %422 = getelementptr inbounds i8, ptr %.02322, i64 8
  %423 = load i32, ptr %422, align 8, !tbaa !32
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %424
  call void @sqlite3VdbeMemShallowCopy(ptr noundef %425, ptr noundef %420, i32 noundef 2048) #6
  br label %.thread3118

426:                                              ; preds = %154
  %427 = getelementptr inbounds i8, ptr %.02322, i64 12
  %428 = load i32, ptr %427, align 4, !tbaa !37
  %429 = getelementptr inbounds i8, ptr %.02322, i64 4
  %430 = load i32, ptr %429, align 4, !tbaa !34
  %431 = getelementptr inbounds i8, ptr %.02322, i64 8
  %432 = load i32, ptr %431, align 8, !tbaa !32
  %433 = sext i32 %430 to i64
  %434 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %433
  %435 = sext i32 %432 to i64
  %436 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %435
  br label %437

437:                                              ; preds = %443, %426
  %.02446 = phi i32 [ %428, %426 ], [ %446, %443 ]
  %.12376 = phi ptr [ %436, %426 ], [ %445, %443 ]
  %.02371 = phi ptr [ %434, %426 ], [ %444, %443 ]
  call void @sqlite3VdbeMemMove(ptr noundef %.12376, ptr noundef %.02371) #6
  %438 = getelementptr inbounds i8, ptr %.12376, i64 8
  %439 = load i16, ptr %438, align 8, !tbaa !35
  %440 = and i16 %439, 4096
  %.not3013 = icmp eq i16 %440, 0
  br i1 %.not3013, label %443, label %441

441:                                              ; preds = %437
  %442 = call i32 @sqlite3VdbeMemMakeWriteable(ptr noundef nonnull %.12376) #6
  %.not3014 = icmp eq i32 %442, 0
  br i1 %.not3014, label %443, label %.critedge31

443:                                              ; preds = %441, %437
  %444 = getelementptr inbounds i8, ptr %.02371, i64 56
  %445 = getelementptr inbounds i8, ptr %.12376, i64 56
  %446 = add nsw i32 %.02446, -1
  %.not3015 = icmp eq i32 %446, 0
  br i1 %.not3015, label %.thread3118, label %437, !llvm.loop !59

447:                                              ; preds = %154
  %448 = getelementptr inbounds i8, ptr %.02322, i64 12
  %449 = load i32, ptr %448, align 4, !tbaa !37
  %450 = getelementptr inbounds i8, ptr %.02322, i64 4
  %451 = load i32, ptr %450, align 4, !tbaa !34
  %452 = sext i32 %451 to i64
  %453 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %452
  %454 = getelementptr inbounds i8, ptr %.02322, i64 8
  %455 = load i32, ptr %454, align 8, !tbaa !32
  %456 = sext i32 %455 to i64
  %457 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %456
  br label %458

458:                                              ; preds = %466, %447
  %.02447 = phi i32 [ %449, %447 ], [ %467, %466 ]
  %.22377 = phi ptr [ %457, %447 ], [ %468, %466 ]
  %.12372 = phi ptr [ %453, %447 ], [ %469, %466 ]
  call void @sqlite3VdbeMemShallowCopy(ptr noundef %.22377, ptr noundef %.12372, i32 noundef 4096) #6
  %459 = getelementptr inbounds i8, ptr %.22377, i64 8
  %460 = load i16, ptr %459, align 8, !tbaa !35
  %461 = and i16 %460, 4096
  %.not3011 = icmp eq i16 %461, 0
  br i1 %.not3011, label %464, label %462

462:                                              ; preds = %458
  %463 = call i32 @sqlite3VdbeMemMakeWriteable(ptr noundef nonnull %.22377) #6
  %.not3012 = icmp eq i32 %463, 0
  br i1 %.not3012, label %464, label %.critedge31

464:                                              ; preds = %462, %458
  %465 = icmp eq i32 %.02447, 0
  br i1 %465, label %.thread3118, label %466

466:                                              ; preds = %464
  %467 = add nsw i32 %.02447, -1
  %468 = getelementptr inbounds i8, ptr %.22377, i64 56
  %469 = getelementptr inbounds i8, ptr %.12372, i64 56
  br label %458

470:                                              ; preds = %154
  %471 = getelementptr inbounds i8, ptr %.02322, i64 4
  %472 = load i32, ptr %471, align 4, !tbaa !34
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %473
  %475 = getelementptr inbounds i8, ptr %.02322, i64 8
  %476 = load i32, ptr %475, align 8, !tbaa !32
  %477 = sext i32 %476 to i64
  %478 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %477
  call void @sqlite3VdbeMemShallowCopy(ptr noundef %478, ptr noundef %474, i32 noundef 4096) #6
  br label %.thread3118

479:                                              ; preds = %154
  %480 = getelementptr inbounds i8, ptr %.02322, i64 4
  %481 = load i32, ptr %480, align 4, !tbaa !34
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %482
  %484 = getelementptr inbounds i8, ptr %.02322, i64 8
  %485 = load i32, ptr %484, align 8, !tbaa !32
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %486
  %488 = load i64, ptr %483, align 8, !tbaa !25
  call void @sqlite3VdbeMemSetInt64(ptr noundef %487, i64 noundef %488) #6
  br label %.thread3118

489:                                              ; preds = %154
  %490 = load ptr, ptr %64, align 8, !tbaa !26
  %.not3003 = icmp eq ptr %490, null
  %.not3004 = icmp ult i32 %155, %.12365
  %or.cond3036 = select i1 %.not3003, i1 true, i1 %.not3004
  br i1 %or.cond3036, label %494, label %491

491:                                              ; preds = %489
  %492 = load ptr, ptr %152, align 8, !tbaa !33
  %493 = call i32 %490(ptr noundef %492) #6
  %.not3005 = icmp eq i32 %493, 0
  br i1 %.not3005, label %494, label %.thread3123

494:                                              ; preds = %491, %489
  %495 = call i32 @sqlite3VdbeCheckFk(ptr noundef %0, i32 noundef 0) #6
  %.not3006 = icmp eq i32 %495, 0
  br i1 %.not3006, label %496, label %.thread3123

496:                                              ; preds = %494
  %497 = call i32 @sqlite3VdbeCloseStatement(ptr noundef %0, i32 noundef 1) #6
  %498 = load i32, ptr %143, align 8, !tbaa !60
  %499 = or i32 %498, 1
  %500 = add i32 %499, 2
  store i32 %500, ptr %143, align 8, !tbaa !60
  %501 = getelementptr inbounds i8, ptr %.02322, i64 4
  %502 = load i32, ptr %501, align 4, !tbaa !34
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %503
  store ptr %504, ptr %59, align 8, !tbaa !23
  %505 = getelementptr inbounds i8, ptr %.02322, i64 8
  %506 = load i32, ptr %505, align 8, !tbaa !32
  %507 = icmp sgt i32 %506, 0
  br i1 %507, label %.lr.ph4094, label %._crit_edge4095

.lr.ph4094:                                       ; preds = %496, %514
  %indvars.iv4611 = phi i64 [ %indvars.iv.next4612, %514 ], [ 0, %496 ]
  %508 = getelementptr inbounds %struct.Mem, ptr %504, i64 %indvars.iv4611
  %509 = getelementptr inbounds i8, ptr %508, i64 8
  %510 = load i16, ptr %509, align 8, !tbaa !35
  %511 = and i16 %510, 4096
  %.not3009 = icmp eq i16 %511, 0
  br i1 %.not3009, label %514, label %512

512:                                              ; preds = %.lr.ph4094
  %513 = call i32 @sqlite3VdbeMemMakeWriteable(ptr noundef nonnull %508) #6
  %.not3010 = icmp eq i32 %513, 0
  br i1 %.not3010, label %514, label %.critedge31

514:                                              ; preds = %512, %.lr.ph4094
  %515 = call i32 @sqlite3VdbeMemNulTerminate(ptr noundef nonnull %508) #6
  %indvars.iv.next4612 = add nuw nsw i64 %indvars.iv4611, 1
  %516 = load i32, ptr %505, align 8, !tbaa !32
  %517 = sext i32 %516 to i64
  %518 = icmp slt i64 %indvars.iv.next4612, %517
  br i1 %518, label %.lr.ph4094, label %._crit_edge4095, !llvm.loop !61

._crit_edge4095:                                  ; preds = %514, %496
  %519 = getelementptr inbounds i8, ptr %49, i64 85
  %520 = load i8, ptr %519, align 1, !tbaa !62
  %.not3007 = icmp eq i8 %520, 0
  br i1 %.not3007, label %521, label %.critedge31

521:                                              ; preds = %._crit_edge4095
  %522 = load i8, ptr %145, align 4, !tbaa !63
  %523 = and i8 %522, 4
  %.not3008 = icmp eq i8 %523, 0
  br i1 %.not3008, label %528, label %524

524:                                              ; preds = %521
  %525 = load ptr, ptr %147, align 8, !tbaa !64
  %526 = load ptr, ptr %148, align 8, !tbaa !65
  %527 = call i32 %525(i32 noundef 4, ptr noundef %526, ptr noundef %0, ptr noundef null) #6
  br label %528

528:                                              ; preds = %521, %524
  %529 = ptrtoint ptr %.02322 to i64
  %530 = ptrtoint ptr %.02321 to i64
  %531 = sub i64 %529, %530
  %532 = sdiv exact i64 %531, 24
  %533 = trunc i64 %532 to i32
  %534 = add nsw i32 %533, 1
  store i32 %534, ptr %74, align 4, !tbaa !29
  br label %.thread3110

535:                                              ; preds = %154
  %536 = getelementptr inbounds i8, ptr %.02322, i64 4
  %537 = load i32, ptr %536, align 4, !tbaa !34
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %538
  %540 = getelementptr inbounds i8, ptr %.02322, i64 8
  %541 = load i32, ptr %540, align 8, !tbaa !32
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %542
  %544 = getelementptr inbounds i8, ptr %.02322, i64 12
  %545 = load i32, ptr %544, align 4, !tbaa !37
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %546
  %548 = getelementptr inbounds i8, ptr %539, i64 8
  %549 = load i16, ptr %548, align 8, !tbaa !35
  %550 = getelementptr inbounds i8, ptr %543, i64 8
  %551 = load i16, ptr %550, align 8, !tbaa !35
  %552 = or i16 %551, %549
  %553 = and i16 %552, 1
  %.not2994 = icmp eq i16 %553, 0
  br i1 %.not2994, label %555, label %554

554:                                              ; preds = %535
  call void @sqlite3VdbeMemSetNull(ptr noundef nonnull %547) #6
  br label %.thread3118

555:                                              ; preds = %535
  %556 = and i16 %549, 16384
  %.not2995 = icmp eq i16 %556, 0
  br i1 %.not2995, label %559, label %557

557:                                              ; preds = %555
  %558 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef nonnull %539) #6
  %.not2996 = icmp eq i32 %558, 0
  br i1 %.not2996, label %._crit_edge4665, label %.critedge31

._crit_edge4665:                                  ; preds = %557
  %.pre4666 = load i16, ptr %550, align 8, !tbaa !35
  br label %559

559:                                              ; preds = %._crit_edge4665, %555
  %560 = phi i16 [ %.pre4666, %._crit_edge4665 ], [ %551, %555 ]
  %561 = and i16 %560, 16384
  %.not2997 = icmp eq i16 %561, 0
  br i1 %.not2997, label %564, label %562

562:                                              ; preds = %559
  %563 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef nonnull %543) #6
  %.not2998 = icmp eq i32 %563, 0
  br i1 %.not2998, label %564, label %.critedge31

564:                                              ; preds = %559, %562
  %565 = load i16, ptr %548, align 8, !tbaa !35
  %566 = and i16 %565, 18
  %567 = icmp eq i16 %566, 0
  br i1 %567, label %568, label %570

568:                                              ; preds = %564
  %569 = call i32 @sqlite3VdbeMemStringify(ptr noundef nonnull %539, i8 noundef zeroext %51, i8 noundef zeroext 0) #6
  %.not2999 = icmp eq i32 %569, 0
  br i1 %.not2999, label %570, label %.critedge31

570:                                              ; preds = %568, %564
  %571 = load i16, ptr %550, align 8, !tbaa !35
  %572 = and i16 %571, 18
  %573 = icmp eq i16 %572, 0
  br i1 %573, label %574, label %576

574:                                              ; preds = %570
  %575 = call i32 @sqlite3VdbeMemStringify(ptr noundef nonnull %543, i8 noundef zeroext %51, i8 noundef zeroext 0) #6
  %.not3000 = icmp eq i32 %575, 0
  br i1 %.not3000, label %576, label %.critedge31

576:                                              ; preds = %574, %570
  %577 = getelementptr inbounds i8, ptr %539, i64 12
  %578 = load i32, ptr %577, align 4, !tbaa !54
  %579 = getelementptr inbounds i8, ptr %543, i64 12
  %580 = load i32, ptr %579, align 4, !tbaa !54
  %581 = add nsw i32 %580, %578
  %582 = sext i32 %581 to i64
  %583 = load i32, ptr %121, align 8, !tbaa !27
  %584 = icmp sgt i32 %581, %583
  br i1 %584, label %.thread3298, label %585

585:                                              ; preds = %576
  %586 = add nsw i32 %581, 2
  %587 = icmp eq i32 %545, %541
  %588 = zext i1 %587 to i32
  %589 = call i32 @sqlite3VdbeMemGrow(ptr noundef nonnull %547, i32 noundef %586, i32 noundef %588) #6
  %.not3001 = icmp eq i32 %589, 0
  br i1 %.not3001, label %590, label %.critedge31

590:                                              ; preds = %585
  %591 = getelementptr inbounds i8, ptr %547, i64 8
  %592 = load i16, ptr %591, align 8, !tbaa !35
  %593 = and i16 %592, 15872
  %594 = or disjoint i16 %593, 2
  store i16 %594, ptr %591, align 8, !tbaa !35
  br i1 %587, label %602, label %595

595:                                              ; preds = %590
  %596 = getelementptr inbounds i8, ptr %547, i64 16
  %597 = load ptr, ptr %596, align 8, !tbaa !53
  %598 = getelementptr inbounds i8, ptr %543, i64 16
  %599 = load ptr, ptr %598, align 8, !tbaa !53
  %600 = load i32, ptr %579, align 4, !tbaa !54
  %601 = sext i32 %600 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %597, ptr align 1 %599, i64 %601, i1 false)
  br label %602

602:                                              ; preds = %595, %590
  %603 = getelementptr inbounds i8, ptr %547, i64 16
  %604 = load ptr, ptr %603, align 8, !tbaa !53
  %605 = load i32, ptr %579, align 4, !tbaa !54
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds i8, ptr %604, i64 %606
  %608 = getelementptr inbounds i8, ptr %539, i64 16
  %609 = load ptr, ptr %608, align 8, !tbaa !53
  %610 = load i32, ptr %577, align 4, !tbaa !54
  %611 = sext i32 %610 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %607, ptr align 1 %609, i64 %611, i1 false)
  %612 = load ptr, ptr %603, align 8, !tbaa !53
  %613 = getelementptr inbounds i8, ptr %612, i64 %582
  store i8 0, ptr %613, align 1, !tbaa !25
  %614 = load ptr, ptr %603, align 8, !tbaa !53
  %615 = getelementptr i8, ptr %614, i64 %582
  %616 = getelementptr i8, ptr %615, i64 1
  store i8 0, ptr %616, align 1, !tbaa !25
  %617 = load i16, ptr %591, align 8, !tbaa !35
  %618 = or i16 %617, 512
  store i16 %618, ptr %591, align 8, !tbaa !35
  %619 = getelementptr inbounds i8, ptr %547, i64 12
  store i32 %581, ptr %619, align 4, !tbaa !54
  %620 = getelementptr inbounds i8, ptr %547, i64 10
  store i8 %51, ptr %620, align 2, !tbaa !55
  br label %.thread3118

621:                                              ; preds = %154, %154, %154, %154, %154
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #6
  %622 = getelementptr inbounds i8, ptr %.02322, i64 4
  %623 = load i32, ptr %622, align 4, !tbaa !34
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %624
  %626 = call zeroext i16 @numericType(ptr noundef %625)
  %627 = getelementptr inbounds i8, ptr %.02322, i64 8
  %628 = load i32, ptr %627, align 8, !tbaa !32
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %629
  %631 = call zeroext i16 @numericType(ptr noundef %630)
  %632 = getelementptr inbounds i8, ptr %.02322, i64 12
  %633 = load i32, ptr %632, align 4, !tbaa !37
  %634 = sext i32 %633 to i64
  %635 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %634
  %636 = getelementptr inbounds i8, ptr %625, i64 8
  %637 = load i16, ptr %636, align 8, !tbaa !35
  %638 = getelementptr inbounds i8, ptr %630, i64 8
  %639 = load i16, ptr %638, align 8, !tbaa !35
  %640 = or i16 %639, %637
  %641 = and i16 %640, 1
  %.not2988 = icmp eq i16 %641, 0
  br i1 %.not2988, label %642, label %708

642:                                              ; preds = %621
  %643 = zext i16 %626 to i32
  %644 = zext i16 %631 to i32
  %645 = and i32 %643, 4
  %646 = and i32 %645, %644
  %.not2989.not = icmp eq i32 %646, 0
  br i1 %.not2989.not, label %675, label %647

647:                                              ; preds = %642
  %648 = load i64, ptr %625, align 8, !tbaa !25
  %649 = load i64, ptr %630, align 8, !tbaa !25
  store i64 %649, ptr %2, align 8, !tbaa !48
  %650 = load i8, ptr %.02322, align 8, !tbaa !30
  switch i8 %650, label %664 [
    i8 47, label %651
    i8 48, label %653
    i8 49, label %655
    i8 50, label %657
  ]

651:                                              ; preds = %647
  %652 = call i32 @sqlite3AddInt64(ptr noundef nonnull %2, i64 noundef %648) #6
  %.not2992 = icmp eq i32 %652, 0
  br i1 %.not2992, label %669, label %675

653:                                              ; preds = %647
  %654 = call i32 @sqlite3SubInt64(ptr noundef nonnull %2, i64 noundef %648) #6
  %.not2991 = icmp eq i32 %654, 0
  br i1 %.not2991, label %669, label %675

655:                                              ; preds = %647
  %656 = call i32 @sqlite3MulInt64(ptr noundef nonnull %2, i64 noundef %648) #6
  %.not2990 = icmp eq i32 %656, 0
  br i1 %.not2990, label %669, label %675

657:                                              ; preds = %647
  %658 = icmp eq i64 %648, 0
  br i1 %658, label %708, label %659

659:                                              ; preds = %657
  %660 = icmp eq i64 %648, -1
  %661 = icmp eq i64 %649, -9223372036854775808
  %or.cond = select i1 %660, i1 %661, i1 false
  br i1 %or.cond, label %675, label %662

662:                                              ; preds = %659
  %663 = sdiv i64 %649, %648
  store i64 %663, ptr %2, align 8, !tbaa !48
  br label %669

664:                                              ; preds = %647
  %665 = icmp eq i64 %648, 0
  br i1 %665, label %708, label %666

666:                                              ; preds = %664
  %667 = icmp eq i64 %648, -1
  %spec.store.select = select i1 %667, i64 1, i64 %648
  %668 = srem i64 %649, %spec.store.select
  store i64 %668, ptr %2, align 8, !tbaa !48
  br label %669

669:                                              ; preds = %655, %653, %651, %666, %662
  %670 = load i64, ptr %2, align 8, !tbaa !48
  store i64 %670, ptr %635, align 8, !tbaa !25
  %671 = getelementptr inbounds i8, ptr %635, i64 8
  %672 = load i16, ptr %671, align 8, !tbaa !35
  %673 = and i16 %672, 15872
  %674 = or disjoint i16 %673, 4
  store i16 %674, ptr %671, align 8, !tbaa !35
  br label %709

675:                                              ; preds = %642, %659, %655, %653, %651
  %676 = call double @sqlite3VdbeRealValue(ptr noundef nonnull %625) #6
  %677 = call double @sqlite3VdbeRealValue(ptr noundef nonnull %630) #6
  %678 = load i8, ptr %.02322, align 8, !tbaa !30
  switch i8 %678, label %689 [
    i8 47, label %679
    i8 48, label %681
    i8 49, label %683
    i8 50, label %685
  ]

679:                                              ; preds = %675
  %680 = fadd double %676, %677
  br label %697

681:                                              ; preds = %675
  %682 = fsub double %677, %676
  br label %697

683:                                              ; preds = %675
  %684 = fmul double %676, %677
  br label %697

685:                                              ; preds = %675
  %686 = fcmp oeq double %676, 0.000000e+00
  br i1 %686, label %708, label %687

687:                                              ; preds = %685
  %688 = fdiv double %677, %676
  br label %697

689:                                              ; preds = %675
  %690 = fptosi double %676 to i64
  %691 = fptosi double %677 to i64
  store i64 %691, ptr %2, align 8, !tbaa !48
  %692 = icmp eq i64 %690, 0
  br i1 %692, label %708, label %693

693:                                              ; preds = %689
  %694 = icmp eq i64 %690, -1
  %spec.store.select5 = select i1 %694, i64 1, i64 %690
  %695 = srem i64 %691, %spec.store.select5
  %696 = sitofp i64 %695 to double
  br label %697

697:                                              ; preds = %693, %687, %683, %681, %679
  %.02451 = phi double [ %696, %693 ], [ %688, %687 ], [ %684, %683 ], [ %682, %681 ], [ %680, %679 ]
  %698 = call i32 @sqlite3IsNaN(double noundef %.02451) #6
  %.not2993 = icmp eq i32 %698, 0
  br i1 %.not2993, label %699, label %708

699:                                              ; preds = %697
  store double %.02451, ptr %635, align 8, !tbaa !25
  %700 = getelementptr inbounds i8, ptr %635, i64 8
  %701 = load i16, ptr %700, align 8, !tbaa !35
  %702 = and i16 %701, 15872
  %703 = or disjoint i16 %702, 8
  store i16 %703, ptr %700, align 8, !tbaa !35
  %704 = or i32 %644, %643
  %705 = and i32 %704, 8
  %706 = or disjoint i32 %705, %646
  %or.cond7.not = icmp eq i32 %706, 0
  br i1 %or.cond7.not, label %707, label %709

707:                                              ; preds = %699
  call void @sqlite3VdbeIntegerAffinity(ptr noundef nonnull %635) #6
  br label %709

708:                                              ; preds = %697, %689, %685, %664, %657, %621
  call void @sqlite3VdbeMemSetNull(ptr noundef nonnull %635) #6
  br label %709

709:                                              ; preds = %669, %707, %699, %708
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #6
  br label %.thread3118

710:                                              ; preds = %154
  %711 = getelementptr inbounds i8, ptr %.02322, i64 4
  %712 = load i32, ptr %711, align 4, !tbaa !34
  %.not2987 = icmp eq i32 %712, 0
  br i1 %.not2987, label %.thread3118, label %713

713:                                              ; preds = %710
  %714 = sext i32 %712 to i64
  %715 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %714
  call void @sqlite3VdbeMemSetInt64(ptr noundef nonnull %715, i64 noundef 0) #6
  br label %.thread3118

716:                                              ; preds = %154
  %717 = getelementptr inbounds i8, ptr %.02322, i64 2
  %718 = load i16, ptr %717, align 2, !tbaa !44
  %719 = zext i16 %718 to i64
  %720 = shl nuw nsw i64 %719, 3
  %721 = add nuw nsw i64 %720, 48
  %722 = call ptr @sqlite3DbMallocRawNN(ptr noundef %49, i64 noundef %721) #6
  %723 = icmp eq ptr %722, null
  br i1 %723, label %.critedge31, label %.thread3136

.thread3136:                                      ; preds = %716
  store ptr null, ptr %722, align 8, !tbaa !66
  %724 = getelementptr inbounds i8, ptr %.02322, i64 16
  %725 = load ptr, ptr %724, align 8, !tbaa !25
  %726 = getelementptr inbounds i8, ptr %722, i64 8
  store ptr %725, ptr %726, align 8, !tbaa !68
  %727 = ptrtoint ptr %.02322 to i64
  %728 = ptrtoint ptr %.02321 to i64
  %729 = sub i64 %727, %728
  %730 = sdiv exact i64 %729, 24
  %731 = trunc i64 %730 to i32
  %732 = getelementptr inbounds i8, ptr %722, i64 32
  store i32 %731, ptr %732, align 8, !tbaa !69
  %733 = getelementptr inbounds i8, ptr %722, i64 24
  store ptr %0, ptr %733, align 8, !tbaa !70
  %734 = trunc i16 %718 to i8
  %735 = getelementptr inbounds i8, ptr %722, i64 42
  store i8 %734, ptr %735, align 2, !tbaa !71
  %736 = getelementptr inbounds i8, ptr %.02322, i64 1
  store i8 -16, ptr %736, align 1, !tbaa !52
  store ptr %722, ptr %724, align 8, !tbaa !25
  store i8 91, ptr %.02322, align 8, !tbaa !30
  br label %737

737:                                              ; preds = %._crit_edge4660, %.thread3136
  %738 = phi ptr [ %.pre4662, %._crit_edge4660 ], [ %722, %.thread3136 ]
  %739 = getelementptr inbounds i8, ptr %.02322, i64 12
  %740 = load i32, ptr %739, align 4, !tbaa !37
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %741
  %743 = load ptr, ptr %738, align 8, !tbaa !66
  %.not2981 = icmp eq ptr %743, %742
  br i1 %.not2981, label %..loopexit_crit_edge, label %744

..loopexit_crit_edge:                             ; preds = %737
  %.phi.trans.insert4663 = getelementptr inbounds i8, ptr %738, i64 42
  %.pre4664 = load i8, ptr %.phi.trans.insert4663, align 2, !tbaa !71
  br label %.loopexit

744:                                              ; preds = %737
  store ptr %742, ptr %738, align 8, !tbaa !66
  %745 = getelementptr inbounds i8, ptr %738, i64 42
  %746 = load i8, ptr %745, align 2, !tbaa !71
  %.not4099 = icmp eq i8 %746, 0
  br i1 %.not4099, label %.loopexit, label %.lr.ph4056

.lr.ph4056:                                       ; preds = %744
  %747 = getelementptr inbounds i8, ptr %.02322, i64 8
  %748 = load i32, ptr %747, align 8, !tbaa !32
  %749 = getelementptr inbounds i8, ptr %738, i64 48
  %750 = zext i8 %746 to i64
  %751 = sext i32 %748 to i64
  %min.iters.check = icmp ult i8 %746, 4
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph4056
  %n.vec = and i64 %750, 252
  %ind.end = and i64 %750, 3
  %broadcast.splatinsert = insertelement <2 x i64> poison, i64 %751, i64 0
  %broadcast.splat = shufflevector <2 x i64> %broadcast.splatinsert, <2 x i64> poison, <2 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = sub i64 %750, %index
  %752 = insertelement <2 x i64> poison, i64 %offset.idx, i64 0
  %753 = shufflevector <2 x i64> %752, <2 x i64> poison, <2 x i32> zeroinitializer
  %754 = add <2 x i64> %753, <i64 -1, i64 -2>
  %755 = add <2 x i64> %753, <i64 -3, i64 -4>
  %756 = add nsw <2 x i64> %754, %broadcast.splat
  %757 = add nsw <2 x i64> %755, %broadcast.splat
  %758 = getelementptr inbounds %struct.Mem, ptr %.02367, <2 x i64> %756
  %759 = getelementptr inbounds %struct.Mem, ptr %.02367, <2 x i64> %757
  %760 = extractelement <2 x i64> %754, i64 0
  %761 = getelementptr inbounds [1 x ptr], ptr %749, i64 0, i64 %760
  %762 = getelementptr inbounds i8, ptr %761, i64 -8
  %763 = getelementptr inbounds i8, ptr %761, i64 -24
  %reverse = shufflevector <2 x ptr> %758, <2 x ptr> poison, <2 x i32> <i32 1, i32 0>
  store <2 x ptr> %reverse, ptr %762, align 8, !tbaa !45
  %reverse5641 = shufflevector <2 x ptr> %759, <2 x ptr> poison, <2 x i32> <i32 1, i32 0>
  store <2 x ptr> %reverse5641, ptr %763, align 8, !tbaa !45
  %index.next = add nuw i64 %index, 4
  %764 = icmp eq i64 %index.next, %n.vec
  br i1 %764, label %middle.block, label %vector.body, !llvm.loop !72

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %750
  br i1 %cmp.n, label %.loopexit, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph4056
  %indvars.iv4608.ph = phi i64 [ %750, %.lr.ph4056 ], [ %ind.end, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv4608 = phi i64 [ %indvars.iv.next4609, %scalar.ph ], [ %indvars.iv4608.ph, %scalar.ph.preheader ]
  %indvars.iv.next4609 = add nsw i64 %indvars.iv4608, -1
  %765 = add nsw i64 %indvars.iv.next4609, %751
  %766 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %765
  %767 = getelementptr inbounds [1 x ptr], ptr %749, i64 0, i64 %indvars.iv.next4609
  store ptr %766, ptr %767, align 8, !tbaa !45
  %768 = icmp ugt i64 %indvars.iv4608, 1
  br i1 %768, label %scalar.ph, label %.loopexit, !llvm.loop !75

.loopexit:                                        ; preds = %scalar.ph, %middle.block, %..loopexit_crit_edge, %744
  %769 = phi i8 [ %.pre4664, %..loopexit_crit_edge ], [ 0, %744 ], [ %746, %middle.block ], [ %746, %scalar.ph ]
  %770 = getelementptr inbounds i8, ptr %742, i64 8
  %771 = load i16, ptr %770, align 8, !tbaa !35
  %772 = and i16 %771, 15872
  %773 = or disjoint i16 %772, 1
  store i16 %773, ptr %770, align 8, !tbaa !35
  %774 = getelementptr inbounds i8, ptr %738, i64 41
  store i8 0, ptr %774, align 1, !tbaa !76
  %775 = getelementptr inbounds i8, ptr %738, i64 8
  %776 = load ptr, ptr %775, align 8, !tbaa !68
  %777 = getelementptr inbounds i8, ptr %776, i64 24
  %778 = load ptr, ptr %777, align 8, !tbaa !77
  %779 = zext i8 %769 to i32
  %780 = getelementptr inbounds i8, ptr %738, i64 48
  call void %778(ptr noundef nonnull %738, i32 noundef %779, ptr noundef nonnull %780) #6
  %781 = load i8, ptr %774, align 1, !tbaa !76
  %.not2982 = icmp eq i8 %781, 0
  br i1 %.not2982, label %793, label %782

782:                                              ; preds = %.loopexit
  %783 = getelementptr inbounds i8, ptr %738, i64 36
  %784 = load i32, ptr %783, align 4, !tbaa !79
  %.not2983 = icmp eq i32 %784, 0
  br i1 %.not2983, label %788, label %785

785:                                              ; preds = %782
  %786 = call ptr @sqlite3_value_text(ptr noundef nonnull %742) #6
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %0, ptr noundef nonnull @.str.6, ptr noundef %786) #6
  %787 = load i32, ptr %783, align 4, !tbaa !79
  br label %788

788:                                              ; preds = %785, %782
  %.92339 = phi i32 [ %787, %785 ], [ %.02330, %782 ]
  %789 = getelementptr inbounds i8, ptr %738, i64 32
  %790 = load i32, ptr %789, align 8, !tbaa !69
  %791 = getelementptr inbounds i8, ptr %.02322, i64 4
  %792 = load i32, ptr %791, align 4, !tbaa !34
  call void @sqlite3VdbeDeleteAuxData(ptr noundef %49, ptr noundef nonnull %104, i32 noundef %790, i32 noundef %792) #6
  %.not2984 = icmp eq i32 %.92339, 0
  br i1 %.not2984, label %793, label %.thread3123

793:                                              ; preds = %788, %.loopexit
  %.102340 = phi i32 [ 0, %788 ], [ %.02330, %.loopexit ]
  %794 = load i16, ptr %770, align 8, !tbaa !35
  %795 = and i16 %794, 18
  %.not2985 = icmp eq i16 %795, 0
  br i1 %.not2985, label %.thread3118, label %796

796:                                              ; preds = %793
  %797 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef nonnull %742, i32 noundef %86) #6
  %798 = call i32 @sqlite3VdbeMemTooBig(ptr noundef nonnull %742) #6
  %.not2986 = icmp eq i32 %798, 0
  br i1 %.not2986, label %.thread3118, label %.thread3298

799:                                              ; preds = %154, %154, %154, %154
  %800 = getelementptr inbounds i8, ptr %.02322, i64 4
  %801 = load i32, ptr %800, align 4, !tbaa !34
  %802 = sext i32 %801 to i64
  %803 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %802
  %804 = getelementptr inbounds i8, ptr %.02322, i64 8
  %805 = load i32, ptr %804, align 8, !tbaa !32
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %806
  %808 = getelementptr inbounds i8, ptr %.02322, i64 12
  %809 = load i32, ptr %808, align 4, !tbaa !37
  %810 = sext i32 %809 to i64
  %811 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %810
  %812 = getelementptr inbounds i8, ptr %803, i64 8
  %813 = load i16, ptr %812, align 8, !tbaa !35
  %814 = getelementptr inbounds i8, ptr %807, i64 8
  %815 = load i16, ptr %814, align 8, !tbaa !35
  %816 = or i16 %815, %813
  %817 = and i16 %816, 1
  %.not2975 = icmp eq i16 %817, 0
  br i1 %.not2975, label %819, label %818

818:                                              ; preds = %799
  call void @sqlite3VdbeMemSetNull(ptr noundef nonnull %811) #6
  br label %.thread3118

819:                                              ; preds = %799
  %820 = call i64 @sqlite3VdbeIntValue(ptr noundef nonnull %807) #6
  %821 = call i64 @sqlite3VdbeIntValue(ptr noundef nonnull %803) #6
  %822 = load i8, ptr %.02322, align 8, !tbaa !30
  switch i8 %822, label %827 [
    i8 43, label %823
    i8 44, label %825
  ]

823:                                              ; preds = %819
  %824 = and i64 %821, %820
  br label %850

825:                                              ; preds = %819
  %826 = or i64 %821, %820
  br label %850

827:                                              ; preds = %819
  %.not2976 = icmp eq i64 %821, 0
  br i1 %.not2976, label %850, label %828

828:                                              ; preds = %827
  %829 = icmp slt i64 %821, 0
  %830 = sub i8 91, %822
  %831 = icmp sgt i64 %821, -64
  %832 = sub nsw i64 0, %821
  %833 = select i1 %831, i64 %832, i64 64
  %.02456 = select i1 %829, i8 %830, i8 %822
  %.02455 = select i1 %829, i64 %833, i64 %821
  %834 = icmp sgt i64 %.02455, 63
  br i1 %834, label %835, label %839

835:                                              ; preds = %828
  %836 = icmp slt i64 %820, 0
  %837 = icmp ne i8 %.02456, 45
  %.not2980 = and i1 %836, %837
  %838 = sext i1 %.not2980 to i64
  br label %850

839:                                              ; preds = %828
  %840 = icmp eq i8 %.02456, 45
  br i1 %840, label %841, label %843

841:                                              ; preds = %839
  %842 = shl i64 %820, %.02455
  br label %850

843:                                              ; preds = %839
  %844 = lshr i64 %820, %.02455
  %845 = icmp slt i64 %820, 0
  br i1 %845, label %846, label %850

846:                                              ; preds = %843
  %847 = sub nuw nsw i64 64, %.02455
  %848 = shl nsw i64 -1, %847
  %849 = or i64 %848, %844
  br label %850

850:                                              ; preds = %841, %846, %843, %825, %835, %827, %823
  %.02453 = phi i64 [ %824, %823 ], [ %826, %825 ], [ %838, %835 ], [ %820, %827 ], [ %842, %841 ], [ %849, %846 ], [ %844, %843 ]
  store i64 %.02453, ptr %811, align 8, !tbaa !25
  %851 = getelementptr inbounds i8, ptr %811, i64 8
  %852 = load i16, ptr %851, align 8, !tbaa !35
  %853 = and i16 %852, 15872
  %854 = or disjoint i16 %853, 4
  store i16 %854, ptr %851, align 8, !tbaa !35
  br label %.thread3118

855:                                              ; preds = %154
  %856 = getelementptr inbounds i8, ptr %.02322, i64 4
  %857 = load i32, ptr %856, align 4, !tbaa !34
  %858 = sext i32 %857 to i64
  %859 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %858
  %860 = call i32 @sqlite3VdbeMemIntegerify(ptr noundef %859) #6
  %861 = getelementptr inbounds i8, ptr %.02322, i64 8
  %862 = load i32, ptr %861, align 8, !tbaa !32
  %863 = sext i32 %862 to i64
  %864 = load i64, ptr %859, align 8, !tbaa !25
  %865 = add nsw i64 %864, %863
  store i64 %865, ptr %859, align 8, !tbaa !25
  br label %.thread3118

866:                                              ; preds = %154
  %867 = getelementptr inbounds i8, ptr %.02322, i64 4
  %868 = load i32, ptr %867, align 4, !tbaa !34
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %869
  %871 = getelementptr inbounds i8, ptr %870, i64 8
  %872 = load i16, ptr %871, align 8, !tbaa !35
  %873 = and i16 %872, 4
  %874 = icmp eq i16 %873, 0
  br i1 %874, label %875, label %883

875:                                              ; preds = %866
  call void @applyAffinity(ptr noundef nonnull %870, i8 noundef signext 67, i8 noundef zeroext %51)
  %876 = load i16, ptr %871, align 8, !tbaa !35
  %877 = and i16 %876, 4
  %878 = icmp eq i16 %877, 0
  br i1 %878, label %879, label %883

879:                                              ; preds = %875
  %880 = getelementptr inbounds i8, ptr %.02322, i64 8
  %881 = load i32, ptr %880, align 8, !tbaa !32
  %882 = icmp eq i32 %881, 0
  br i1 %882, label %.thread3123, label %.thread3154

883:                                              ; preds = %875, %866
  %884 = phi i16 [ %876, %875 ], [ %872, %866 ]
  %885 = and i16 %884, 15872
  %886 = or disjoint i16 %885, 4
  store i16 %886, ptr %871, align 8, !tbaa !35
  br label %.thread3118

887:                                              ; preds = %154
  %888 = getelementptr inbounds i8, ptr %.02322, i64 4
  %889 = load i32, ptr %888, align 4, !tbaa !34
  %890 = sext i32 %889 to i64
  %891 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %890
  %892 = getelementptr inbounds i8, ptr %891, i64 8
  %893 = load i16, ptr %892, align 8, !tbaa !35
  %894 = and i16 %893, 4
  %.not2974 = icmp eq i16 %894, 0
  br i1 %.not2974, label %.thread3118, label %895

895:                                              ; preds = %887
  %896 = call i32 @sqlite3VdbeMemRealify(ptr noundef nonnull %891) #6
  br label %.thread3118

897:                                              ; preds = %154
  %898 = getelementptr inbounds i8, ptr %.02322, i64 4
  %899 = load i32, ptr %898, align 4, !tbaa !34
  %900 = sext i32 %899 to i64
  %901 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %900
  %902 = getelementptr inbounds i8, ptr %901, i64 8
  %903 = load i16, ptr %902, align 8, !tbaa !35
  %904 = and i16 %903, 16384
  %.not2972 = icmp eq i16 %904, 0
  br i1 %.not2972, label %.thread3145, label %908

.thread3145:                                      ; preds = %897
  %905 = getelementptr inbounds i8, ptr %.02322, i64 8
  %906 = load i32, ptr %905, align 8, !tbaa !32
  %907 = trunc i32 %906 to i8
  call void @sqlite3VdbeMemCast(ptr noundef nonnull %901, i8 noundef zeroext %907, i8 noundef zeroext %51) #6
  br label %.thread3118

908:                                              ; preds = %897
  %909 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef nonnull %901) #6
  %910 = getelementptr inbounds i8, ptr %.02322, i64 8
  %911 = load i32, ptr %910, align 8, !tbaa !32
  %912 = trunc i32 %911 to i8
  call void @sqlite3VdbeMemCast(ptr noundef nonnull %901, i8 noundef zeroext %912, i8 noundef zeroext %51) #6
  %.not2973 = icmp eq i32 %909, 0
  br i1 %.not2973, label %.thread3118, label %.thread3123

913:                                              ; preds = %154, %154, %154, %154, %154, %154
  %914 = getelementptr inbounds i8, ptr %.02322, i64 4
  %915 = load i32, ptr %914, align 4, !tbaa !34
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %916
  %918 = getelementptr inbounds i8, ptr %.02322, i64 12
  %919 = load i32, ptr %918, align 4, !tbaa !37
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %920
  %922 = getelementptr inbounds i8, ptr %917, i64 8
  %923 = load i16, ptr %922, align 8, !tbaa !35
  %924 = getelementptr inbounds i8, ptr %921, i64 8
  %925 = load i16, ptr %924, align 8, !tbaa !35
  %926 = zext i16 %923 to i32
  %927 = zext i16 %925 to i32
  %928 = or i32 %927, %926
  %929 = and i32 %928, 1
  %.not2960 = icmp eq i32 %929, 0
  %930 = getelementptr inbounds i8, ptr %.02322, i64 2
  %931 = load i16, ptr %930, align 2, !tbaa !44
  br i1 %.not2960, label %952, label %932

932:                                              ; preds = %913
  %933 = zext i16 %931 to i32
  %934 = and i32 %933, 128
  %.not2965 = icmp eq i32 %934, 0
  br i1 %.not2965, label %940, label %935

935:                                              ; preds = %932
  %936 = and i32 %926, 1
  %937 = and i32 %936, %927
  %.not2968 = icmp eq i32 %937, 0
  %938 = and i32 %927, 256
  %939 = icmp ne i32 %938, 0
  %or.cond3039.not = or i1 %.not2968, %939
  %spec.select3096 = zext i1 %or.cond3039.not to i32
  br label %1003

940:                                              ; preds = %932
  %941 = and i32 %933, 32
  %.not2966 = icmp eq i32 %941, 0
  br i1 %.not2966, label %950, label %942

942:                                              ; preds = %940
  %943 = getelementptr inbounds i8, ptr %.02322, i64 8
  %944 = load i32, ptr %943, align 8, !tbaa !32
  %945 = sext i32 %944 to i64
  %946 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %945, i32 1
  %947 = load i16, ptr %946, align 8, !tbaa !35
  %948 = and i16 %947, 15872
  %949 = or disjoint i16 %948, 1
  store i16 %949, ptr %946, align 8, !tbaa !35
  br label %.thread3118

950:                                              ; preds = %940
  %951 = and i32 %933, 16
  %.not2967 = icmp eq i32 %951, 0
  br i1 %.not2967, label %.thread3118, label %.thread3154

952:                                              ; preds = %913
  %953 = and i16 %931, 71
  %954 = icmp ugt i16 %953, 66
  br i1 %954, label %955, label %977

955:                                              ; preds = %952
  %956 = and i32 %928, 2
  %.not2963 = icmp eq i32 %956, 0
  br i1 %.not2963, label %966, label %957

957:                                              ; preds = %955
  %958 = and i32 %926, 14
  %959 = icmp eq i32 %958, 2
  br i1 %959, label %960, label %962

960:                                              ; preds = %957
  call void @applyNumericAffinity(ptr noundef nonnull %917, i32 noundef 0)
  %961 = load i16, ptr %924, align 8, !tbaa !35
  br label %962

962:                                              ; preds = %960, %957
  %.02462 = phi i16 [ %961, %960 ], [ %925, %957 ]
  %963 = and i16 %.02462, 14
  %964 = icmp eq i16 %963, 2
  br i1 %964, label %965, label %966

965:                                              ; preds = %962
  call void @applyNumericAffinity(ptr noundef nonnull %921, i32 noundef 0)
  %.pre4659 = load i16, ptr %924, align 8, !tbaa !35
  br label %966

966:                                              ; preds = %962, %965, %955
  %967 = phi i16 [ %.pre4659, %965 ], [ %.02462, %962 ], [ %925, %955 ]
  %.12463 = phi i16 [ %.02462, %965 ], [ %.02462, %962 ], [ %925, %955 ]
  %968 = load i16, ptr %922, align 8, !tbaa !35
  %969 = and i16 %968, 4
  %970 = and i16 %969, %967
  %.not2964 = icmp eq i16 %970, 0
  br i1 %.not2964, label %999, label %971

971:                                              ; preds = %966
  %972 = load i64, ptr %921, align 8, !tbaa !25
  %973 = load i64, ptr %917, align 8, !tbaa !25
  %974 = icmp sgt i64 %972, %973
  br i1 %974, label %1003, label %975

975:                                              ; preds = %971
  %976 = icmp slt i64 %972, %973
  %.3040 = sext i1 %976 to i32
  br label %1003

977:                                              ; preds = %952
  %978 = icmp eq i16 %953, 66
  br i1 %978, label %979, label %999

979:                                              ; preds = %977
  %980 = and i32 %926, 2
  %981 = icmp ne i32 %980, 0
  %982 = and i32 %926, 12
  %.not2961 = icmp eq i32 %982, 0
  %or.cond3041 = or i1 %981, %.not2961
  br i1 %or.cond3041, label %989, label %983

983:                                              ; preds = %979
  %984 = call i32 @sqlite3VdbeMemStringify(ptr noundef nonnull %917, i8 noundef zeroext %51, i8 noundef zeroext 1) #6
  %985 = load i16, ptr %922, align 8, !tbaa !35
  %986 = and i16 %985, 32256
  %987 = and i16 %923, -32259
  %988 = or disjoint i16 %986, %987
  br label %989

989:                                              ; preds = %983, %979
  %.02459 = phi i16 [ %988, %983 ], [ %923, %979 ]
  %990 = and i32 %927, 2
  %991 = icmp ne i32 %990, 0
  %992 = and i32 %927, 12
  %.not2962 = icmp eq i32 %992, 0
  %or.cond3042 = or i1 %991, %.not2962
  br i1 %or.cond3042, label %999, label %993

993:                                              ; preds = %989
  %994 = call i32 @sqlite3VdbeMemStringify(ptr noundef nonnull %921, i8 noundef zeroext %51, i8 noundef zeroext 1) #6
  %995 = load i16, ptr %924, align 8, !tbaa !35
  %996 = and i16 %995, 32256
  %997 = and i16 %925, -32259
  %998 = or disjoint i16 %996, %997
  br label %999

999:                                              ; preds = %977, %993, %989, %966
  %.22464 = phi i16 [ %.12463, %966 ], [ %998, %993 ], [ %925, %989 ], [ %925, %977 ]
  %.12460 = phi i16 [ %923, %966 ], [ %.02459, %993 ], [ %.02459, %989 ], [ %923, %977 ]
  %1000 = getelementptr inbounds i8, ptr %.02322, i64 16
  %1001 = load ptr, ptr %1000, align 8, !tbaa !25
  %1002 = call i32 @sqlite3MemCompare(ptr noundef nonnull %921, ptr noundef nonnull %917, ptr noundef %1001) #6
  br label %1003

1003:                                             ; preds = %935, %975, %971, %999
  %.32465 = phi i16 [ %.22464, %999 ], [ %.12463, %971 ], [ %.12463, %975 ], [ %925, %935 ]
  %.22461 = phi i16 [ %.12460, %999 ], [ %923, %971 ], [ %923, %975 ], [ %923, %935 ]
  %.02457 = phi i32 [ %1002, %999 ], [ 1, %971 ], [ %.3040, %975 ], [ %spec.select3096, %935 ]
  %1004 = load i8, ptr %.02322, align 8, !tbaa !30
  switch i8 %1004, label %1015 [
    i8 37, label %1005
    i8 36, label %1018
    i8 40, label %1008
    i8 39, label %1009
    i8 38, label %1012
  ]

1005:                                             ; preds = %1003
  %1006 = icmp eq i32 %.02457, 0
  %1007 = zext i1 %1006 to i32
  br label %1018

1008:                                             ; preds = %1003
  %.02457.lobit = lshr i32 %.02457, 31
  br label %1018

1009:                                             ; preds = %1003
  %1010 = icmp slt i32 %.02457, 1
  %1011 = zext i1 %1010 to i32
  br label %1018

1012:                                             ; preds = %1003
  %1013 = icmp sgt i32 %.02457, 0
  %1014 = zext i1 %1013 to i32
  br label %1018

1015:                                             ; preds = %1003
  %1016 = icmp sgt i32 %.02457, -1
  %1017 = zext i1 %1016 to i32
  br label %1018

1018:                                             ; preds = %1003, %1015, %1012, %1009, %1008, %1005
  %.02458 = phi i32 [ %1017, %1015 ], [ %1014, %1012 ], [ %1011, %1009 ], [ %.02457.lobit, %1008 ], [ %1007, %1005 ], [ %.02457, %1003 ]
  store i16 %.22461, ptr %922, align 8, !tbaa !35
  store i16 %.32465, ptr %924, align 8, !tbaa !35
  %1019 = getelementptr inbounds i8, ptr %.02322, i64 2
  %1020 = load i16, ptr %1019, align 2, !tbaa !44
  %1021 = zext i16 %1020 to i32
  %1022 = and i32 %1021, 32
  %.not2969 = icmp eq i32 %1022, 0
  br i1 %.not2969, label %1038, label %1023

1023:                                             ; preds = %1018
  %1024 = icmp ne i32 %.02458, 0
  %1025 = and i32 %1021, 8
  %.not2971 = icmp ne i32 %1025, 0
  %1026 = icmp ne i8 %1004, 37
  %1027 = xor i1 %1026, %1024
  %or.cond3507 = select i1 %.not2971, i1 %1027, i1 false
  br i1 %or.cond3507, label %.thread3118, label %1028

1028:                                             ; preds = %1023
  %1029 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1030 = load i32, ptr %1029, align 8, !tbaa !32
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1031
  %1033 = getelementptr inbounds i8, ptr %1032, i64 8
  %1034 = load i16, ptr %1033, align 8, !tbaa !35
  %1035 = and i16 %1034, 15872
  %1036 = or disjoint i16 %1035, 4
  store i16 %1036, ptr %1033, align 8, !tbaa !35
  %1037 = zext i1 %1024 to i64
  store i64 %1037, ptr %1032, align 8, !tbaa !25
  br label %.thread3118

1038:                                             ; preds = %1018
  %.not2970 = icmp eq i32 %.02458, 0
  br i1 %.not2970, label %.thread3118, label %.thread3154

1039:                                             ; preds = %154
  %.not2959 = icmp eq i32 %.02349, 0
  br i1 %.not2959, label %.thread3118, label %.thread3154

1040:                                             ; preds = %154
  %1041 = getelementptr inbounds i8, ptr %.02322, i64 2
  %1042 = load i16, ptr %1041, align 2, !tbaa !44
  %1043 = and i16 %1042, 1
  %1044 = icmp eq i16 %1043, 0
  br i1 %1044, label %1049, label %1045

1045:                                             ; preds = %1040
  %1046 = getelementptr inbounds i8, ptr %.02322, i64 -8
  %1047 = load ptr, ptr %1046, align 8, !tbaa !25
  %1048 = getelementptr inbounds i8, ptr %1047, i64 4
  br label %1049

1049:                                             ; preds = %1040, %1045
  %.02467 = phi ptr [ %1048, %1045 ], [ null, %1040 ]
  %1050 = getelementptr inbounds i8, ptr %.02322, i64 12
  %1051 = load i32, ptr %1050, align 4, !tbaa !37
  %1052 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1053 = load i32, ptr %1052, align 4, !tbaa !34
  %1054 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1055 = load i32, ptr %1054, align 8, !tbaa !32
  %1056 = icmp sgt i32 %1051, 0
  br i1 %1056, label %.lr.ph4049, label %.thread3118

.lr.ph4049:                                       ; preds = %1049
  %1057 = getelementptr inbounds i8, ptr %.02322, i64 16
  %1058 = load ptr, ptr %1057, align 8, !tbaa !25
  %.not2950 = icmp eq ptr %.02467, null
  %1059 = getelementptr inbounds i8, ptr %1058, i64 32
  %1060 = getelementptr inbounds i8, ptr %1058, i64 24
  %wide.trip.count4601 = zext nneg i32 %1051 to i64
  br label %1062

1061:                                             ; preds = %1067
  %indvars.iv.next4599 = add nuw nsw i64 %indvars.iv4598, 1
  %exitcond4602.not = icmp eq i64 %indvars.iv.next4599, %wide.trip.count4601
  br i1 %exitcond4602.not, label %.thread3118, label %1062, !llvm.loop !80

1062:                                             ; preds = %.lr.ph4049, %1061
  %indvars.iv4598 = phi i64 [ 0, %.lr.ph4049 ], [ %indvars.iv.next4599, %1061 ]
  %1063 = trunc nuw nsw i64 %indvars.iv4598 to i32
  br i1 %.not2950, label %1067, label %1064

1064:                                             ; preds = %1062
  %1065 = getelementptr inbounds i32, ptr %.02467, i64 %indvars.iv4598
  %1066 = load i32, ptr %1065, align 4, !tbaa !27
  br label %1067

1067:                                             ; preds = %1062, %1064
  %1068 = phi i32 [ %1066, %1064 ], [ %1063, %1062 ]
  %1069 = getelementptr inbounds [1 x ptr], ptr %1059, i64 0, i64 %indvars.iv4598
  %1070 = load ptr, ptr %1069, align 8, !tbaa !45
  %1071 = load ptr, ptr %1060, align 8, !tbaa !81
  %1072 = getelementptr inbounds i8, ptr %1071, i64 %indvars.iv4598
  %1073 = load i8, ptr %1072, align 1, !tbaa !25
  %1074 = add nsw i32 %1068, %1053
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1075
  %1077 = add nsw i32 %1068, %1055
  %1078 = sext i32 %1077 to i64
  %1079 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1078
  %1080 = call i32 @sqlite3MemCompare(ptr noundef %1076, ptr noundef %1079, ptr noundef %1070) #6
  %.not2951 = icmp eq i32 %1080, 0
  br i1 %.not2951, label %1061, label %1081

1081:                                             ; preds = %1067
  %.not2952 = icmp eq i8 %1073, 0
  %1082 = sub nsw i32 0, %1080
  %spec.select = select i1 %.not2952, i32 %1080, i32 %1082
  br label %.thread3118

1083:                                             ; preds = %154
  %1084 = icmp slt i32 %.02349, 0
  br i1 %1084, label %1085, label %1091

1085:                                             ; preds = %1083
  %1086 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1087 = load i32, ptr %1086, align 4, !tbaa !34
  %1088 = add nsw i32 %1087, -1
  %1089 = sext i32 %1088 to i64
  %1090 = getelementptr inbounds %struct.VdbeOp, ptr %.02321, i64 %1089
  br label %.thread3118

1091:                                             ; preds = %1083
  %1092 = icmp eq i32 %.02349, 0
  br i1 %1092, label %1093, label %1099

1093:                                             ; preds = %1091
  %1094 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1095 = load i32, ptr %1094, align 8, !tbaa !32
  %1096 = add nsw i32 %1095, -1
  %1097 = sext i32 %1096 to i64
  %1098 = getelementptr inbounds %struct.VdbeOp, ptr %.02321, i64 %1097
  br label %.thread3118

1099:                                             ; preds = %1091
  %1100 = getelementptr inbounds i8, ptr %.02322, i64 12
  %1101 = load i32, ptr %1100, align 4, !tbaa !37
  %1102 = add nsw i32 %1101, -1
  %1103 = sext i32 %1102 to i64
  %1104 = getelementptr inbounds %struct.VdbeOp, ptr %.02321, i64 %1103
  br label %.thread3118

1105:                                             ; preds = %154, %154
  %1106 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1107 = load i32, ptr %1106, align 4, !tbaa !34
  %1108 = sext i32 %1107 to i64
  %1109 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1108
  %1110 = getelementptr inbounds i8, ptr %1109, i64 8
  %1111 = load i16, ptr %1110, align 8, !tbaa !35
  %1112 = and i16 %1111, 1
  %.not2948 = icmp eq i16 %1112, 0
  br i1 %.not2948, label %1113, label %1117

1113:                                             ; preds = %1105
  %1114 = call i64 @sqlite3VdbeIntValue(ptr noundef nonnull %1109) #6
  %1115 = icmp ne i64 %1114, 0
  %1116 = zext i1 %1115 to i64
  br label %1117

1117:                                             ; preds = %1105, %1113
  %.02468 = phi i64 [ %1116, %1113 ], [ 2, %1105 ]
  %1118 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1119 = load i32, ptr %1118, align 8, !tbaa !32
  %1120 = sext i32 %1119 to i64
  %1121 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1120
  %1122 = getelementptr inbounds i8, ptr %1121, i64 8
  %1123 = load i16, ptr %1122, align 8, !tbaa !35
  %1124 = and i16 %1123, 1
  %.not2949 = icmp eq i16 %1124, 0
  br i1 %.not2949, label %1125, label %1129

1125:                                             ; preds = %1117
  %1126 = call i64 @sqlite3VdbeIntValue(ptr noundef nonnull %1121) #6
  %1127 = icmp ne i64 %1126, 0
  %1128 = zext i1 %1127 to i64
  br label %1129

1129:                                             ; preds = %1117, %1125
  %.02470 = phi i64 [ %1128, %1125 ], [ 2, %1117 ]
  %1130 = load i8, ptr %.02322, align 8, !tbaa !30
  %1131 = icmp eq i8 %1130, 28
  %1132 = mul nuw nsw i64 %.02468, 3
  %1133 = add nuw nsw i64 %.02470, %1132
  %1134 = getelementptr inbounds [9 x i8], ptr @sqlite3VdbeExec.and_logic, i64 0, i64 %1133
  %1135 = getelementptr inbounds [9 x i8], ptr @sqlite3VdbeExec.or_logic, i64 0, i64 %1133
  %.12469.in.in = select i1 %1131, ptr %1134, ptr %1135
  %.12469.in = load i8, ptr %.12469.in.in, align 1, !tbaa !25
  %1136 = getelementptr inbounds i8, ptr %.02322, i64 12
  %1137 = load i32, ptr %1136, align 4, !tbaa !37
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1138
  %1140 = icmp eq i8 %.12469.in, 2
  br i1 %1140, label %1141, label %1146

1141:                                             ; preds = %1129
  %1142 = getelementptr inbounds i8, ptr %1139, i64 8
  %1143 = load i16, ptr %1142, align 8, !tbaa !35
  %1144 = and i16 %1143, 15872
  %1145 = or disjoint i16 %1144, 1
  store i16 %1145, ptr %1142, align 8, !tbaa !35
  br label %.thread3118

1146:                                             ; preds = %1129
  %1147 = zext i8 %.12469.in to i64
  store i64 %1147, ptr %1139, align 8, !tbaa !25
  %1148 = getelementptr inbounds i8, ptr %1139, i64 8
  %1149 = load i16, ptr %1148, align 8, !tbaa !35
  %1150 = and i16 %1149, 15872
  %1151 = or disjoint i16 %1150, 4
  store i16 %1151, ptr %1148, align 8, !tbaa !35
  br label %.thread3118

1152:                                             ; preds = %154
  %1153 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1154 = load i32, ptr %1153, align 4, !tbaa !34
  %1155 = sext i32 %1154 to i64
  %1156 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1155
  %1157 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1158 = load i32, ptr %1157, align 8, !tbaa !32
  %1159 = sext i32 %1158 to i64
  %1160 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1159
  call void @sqlite3VdbeMemSetNull(ptr noundef %1160) #6
  %1161 = getelementptr inbounds i8, ptr %1156, i64 8
  %1162 = load i16, ptr %1161, align 8, !tbaa !35
  %1163 = and i16 %1162, 1
  %1164 = icmp eq i16 %1163, 0
  br i1 %1164, label %1165, label %.thread3118

1165:                                             ; preds = %1152
  %1166 = getelementptr inbounds i8, ptr %1160, i64 8
  store i16 4, ptr %1166, align 8, !tbaa !35
  %1167 = call i64 @sqlite3VdbeIntValue(ptr noundef nonnull %1156) #6
  %.not2947 = icmp eq i64 %1167, 0
  %1168 = zext i1 %.not2947 to i64
  store i64 %1168, ptr %1160, align 8, !tbaa !25
  br label %.thread3118

1169:                                             ; preds = %154
  %1170 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1171 = load i32, ptr %1170, align 4, !tbaa !34
  %1172 = sext i32 %1171 to i64
  %1173 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1172
  %1174 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1175 = load i32, ptr %1174, align 8, !tbaa !32
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1176
  call void @sqlite3VdbeMemSetNull(ptr noundef %1177) #6
  %1178 = getelementptr inbounds i8, ptr %1173, i64 8
  %1179 = load i16, ptr %1178, align 8, !tbaa !35
  %1180 = and i16 %1179, 1
  %1181 = icmp eq i16 %1180, 0
  br i1 %1181, label %1182, label %.thread3118

1182:                                             ; preds = %1169
  %1183 = getelementptr inbounds i8, ptr %1177, i64 8
  store i16 4, ptr %1183, align 8, !tbaa !35
  %1184 = call i64 @sqlite3VdbeIntValue(ptr noundef nonnull %1173) #6
  %1185 = xor i64 %1184, -1
  store i64 %1185, ptr %1177, align 8, !tbaa !25
  br label %.thread3118

1186:                                             ; preds = %154
  %1187 = load ptr, ptr %95, align 8, !tbaa !38
  %.not2945 = icmp eq ptr %1187, null
  %1188 = load ptr, ptr %47, align 8, !tbaa !5
  br i1 %.not2945, label %1208, label %1189

1189:                                             ; preds = %1186
  %1190 = ptrtoint ptr %.02322 to i64
  %1191 = ptrtoint ptr %1188 to i64
  %1192 = sub i64 %1190, %1191
  %1193 = sdiv exact i64 %1192, 24
  %1194 = trunc i64 %1193 to i32
  %1195 = getelementptr inbounds i8, ptr %1187, i64 48
  %1196 = load ptr, ptr %1195, align 8, !tbaa !83
  %1197 = lshr i64 %1193, 3
  %1198 = and i64 %1197, 536870911
  %1199 = getelementptr inbounds i8, ptr %1196, i64 %1198
  %1200 = load i8, ptr %1199, align 1, !tbaa !25
  %1201 = zext i8 %1200 to i32
  %1202 = and i32 %1194, 7
  %1203 = shl nuw nsw i32 1, %1202
  %1204 = and i32 %1203, %1201
  %.not2946 = icmp eq i32 %1204, 0
  br i1 %.not2946, label %1205, label %.thread3154

1205:                                             ; preds = %1189
  %1206 = trunc nuw i32 %1203 to i8
  %1207 = or i8 %1200, %1206
  store i8 %1207, ptr %1199, align 1, !tbaa !25
  %.pre4656 = load ptr, ptr %47, align 8, !tbaa !5
  %.phi.trans.insert4657 = getelementptr inbounds i8, ptr %.pre4656, i64 4
  %.pre4658 = load i32, ptr %.phi.trans.insert4657, align 4, !tbaa !34
  br label %1214

1208:                                             ; preds = %1186
  %1209 = getelementptr inbounds i8, ptr %1188, i64 4
  %1210 = load i32, ptr %1209, align 4, !tbaa !34
  %1211 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1212 = load i32, ptr %1211, align 4, !tbaa !34
  %1213 = icmp eq i32 %1210, %1212
  br i1 %1213, label %.thread3154, label %1214

1214:                                             ; preds = %1205, %1208
  %1215 = phi i32 [ %.pre4658, %1205 ], [ %1210, %1208 ]
  %1216 = getelementptr inbounds i8, ptr %.02322, i64 4
  store i32 %1215, ptr %1216, align 4, !tbaa !34
  br label %.thread3118

1217:                                             ; preds = %154, %154
  %1218 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1219 = load i32, ptr %1218, align 4, !tbaa !34
  %1220 = sext i32 %1219 to i64
  %1221 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1220
  %1222 = getelementptr inbounds i8, ptr %1221, i64 8
  %1223 = load i16, ptr %1222, align 8, !tbaa !35
  %1224 = and i16 %1223, 1
  %.not2943 = icmp eq i16 %1224, 0
  br i1 %.not2943, label %1228, label %1225

1225:                                             ; preds = %1217
  %1226 = getelementptr inbounds i8, ptr %.02322, i64 12
  %1227 = load i32, ptr %1226, align 4, !tbaa !37
  br label %1237

1228:                                             ; preds = %1217
  %1229 = call double @sqlite3VdbeRealValue(ptr noundef nonnull %1221) #6
  %1230 = fcmp une double %1229, 0.000000e+00
  %1231 = zext i1 %1230 to i32
  %1232 = load i8, ptr %.02322, align 8, !tbaa !30
  %1233 = icmp eq i8 %1232, 22
  br i1 %1233, label %1234, label %1237

1234:                                             ; preds = %1228
  %1235 = xor i1 %1230, true
  %1236 = zext i1 %1235 to i32
  br label %1237

1237:                                             ; preds = %1228, %1234, %1225
  %.02471 = phi i32 [ %1227, %1225 ], [ %1236, %1234 ], [ %1231, %1228 ]
  %.not2944 = icmp eq i32 %.02471, 0
  br i1 %.not2944, label %.thread3118, label %.thread3154

1238:                                             ; preds = %154
  %1239 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1240 = load i32, ptr %1239, align 4, !tbaa !34
  %1241 = sext i32 %1240 to i64
  %1242 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1241, i32 1
  %1243 = load i16, ptr %1242, align 8, !tbaa !35
  %1244 = and i16 %1243, 1
  %.not2942 = icmp eq i16 %1244, 0
  br i1 %.not2942, label %.thread3118, label %.thread3154

1245:                                             ; preds = %154
  %1246 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1247 = load i32, ptr %1246, align 4, !tbaa !34
  %1248 = sext i32 %1247 to i64
  %1249 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1248, i32 1
  %1250 = load i16, ptr %1249, align 8, !tbaa !35
  %1251 = and i16 %1250, 1
  %1252 = icmp eq i16 %1251, 0
  br i1 %1252, label %.thread3154, label %.thread3118

1253:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #6
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #6
  %1254 = load ptr, ptr %84, align 8, !tbaa !84
  %1255 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1256 = load i32, ptr %1255, align 4, !tbaa !34
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds ptr, ptr %1254, i64 %1257
  %1259 = load ptr, ptr %1258, align 8, !tbaa !45
  store ptr %1259, ptr %4, align 8, !tbaa !45
  %1260 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1261 = load i32, ptr %1260, align 8, !tbaa !32
  store i32 %1261, ptr %3, align 4, !tbaa !27
  %1262 = call i32 @sqlite3VdbeCursorMoveto(ptr noundef nonnull %4, ptr noundef nonnull %3) #6
  %.not2926 = icmp eq i32 %1262, 0
  br i1 %.not2926, label %1263, label %.thread3163

1263:                                             ; preds = %1253
  %1264 = getelementptr inbounds i8, ptr %.02322, i64 12
  %1265 = load i32, ptr %1264, align 4, !tbaa !37
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1266
  %1268 = load ptr, ptr %4, align 8, !tbaa !45
  %1269 = getelementptr inbounds i8, ptr %1268, i64 88
  %1270 = load ptr, ptr %1269, align 8, !tbaa !85
  %1271 = getelementptr inbounds i8, ptr %1268, i64 32
  %1272 = load i32, ptr %1271, align 8, !tbaa !87
  %1273 = load i32, ptr %143, align 8, !tbaa !60
  %.not2927 = icmp eq i32 %1272, %1273
  br i1 %.not2927, label %._crit_edge4634, label %1274

._crit_edge4634:                                  ; preds = %1263
  %.phi.trans.insert4635 = getelementptr inbounds i8, ptr %1268, i64 74
  %.pre4636 = load i16, ptr %.phi.trans.insert4635, align 2, !tbaa !88
  br label %1345

1274:                                             ; preds = %1263
  %1275 = getelementptr inbounds i8, ptr %1268, i64 2
  %1276 = load i8, ptr %1275, align 2, !tbaa !89
  %.not2928 = icmp eq i8 %1276, 0
  br i1 %.not2928, label %1293, label %1277

1277:                                             ; preds = %1274
  %1278 = load i8, ptr %1268, align 8, !tbaa !90
  %1279 = icmp eq i8 %1278, 3
  br i1 %1279, label %1280, label %1292

1280:                                             ; preds = %1277
  %1281 = getelementptr inbounds i8, ptr %1268, i64 48
  %1282 = load i32, ptr %1281, align 8, !tbaa !25
  %1283 = sext i32 %1282 to i64
  %1284 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1283
  %1285 = getelementptr inbounds i8, ptr %1284, i64 12
  %1286 = load i32, ptr %1285, align 4, !tbaa !54
  store i32 %1286, ptr %7, align 4, !tbaa !27
  %1287 = getelementptr inbounds i8, ptr %1268, i64 108
  store i32 %1286, ptr %1287, align 4, !tbaa !91
  %1288 = getelementptr inbounds i8, ptr %1268, i64 104
  store i32 %1286, ptr %1288, align 8, !tbaa !92
  %1289 = getelementptr inbounds i8, ptr %1284, i64 16
  %1290 = load ptr, ptr %1289, align 8, !tbaa !53
  %1291 = getelementptr inbounds i8, ptr %1268, i64 96
  store ptr %1290, ptr %1291, align 8, !tbaa !93
  br label %1312

1292:                                             ; preds = %1277
  call void @sqlite3VdbeMemSetNull(ptr noundef %1267) #6
  br label %.thread3159

1293:                                             ; preds = %1274
  %1294 = getelementptr inbounds i8, ptr %1268, i64 48
  %1295 = load ptr, ptr %1294, align 8, !tbaa !25
  %1296 = call i32 @sqlite3BtreePayloadSize(ptr noundef %1295) #6
  %1297 = load ptr, ptr %4, align 8, !tbaa !45
  %1298 = getelementptr inbounds i8, ptr %1297, i64 104
  store i32 %1296, ptr %1298, align 8, !tbaa !92
  %1299 = call ptr @sqlite3BtreePayloadFetch(ptr noundef %1295, ptr noundef nonnull %7) #6
  %1300 = load ptr, ptr %4, align 8, !tbaa !45
  %1301 = getelementptr inbounds i8, ptr %1300, i64 96
  store ptr %1299, ptr %1301, align 8, !tbaa !93
  %1302 = getelementptr inbounds i8, ptr %1300, i64 104
  %1303 = load i32, ptr %1302, align 8, !tbaa !92
  %1304 = load i32, ptr %7, align 4, !tbaa !27
  %.not2929 = icmp ugt i32 %1303, %1304
  br i1 %.not2929, label %1307, label %1305

1305:                                             ; preds = %1293
  %1306 = getelementptr inbounds i8, ptr %1300, i64 108
  store i32 %1303, ptr %1306, align 4, !tbaa !91
  br label %1312

1307:                                             ; preds = %1293
  %1308 = load i32, ptr %121, align 8, !tbaa !27
  %1309 = icmp ugt i32 %1303, %1308
  br i1 %1309, label %.thread3166, label %1310

.thread3166:                                      ; preds = %1307
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  br label %.thread3298

1310:                                             ; preds = %1307
  %1311 = getelementptr inbounds i8, ptr %1300, i64 108
  store i32 %1304, ptr %1311, align 4, !tbaa !91
  br label %1312

1312:                                             ; preds = %1305, %1310, %1280
  %1313 = phi ptr [ %1299, %1305 ], [ %1299, %1310 ], [ %1290, %1280 ]
  %1314 = phi ptr [ %1300, %1305 ], [ %1300, %1310 ], [ %1268, %1280 ]
  %1315 = load i32, ptr %143, align 8, !tbaa !60
  %1316 = getelementptr inbounds i8, ptr %1314, i64 32
  store i32 %1315, ptr %1316, align 8, !tbaa !87
  %1317 = load i8, ptr %1313, align 1, !tbaa !25
  %1318 = icmp sgt i8 %1317, -1
  br i1 %1318, label %1319, label %1321

1319:                                             ; preds = %1312
  %1320 = zext nneg i8 %1317 to i32
  store i32 %1320, ptr %6, align 4, !tbaa !27
  br label %1323

1321:                                             ; preds = %1312
  %1322 = call zeroext i8 @sqlite3GetVarint32(ptr noundef nonnull %1313, ptr noundef nonnull %6) #6
  %.pre4632 = load ptr, ptr %4, align 8, !tbaa !45
  %.pre4633 = load i32, ptr %6, align 4, !tbaa !27
  br label %1323

1323:                                             ; preds = %1321, %1319
  %1324 = phi i32 [ %1320, %1319 ], [ %.pre4633, %1321 ]
  %1325 = phi ptr [ %1314, %1319 ], [ %.pre4632, %1321 ]
  %1326 = phi i8 [ 1, %1319 ], [ %1322, %1321 ]
  %1327 = zext i8 %1326 to i32
  %1328 = getelementptr inbounds i8, ptr %1325, i64 64
  store i32 %1327, ptr %1328, align 8, !tbaa !94
  %1329 = getelementptr inbounds i8, ptr %1325, i64 74
  store i16 0, ptr %1329, align 2, !tbaa !88
  store i32 %1324, ptr %1270, align 4, !tbaa !27
  %1330 = load i32, ptr %7, align 4, !tbaa !27
  %1331 = load i32, ptr %6, align 4, !tbaa !27
  %1332 = icmp ult i32 %1330, %1331
  br i1 %1332, label %1333, label %1341

1333:                                             ; preds = %1323
  %1334 = getelementptr inbounds i8, ptr %1325, i64 96
  store ptr null, ptr %1334, align 8, !tbaa !93
  %1335 = getelementptr inbounds i8, ptr %1325, i64 108
  store i32 0, ptr %1335, align 4, !tbaa !91
  %1336 = icmp ugt i32 %1331, 98307
  br i1 %1336, label %.thread3163.sink.split, label %1337

1337:                                             ; preds = %1333
  %1338 = getelementptr inbounds i8, ptr %1325, i64 104
  %1339 = load i32, ptr %1338, align 8, !tbaa !92
  %1340 = icmp ugt i32 %1331, %1339
  br i1 %1340, label %.thread3163.sink.split, label %1345

1341:                                             ; preds = %1323
  %.not2930 = icmp eq i32 %1331, 0
  br i1 %.not2930, label %1345, label %1342

1342:                                             ; preds = %1341
  %1343 = getelementptr inbounds i8, ptr %1325, i64 96
  %1344 = load ptr, ptr %1343, align 8, !tbaa !93
  br label %1366

1345:                                             ; preds = %._crit_edge4634, %1337, %1341
  %1346 = phi i16 [ 0, %1337 ], [ 0, %1341 ], [ %.pre4636, %._crit_edge4634 ]
  %1347 = phi ptr [ %1325, %1337 ], [ %1325, %1341 ], [ %1268, %._crit_edge4634 ]
  %1348 = zext i16 %1346 to i32
  %1349 = load i32, ptr %3, align 4, !tbaa !27
  %.not2931 = icmp slt i32 %1349, %1348
  br i1 %.not2931, label %1447, label %1350

1350:                                             ; preds = %1345
  %1351 = getelementptr inbounds i8, ptr %1347, i64 64
  %1352 = load i32, ptr %1351, align 8, !tbaa !94
  %1353 = load i32, ptr %1270, align 4, !tbaa !27
  %1354 = icmp ult i32 %1352, %1353
  br i1 %1354, label %1355, label %1433

1355:                                             ; preds = %1350
  %1356 = getelementptr inbounds i8, ptr %1347, i64 96
  %1357 = load ptr, ptr %1356, align 8, !tbaa !93
  %1358 = icmp eq ptr %1357, null
  br i1 %1358, label %1359, label %1366

1359:                                             ; preds = %1355
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %5, i8 0, i64 56, i1 false)
  %1360 = getelementptr inbounds i8, ptr %1347, i64 48
  %1361 = load ptr, ptr %1360, align 8, !tbaa !25
  %1362 = load i32, ptr %1270, align 4, !tbaa !27
  %1363 = call i32 @sqlite3VdbeMemFromBtree(ptr noundef %1361, i32 noundef 0, i32 noundef %1362, ptr noundef nonnull %5) #6
  %.not2932 = icmp eq i32 %1363, 0
  br i1 %.not2932, label %1364, label %.thread3163

1364:                                             ; preds = %1359
  %1365 = load ptr, ptr %144, align 8, !tbaa !53
  %.pre4637 = load ptr, ptr %4, align 8, !tbaa !45
  %.phi.trans.insert4638 = getelementptr inbounds i8, ptr %.pre4637, i64 74
  %.pre4639 = load i16, ptr %.phi.trans.insert4638, align 2, !tbaa !88
  %.pre4640 = load i32, ptr %1270, align 4, !tbaa !27
  br label %1366

1366:                                             ; preds = %1355, %1364, %1342
  %1367 = phi i32 [ %.pre4640, %1364 ], [ %1324, %1342 ], [ %1353, %1355 ]
  %1368 = phi i16 [ %.pre4639, %1364 ], [ 0, %1342 ], [ %1346, %1355 ]
  %1369 = phi ptr [ %.pre4637, %1364 ], [ %1325, %1342 ], [ %1347, %1355 ]
  %.02477 = phi ptr [ %1365, %1364 ], [ %1344, %1342 ], [ %1357, %1355 ]
  %1370 = zext i16 %1368 to i64
  %1371 = getelementptr inbounds i32, ptr %1270, i64 %1370
  %1372 = load i32, ptr %1371, align 4, !tbaa !27
  %1373 = zext i32 %1372 to i64
  %1374 = getelementptr inbounds i8, ptr %1369, i64 64
  %1375 = load i32, ptr %1374, align 8, !tbaa !94
  %1376 = zext i32 %1375 to i64
  %1377 = getelementptr inbounds i8, ptr %.02477, i64 %1376
  %1378 = zext i32 %1367 to i64
  %1379 = getelementptr inbounds i8, ptr %.02477, i64 %1378
  br label %1380

1380:                                             ; preds = %1395, %1366
  %indvars.iv4595 = phi i64 [ %indvars.iv.next4596, %1395 ], [ %1370, %1366 ]
  %.02482 = phi i64 [ %.12483, %1395 ], [ %1373, %1366 ]
  %.02478 = phi ptr [ %.12479, %1395 ], [ %1377, %1366 ]
  %1381 = load i8, ptr %.02478, align 1, !tbaa !25
  %1382 = zext i8 %1381 to i32
  store i32 %1382, ptr %8, align 4, !tbaa !27
  %1383 = icmp sgt i8 %1381, -1
  br i1 %1383, label %1384, label %1388

1384:                                             ; preds = %1380
  %1385 = getelementptr inbounds i8, ptr %.02478, i64 1
  %1386 = call zeroext i8 @sqlite3VdbeOneByteSerialTypeLen(i8 noundef zeroext %1381) #6
  %1387 = zext i8 %1386 to i64
  br label %1395

1388:                                             ; preds = %1380
  %1389 = call zeroext i8 @sqlite3GetVarint32(ptr noundef nonnull %.02478, ptr noundef nonnull %8) #6
  %1390 = zext i8 %1389 to i64
  %1391 = getelementptr inbounds i8, ptr %.02478, i64 %1390
  %1392 = load i32, ptr %8, align 4, !tbaa !27
  %1393 = call i32 @sqlite3VdbeSerialTypeLen(i32 noundef %1392) #6
  %1394 = zext i32 %1393 to i64
  br label %1395

1395:                                             ; preds = %1388, %1384
  %.pn = phi i64 [ %1387, %1384 ], [ %1394, %1388 ]
  %.12479 = phi ptr [ %1385, %1384 ], [ %1391, %1388 ]
  %.12483 = add i64 %.pn, %.02482
  %1396 = load i32, ptr %8, align 4, !tbaa !27
  %1397 = load ptr, ptr %4, align 8, !tbaa !45
  %1398 = getelementptr inbounds i8, ptr %1397, i64 112
  %indvars.iv.next4596 = add nuw nsw i64 %indvars.iv4595, 1
  %1399 = getelementptr inbounds [1 x i32], ptr %1398, i64 0, i64 %indvars.iv4595
  store i32 %1396, ptr %1399, align 4, !tbaa !27
  %1400 = trunc i64 %.12483 to i32
  %1401 = getelementptr inbounds i32, ptr %1270, i64 %indvars.iv.next4596
  store i32 %1400, ptr %1401, align 4, !tbaa !27
  %1402 = load i32, ptr %3, align 4, !tbaa !27
  %1403 = sext i32 %1402 to i64
  %1404 = icmp slt i64 %indvars.iv4595, %1403
  %1405 = icmp ult ptr %.12479, %1379
  %1406 = select i1 %1404, i1 %1405, i1 false
  br i1 %1406, label %1380, label %1407, !llvm.loop !95

1407:                                             ; preds = %1395
  br i1 %1405, label %._crit_edge4641, label %1408

._crit_edge4641:                                  ; preds = %1407
  %.phi.trans.insert4642 = getelementptr inbounds i8, ptr %1397, i64 104
  %.pre4643 = load i32, ptr %.phi.trans.insert4642, align 8, !tbaa !92
  %.pre4670 = zext i32 %.pre4643 to i64
  br label %1414

1408:                                             ; preds = %1407
  %1409 = icmp ugt ptr %.12479, %1379
  br i1 %1409, label %1416, label %1410

1410:                                             ; preds = %1408
  %1411 = getelementptr inbounds i8, ptr %1397, i64 104
  %1412 = load i32, ptr %1411, align 8, !tbaa !92
  %1413 = zext i32 %1412 to i64
  %.not2934 = icmp eq i64 %.12483, %1413
  br i1 %.not2934, label %1414, label %1416

1414:                                             ; preds = %._crit_edge4641, %1410
  %.pre-phi = phi i64 [ %.pre4670, %._crit_edge4641 ], [ %1413, %1410 ]
  %1415 = icmp ugt i64 %.12483, %.pre-phi
  br i1 %1415, label %1416, label %1421

1416:                                             ; preds = %1414, %1410, %1408
  %1417 = getelementptr inbounds i8, ptr %1397, i64 96
  %1418 = load ptr, ptr %1417, align 8, !tbaa !93
  %1419 = icmp eq ptr %1418, null
  br i1 %1419, label %1420, label %.thread3163.sink.split

1420:                                             ; preds = %1416
  call void @sqlite3VdbeMemRelease(ptr noundef nonnull %5) #6
  br label %.thread3163.sink.split

1421:                                             ; preds = %1414
  %1422 = trunc i64 %indvars.iv.next4596 to i16
  %1423 = getelementptr inbounds i8, ptr %1397, i64 74
  store i16 %1422, ptr %1423, align 2, !tbaa !88
  %1424 = ptrtoint ptr %.12479 to i64
  %1425 = ptrtoint ptr %.02477 to i64
  %1426 = sub i64 %1424, %1425
  %1427 = trunc i64 %1426 to i32
  %1428 = getelementptr inbounds i8, ptr %1397, i64 64
  store i32 %1427, ptr %1428, align 8, !tbaa !94
  %1429 = getelementptr inbounds i8, ptr %1397, i64 96
  %1430 = load ptr, ptr %1429, align 8, !tbaa !93
  %1431 = icmp eq ptr %1430, null
  br i1 %1431, label %1432, label %1434

1432:                                             ; preds = %1421
  call void @sqlite3VdbeMemRelease(ptr noundef nonnull %5) #6
  %.pre4644 = load ptr, ptr %4, align 8, !tbaa !45
  %.phi.trans.insert4645 = getelementptr inbounds i8, ptr %.pre4644, i64 74
  %.pre4646 = load i16, ptr %.phi.trans.insert4645, align 2, !tbaa !88
  %.pre4647 = load i32, ptr %3, align 4, !tbaa !27
  br label %1434

1433:                                             ; preds = %1350
  store i32 0, ptr %8, align 4, !tbaa !27
  br label %1434

1434:                                             ; preds = %1421, %1432, %1433
  %1435 = phi i32 [ %1402, %1421 ], [ %.pre4647, %1432 ], [ %1349, %1433 ]
  %1436 = phi i16 [ %1422, %1421 ], [ %.pre4646, %1432 ], [ %1346, %1433 ]
  %1437 = phi ptr [ %1397, %1421 ], [ %.pre4644, %1432 ], [ %1347, %1433 ]
  %1438 = zext i16 %1436 to i32
  %.not2935 = icmp slt i32 %1435, %1438
  br i1 %.not2935, label %1452, label %1439

1439:                                             ; preds = %1434
  %1440 = getelementptr inbounds i8, ptr %.02322, i64 1
  %1441 = load i8, ptr %1440, align 1, !tbaa !52
  %1442 = icmp eq i8 %1441, -7
  br i1 %1442, label %1443, label %1446

1443:                                             ; preds = %1439
  %1444 = getelementptr inbounds i8, ptr %.02322, i64 16
  %1445 = load ptr, ptr %1444, align 8, !tbaa !25
  call void @sqlite3VdbeMemShallowCopy(ptr noundef %1267, ptr noundef %1445, i32 noundef 2048) #6
  br label %.thread3159

1446:                                             ; preds = %1439
  call void @sqlite3VdbeMemSetNull(ptr noundef %1267) #6
  br label %.thread3159

1447:                                             ; preds = %1345
  %1448 = getelementptr inbounds i8, ptr %1347, i64 112
  %1449 = sext i32 %1349 to i64
  %1450 = getelementptr inbounds [1 x i32], ptr %1448, i64 0, i64 %1449
  %1451 = load i32, ptr %1450, align 4, !tbaa !27
  store i32 %1451, ptr %8, align 4, !tbaa !27
  br label %1452

1452:                                             ; preds = %1434, %1447
  %1453 = phi i32 [ %1435, %1434 ], [ %1349, %1447 ]
  %1454 = phi ptr [ %1437, %1434 ], [ %1347, %1447 ]
  %1455 = getelementptr inbounds i8, ptr %1267, i64 8
  %1456 = load i16, ptr %1455, align 8, !tbaa !35
  %1457 = and i16 %1456, 9312
  %.not2936 = icmp eq i16 %1457, 0
  br i1 %.not2936, label %1459, label %1458

1458:                                             ; preds = %1452
  call void @sqlite3VdbeMemSetNull(ptr noundef nonnull %1267) #6
  %.pre4648 = load ptr, ptr %4, align 8, !tbaa !45
  %.pre4649 = load i32, ptr %3, align 4, !tbaa !27
  br label %1459

1459:                                             ; preds = %1458, %1452
  %1460 = phi i32 [ %.pre4649, %1458 ], [ %1453, %1452 ]
  %1461 = phi ptr [ %.pre4648, %1458 ], [ %1454, %1452 ]
  %1462 = getelementptr inbounds i8, ptr %1461, i64 108
  %1463 = load i32, ptr %1462, align 4, !tbaa !91
  %1464 = sext i32 %1460 to i64
  %1465 = getelementptr i32, ptr %1270, i64 %1464
  %1466 = getelementptr i8, ptr %1465, i64 4
  %1467 = load i32, ptr %1466, align 4, !tbaa !27
  %.not2937 = icmp ult i32 %1463, %1467
  br i1 %.not2937, label %1507, label %1468

1468:                                             ; preds = %1459
  %1469 = getelementptr inbounds i8, ptr %1461, i64 96
  %1470 = load ptr, ptr %1469, align 8, !tbaa !93
  %1471 = load i32, ptr %1465, align 4, !tbaa !27
  %1472 = zext i32 %1471 to i64
  %1473 = getelementptr inbounds i8, ptr %1470, i64 %1472
  %1474 = load i32, ptr %8, align 4, !tbaa !27
  %1475 = icmp ult i32 %1474, 12
  br i1 %1475, label %1476, label %1478

1476:                                             ; preds = %1468
  %1477 = call i32 @sqlite3VdbeSerialGet(ptr noundef %1473, i32 noundef %1474, ptr noundef nonnull %1267) #6
  br label %.thread3159

1478:                                             ; preds = %1468
  %1479 = add i32 %1474, -12
  %1480 = lshr i32 %1479, 1
  %1481 = getelementptr inbounds i8, ptr %1267, i64 12
  store i32 %1480, ptr %1481, align 4, !tbaa !54
  %1482 = getelementptr inbounds i8, ptr %1267, i64 10
  store i8 %51, ptr %1482, align 2, !tbaa !55
  %1483 = getelementptr inbounds i8, ptr %1267, i64 32
  %1484 = load i32, ptr %1483, align 8, !tbaa !51
  %1485 = add nuw nsw i32 %1480, 2
  %1486 = icmp slt i32 %1484, %1485
  br i1 %1486, label %1487, label %1489

1487:                                             ; preds = %1478
  store i16 1, ptr %1455, align 8, !tbaa !35
  %1488 = call i32 @sqlite3VdbeMemGrow(ptr noundef nonnull %1267, i32 noundef %1485, i32 noundef 0) #6
  %.not2941 = icmp eq i32 %1488, 0
  br i1 %.not2941, label %._crit_edge4650, label %1540

._crit_edge4650:                                  ; preds = %1487
  %.phi.trans.insert4651 = getelementptr inbounds i8, ptr %1267, i64 16
  %.pre4652 = load ptr, ptr %.phi.trans.insert4651, align 8, !tbaa !53
  br label %1493

1489:                                             ; preds = %1478
  %1490 = getelementptr inbounds i8, ptr %1267, i64 24
  %1491 = load ptr, ptr %1490, align 8, !tbaa !96
  %1492 = getelementptr inbounds i8, ptr %1267, i64 16
  store ptr %1491, ptr %1492, align 8, !tbaa !53
  br label %1493

1493:                                             ; preds = %._crit_edge4650, %1489
  %1494 = phi ptr [ %.pre4652, %._crit_edge4650 ], [ %1491, %1489 ]
  %1495 = getelementptr inbounds i8, ptr %1267, i64 16
  %1496 = zext nneg i32 %1480 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1494, ptr align 1 %1473, i64 %1496, i1 false)
  %1497 = load ptr, ptr %1495, align 8, !tbaa !53
  %1498 = getelementptr inbounds i8, ptr %1497, i64 %1496
  store i8 0, ptr %1498, align 1, !tbaa !25
  %1499 = load ptr, ptr %1495, align 8, !tbaa !53
  %1500 = getelementptr inbounds i8, ptr %1499, i64 %1496
  %1501 = getelementptr inbounds i8, ptr %1500, i64 1
  store i8 0, ptr %1501, align 1, !tbaa !25
  %1502 = load i32, ptr %8, align 4, !tbaa !27
  %1503 = and i32 %1502, 1
  %1504 = zext nneg i32 %1503 to i64
  %1505 = getelementptr inbounds [2 x i16], ptr @sqlite3VdbeExec.aFlag, i64 0, i64 %1504
  %1506 = load i16, ptr %1505, align 2, !tbaa !97
  store i16 %1506, ptr %1455, align 8, !tbaa !35
  br label %.thread3159

1507:                                             ; preds = %1459
  %1508 = getelementptr inbounds i8, ptr %1267, i64 10
  store i8 %51, ptr %1508, align 2, !tbaa !55
  %1509 = getelementptr inbounds i8, ptr %.02322, i64 2
  %1510 = load i16, ptr %1509, align 2, !tbaa !44
  %1511 = and i16 %1510, 192
  %.not2938 = icmp eq i16 %1511, 0
  %.pre4653 = load i32, ptr %8, align 4, !tbaa !27
  br i1 %.not2938, label %1517, label %1512

1512:                                             ; preds = %1507
  %1513 = icmp ult i32 %.pre4653, 12
  %1514 = and i32 %.pre4653, 1
  %1515 = icmp ne i32 %1514, 0
  %or.cond3049.not3514 = or i1 %1513, %1515
  %1516 = and i16 %1510, 128
  %.not2939 = icmp eq i16 %1516, 0
  %or.cond3508 = and i1 %.not2939, %or.cond3049.not3514
  br i1 %or.cond3508, label %1517, label %1520

1517:                                             ; preds = %1512, %1507
  %1518 = call i32 @sqlite3VdbeSerialTypeLen(i32 noundef %.pre4653) #6
  %1519 = icmp eq i32 %1518, 0
  br i1 %1519, label %._crit_edge4654, label %1523

._crit_edge4654:                                  ; preds = %1517
  %.pre4655 = load i32, ptr %8, align 4, !tbaa !27
  br label %1520

1520:                                             ; preds = %._crit_edge4654, %1512
  %1521 = phi i32 [ %.pre4655, %._crit_edge4654 ], [ %.pre4653, %1512 ]
  %1522 = call i32 @sqlite3VdbeSerialGet(ptr noundef nonnull @sqlite3VdbeExec.aZero, i32 noundef %1521, ptr noundef nonnull %1267) #6
  br label %.thread3159

1523:                                             ; preds = %1517
  %1524 = load ptr, ptr %4, align 8, !tbaa !45
  %1525 = getelementptr inbounds i8, ptr %1524, i64 48
  %1526 = load ptr, ptr %1525, align 8, !tbaa !25
  %1527 = load i32, ptr %3, align 4, !tbaa !27
  %1528 = sext i32 %1527 to i64
  %1529 = getelementptr inbounds i32, ptr %1270, i64 %1528
  %1530 = load i32, ptr %1529, align 4, !tbaa !27
  %1531 = call i32 @sqlite3VdbeMemFromBtree(ptr noundef %1526, i32 noundef %1530, i32 noundef %1518, ptr noundef nonnull %1267) #6
  %.not2940 = icmp eq i32 %1531, 0
  br i1 %.not2940, label %1532, label %.thread3163

1532:                                             ; preds = %1523
  %1533 = getelementptr inbounds i8, ptr %1267, i64 16
  %1534 = load ptr, ptr %1533, align 8, !tbaa !53
  %1535 = load i32, ptr %8, align 4, !tbaa !27
  %1536 = call i32 @sqlite3VdbeSerialGet(ptr noundef %1534, i32 noundef %1535, ptr noundef nonnull %1267) #6
  %1537 = load i16, ptr %1455, align 8, !tbaa !35
  %1538 = and i16 %1537, -4097
  store i16 %1538, ptr %1455, align 8, !tbaa !35
  br label %.thread3159

.thread3159:                                      ; preds = %1493, %1476, %1532, %1520, %1443, %1446, %1292
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  br label %.thread3118

.thread3163.sink.split:                           ; preds = %1333, %1337, %1416, %1420
  %.sink = phi i32 [ 2605, %1420 ], [ 2605, %1416 ], [ 2546, %1337 ], [ 2546, %1333 ]
  %1539 = call i32 @sqlite3CorruptError(i32 noundef %.sink) #6
  br label %.thread3163

.thread3163:                                      ; preds = %1253, %1359, %1523, %.thread3163.sink.split
  %.16.ph = phi i32 [ %1539, %.thread3163.sink.split ], [ %1262, %1253 ], [ %1363, %1359 ], [ %1531, %1523 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  br label %.thread3123

1540:                                             ; preds = %1487
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  br label %.critedge31

1541:                                             ; preds = %154
  %1542 = getelementptr inbounds i8, ptr %.02322, i64 16
  %1543 = load ptr, ptr %1542, align 8, !tbaa !25
  %1544 = load i8, ptr %1543, align 1, !tbaa !25
  %.not29254042 = icmp eq i8 %1544, 0
  br i1 %.not29254042, label %.thread3118, label %.lr.ph4046.preheader

.lr.ph4046.preheader:                             ; preds = %1541
  %1545 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1546 = load i32, ptr %1545, align 4, !tbaa !34
  %1547 = sext i32 %1546 to i64
  %1548 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1547
  br label %.lr.ph4046

.lr.ph4046:                                       ; preds = %.lr.ph4046.preheader, %.lr.ph4046
  %1549 = phi i8 [ %1552, %.lr.ph4046 ], [ %1544, %.lr.ph4046.preheader ]
  %.223734044 = phi ptr [ %1551, %.lr.ph4046 ], [ %1548, %.lr.ph4046.preheader ]
  %.024844043 = phi ptr [ %1550, %.lr.ph4046 ], [ %1543, %.lr.ph4046.preheader ]
  %1550 = getelementptr inbounds i8, ptr %.024844043, i64 1
  call void @applyAffinity(ptr noundef %.223734044, i8 noundef signext %1549, i8 noundef zeroext %51)
  %1551 = getelementptr inbounds i8, ptr %.223734044, i64 56
  %1552 = load i8, ptr %1550, align 1, !tbaa !25
  %.not2925 = icmp eq i8 %1552, 0
  br i1 %.not2925, label %.thread3118, label %.lr.ph4046, !llvm.loop !98

1553:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #6
  %1554 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1555 = load i32, ptr %1554, align 4, !tbaa !34
  %1556 = getelementptr inbounds i8, ptr %.02322, i64 16
  %1557 = load ptr, ptr %1556, align 8, !tbaa !25
  %1558 = sext i32 %1555 to i64
  %1559 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1558
  %1560 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1561 = load i32, ptr %1560, align 8, !tbaa !32
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr %struct.Mem, ptr %1559, i64 %1562
  %1564 = getelementptr i8, ptr %1563, i64 -56
  %1565 = load i8, ptr %134, align 1, !tbaa !99
  %1566 = zext i8 %1565 to i32
  %1567 = getelementptr inbounds i8, ptr %.02322, i64 12
  %1568 = load i32, ptr %1567, align 4, !tbaa !37
  %1569 = sext i32 %1568 to i64
  %1570 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %1569
  %.not2917 = icmp eq ptr %1557, null
  br i1 %.not2917, label %.loopexit3523.preheader, label %.preheader3522.preheader

.preheader3522.preheader:                         ; preds = %1553
  %.pre4631 = load i8, ptr %1557, align 1, !tbaa !25
  br label %.preheader3522

.preheader3522:                                   ; preds = %.preheader3522.preheader, %.preheader3522
  %1571 = phi i8 [ %1574, %.preheader3522 ], [ %.pre4631, %.preheader3522.preheader ]
  %.02495 = phi ptr [ %1573, %.preheader3522 ], [ %1557, %.preheader3522.preheader ]
  %.02485 = phi ptr [ %1572, %.preheader3522 ], [ %1559, %.preheader3522.preheader ]
  %1572 = getelementptr inbounds i8, ptr %.02485, i64 56
  %1573 = getelementptr inbounds i8, ptr %.02495, i64 1
  call void @applyAffinity(ptr noundef %.02485, i8 noundef signext %1571, i8 noundef zeroext %51)
  %1574 = load i8, ptr %1573, align 1, !tbaa !25
  %.not2918 = icmp eq i8 %1574, 0
  br i1 %.not2918, label %.loopexit3523.preheader, label %.preheader3522, !llvm.loop !100

.loopexit3523.preheader:                          ; preds = %.preheader3522, %1553
  br label %.loopexit3523

.loopexit3523:                                    ; preds = %.loopexit3523.preheader, %1597
  %.02493 = phi i64 [ %.12494, %1597 ], [ 0, %.loopexit3523.preheader ]
  %.02490 = phi i32 [ %1599, %1597 ], [ 0, %.loopexit3523.preheader ]
  %.02489 = phi i64 [ %1592, %1597 ], [ 0, %.loopexit3523.preheader ]
  %.12486 = phi ptr [ %1601, %1597 ], [ %1564, %.loopexit3523.preheader ]
  %1575 = call i32 @sqlite3VdbeSerialType(ptr noundef %.12486, i32 noundef %1566, ptr noundef nonnull %9) #6
  %1576 = getelementptr inbounds i8, ptr %.12486, i64 36
  store i32 %1575, ptr %1576, align 4, !tbaa !101
  %1577 = getelementptr inbounds i8, ptr %.12486, i64 8
  %1578 = load i16, ptr %1577, align 8, !tbaa !35
  %1579 = and i16 %1578, 16384
  %.not2919 = icmp eq i16 %1579, 0
  br i1 %.not2919, label %1589, label %1580

1580:                                             ; preds = %.loopexit3523
  %.not2920 = icmp eq i64 %.02489, 0
  br i1 %.not2920, label %1583, label %1581

1581:                                             ; preds = %1580
  %1582 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef nonnull %.12486) #6
  %.not2921 = icmp eq i32 %1582, 0
  br i1 %.not2921, label %1589, label %.thread3170

1583:                                             ; preds = %1580
  %1584 = load i32, ptr %.12486, align 8, !tbaa !25
  %1585 = sext i32 %1584 to i64
  %1586 = add nsw i64 %.02493, %1585
  %1587 = load i32, ptr %9, align 4, !tbaa !27
  %1588 = sub i32 %1587, %1584
  store i32 %1588, ptr %9, align 4, !tbaa !27
  br label %1589

1589:                                             ; preds = %1583, %1581, %.loopexit3523
  %.12494 = phi i64 [ %.02493, %1581 ], [ %1586, %1583 ], [ %.02493, %.loopexit3523 ]
  %1590 = load i32, ptr %9, align 4, !tbaa !27
  %1591 = zext i32 %1590 to i64
  %1592 = add i64 %.02489, %1591
  %1593 = icmp ult i32 %1575, 128
  br i1 %1593, label %1597, label %1594

1594:                                             ; preds = %1589
  %1595 = zext i32 %1575 to i64
  %1596 = call i32 @sqlite3VarintLen(i64 noundef %1595) #6
  br label %1597

1597:                                             ; preds = %1589, %1594
  %1598 = phi i32 [ %1596, %1594 ], [ 1, %1589 ]
  %1599 = add nsw i32 %1598, %.02490
  %1600 = icmp eq ptr %.12486, %1559
  %1601 = getelementptr inbounds i8, ptr %.12486, i64 -56
  br i1 %1600, label %1602, label %.loopexit3523

1602:                                             ; preds = %1597
  %1603 = icmp slt i32 %1599, 127
  br i1 %1603, label %1604, label %1606

1604:                                             ; preds = %1602
  %1605 = add nsw i32 %1599, 1
  br label %1614

1606:                                             ; preds = %1602
  %1607 = zext nneg i32 %1599 to i64
  %1608 = call i32 @sqlite3VarintLen(i64 noundef %1607) #6
  %1609 = add nsw i32 %1608, %1599
  %1610 = sext i32 %1609 to i64
  %1611 = call i32 @sqlite3VarintLen(i64 noundef %1610) #6
  %1612 = icmp slt i32 %1608, %1611
  %1613 = zext i1 %1612 to i32
  %spec.select3050 = add nsw i32 %1609, %1613
  br label %1614

1614:                                             ; preds = %1606, %1604
  %.12491 = phi i32 [ %1605, %1604 ], [ %spec.select3050, %1606 ]
  %1615 = sext i32 %.12491 to i64
  %1616 = add i64 %1592, %1615
  %1617 = add nsw i64 %1616, %.12494
  %1618 = load i32, ptr %121, align 8, !tbaa !27
  %1619 = sext i32 %1618 to i64
  %1620 = icmp sgt i64 %1617, %1619
  br i1 %1620, label %1663, label %1621

1621:                                             ; preds = %1614
  %1622 = trunc i64 %1616 to i32
  %1623 = call i32 @sqlite3VdbeMemClearAndResize(ptr noundef %1570, i32 noundef %1622) #6
  %.not2922 = icmp eq i32 %1623, 0
  br i1 %.not2922, label %1624, label %.thread3170

1624:                                             ; preds = %1621
  %1625 = getelementptr inbounds i8, ptr %1570, i64 16
  %1626 = load ptr, ptr %1625, align 8, !tbaa !53
  %1627 = icmp ult i32 %.12491, 128
  br i1 %1627, label %1628, label %1630

1628:                                             ; preds = %1624
  %1629 = trunc nuw nsw i32 %.12491 to i8
  store i8 %1629, ptr %1626, align 1, !tbaa !25
  br label %1632

1630:                                             ; preds = %1624
  %1631 = call i32 @sqlite3PutVarint(ptr noundef %1626, i64 noundef %1615) #6
  br label %1632

1632:                                             ; preds = %1630, %1628
  %1633 = phi i32 [ 1, %1628 ], [ %1631, %1630 ]
  %1634 = and i32 %1633, 255
  br label %1635

1635:                                             ; preds = %1648, %1632
  %.02499 = phi i32 [ %.12491, %1632 ], [ %1655, %1648 ]
  %.02496 = phi i32 [ %1634, %1632 ], [ %1651, %1648 ]
  %.22487 = phi ptr [ %1559, %1632 ], [ %1656, %1648 ]
  %1636 = getelementptr inbounds i8, ptr %.22487, i64 36
  %1637 = load i32, ptr %1636, align 4, !tbaa !101
  %1638 = icmp ult i32 %1637, 128
  br i1 %1638, label %1639, label %1643

1639:                                             ; preds = %1635
  %1640 = trunc nuw nsw i32 %1637 to i8
  %1641 = zext nneg i32 %.02496 to i64
  %1642 = getelementptr inbounds i8, ptr %1626, i64 %1641
  store i8 %1640, ptr %1642, align 1, !tbaa !25
  br label %1648

1643:                                             ; preds = %1635
  %1644 = zext nneg i32 %.02496 to i64
  %1645 = getelementptr inbounds i8, ptr %1626, i64 %1644
  %1646 = zext i32 %1637 to i64
  %1647 = call i32 @sqlite3PutVarint(ptr noundef %1645, i64 noundef %1646) #6
  br label %1648

1648:                                             ; preds = %1643, %1639
  %1649 = phi i32 [ 1, %1639 ], [ %1647, %1643 ]
  %1650 = and i32 %1649, 255
  %1651 = add nuw nsw i32 %1650, %.02496
  %1652 = sext i32 %.02499 to i64
  %1653 = getelementptr inbounds i8, ptr %1626, i64 %1652
  %1654 = call i32 @sqlite3VdbeSerialPut(ptr noundef %1653, ptr noundef nonnull %.22487, i32 noundef %1637) #6
  %1655 = add i32 %1654, %.02499
  %1656 = getelementptr inbounds i8, ptr %.22487, i64 56
  %.not2923 = icmp ugt ptr %1656, %1564
  br i1 %.not2923, label %1657, label %1635, !llvm.loop !102

1657:                                             ; preds = %1648
  %1658 = getelementptr inbounds i8, ptr %1570, i64 12
  store i32 %1622, ptr %1658, align 4, !tbaa !54
  %1659 = getelementptr inbounds i8, ptr %1570, i64 8
  store i16 16, ptr %1659, align 8, !tbaa !35
  %.not2924 = icmp eq i64 %.12494, 0
  br i1 %.not2924, label %.thread3172, label %1660

1660:                                             ; preds = %1657
  %1661 = trunc i64 %.12494 to i32
  store i32 %1661, ptr %1570, align 8, !tbaa !25
  store i16 16400, ptr %1659, align 8, !tbaa !35
  br label %.thread3172

.thread3172:                                      ; preds = %1657, %1660
  %1662 = getelementptr inbounds i8, ptr %1570, i64 10
  store i8 1, ptr %1662, align 2, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #6
  br label %.thread3118

.thread3170:                                      ; preds = %1621, %1581
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #6
  br label %.critedge31

1663:                                             ; preds = %1614
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #6
  br label %.thread3298

1664:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  %1665 = load ptr, ptr %84, align 8, !tbaa !84
  %1666 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1667 = load i32, ptr %1666, align 4, !tbaa !34
  %1668 = sext i32 %1667 to i64
  %1669 = getelementptr inbounds ptr, ptr %1665, i64 %1668
  %1670 = load ptr, ptr %1669, align 8, !tbaa !45
  %1671 = getelementptr inbounds i8, ptr %1670, i64 48
  %1672 = load ptr, ptr %1671, align 8, !tbaa !25
  store i64 0, ptr %10, align 8, !tbaa !48
  %1673 = call i32 @sqlite3BtreeCount(ptr noundef %1672, ptr noundef nonnull %10) #6
  %.not2916 = icmp eq i32 %1673, 0
  br i1 %.not2916, label %.thread3174, label %1676

.thread3174:                                      ; preds = %1664
  %1674 = call ptr @out2Prerelease(ptr noundef nonnull %0, ptr noundef nonnull %.02322)
  %1675 = load i64, ptr %10, align 8, !tbaa !48
  store i64 %1675, ptr %1674, align 8, !tbaa !25
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %.thread3118

1676:                                             ; preds = %1664
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %.thread3123

1677:                                             ; preds = %154
  %1678 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1679 = load i32, ptr %1678, align 4, !tbaa !34
  %1680 = getelementptr inbounds i8, ptr %.02322, i64 16
  %1681 = load ptr, ptr %1680, align 8, !tbaa !25
  %1682 = icmp eq i32 %1679, 0
  br i1 %1682, label %1683, label %1711

1683:                                             ; preds = %1677
  %1684 = load i32, ptr %140, align 4, !tbaa !103
  %1685 = icmp sgt i32 %1684, 0
  br i1 %1685, label %1686, label %1687

1686:                                             ; preds = %1683
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %0, ptr noundef nonnull @.str.8) #6
  br label %.thread3123

1687:                                             ; preds = %1683
  %1688 = call i32 @sqlite3Strlen30(ptr noundef %1681) #6
  %1689 = load i32, ptr %136, align 8, !tbaa !104
  %1690 = load i32, ptr %137, align 4, !tbaa !105
  %1691 = add nsw i32 %1690, %1689
  %1692 = call i32 @sqlite3VtabSavepoint(ptr noundef nonnull %49, i32 noundef 0, i32 noundef %1691) #6
  %.not2912 = icmp eq i32 %1692, 0
  br i1 %.not2912, label %1693, label %.thread3123

1693:                                             ; preds = %1687
  %1694 = sext i32 %1688 to i64
  %1695 = add nsw i64 %1694, 33
  %1696 = call ptr @sqlite3DbMallocRawNN(ptr noundef nonnull %49, i64 noundef %1695) #6
  %.not2913 = icmp eq ptr %1696, null
  br i1 %.not2913, label %.thread3118, label %1697

1697:                                             ; preds = %1693
  %1698 = getelementptr inbounds i8, ptr %1696, i64 32
  store ptr %1698, ptr %1696, align 8, !tbaa !106
  %1699 = add nsw i32 %1688, 1
  %1700 = sext i32 %1699 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %1698, ptr align 1 %1681, i64 %1700, i1 false)
  %1701 = load i8, ptr %91, align 1, !tbaa !108
  %.not2914 = icmp eq i8 %1701, 0
  br i1 %.not2914, label %1703, label %1702

1702:                                             ; preds = %1697
  store i8 0, ptr %91, align 1, !tbaa !108
  store i8 1, ptr %141, align 1, !tbaa !109
  br label %1706

1703:                                             ; preds = %1697
  %1704 = load i32, ptr %137, align 4, !tbaa !105
  %1705 = add nsw i32 %1704, 1
  store i32 %1705, ptr %137, align 4, !tbaa !105
  br label %1706

1706:                                             ; preds = %1703, %1702
  %1707 = load ptr, ptr %139, align 8, !tbaa !110
  %1708 = getelementptr inbounds i8, ptr %1696, i64 24
  store ptr %1707, ptr %1708, align 8, !tbaa !111
  store ptr %1696, ptr %139, align 8, !tbaa !110
  %1709 = getelementptr inbounds i8, ptr %1696, i64 8
  %1710 = load <2 x i64>, ptr %96, align 8, !tbaa !48
  store <2 x i64> %1710, ptr %1709, align 8, !tbaa !48
  br label %.thread3118

1711:                                             ; preds = %1677
  %.025014013 = load ptr, ptr %139, align 8, !tbaa !45
  %.not29034014 = icmp eq ptr %.025014013, null
  br i1 %.not29034014, label %.critedge3051, label %.lr.ph4018

.lr.ph4018:                                       ; preds = %1711, %1714
  %.025014016 = phi ptr [ %.02501, %1714 ], [ %.025014013, %1711 ]
  %.025024015 = phi i32 [ %1715, %1714 ], [ 0, %1711 ]
  %1712 = load ptr, ptr %.025014016, align 8, !tbaa !106
  %1713 = call i32 @sqlite3StrICmp(ptr noundef %1712, ptr noundef %1681) #6
  %.not2904 = icmp eq i32 %1713, 0
  br i1 %.not2904, label %.critedge, label %1714

1714:                                             ; preds = %.lr.ph4018
  %1715 = add nuw nsw i32 %.025024015, 1
  %1716 = getelementptr inbounds i8, ptr %.025014016, i64 24
  %.02501 = load ptr, ptr %1716, align 8, !tbaa !45
  %.not2903 = icmp eq ptr %.02501, null
  br i1 %.not2903, label %.critedge3051, label %.lr.ph4018, !llvm.loop !112

.critedge3051:                                    ; preds = %1711, %1714
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %0, ptr noundef nonnull @.str.9, ptr noundef %1681) #6
  br label %.thread3123

.critedge:                                        ; preds = %.lr.ph4018
  %1717 = load i32, ptr %140, align 4, !tbaa !103
  %1718 = icmp sgt i32 %1717, 0
  %1719 = icmp eq i32 %1679, 1
  %or.cond9 = and i1 %1719, %1718
  br i1 %or.cond9, label %1720, label %1721

1720:                                             ; preds = %.critedge
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %0, ptr noundef nonnull @.str.10) #6
  br label %.thread3123

1721:                                             ; preds = %.critedge
  %1722 = getelementptr inbounds i8, ptr %.025014016, i64 24
  %1723 = load ptr, ptr %1722, align 8, !tbaa !111
  %1724 = icmp eq ptr %1723, null
  br i1 %1724, label %1725, label %.thread3176

1725:                                             ; preds = %1721
  %1726 = load i8, ptr %141, align 1, !tbaa !109
  %1727 = icmp ne i8 %1726, 0
  %or.cond11 = and i1 %1719, %1727
  br i1 %or.cond11, label %1728, label %.thread3176

1728:                                             ; preds = %1725
  %1729 = call i32 @sqlite3VdbeCheckFk(ptr noundef %0, i32 noundef 1) #6
  %.not2908 = icmp eq i32 %1729, 0
  br i1 %.not2908, label %1730, label %.thread3110

1730:                                             ; preds = %1728
  store i8 1, ptr %91, align 1, !tbaa !108
  %1731 = call i32 @sqlite3VdbeHalt(ptr noundef %0) #6
  %1732 = icmp eq i32 %1731, 5
  br i1 %1732, label %1733, label %1739

1733:                                             ; preds = %1730
  %1734 = ptrtoint ptr %.02322 to i64
  %1735 = ptrtoint ptr %.02321 to i64
  %1736 = sub i64 %1734, %1735
  %1737 = sdiv exact i64 %1736, 24
  %1738 = trunc i64 %1737 to i32
  store i32 %1738, ptr %74, align 4, !tbaa !29
  store i8 0, ptr %91, align 1, !tbaa !108
  store i32 5, ptr %54, align 8, !tbaa !21
  br label %.thread3110

1739:                                             ; preds = %1730
  store i8 0, ptr %141, align 1, !tbaa !109
  %1740 = load i32, ptr %54, align 8, !tbaa !21
  br label %.thread3179

.thread3176:                                      ; preds = %1721, %1725
  %1741 = phi i1 [ %1727, %1725 ], [ false, %1721 ]
  %1742 = load i32, ptr %137, align 4, !tbaa !105
  %1743 = xor i32 %.025024015, -1
  %1744 = add i32 %1742, %1743
  %1745 = icmp eq i32 %1679, 2
  %.pre4630 = load i32, ptr %142, align 8, !tbaa !113
  br i1 %1745, label %1746, label %.loopexit3524

1746:                                             ; preds = %.thread3176
  %1747 = load i32, ptr %90, align 4, !tbaa !114
  %1748 = lshr i32 %1747, 1
  %.lobit = and i32 %1748, 1
  %1749 = icmp sgt i32 %.pre4630, 0
  br i1 %1749, label %.lr.ph4032, label %._crit_edge4037

.lr.ph4032:                                       ; preds = %1746
  %1750 = xor i32 %.lobit, 1
  br label %1755

1751:                                             ; preds = %1755
  %indvars.iv.next4590 = add nuw nsw i64 %indvars.iv4589, 1
  %1752 = load i32, ptr %142, align 8, !tbaa !113
  %1753 = sext i32 %1752 to i64
  %1754 = icmp slt i64 %indvars.iv.next4590, %1753
  br i1 %1754, label %1755, label %.loopexit3524, !llvm.loop !115

1755:                                             ; preds = %.lr.ph4032, %1751
  %indvars.iv4589 = phi i64 [ 0, %.lr.ph4032 ], [ %indvars.iv.next4590, %1751 ]
  %1756 = load ptr, ptr %78, align 8, !tbaa !116
  %1757 = getelementptr inbounds %struct.Db, ptr %1756, i64 %indvars.iv4589, i32 1
  %1758 = load ptr, ptr %1757, align 8, !tbaa !117
  %1759 = call i32 @sqlite3BtreeTripAllCursors(ptr noundef %1758, i32 noundef 516, i32 noundef %1750) #6
  %.not2907 = icmp eq i32 %1759, 0
  br i1 %.not2907, label %1751, label %.thread3123

.loopexit3524:                                    ; preds = %1751, %.thread3176
  %1760 = phi i32 [ %.pre4630, %.thread3176 ], [ %1752, %1751 ]
  %.02507 = phi i32 [ 0, %.thread3176 ], [ %.lobit, %1751 ]
  %.18 = phi i32 [ %.02330, %.thread3176 ], [ 0, %1751 ]
  %1761 = icmp sgt i32 %1760, 0
  br i1 %1761, label %.lr.ph4036, label %._crit_edge4037

1762:                                             ; preds = %.lr.ph4036
  %indvars.iv.next4593 = add nuw nsw i64 %indvars.iv4592, 1
  %1763 = load i32, ptr %142, align 8, !tbaa !113
  %1764 = sext i32 %1763 to i64
  %1765 = icmp slt i64 %indvars.iv.next4593, %1764
  br i1 %1765, label %.lr.ph4036, label %._crit_edge4037, !llvm.loop !119

.lr.ph4036:                                       ; preds = %.loopexit3524, %1762
  %indvars.iv4592 = phi i64 [ %indvars.iv.next4593, %1762 ], [ 0, %.loopexit3524 ]
  %1766 = load ptr, ptr %78, align 8, !tbaa !116
  %1767 = getelementptr inbounds %struct.Db, ptr %1766, i64 %indvars.iv4592, i32 1
  %1768 = load ptr, ptr %1767, align 8, !tbaa !117
  %1769 = call i32 @sqlite3BtreeSavepoint(ptr noundef %1768, i32 noundef %1679, i32 noundef %1744) #6
  %.not2906 = icmp eq i32 %1769, 0
  br i1 %.not2906, label %1762, label %.thread3123

._crit_edge4037:                                  ; preds = %1762, %1746, %.loopexit3524
  %.025074681 = phi i32 [ %.02507, %.loopexit3524 ], [ %.lobit, %1746 ], [ %.02507, %1762 ]
  %.19.lcssa = phi i32 [ %.18, %.loopexit3524 ], [ %.02330, %1746 ], [ 0, %1762 ]
  %.not2905 = icmp eq i32 %.025074681, 0
  br i1 %.not2905, label %.thread3179, label %1770

1770:                                             ; preds = %._crit_edge4037
  call void @sqlite3ExpirePreparedStatements(ptr noundef nonnull %49) #6
  call void @sqlite3ResetAllSchemasOfConnection(ptr noundef nonnull %49) #6
  %1771 = load i32, ptr %90, align 4, !tbaa !114
  %1772 = or i32 %1771, 2
  store i32 %1772, ptr %90, align 4, !tbaa !114
  br label %.thread3179

.thread3179:                                      ; preds = %._crit_edge4037, %1770, %1739
  %1773 = phi i1 [ true, %1739 ], [ %1741, %1770 ], [ %1741, %._crit_edge4037 ]
  %.12503 = phi i32 [ %.025024015, %1739 ], [ %1744, %1770 ], [ %1744, %._crit_edge4037 ]
  %.21 = phi i32 [ %1740, %1739 ], [ %.19.lcssa, %1770 ], [ %.19.lcssa, %._crit_edge4037 ]
  %.21.fr = freeze i32 %.21
  %1774 = load ptr, ptr %139, align 8, !tbaa !110
  %.not29094039 = icmp eq ptr %1774, %.025014016
  br i1 %.not29094039, label %._crit_edge4041, label %.lr.ph4040

.lr.ph4040:                                       ; preds = %.thread3179, %.lr.ph4040
  %1775 = phi ptr [ %1780, %.lr.ph4040 ], [ %1774, %.thread3179 ]
  %1776 = getelementptr inbounds i8, ptr %1775, i64 24
  %1777 = load ptr, ptr %1776, align 8, !tbaa !111
  store ptr %1777, ptr %139, align 8, !tbaa !110
  call void @sqlite3DbFree(ptr noundef nonnull %49, ptr noundef %1775) #6
  %1778 = load i32, ptr %137, align 4, !tbaa !105
  %1779 = add nsw i32 %1778, -1
  store i32 %1779, ptr %137, align 4, !tbaa !105
  %1780 = load ptr, ptr %139, align 8, !tbaa !110
  %.not2909 = icmp eq ptr %1780, %.025014016
  br i1 %.not2909, label %._crit_edge4041, label %.lr.ph4040, !llvm.loop !120

._crit_edge4041:                                  ; preds = %.lr.ph4040, %.thread3179
  br i1 %1719, label %1781, label %1785

1781:                                             ; preds = %._crit_edge4041
  %1782 = load ptr, ptr %1722, align 8, !tbaa !111
  store ptr %1782, ptr %139, align 8, !tbaa !110
  call void @sqlite3DbFree(ptr noundef nonnull %49, ptr noundef nonnull %.025014016) #6
  br i1 %1773, label %1788, label %.thread3183

.thread3183:                                      ; preds = %1781
  %1783 = load i32, ptr %137, align 4, !tbaa !105
  %1784 = add nsw i32 %1783, -1
  store i32 %1784, ptr %137, align 4, !tbaa !105
  br label %1790

1785:                                             ; preds = %._crit_edge4041
  %1786 = getelementptr inbounds i8, ptr %.025014016, i64 8
  %1787 = load <2 x i64>, ptr %1786, align 8, !tbaa !48
  store <2 x i64> %1787, ptr %96, align 8, !tbaa !48
  br label %1788

1788:                                             ; preds = %1781, %1785
  %1789 = icmp ne i32 %1679, 2
  %or.cond13.not = and i1 %1789, %1773
  br i1 %or.cond13.not, label %1792, label %1790

1790:                                             ; preds = %.thread3183, %1788
  %1791 = call i32 @sqlite3VtabSavepoint(ptr noundef nonnull %49, i32 noundef %1679, i32 noundef %.12503) #6
  %.not2911 = icmp eq i32 %1791, 0
  br i1 %.not2911, label %.thread3118, label %.thread3123

1792:                                             ; preds = %1788
  %.not2915 = icmp eq i32 %.21.fr, 0
  br i1 %.not2915, label %.thread3118, label %.thread3123

1793:                                             ; preds = %154
  %1794 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1795 = load i32, ptr %1794, align 4, !tbaa !34
  %1796 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1797 = load i32, ptr %1796, align 8, !tbaa !32
  %1798 = load i8, ptr %91, align 1, !tbaa !108
  %1799 = zext i8 %1798 to i32
  %.not2896 = icmp eq i32 %1795, %1799
  br i1 %.not2896, label %1825, label %1800

1800:                                             ; preds = %1793
  %.not2899 = icmp eq i32 %1797, 0
  br i1 %.not2899, label %1802, label %1801

1801:                                             ; preds = %1800
  call void @sqlite3RollbackAll(ptr noundef nonnull %49, i32 noundef 516) #6
  br label %1811

1802:                                             ; preds = %1800
  %.not2900 = icmp eq i32 %1795, 0
  br i1 %.not2900, label %1807, label %1803

1803:                                             ; preds = %1802
  %1804 = load i32, ptr %140, align 4, !tbaa !103
  %1805 = icmp sgt i32 %1804, 0
  br i1 %1805, label %1806, label %1807

1806:                                             ; preds = %1803
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %0, ptr noundef nonnull @.str.11) #6
  br label %.thread3123

1807:                                             ; preds = %1803, %1802
  %1808 = call i32 @sqlite3VdbeCheckFk(ptr noundef %0, i32 noundef 1) #6
  %.not2901 = icmp eq i32 %1808, 0
  br i1 %.not2901, label %1809, label %.thread3110

1809:                                             ; preds = %1807
  %1810 = trunc i32 %1795 to i8
  br label %1811

1811:                                             ; preds = %1809, %1801
  %storemerge2902 = phi i8 [ %1810, %1809 ], [ 1, %1801 ]
  store i8 %storemerge2902, ptr %91, align 1, !tbaa !108
  %1812 = call i32 @sqlite3VdbeHalt(ptr noundef %0) #6
  %1813 = icmp eq i32 %1812, 5
  br i1 %1813, label %1814, label %1822

1814:                                             ; preds = %1811
  %1815 = ptrtoint ptr %.02322 to i64
  %1816 = ptrtoint ptr %.02321 to i64
  %1817 = sub i64 %1815, %1816
  %1818 = sdiv exact i64 %1817, 24
  %1819 = trunc i64 %1818 to i32
  store i32 %1819, ptr %74, align 4, !tbaa !29
  %1820 = trunc i32 %1795 to i8
  %1821 = sub i8 1, %1820
  store i8 %1821, ptr %91, align 1, !tbaa !108
  store i32 5, ptr %54, align 8, !tbaa !21
  br label %.thread3110

1822:                                             ; preds = %1811
  call void @sqlite3CloseSavepoints(ptr noundef nonnull %49) #6
  %1823 = load i32, ptr %54, align 8, !tbaa !21
  %1824 = icmp eq i32 %1823, 0
  %.3053 = select i1 %1824, i32 101, i32 1
  br label %.thread3110

1825:                                             ; preds = %1793
  %.not2897 = icmp eq i32 %1795, 0
  %.not2898 = icmp eq i32 %1797, 0
  %1826 = select i1 %.not2898, ptr @.str.14, ptr @.str.13
  %1827 = select i1 %.not2897, ptr @.str.12, ptr %1826
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %0, ptr noundef nonnull %1827) #6
  br label %.thread3123

1828:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  %1829 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1830 = load i32, ptr %1829, align 8, !tbaa !32
  %.not2885 = icmp eq i32 %1830, 0
  br i1 %.not2885, label %1834, label %1831

1831:                                             ; preds = %1828
  %1832 = load i32, ptr %90, align 4, !tbaa !114
  %1833 = and i32 %1832, 67108864
  %.not2886 = icmp eq i32 %1833, 0
  br i1 %.not2886, label %1834, label %.thread3227

1834:                                             ; preds = %1831, %1828
  %1835 = load ptr, ptr %78, align 8, !tbaa !116
  %1836 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1837 = load i32, ptr %1836, align 4, !tbaa !34
  %1838 = sext i32 %1837 to i64
  %1839 = getelementptr inbounds %struct.Db, ptr %1835, i64 %1838, i32 1
  %1840 = load ptr, ptr %1839, align 8, !tbaa !117
  %.not2887 = icmp eq ptr %1840, null
  br i1 %.not2887, label %1883, label %1841

1841:                                             ; preds = %1834
  %1842 = call i32 @sqlite3BtreeBeginTrans(ptr noundef nonnull %1840, i32 noundef %1830) #6
  %.not2888 = icmp eq i32 %1842, 0
  br i1 %.not2888, label %1846, label %1843

1843:                                             ; preds = %1841
  %1844 = and i32 %1842, 255
  %1845 = icmp eq i32 %1844, 5
  br i1 %1845, label %1908, label %.thread3227

1846:                                             ; preds = %1841
  %1847 = load i32, ptr %1829, align 8, !tbaa !32
  %.not2889 = icmp eq i32 %1847, 0
  br i1 %.not2889, label %1875, label %1848

1848:                                             ; preds = %1846
  %1849 = load i16, ptr %83, align 8
  %1850 = and i16 %1849, 64
  %.not2890 = icmp eq i16 %1850, 0
  br i1 %.not2890, label %1875, label %1851

1851:                                             ; preds = %1848
  %1852 = load i8, ptr %91, align 1, !tbaa !108
  %1853 = icmp eq i8 %1852, 0
  br i1 %1853, label %1857, label %1854

1854:                                             ; preds = %1851
  %1855 = load i32, ptr %92, align 8, !tbaa !121
  %1856 = icmp sgt i32 %1855, 1
  br i1 %1856, label %1857, label %1875

1857:                                             ; preds = %1854, %1851
  %1858 = load i32, ptr %135, align 8, !tbaa !122
  %1859 = icmp eq i32 %1858, 0
  br i1 %1859, label %1860, label %1865

1860:                                             ; preds = %1857
  %1861 = load i32, ptr %136, align 8, !tbaa !104
  %1862 = add nsw i32 %1861, 1
  store i32 %1862, ptr %136, align 8, !tbaa !104
  %1863 = load i32, ptr %137, align 4, !tbaa !105
  %1864 = add nsw i32 %1863, %1862
  store i32 %1864, ptr %135, align 8, !tbaa !122
  br label %1865

1865:                                             ; preds = %1860, %1857
  %1866 = phi i32 [ %1864, %1860 ], [ %1858, %1857 ]
  %1867 = add nsw i32 %1866, -1
  %1868 = call i32 @sqlite3VtabSavepoint(ptr noundef nonnull %49, i32 noundef 0, i32 noundef %1867) #6
  %1869 = icmp eq i32 %1868, 0
  br i1 %1869, label %1870, label %1873

1870:                                             ; preds = %1865
  %1871 = load i32, ptr %135, align 8, !tbaa !122
  %1872 = call i32 @sqlite3BtreeBeginStmt(ptr noundef nonnull %1840, i32 noundef %1871) #6
  br label %1873

1873:                                             ; preds = %1870, %1865
  %.28 = phi i32 [ %1872, %1870 ], [ %1868, %1865 ]
  %1874 = load <2 x i64>, ptr %96, align 8, !tbaa !48
  store <2 x i64> %1874, ptr %138, align 8, !tbaa !48
  br label %1875

1875:                                             ; preds = %1873, %1854, %1848, %1846
  %.29 = phi i32 [ %.28, %1873 ], [ 0, %1854 ], [ 0, %1848 ], [ 0, %1846 ]
  call void @sqlite3BtreeGetMeta(ptr noundef nonnull %1840, i32 noundef 1, ptr noundef nonnull %11) #6
  %1876 = load ptr, ptr %78, align 8, !tbaa !116
  %1877 = load i32, ptr %1836, align 4, !tbaa !34
  %1878 = sext i32 %1877 to i64
  %1879 = getelementptr inbounds %struct.Db, ptr %1876, i64 %1878, i32 4
  %1880 = load ptr, ptr %1879, align 8, !tbaa !123
  %1881 = getelementptr inbounds i8, ptr %1880, i64 4
  %1882 = load i32, ptr %1881, align 4, !tbaa !124
  br label %1884

1883:                                             ; preds = %1834
  store i32 0, ptr %11, align 4, !tbaa !27
  br label %1884

1884:                                             ; preds = %1883, %1875
  %.02508 = phi i32 [ %1882, %1875 ], [ 0, %1883 ]
  %.30 = phi i32 [ %.29, %1875 ], [ %.02330, %1883 ]
  %.30.fr = freeze i32 %.30
  %1885 = getelementptr inbounds i8, ptr %.02322, i64 2
  %1886 = load i16, ptr %1885, align 2, !tbaa !44
  %.not2891 = icmp eq i16 %1886, 0
  br i1 %.not2891, label %1907, label %1887

1887:                                             ; preds = %1884
  %1888 = load i32, ptr %11, align 4, !tbaa !27
  %1889 = getelementptr inbounds i8, ptr %.02322, i64 12
  %1890 = load i32, ptr %1889, align 4, !tbaa !37
  %.not2892 = icmp eq i32 %1888, %1890
  br i1 %.not2892, label %1891, label %1894

1891:                                             ; preds = %1887
  %1892 = getelementptr inbounds i8, ptr %.02322, i64 16
  %1893 = load i32, ptr %1892, align 8, !tbaa !25
  %.not2893 = icmp eq i32 %.02508, %1893
  br i1 %.not2893, label %1907, label %1894

1894:                                             ; preds = %1891, %1887
  %1895 = load ptr, ptr %89, align 8, !tbaa !46
  call void @sqlite3DbFree(ptr noundef nonnull %49, ptr noundef %1895) #6
  %1896 = call ptr @sqlite3DbStrDup(ptr noundef nonnull %49, ptr noundef nonnull @.str.15) #6
  store ptr %1896, ptr %89, align 8, !tbaa !46
  %1897 = load ptr, ptr %78, align 8, !tbaa !116
  %1898 = load i32, ptr %1836, align 4, !tbaa !34
  %1899 = sext i32 %1898 to i64
  %1900 = getelementptr inbounds %struct.Db, ptr %1897, i64 %1899, i32 4
  %1901 = load ptr, ptr %1900, align 8, !tbaa !123
  %1902 = load i32, ptr %1901, align 8, !tbaa !126
  %1903 = load i32, ptr %11, align 4, !tbaa !27
  %.not2894 = icmp eq i32 %1902, %1903
  br i1 %.not2894, label %.thread3221, label %1904

1904:                                             ; preds = %1894
  call void @sqlite3ResetOneSchema(ptr noundef nonnull %49, i32 noundef %1898) #6
  br label %.thread3221

.thread3221:                                      ; preds = %1894, %1904
  %1905 = load i16, ptr %83, align 8
  %1906 = or i16 %1905, 1
  store i16 %1906, ptr %83, align 8
  br label %.thread3227

1907:                                             ; preds = %1891, %1884
  %.not2895 = icmp eq i32 %.30.fr, 0
  br i1 %.not2895, label %.thread3230, label %.thread3227

.thread3230:                                      ; preds = %1907
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  br label %.thread3118

.thread3227:                                      ; preds = %1831, %1907, %1843, %.thread3221
  %.32.ph = phi i32 [ 17, %.thread3221 ], [ %1842, %1843 ], [ 8, %1831 ], [ %.30.fr, %1907 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  br label %.thread3123

1908:                                             ; preds = %1843
  %1909 = ptrtoint ptr %.02322 to i64
  %1910 = ptrtoint ptr %.02321 to i64
  %1911 = sub i64 %1909, %1910
  %1912 = sdiv exact i64 %1911, 24
  %1913 = trunc i64 %1912 to i32
  store i32 %1913, ptr %74, align 4, !tbaa !29
  store i32 %1842, ptr %54, align 8, !tbaa !21
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  br label %.thread3110

1914:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  %1915 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1916 = load i32, ptr %1915, align 4, !tbaa !34
  %1917 = getelementptr inbounds i8, ptr %.02322, i64 12
  %1918 = load i32, ptr %1917, align 4, !tbaa !37
  %1919 = load ptr, ptr %78, align 8, !tbaa !116
  %1920 = sext i32 %1916 to i64
  %1921 = getelementptr inbounds %struct.Db, ptr %1919, i64 %1920, i32 1
  %1922 = load ptr, ptr %1921, align 8, !tbaa !117
  call void @sqlite3BtreeGetMeta(ptr noundef %1922, i32 noundef %1918, ptr noundef nonnull %12) #6
  %1923 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %1924 = load i32, ptr %12, align 4, !tbaa !27
  %1925 = sext i32 %1924 to i64
  store i64 %1925, ptr %1923, align 8, !tbaa !25
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  br label %.thread3118

1926:                                             ; preds = %154
  %1927 = load ptr, ptr %78, align 8, !tbaa !116
  %1928 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1929 = load i32, ptr %1928, align 4, !tbaa !34
  %1930 = sext i32 %1929 to i64
  %1931 = getelementptr inbounds %struct.Db, ptr %1927, i64 %1930
  %1932 = getelementptr inbounds i8, ptr %1931, i64 8
  %1933 = load ptr, ptr %1932, align 8, !tbaa !117
  %1934 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1935 = load i32, ptr %1934, align 8, !tbaa !32
  %1936 = getelementptr inbounds i8, ptr %.02322, i64 12
  %1937 = load i32, ptr %1936, align 4, !tbaa !37
  %1938 = call i32 @sqlite3BtreeUpdateMeta(ptr noundef %1933, i32 noundef %1935, i32 noundef %1937) #6
  %1939 = load i32, ptr %1934, align 8, !tbaa !32
  switch i32 %1939, label %1952 [
    i32 1, label %1940
    i32 2, label %1946
  ]

1940:                                             ; preds = %1926
  %1941 = load i32, ptr %1936, align 4, !tbaa !37
  %1942 = getelementptr inbounds i8, ptr %1931, i64 24
  %1943 = load ptr, ptr %1942, align 8, !tbaa !123
  store i32 %1941, ptr %1943, align 8, !tbaa !126
  %1944 = load i32, ptr %90, align 4, !tbaa !114
  %1945 = or i32 %1944, 2
  store i32 %1945, ptr %90, align 4, !tbaa !114
  br label %1952

1946:                                             ; preds = %1926
  %1947 = load i32, ptr %1936, align 4, !tbaa !37
  %1948 = trunc i32 %1947 to i8
  %1949 = getelementptr inbounds i8, ptr %1931, i64 24
  %1950 = load ptr, ptr %1949, align 8, !tbaa !123
  %1951 = getelementptr inbounds i8, ptr %1950, i64 112
  store i8 %1948, ptr %1951, align 8, !tbaa !127
  br label %1952

1952:                                             ; preds = %1926, %1946, %1940
  %1953 = load i32, ptr %1928, align 4, !tbaa !34
  %1954 = icmp eq i32 %1953, 1
  br i1 %1954, label %1955, label %1958

1955:                                             ; preds = %1952
  call void @sqlite3ExpirePreparedStatements(ptr noundef nonnull %49) #6
  %1956 = load i16, ptr %83, align 8
  %1957 = and i16 %1956, -2
  store i16 %1957, ptr %83, align 8
  br label %1958

1958:                                             ; preds = %1955, %1952
  %.not2884 = icmp eq i32 %1938, 0
  br i1 %.not2884, label %.thread3118, label %.thread3123

1959:                                             ; preds = %154
  %1960 = load ptr, ptr %84, align 8, !tbaa !84
  %1961 = getelementptr inbounds i8, ptr %.02322, i64 4
  %1962 = load i32, ptr %1961, align 4, !tbaa !34
  %1963 = sext i32 %1962 to i64
  %1964 = getelementptr inbounds ptr, ptr %1960, i64 %1963
  %1965 = load ptr, ptr %1964, align 8, !tbaa !45
  %.not2880 = icmp eq ptr %1965, null
  br i1 %.not2880, label %1972, label %1966

1966:                                             ; preds = %1959
  %1967 = getelementptr inbounds i8, ptr %1965, i64 68
  %1968 = load i32, ptr %1967, align 4, !tbaa !128
  %1969 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1970 = load i32, ptr %1969, align 8, !tbaa !32
  %1971 = icmp eq i32 %1968, %1970
  br i1 %1971, label %2040, label %1972

1972:                                             ; preds = %1959, %1966, %154, %154
  %1973 = load i16, ptr %83, align 8
  %1974 = and i16 %1973, 1
  %.not2881 = icmp eq i16 %1974, 0
  br i1 %.not2881, label %1975, label %.thread3123

1975:                                             ; preds = %1972
  %1976 = getelementptr inbounds i8, ptr %.02322, i64 8
  %1977 = load i32, ptr %1976, align 8, !tbaa !32
  %1978 = getelementptr inbounds i8, ptr %.02322, i64 12
  %1979 = load i32, ptr %1978, align 4, !tbaa !37
  %1980 = load ptr, ptr %78, align 8, !tbaa !116
  %1981 = sext i32 %1979 to i64
  %1982 = getelementptr inbounds %struct.Db, ptr %1980, i64 %1981
  %1983 = getelementptr inbounds i8, ptr %1982, i64 8
  %1984 = load ptr, ptr %1983, align 8, !tbaa !117
  %1985 = icmp eq i8 %156, 106
  %1986 = getelementptr inbounds i8, ptr %.02322, i64 2
  %1987 = load i16, ptr %1986, align 2, !tbaa !44
  br i1 %1985, label %1988, label %._crit_edge4627

1988:                                             ; preds = %1975
  %1989 = and i16 %1987, 8
  %1990 = or disjoint i16 %1989, 4
  %1991 = getelementptr inbounds i8, ptr %1982, i64 24
  %1992 = load ptr, ptr %1991, align 8, !tbaa !123
  %1993 = getelementptr inbounds i8, ptr %1992, i64 112
  %1994 = load i8, ptr %1993, align 8, !tbaa !127
  %1995 = load i8, ptr %134, align 1, !tbaa !99
  %1996 = icmp ult i8 %1994, %1995
  br i1 %1996, label %1997, label %._crit_edge4627

1997:                                             ; preds = %1988
  store i8 %1994, ptr %134, align 1, !tbaa !99
  br label %._crit_edge4627

._crit_edge4627:                                  ; preds = %1975, %1988, %1997
  %.02512.shrunk = phi i16 [ %1990, %1997 ], [ %1990, %1988 ], [ 0, %1975 ]
  %.02512 = zext nneg i16 %.02512.shrunk to i32
  %1998 = and i16 %1987, 16
  %.not2882 = icmp eq i16 %1998, 0
  br i1 %.not2882, label %2005, label %1999

1999:                                             ; preds = %._crit_edge4627
  %2000 = sext i32 %1977 to i64
  %2001 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2000
  %2002 = call i32 @sqlite3VdbeMemIntegerify(ptr noundef %2001) #6
  %2003 = load i64, ptr %2001, align 8, !tbaa !25
  %2004 = trunc i64 %2003 to i32
  br label %2005

2005:                                             ; preds = %1999, %._crit_edge4627
  %.02511 = phi i32 [ %2004, %1999 ], [ %1977, %._crit_edge4627 ]
  %2006 = getelementptr inbounds i8, ptr %.02322, i64 1
  %2007 = load i8, ptr %2006, align 1, !tbaa !52
  switch i8 %2007, label %2021 [
    i8 -5, label %2008
    i8 -11, label %2018
  ]

2008:                                             ; preds = %2005
  %2009 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2010 = load ptr, ptr %2009, align 8, !tbaa !25
  %2011 = getelementptr inbounds i8, ptr %2010, i64 6
  %2012 = load i16, ptr %2011, align 2, !tbaa !129
  %2013 = zext i16 %2012 to i32
  %2014 = getelementptr inbounds i8, ptr %2010, i64 8
  %2015 = load i16, ptr %2014, align 8, !tbaa !130
  %2016 = zext i16 %2015 to i32
  %2017 = add nuw nsw i32 %2016, %2013
  br label %2021

2018:                                             ; preds = %2005
  %2019 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2020 = load i32, ptr %2019, align 8, !tbaa !25
  br label %2021

2021:                                             ; preds = %2005, %2018, %2008
  %.02510 = phi ptr [ %2010, %2008 ], [ null, %2018 ], [ null, %2005 ]
  %.02509 = phi i32 [ %2017, %2008 ], [ %2020, %2018 ], [ 0, %2005 ]
  %2022 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2023 = load i32, ptr %2022, align 4, !tbaa !34
  %2024 = call ptr @allocateCursor(ptr noundef nonnull %0, i32 noundef %2023, i32 noundef %.02509, i32 noundef %1979, i8 noundef zeroext 0)
  %2025 = icmp eq ptr %2024, null
  br i1 %2025, label %.critedge31, label %2026

2026:                                             ; preds = %2021
  %2027 = getelementptr inbounds i8, ptr %2024, i64 2
  store i8 1, ptr %2027, align 2, !tbaa !89
  %2028 = getelementptr inbounds i8, ptr %2024, i64 5
  %2029 = load i8, ptr %2028, align 1
  %2030 = or i8 %2029, 4
  store i8 %2030, ptr %2028, align 1
  %2031 = getelementptr inbounds i8, ptr %2024, i64 68
  store i32 %.02511, ptr %2031, align 4, !tbaa !128
  %2032 = getelementptr inbounds i8, ptr %2024, i64 48
  %2033 = load ptr, ptr %2032, align 8, !tbaa !25
  %2034 = call i32 @sqlite3BtreeCursor(ptr noundef %1984, i32 noundef %.02511, i32 noundef %.02512, ptr noundef %.02510, ptr noundef %2033) #6
  %2035 = getelementptr inbounds i8, ptr %2024, i64 56
  store ptr %.02510, ptr %2035, align 8, !tbaa !131
  %2036 = load i8, ptr %2006, align 1, !tbaa !52
  %2037 = icmp ne i8 %2036, -5
  %2038 = zext i1 %2037 to i8
  %2039 = getelementptr inbounds i8, ptr %2024, i64 4
  store i8 %2038, ptr %2039, align 4, !tbaa !132
  br label %2040

2040:                                             ; preds = %1966, %2026
  %.02513 = phi ptr [ %2024, %2026 ], [ %1965, %1966 ]
  %.33 = phi i32 [ %2034, %2026 ], [ %.02330, %1966 ]
  %2041 = getelementptr inbounds i8, ptr %.02513, i64 48
  %2042 = load ptr, ptr %2041, align 8, !tbaa !25
  %2043 = getelementptr inbounds i8, ptr %.02322, i64 2
  %2044 = load i16, ptr %2043, align 2, !tbaa !44
  %2045 = and i16 %2044, 3
  %2046 = zext nneg i16 %2045 to i32
  call void @sqlite3BtreeCursorHintFlags(ptr noundef %2042, i32 noundef %2046) #6
  %.not2883 = icmp eq i32 %.33, 0
  br i1 %.not2883, label %.thread3118, label %.thread3123

2047:                                             ; preds = %154, %154
  %2048 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2049 = load i32, ptr %2048, align 4, !tbaa !34
  %2050 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2051 = load i32, ptr %2050, align 8, !tbaa !32
  %2052 = call ptr @allocateCursor(ptr noundef %0, i32 noundef %2049, i32 noundef %2051, i32 noundef -1, i8 noundef zeroext 0)
  %2053 = icmp eq ptr %2052, null
  br i1 %2053, label %.critedge31, label %2054

2054:                                             ; preds = %2047
  %2055 = getelementptr inbounds i8, ptr %2052, i64 2
  store i8 1, ptr %2055, align 2, !tbaa !89
  %2056 = getelementptr inbounds i8, ptr %2052, i64 5
  %2057 = load i8, ptr %2056, align 1
  %2058 = or i8 %2057, 1
  store i8 %2058, ptr %2056, align 1
  %2059 = load ptr, ptr %49, align 8, !tbaa !133
  %2060 = getelementptr inbounds i8, ptr %2052, i64 8
  %2061 = getelementptr inbounds i8, ptr %.02322, i64 2
  %2062 = load i16, ptr %2061, align 2, !tbaa !44
  %2063 = or i16 %2062, 5
  %2064 = zext i16 %2063 to i32
  %2065 = call i32 @sqlite3BtreeOpen(ptr noundef %2059, ptr noundef null, ptr noundef %49, ptr noundef nonnull %2060, i32 noundef %2064, i32 noundef 1054) #6
  %2066 = icmp eq i32 %2065, 0
  br i1 %2066, label %2067, label %.thread3123

2067:                                             ; preds = %2054
  %2068 = load ptr, ptr %2060, align 8, !tbaa !134
  %2069 = call i32 @sqlite3BtreeBeginTrans(ptr noundef %2068, i32 noundef 1) #6
  %2070 = icmp eq i32 %2069, 0
  br i1 %2070, label %2071, label %.thread3123

2071:                                             ; preds = %2067
  %2072 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2073 = load ptr, ptr %2072, align 8, !tbaa !25
  %2074 = getelementptr inbounds i8, ptr %2052, i64 56
  store ptr %2073, ptr %2074, align 8, !tbaa !131
  %.not2877 = icmp eq ptr %2073, null
  br i1 %.not2877, label %2090, label %2075

2075:                                             ; preds = %2071
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #6
  %2076 = load ptr, ptr %2060, align 8, !tbaa !134
  %2077 = load i16, ptr %2061, align 2, !tbaa !44
  %2078 = or i16 %2077, 2
  %2079 = zext i16 %2078 to i32
  %2080 = call i32 @sqlite3BtreeCreateTable(ptr noundef %2076, ptr noundef nonnull %13, i32 noundef %2079) #6
  %2081 = icmp eq i32 %2080, 0
  br i1 %2081, label %2082, label %2088

2082:                                             ; preds = %2075
  %2083 = load ptr, ptr %2060, align 8, !tbaa !134
  %2084 = load i32, ptr %13, align 4, !tbaa !27
  %2085 = getelementptr inbounds i8, ptr %2052, i64 48
  %2086 = load ptr, ptr %2085, align 8, !tbaa !25
  %2087 = call i32 @sqlite3BtreeCursor(ptr noundef %2083, i32 noundef %2084, i32 noundef 4, ptr noundef nonnull %2073, ptr noundef %2086) #6
  br label %2088

2088:                                             ; preds = %2082, %2075
  %.35 = phi i32 [ %2087, %2082 ], [ %2080, %2075 ]
  %2089 = getelementptr inbounds i8, ptr %2052, i64 4
  store i8 0, ptr %2089, align 4, !tbaa !132
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  br label %2096

2090:                                             ; preds = %2071
  %2091 = load ptr, ptr %2060, align 8, !tbaa !134
  %2092 = getelementptr inbounds i8, ptr %2052, i64 48
  %2093 = load ptr, ptr %2092, align 8, !tbaa !25
  %2094 = call i32 @sqlite3BtreeCursor(ptr noundef %2091, i32 noundef 1, i32 noundef 4, ptr noundef null, ptr noundef %2093) #6
  %2095 = getelementptr inbounds i8, ptr %2052, i64 4
  store i8 1, ptr %2095, align 4, !tbaa !132
  br label %2096

2096:                                             ; preds = %2088, %2090
  %.36 = phi i32 [ %.35, %2088 ], [ %2094, %2090 ]
  %.not2878 = icmp eq i32 %.36, 0
  br i1 %.not2878, label %.thread3243, label %.thread3123

.thread3243:                                      ; preds = %2096
  %2097 = load i16, ptr %2061, align 2, !tbaa !44
  %.not2879 = icmp eq i16 %2097, 8
  %2098 = load i8, ptr %2056, align 1
  %2099 = select i1 %.not2879, i8 0, i8 4
  %2100 = and i8 %2098, -5
  %2101 = or disjoint i8 %2100, %2099
  store i8 %2101, ptr %2056, align 1
  br label %.thread3118

2102:                                             ; preds = %154
  %2103 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2104 = load i32, ptr %2103, align 4, !tbaa !34
  %2105 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2106 = load i32, ptr %2105, align 8, !tbaa !32
  %2107 = call ptr @allocateCursor(ptr noundef %0, i32 noundef %2104, i32 noundef %2106, i32 noundef -1, i8 noundef zeroext 1)
  %2108 = icmp eq ptr %2107, null
  br i1 %2108, label %.critedge31, label %2109

2109:                                             ; preds = %2102
  %2110 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2111 = load ptr, ptr %2110, align 8, !tbaa !25
  %2112 = getelementptr inbounds i8, ptr %2107, i64 56
  store ptr %2111, ptr %2112, align 8, !tbaa !131
  %2113 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2114 = load i32, ptr %2113, align 4, !tbaa !37
  %2115 = call i32 @sqlite3VdbeSorterInit(ptr noundef %49, i32 noundef %2114, ptr noundef nonnull %2107) #6
  %.not2876 = icmp eq i32 %2115, 0
  br i1 %.not2876, label %.thread3118, label %.thread3123

2116:                                             ; preds = %154
  %2117 = load ptr, ptr %84, align 8, !tbaa !84
  %2118 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2119 = load i32, ptr %2118, align 4, !tbaa !34
  %2120 = sext i32 %2119 to i64
  %2121 = getelementptr inbounds ptr, ptr %2117, i64 %2120
  %2122 = load ptr, ptr %2121, align 8, !tbaa !45
  %2123 = getelementptr inbounds i8, ptr %2122, i64 16
  %2124 = load i64, ptr %2123, align 8, !tbaa !135
  %2125 = add nsw i64 %2124, 1
  store i64 %2125, ptr %2123, align 8, !tbaa !135
  %2126 = icmp eq i64 %2124, 0
  br i1 %2126, label %.thread3154, label %.thread3118

2127:                                             ; preds = %154
  %2128 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2129 = load i32, ptr %2128, align 4, !tbaa !34
  %2130 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2131 = load i32, ptr %2130, align 4, !tbaa !37
  %2132 = call ptr @allocateCursor(ptr noundef %0, i32 noundef %2129, i32 noundef %2131, i32 noundef -1, i8 noundef zeroext 3)
  %2133 = icmp eq ptr %2132, null
  br i1 %2133, label %.critedge31, label %.thread3253

.thread3253:                                      ; preds = %2127
  %2134 = getelementptr inbounds i8, ptr %2132, i64 2
  store i8 1, ptr %2134, align 2, !tbaa !89
  %2135 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2136 = load i32, ptr %2135, align 8, !tbaa !32
  %2137 = getelementptr inbounds i8, ptr %2132, i64 48
  store i32 %2136, ptr %2137, align 8, !tbaa !25
  %2138 = getelementptr inbounds i8, ptr %2132, i64 4
  store i8 1, ptr %2138, align 4, !tbaa !132
  br label %.thread3118

2139:                                             ; preds = %154
  %2140 = load ptr, ptr %84, align 8, !tbaa !84
  %2141 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2142 = load i32, ptr %2141, align 4, !tbaa !34
  %2143 = sext i32 %2142 to i64
  %2144 = getelementptr inbounds ptr, ptr %2140, i64 %2143
  %2145 = load ptr, ptr %2144, align 8, !tbaa !45
  call void @sqlite3VdbeFreeCursor(ptr noundef %0, ptr noundef %2145) #6
  %2146 = load ptr, ptr %84, align 8, !tbaa !84
  %2147 = load i32, ptr %2141, align 4, !tbaa !34
  %2148 = sext i32 %2147 to i64
  %2149 = getelementptr inbounds ptr, ptr %2146, i64 %2148
  store ptr null, ptr %2149, align 8, !tbaa !45
  br label %.thread3118

2150:                                             ; preds = %154, %154, %154, %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #6
  %2151 = load ptr, ptr %84, align 8, !tbaa !84
  %2152 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2153 = load i32, ptr %2152, align 4, !tbaa !34
  %2154 = sext i32 %2153 to i64
  %2155 = getelementptr inbounds ptr, ptr %2151, i64 %2154
  %2156 = load ptr, ptr %2155, align 8, !tbaa !45
  %2157 = zext nneg i8 %156 to i32
  %2158 = getelementptr inbounds i8, ptr %2156, i64 2
  store i8 0, ptr %2158, align 2, !tbaa !89
  %2159 = getelementptr inbounds i8, ptr %2156, i64 4
  %2160 = load i8, ptr %2159, align 4, !tbaa !132
  %.not2866 = icmp eq i8 %2160, 0
  br i1 %.not2866, label %2195, label %2161

2161:                                             ; preds = %2150
  %2162 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2163 = load i32, ptr %2162, align 4, !tbaa !37
  %2164 = sext i32 %2163 to i64
  %2165 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2164
  %2166 = getelementptr inbounds i8, ptr %2165, i64 8
  %2167 = load i16, ptr %2166, align 8, !tbaa !35
  %2168 = and i16 %2167, 14
  %2169 = icmp eq i16 %2168, 2
  br i1 %2169, label %2170, label %2171

2170:                                             ; preds = %2161
  call void @applyNumericAffinity(ptr noundef nonnull %2165, i32 noundef 0)
  br label %2171

2171:                                             ; preds = %2170, %2161
  %2172 = call i64 @sqlite3VdbeIntValue(ptr noundef nonnull %2165) #6
  %2173 = load i16, ptr %2166, align 8, !tbaa !35
  %2174 = zext i16 %2173 to i32
  %2175 = and i32 %2174, 4
  %2176 = icmp eq i32 %2175, 0
  br i1 %2176, label %2177, label %2190

2177:                                             ; preds = %2171
  %2178 = and i32 %2174, 8
  %2179 = icmp eq i32 %2178, 0
  br i1 %2179, label %.thread3266, label %2180

2180:                                             ; preds = %2177
  %2181 = load double, ptr %2165, align 8, !tbaa !25
  %2182 = sitofp i64 %2172 to double
  %2183 = fcmp olt double %2181, %2182
  br i1 %2183, label %2184, label %2186

2184:                                             ; preds = %2180
  %2185 = and i32 %2157, 1
  %sext3511 = add nsw i32 %2157, -1
  %spec.select3059 = add nuw nsw i32 %sext3511, %2185
  br label %2190

2186:                                             ; preds = %2180
  %2187 = fcmp ogt double %2181, %2182
  %2188 = and i32 %2157, 1
  %.not2870 = icmp ne i32 %2188, 0
  %or.cond3060.not = and i1 %2187, %.not2870
  %2189 = zext i1 %or.cond3060.not to i32
  %spec.select3101 = add nuw nsw i32 %2189, %2157
  br label %2190

2190:                                             ; preds = %2186, %2184, %2171
  %.02514 = phi i32 [ %2157, %2171 ], [ %spec.select3059, %2184 ], [ %spec.select3101, %2186 ]
  %2191 = getelementptr inbounds i8, ptr %2156, i64 48
  %2192 = load ptr, ptr %2191, align 8, !tbaa !25
  %2193 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %2192, ptr noundef null, i64 noundef %2172, i32 noundef 0, ptr noundef nonnull %14) #6
  %2194 = getelementptr inbounds i8, ptr %2156, i64 80
  store i64 %2172, ptr %2194, align 8, !tbaa !136
  %.not2871 = icmp eq i32 %2193, 0
  br i1 %.not2871, label %2215, label %.thread3260

2195:                                             ; preds = %2150
  %2196 = getelementptr inbounds i8, ptr %2156, i64 48
  %2197 = load ptr, ptr %2196, align 8, !tbaa !25
  %2198 = call i32 @sqlite3BtreeCursorHasHint(ptr noundef %2197, i32 noundef 2) #6
  %2199 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2200 = load i32, ptr %2199, align 8, !tbaa !25
  %2201 = getelementptr inbounds i8, ptr %2156, i64 56
  %2202 = load ptr, ptr %2201, align 8, !tbaa !131
  store ptr %2202, ptr %15, align 8, !tbaa !137
  %2203 = trunc i32 %2200 to i16
  store i16 %2203, ptr %130, align 8, !tbaa !139
  %2204 = and i32 %2157, 1
  %.not2868.not = icmp eq i32 %2204, 0
  %2205 = select i1 %.not2868.not, i8 -1, i8 1
  store i8 %2205, ptr %131, align 2, !tbaa !140
  %2206 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2207 = load i32, ptr %2206, align 4, !tbaa !37
  %2208 = sext i32 %2207 to i64
  %2209 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2208
  store ptr %2209, ptr %132, align 8, !tbaa !141
  store i8 0, ptr %133, align 2, !tbaa !142
  %2210 = load ptr, ptr %2196, align 8, !tbaa !25
  %2211 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %2210, ptr noundef nonnull %15, i64 noundef 0, i32 noundef 0, ptr noundef nonnull %14) #6
  %.not2869 = icmp eq i32 %2211, 0
  br i1 %.not2869, label %2212, label %.thread3260

2212:                                             ; preds = %2195
  %.not2867 = icmp ne i32 %2198, 0
  %spec.select3061 = zext i1 %.not2867 to i32
  %2213 = load i8, ptr %133, align 2
  %2214 = icmp eq i8 %2213, 0
  %or.cond17 = select i1 %.not2867, i1 %2214, i1 false
  br i1 %or.cond17, label %thread-pre-split, label %2215

2215:                                             ; preds = %2212, %2190
  %.12517 = phi i32 [ 0, %2190 ], [ %spec.select3061, %2212 ]
  %.12515 = phi i32 [ %.02514, %2190 ], [ %2157, %2212 ]
  %2216 = getelementptr inbounds i8, ptr %2156, i64 3
  store i8 0, ptr %2216, align 1, !tbaa !143
  %2217 = getelementptr inbounds i8, ptr %2156, i64 32
  store i32 0, ptr %2217, align 8, !tbaa !87
  %2218 = icmp ugt i32 %.12515, 24
  %2219 = load i32, ptr %14, align 4, !tbaa !27
  br i1 %2218, label %2220, label %2229

2220:                                             ; preds = %2215
  %2221 = icmp slt i32 %2219, 0
  br i1 %2221, label %2225, label %2222

2222:                                             ; preds = %2220
  %2223 = icmp eq i32 %2219, 0
  %2224 = icmp eq i32 %.12515, 26
  %or.cond19 = and i1 %2224, %2223
  br i1 %or.cond19, label %2225, label %.thread3255

2225:                                             ; preds = %2222, %2220
  store i32 0, ptr %14, align 4, !tbaa !27
  %2226 = getelementptr inbounds i8, ptr %2156, i64 48
  %2227 = load ptr, ptr %2226, align 8, !tbaa !25
  %2228 = call i32 @sqlite3BtreeNext(ptr noundef %2227, ptr noundef nonnull %14) #6
  %.not2873 = icmp eq i32 %2228, 0
  br i1 %.not2873, label %thread-pre-split, label %.thread3260

2229:                                             ; preds = %2215
  %2230 = icmp sgt i32 %2219, 0
  br i1 %2230, label %2234, label %2231

2231:                                             ; preds = %2229
  %2232 = icmp eq i32 %2219, 0
  %2233 = icmp eq i32 %.12515, 23
  %or.cond21 = and i1 %2233, %2232
  br i1 %or.cond21, label %2234, label %2238

2234:                                             ; preds = %2231, %2229
  store i32 0, ptr %14, align 4, !tbaa !27
  %2235 = getelementptr inbounds i8, ptr %2156, i64 48
  %2236 = load ptr, ptr %2235, align 8, !tbaa !25
  %2237 = call i32 @sqlite3BtreePrevious(ptr noundef %2236, ptr noundef nonnull %14) #6
  %.not2872 = icmp eq i32 %2237, 0
  br i1 %.not2872, label %thread-pre-split, label %.thread3260

2238:                                             ; preds = %2231
  %2239 = getelementptr inbounds i8, ptr %2156, i64 48
  %2240 = load ptr, ptr %2239, align 8, !tbaa !25
  %2241 = call i32 @sqlite3BtreeEof(ptr noundef %2240) #6
  br label %2242

thread-pre-split:                                 ; preds = %2212, %2234, %2225
  %.22518.ph = phi i32 [ 1, %2212 ], [ %.12517, %2234 ], [ %.12517, %2225 ]
  %.pr = load i32, ptr %14, align 4, !tbaa !27
  br label %2242

2242:                                             ; preds = %thread-pre-split, %2238
  %2243 = phi i32 [ %.pr, %thread-pre-split ], [ %2241, %2238 ]
  %.22518 = phi i32 [ %.22518.ph, %thread-pre-split ], [ %.12517, %2238 ]
  %.not2874 = icmp eq i32 %2243, 0
  br i1 %.not2874, label %.thread3255, label %.thread3266

.thread3260:                                      ; preds = %2190, %2195, %2225, %2234
  %.41.ph = phi i32 [ %2237, %2234 ], [ %2228, %2225 ], [ %2211, %2195 ], [ %2193, %2190 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br label %.thread3123

.thread3266:                                      ; preds = %2177, %2242
  %.41.ph3265 = phi i32 [ 0, %2242 ], [ %.02330, %2177 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br label %.thread3154

.thread3255:                                      ; preds = %2222, %2242
  %.225183258 = phi i32 [ %.22518, %2242 ], [ %.12517, %2222 ]
  %.not2875 = icmp eq i32 %.225183258, 0
  %spec.select3062.idx = select i1 %.not2875, i64 0, i64 24
  %spec.select3062 = getelementptr inbounds i8, ptr %.02322, i64 %spec.select3062.idx
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br label %.thread3118

2244:                                             ; preds = %154, %154, %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #6
  %2245 = load ptr, ptr %84, align 8, !tbaa !84
  %2246 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2247 = load i32, ptr %2246, align 4, !tbaa !34
  %2248 = sext i32 %2247 to i64
  %2249 = getelementptr inbounds ptr, ptr %2245, i64 %2248
  %2250 = load ptr, ptr %2249, align 8, !tbaa !45
  %2251 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2252 = load i32, ptr %2251, align 4, !tbaa !37
  %2253 = sext i32 %2252 to i64
  %2254 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2253
  %2255 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2256 = load i32, ptr %2255, align 8, !tbaa !25
  %2257 = icmp sgt i32 %2256, 0
  %2258 = getelementptr inbounds i8, ptr %2250, i64 56
  %2259 = load ptr, ptr %2258, align 8, !tbaa !131
  br i1 %2257, label %2260, label %2262

2260:                                             ; preds = %2244
  store ptr %2259, ptr %17, align 8, !tbaa !137
  %2261 = trunc i32 %2256 to i16
  store i16 %2261, ptr %128, align 8, !tbaa !139
  store ptr %2254, ptr %129, align 8, !tbaa !141
  br label %2277

2262:                                             ; preds = %2244
  %2263 = call ptr @sqlite3VdbeAllocUnpackedRecord(ptr noundef %2259) #6
  %2264 = icmp eq ptr %2263, null
  br i1 %2264, label %2307, label %2265

2265:                                             ; preds = %2262
  %2266 = getelementptr inbounds i8, ptr %2254, i64 8
  %2267 = load i16, ptr %2266, align 8, !tbaa !35
  %2268 = and i16 %2267, 16384
  %.not2862 = icmp eq i16 %2268, 0
  br i1 %.not2862, label %2271, label %2269

2269:                                             ; preds = %2265
  %2270 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef nonnull %2254) #6
  br label %2271

2271:                                             ; preds = %2265, %2269
  %2272 = load ptr, ptr %2258, align 8, !tbaa !131
  %2273 = getelementptr inbounds i8, ptr %2254, i64 12
  %2274 = load i32, ptr %2273, align 4, !tbaa !54
  %2275 = getelementptr inbounds i8, ptr %2254, i64 16
  %2276 = load ptr, ptr %2275, align 8, !tbaa !53
  call void @sqlite3VdbeRecordUnpack(ptr noundef %2272, i32 noundef %2274, ptr noundef %2276, ptr noundef nonnull %2263) #6
  %.pre4626 = load i8, ptr %.02322, align 8, !tbaa !30
  br label %2277

2277:                                             ; preds = %2271, %2260
  %2278 = phi i8 [ %156, %2260 ], [ %.pre4626, %2271 ]
  %.02523 = phi ptr [ %17, %2260 ], [ %2263, %2271 ]
  %.02522 = phi ptr [ null, %2260 ], [ %2263, %2271 ]
  %2279 = getelementptr inbounds i8, ptr %.02523, i64 18
  store i8 0, ptr %2279, align 2, !tbaa !140
  %2280 = icmp eq i8 %2278, 29
  br i1 %2280, label %.preheader3526, label %.loopexit3527

.preheader3526:                                   ; preds = %2277
  %2281 = getelementptr inbounds i8, ptr %.02523, i64 16
  %2282 = load i16, ptr %2281, align 8, !tbaa !139
  %.not4098 = icmp eq i16 %2282, 0
  br i1 %.not4098, label %.loopexit3527, label %.lr.ph4010

.lr.ph4010:                                       ; preds = %.preheader3526
  %2283 = getelementptr inbounds i8, ptr %.02523, i64 8
  %2284 = load ptr, ptr %2283, align 8, !tbaa !141
  %wide.trip.count4587 = zext i16 %2282 to i64
  br label %2285

2285:                                             ; preds = %2285, %.lr.ph4010
  %indvars.iv4584 = phi i64 [ 0, %.lr.ph4010 ], [ %indvars.iv.next4585, %2285 ]
  %2286 = getelementptr inbounds %struct.Mem, ptr %2284, i64 %indvars.iv4584, i32 1
  %2287 = load i16, ptr %2286, align 8, !tbaa !35
  %2288 = and i16 %2287, 1
  %.not2863 = icmp eq i16 %2288, 0
  %indvars.iv.next4585 = add nuw nsw i64 %indvars.iv4584, 1
  %exitcond4588.not = icmp ne i64 %indvars.iv.next4585, %wide.trip.count4587
  %or.cond5684.not = select i1 %.not2863, i1 %exitcond4588.not, i1 false
  br i1 %or.cond5684.not, label %2285, label %.loopexit3527, !llvm.loop !144

.loopexit3527:                                    ; preds = %2285, %.preheader3526, %2277
  %2289 = phi i1 [ true, %2277 ], [ true, %.preheader3526 ], [ %.not2863, %2285 ]
  %2290 = getelementptr inbounds i8, ptr %2250, i64 48
  %2291 = load ptr, ptr %2290, align 8, !tbaa !25
  %2292 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %2291, ptr noundef nonnull %.02523, i64 noundef 0, i32 noundef 0, ptr noundef nonnull %16) #6
  %.not2864 = icmp eq ptr %.02522, null
  br i1 %.not2864, label %2294, label %2293

2293:                                             ; preds = %.loopexit3527
  call void @sqlite3DbFree(ptr noundef %49, ptr noundef nonnull %.02522) #6
  br label %2294

2294:                                             ; preds = %2293, %.loopexit3527
  %.not2865 = icmp eq i32 %2292, 0
  br i1 %.not2865, label %2295, label %.thread3277

.thread3277:                                      ; preds = %2294
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br label %.thread3123

2295:                                             ; preds = %2294
  %2296 = load i32, ptr %16, align 4, !tbaa !27
  %2297 = getelementptr inbounds i8, ptr %2250, i64 36
  store i32 %2296, ptr %2297, align 4, !tbaa !145
  %2298 = icmp eq i32 %2296, 0
  %not. = xor i1 %2298, true
  %2299 = zext i1 %not. to i8
  %2300 = getelementptr inbounds i8, ptr %2250, i64 2
  store i8 %2299, ptr %2300, align 2, !tbaa !89
  %2301 = getelementptr inbounds i8, ptr %2250, i64 3
  store i8 0, ptr %2301, align 1, !tbaa !143
  %2302 = getelementptr inbounds i8, ptr %2250, i64 32
  store i32 0, ptr %2302, align 8, !tbaa !87
  %2303 = load i8, ptr %.02322, align 8, !tbaa !30
  %2304 = icmp eq i8 %2303, 31
  br i1 %2304, label %2305, label %2306

2305:                                             ; preds = %2295
  br i1 %2298, label %.thread3271, label %.thread3274

2306:                                             ; preds = %2295
  %or.cond23 = select i1 %2289, i1 %2298, i1 false
  br i1 %or.cond23, label %.thread3274, label %.thread3271

.thread3274:                                      ; preds = %2305, %2306
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br label %.thread3118

.thread3271:                                      ; preds = %2305, %2306
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br label %.thread3154

2307:                                             ; preds = %2262
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br label %.critedge31

2308:                                             ; preds = %154
  %2309 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2310 = load i32, ptr %2309, align 4, !tbaa !37
  %2311 = sext i32 %2310 to i64
  %2312 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2311
  %2313 = getelementptr inbounds i8, ptr %2312, i64 8
  %2314 = load i16, ptr %2313, align 8, !tbaa !35
  %2315 = and i16 %2314, 4
  %2316 = icmp eq i16 %2315, 0
  br i1 %2316, label %2317, label %2321

2317:                                             ; preds = %2308
  call void @applyAffinity(ptr noundef nonnull %2312, i8 noundef signext 67, i8 noundef zeroext %51)
  %2318 = load i16, ptr %2313, align 8, !tbaa !35
  %2319 = and i16 %2318, 4
  %2320 = icmp eq i16 %2319, 0
  br i1 %2320, label %.thread3154, label %2321

2321:                                             ; preds = %2308, %2317, %154
  %2322 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2323 = load i32, ptr %2322, align 4, !tbaa !37
  %2324 = sext i32 %2323 to i64
  %2325 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2324
  %2326 = load ptr, ptr %84, align 8, !tbaa !84
  %2327 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2328 = load i32, ptr %2327, align 4, !tbaa !34
  %2329 = sext i32 %2328 to i64
  %2330 = getelementptr inbounds ptr, ptr %2326, i64 %2329
  %2331 = load ptr, ptr %2330, align 8, !tbaa !45
  %2332 = getelementptr inbounds i8, ptr %2331, i64 48
  %2333 = load ptr, ptr %2332, align 8, !tbaa !25
  store i32 0, ptr %18, align 4, !tbaa !27
  %2334 = load i64, ptr %2325, align 8, !tbaa !25
  %2335 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %2333, ptr noundef null, i64 noundef %2334, i32 noundef 0, ptr noundef nonnull %18) #6
  %2336 = getelementptr inbounds i8, ptr %2331, i64 80
  store i64 %2334, ptr %2336, align 8, !tbaa !136
  %2337 = getelementptr inbounds i8, ptr %2331, i64 2
  store i8 0, ptr %2337, align 2, !tbaa !89
  %2338 = getelementptr inbounds i8, ptr %2331, i64 32
  store i32 0, ptr %2338, align 8, !tbaa !87
  %2339 = getelementptr inbounds i8, ptr %2331, i64 3
  store i8 0, ptr %2339, align 1, !tbaa !143
  %2340 = load i32, ptr %18, align 4, !tbaa !27
  %2341 = getelementptr inbounds i8, ptr %2331, i64 36
  store i32 %2340, ptr %2341, align 4, !tbaa !145
  %.not2860 = icmp eq i32 %2340, 0
  br i1 %.not2860, label %2348, label %2342

2342:                                             ; preds = %2321
  %2343 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2344 = load i32, ptr %2343, align 8, !tbaa !32
  %2345 = icmp eq i32 %2344, 0
  br i1 %2345, label %2346, label %.thread3154

2346:                                             ; preds = %2342
  %2347 = call i32 @sqlite3CorruptError(i32 noundef 4184) #6
  br label %2348

2348:                                             ; preds = %2346, %2321
  %.43 = phi i32 [ %2347, %2346 ], [ %2335, %2321 ]
  %.not2861 = icmp eq i32 %.43, 0
  br i1 %.not2861, label %.thread3118, label %.thread3123

2349:                                             ; preds = %154
  %2350 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %2351 = load ptr, ptr %84, align 8, !tbaa !84
  %2352 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2353 = load i32, ptr %2352, align 4, !tbaa !34
  %2354 = sext i32 %2353 to i64
  %2355 = getelementptr inbounds ptr, ptr %2351, i64 %2354
  %2356 = load ptr, ptr %2355, align 8, !tbaa !45
  %2357 = getelementptr inbounds i8, ptr %2356, i64 16
  %2358 = load i64, ptr %2357, align 8, !tbaa !135
  %2359 = add nsw i64 %2358, 1
  store i64 %2359, ptr %2357, align 8, !tbaa !135
  store i64 %2358, ptr %2350, align 8, !tbaa !25
  br label %.thread3118

2360:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  store i64 0, ptr %19, align 8, !tbaa !48
  store i32 0, ptr %20, align 4, !tbaa !27
  %2361 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %2362 = load ptr, ptr %84, align 8, !tbaa !84
  %2363 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2364 = load i32, ptr %2363, align 4, !tbaa !34
  %2365 = sext i32 %2364 to i64
  %2366 = getelementptr inbounds ptr, ptr %2362, i64 %2365
  %2367 = load ptr, ptr %2366, align 8, !tbaa !45
  %2368 = getelementptr inbounds i8, ptr %2367, i64 5
  %2369 = load i8, ptr %2368, align 1
  %2370 = and i8 %2369, 2
  %.not2850 = icmp eq i8 %2370, 0
  br i1 %.not2850, label %2371, label %2387

2371:                                             ; preds = %2360
  %2372 = getelementptr inbounds i8, ptr %2367, i64 48
  %2373 = load ptr, ptr %2372, align 8, !tbaa !25
  %2374 = call i32 @sqlite3BtreeLast(ptr noundef %2373, ptr noundef nonnull %20) #6
  %.not2851 = icmp eq i32 %2374, 0
  br i1 %.not2851, label %2375, label %.thread3281

2375:                                             ; preds = %2371
  %2376 = load i32, ptr %20, align 4, !tbaa !27
  %.not2852 = icmp eq i32 %2376, 0
  br i1 %.not2852, label %2378, label %2377

2377:                                             ; preds = %2375
  store i64 1, ptr %19, align 8, !tbaa !48
  br label %2387

2378:                                             ; preds = %2375
  %2379 = load ptr, ptr %2372, align 8, !tbaa !25
  %2380 = call i64 @sqlite3BtreeIntegerKey(ptr noundef %2379) #6
  store i64 %2380, ptr %19, align 8, !tbaa !48
  %2381 = icmp eq i64 %2380, 9223372036854775807
  br i1 %2381, label %2382, label %2385

2382:                                             ; preds = %2378
  %2383 = load i8, ptr %2368, align 1
  %2384 = or i8 %2383, 2
  store i8 %2384, ptr %2368, align 1
  br label %2387

2385:                                             ; preds = %2378
  %2386 = add nsw i64 %2380, 1
  store i64 %2386, ptr %19, align 8, !tbaa !48
  br label %2387

2387:                                             ; preds = %2377, %2385, %2382, %2360
  %.44 = phi i32 [ %.02330, %2360 ], [ 0, %2377 ], [ 0, %2382 ], [ 0, %2385 ]
  %2388 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2389 = load i32, ptr %2388, align 4, !tbaa !37
  %.not2853 = icmp eq i32 %2389, 0
  br i1 %.not2853, label %2412, label %2390

2390:                                             ; preds = %2387
  %2391 = load ptr, ptr %95, align 8, !tbaa !38
  %.not2854 = icmp eq ptr %2391, null
  br i1 %.not2854, label %2397, label %.preheader3529

.preheader3529:                                   ; preds = %2390, %.preheader3529
  %.02526 = phi ptr [ %2393, %.preheader3529 ], [ %2391, %2390 ]
  %2392 = getelementptr inbounds i8, ptr %.02526, i64 8
  %2393 = load ptr, ptr %2392, align 8, !tbaa !40
  %.not2855 = icmp eq ptr %2393, null
  br i1 %.not2855, label %2394, label %.preheader3529, !llvm.loop !146

2394:                                             ; preds = %.preheader3529
  %2395 = getelementptr inbounds i8, ptr %.02526, i64 32
  %2396 = load ptr, ptr %2395, align 8, !tbaa !147
  br label %2397

2397:                                             ; preds = %2390, %2394
  %.02367.sink = phi ptr [ %2396, %2394 ], [ %.02367, %2390 ]
  %2398 = sext i32 %2389 to i64
  %2399 = getelementptr inbounds %struct.Mem, ptr %.02367.sink, i64 %2398
  %2400 = call i32 @sqlite3VdbeMemIntegerify(ptr noundef nonnull %2399) #6
  %2401 = load i64, ptr %2399, align 8, !tbaa !25
  %2402 = icmp eq i64 %2401, 9223372036854775807
  br i1 %2402, label %.thread3281, label %2403

2403:                                             ; preds = %2397
  %2404 = load i8, ptr %2368, align 1
  %2405 = and i8 %2404, 2
  %.not2856 = icmp eq i8 %2405, 0
  br i1 %.not2856, label %2406, label %.thread3281

2406:                                             ; preds = %2403
  %2407 = load i64, ptr %19, align 8, !tbaa !48
  %.not2857 = icmp sgt i64 %2407, %2401
  br i1 %.not2857, label %2410, label %2408

2408:                                             ; preds = %2406
  %2409 = add nsw i64 %2401, 1
  store i64 %2409, ptr %19, align 8, !tbaa !48
  br label %2410

2410:                                             ; preds = %2408, %2406
  %2411 = phi i64 [ %2409, %2408 ], [ %2407, %2406 ]
  store i64 %2411, ptr %2399, align 8, !tbaa !25
  br label %2412

2412:                                             ; preds = %2410, %2387
  %2413 = load i8, ptr %2368, align 1
  %2414 = and i8 %2413, 2
  %.not2858 = icmp eq i8 %2414, 0
  br i1 %.not2858, label %2427, label %.preheader3528

.preheader3528:                                   ; preds = %2412
  %2415 = getelementptr inbounds i8, ptr %2367, i64 48
  br label %2416

2416:                                             ; preds = %.preheader3528, %2416
  %.02524 = phi i32 [ %2425, %2416 ], [ 0, %.preheader3528 ]
  call void @sqlite3_randomness(i32 noundef 8, ptr noundef nonnull %19) #6
  %2417 = load i64, ptr %19, align 8, !tbaa !48
  %2418 = and i64 %2417, 4611686018427387903
  %2419 = add nuw nsw i64 %2418, 1
  store i64 %2419, ptr %19, align 8, !tbaa !48
  %2420 = load ptr, ptr %2415, align 8, !tbaa !25
  %2421 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %2420, ptr noundef null, i64 noundef %2419, i32 noundef 0, ptr noundef nonnull %20) #6
  %2422 = icmp eq i32 %2421, 0
  %2423 = load i32, ptr %20, align 4
  %2424 = icmp eq i32 %2423, 0
  %or.cond25 = select i1 %2422, i1 %2424, i1 false
  %2425 = add nuw nsw i32 %.02524, 1
  %2426 = icmp ult i32 %.02524, 99
  %or.cond3064 = select i1 %or.cond25, i1 %2426, i1 false
  br i1 %or.cond3064, label %2416, label %.critedge27, !llvm.loop !148

.critedge27:                                      ; preds = %2416
  %.not3509 = xor i1 %2422, true
  %brmerge = select i1 %.not3509, i1 true, i1 %2424
  br i1 %brmerge, label %.thread3281.split.loop.exit, label %2427

.thread3281.split.loop.exit:                      ; preds = %.critedge27
  %.mux.le = select i1 %2422, i32 13, i32 %2421
  br label %.thread3281

.thread3281:                                      ; preds = %2397, %2403, %2371, %.thread3281.split.loop.exit
  %.46.ph = phi i32 [ %.mux.le, %.thread3281.split.loop.exit ], [ %2374, %2371 ], [ 13, %2403 ], [ 13, %2397 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  br label %.thread3123

2427:                                             ; preds = %.critedge27, %2412
  %.45 = phi i32 [ %.44, %2412 ], [ 0, %.critedge27 ]
  %2428 = getelementptr inbounds i8, ptr %2367, i64 3
  store i8 0, ptr %2428, align 1, !tbaa !143
  %2429 = getelementptr inbounds i8, ptr %2367, i64 32
  store i32 0, ptr %2429, align 8, !tbaa !87
  %2430 = load i64, ptr %19, align 8, !tbaa !48
  store i64 %2430, ptr %2361, align 8, !tbaa !25
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  br label %.thread3118

2431:                                             ; preds = %154, %154
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %21) #6
  %2432 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2433 = load i32, ptr %2432, align 8, !tbaa !32
  %2434 = sext i32 %2433 to i64
  %2435 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2434
  %2436 = load ptr, ptr %84, align 8, !tbaa !84
  %2437 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2438 = load i32, ptr %2437, align 4, !tbaa !34
  %2439 = sext i32 %2438 to i64
  %2440 = getelementptr inbounds ptr, ptr %2436, i64 %2439
  %2441 = load ptr, ptr %2440, align 8, !tbaa !45
  %2442 = icmp eq i8 %156, 116
  %2443 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2444 = load i32, ptr %2443, align 4, !tbaa !37
  %2445 = sext i32 %2444 to i64
  br i1 %2442, label %2446, label %2449

2446:                                             ; preds = %2431
  %2447 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2445
  %2448 = load i64, ptr %2447, align 8, !tbaa !25
  br label %2449

2449:                                             ; preds = %2431, %2446
  %2450 = phi i64 [ %2448, %2446 ], [ %2445, %2431 ]
  store i64 %2450, ptr %124, align 8, !tbaa !149
  %2451 = getelementptr inbounds i8, ptr %.02322, i64 1
  %2452 = load i8, ptr %2451, align 1, !tbaa !52
  %2453 = icmp eq i8 %2452, -15
  br i1 %2453, label %2454, label %2469

2454:                                             ; preds = %2449
  %2455 = load ptr, ptr %122, align 8, !tbaa !151
  %.not2842 = icmp eq ptr %2455, null
  br i1 %.not2842, label %2469, label %2456

2456:                                             ; preds = %2454
  %2457 = load ptr, ptr %78, align 8, !tbaa !116
  %2458 = getelementptr inbounds i8, ptr %2441, i64 1
  %2459 = load i8, ptr %2458, align 1, !tbaa !152
  %2460 = sext i8 %2459 to i64
  %2461 = getelementptr inbounds %struct.Db, ptr %2457, i64 %2460
  %2462 = load ptr, ptr %2461, align 8, !tbaa !153
  %2463 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2464 = load ptr, ptr %2463, align 8, !tbaa !25
  %2465 = getelementptr inbounds i8, ptr %.02322, i64 2
  %2466 = load i16, ptr %2465, align 2, !tbaa !44
  %2467 = and i16 %2466, 4
  %.not2843 = icmp eq i16 %2467, 0
  %2468 = select i1 %.not2843, i32 18, i32 23
  br label %2469

2469:                                             ; preds = %2449, %2454, %2456
  %.02530 = phi i32 [ %2468, %2456 ], [ 0, %2454 ], [ 0, %2449 ]
  %.02529 = phi ptr [ %2464, %2456 ], [ null, %2454 ], [ null, %2449 ]
  %.02527 = phi ptr [ %2462, %2456 ], [ null, %2454 ], [ null, %2449 ]
  %2470 = getelementptr inbounds i8, ptr %.02322, i64 2
  %2471 = load i16, ptr %2470, align 2, !tbaa !44
  %2472 = and i16 %2471, 1
  %.not2844 = icmp eq i16 %2472, 0
  br i1 %.not2844, label %2476, label %2473

2473:                                             ; preds = %2469
  %2474 = load i32, ptr %82, align 4, !tbaa !43
  %2475 = add nsw i32 %2474, 1
  store i32 %2475, ptr %82, align 4, !tbaa !43
  br label %2476

2476:                                             ; preds = %2473, %2469
  %2477 = and i16 %2471, 32
  %.not2845 = icmp eq i16 %2477, 0
  br i1 %.not2845, label %2479, label %2478

2478:                                             ; preds = %2476
  store i64 %2450, ptr %81, align 8, !tbaa !154
  br label %2479

2479:                                             ; preds = %2478, %2476
  %2480 = getelementptr inbounds i8, ptr %2435, i64 8
  %2481 = load i16, ptr %2480, align 8, !tbaa !35
  %2482 = and i16 %2481, 1
  %.not2846 = icmp eq i16 %2482, 0
  br i1 %.not2846, label %2484, label %2483

2483:                                             ; preds = %2479
  store ptr null, ptr %125, align 8, !tbaa !155
  br label %2489

2484:                                             ; preds = %2479
  %2485 = getelementptr inbounds i8, ptr %2435, i64 16
  %2486 = load ptr, ptr %2485, align 8, !tbaa !53
  store ptr %2486, ptr %125, align 8, !tbaa !155
  %2487 = getelementptr inbounds i8, ptr %2435, i64 12
  %2488 = load i32, ptr %2487, align 4, !tbaa !54
  br label %2489

2489:                                             ; preds = %2484, %2483
  %storemerge4673 = phi i32 [ 0, %2483 ], [ %2488, %2484 ]
  store i32 %storemerge4673, ptr %126, align 4, !tbaa !156
  %2490 = and i16 %2471, 16
  %.not2847 = icmp eq i16 %2490, 0
  br i1 %.not2847, label %2494, label %2491

2491:                                             ; preds = %2489
  %2492 = getelementptr inbounds i8, ptr %2441, i64 36
  %2493 = load i32, ptr %2492, align 4, !tbaa !145
  br label %2494

2494:                                             ; preds = %2489, %2491
  %2495 = phi i32 [ %2493, %2491 ], [ 0, %2489 ]
  %2496 = and i16 %2481, 16384
  %.not2848 = icmp eq i16 %2496, 0
  br i1 %.not2848, label %2499, label %2497

2497:                                             ; preds = %2494
  %2498 = load i32, ptr %2435, align 8, !tbaa !25
  br label %2499

2499:                                             ; preds = %2494, %2497
  %storemerge4674 = phi i32 [ %2498, %2497 ], [ 0, %2494 ]
  store i32 %storemerge4674, ptr %127, align 8, !tbaa !157
  store ptr null, ptr %21, align 8, !tbaa !158
  %2500 = getelementptr inbounds i8, ptr %2441, i64 48
  %2501 = load ptr, ptr %2500, align 8, !tbaa !25
  %2502 = and i16 %2471, 10
  %2503 = zext nneg i16 %2502 to i32
  %2504 = call i32 @sqlite3BtreeInsert(ptr noundef %2501, ptr noundef nonnull %21, i32 noundef %2503, i32 noundef %2495) #6
  %2505 = getelementptr inbounds i8, ptr %2441, i64 3
  store i8 0, ptr %2505, align 1, !tbaa !143
  %2506 = getelementptr inbounds i8, ptr %2441, i64 32
  store i32 0, ptr %2506, align 8, !tbaa !87
  %.not2849 = icmp eq i32 %2504, 0
  br i1 %.not2849, label %2507, label %2515

2507:                                             ; preds = %2499
  %2508 = load ptr, ptr %122, align 8, !tbaa !151
  %2509 = icmp ne ptr %2508, null
  %2510 = icmp ne i32 %.02530, 0
  %or.cond29 = select i1 %2509, i1 %2510, i1 false
  br i1 %or.cond29, label %2511, label %.thread3285

2511:                                             ; preds = %2507
  %2512 = load ptr, ptr %123, align 8, !tbaa !159
  %2513 = load ptr, ptr %.02529, align 8, !tbaa !160
  %2514 = load i64, ptr %124, align 8, !tbaa !149
  call void %2508(ptr noundef %2512, i32 noundef %.02530, ptr noundef %.02527, ptr noundef %2513, i64 noundef %2514) #6
  br label %.thread3285

.thread3285:                                      ; preds = %2511, %2507
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %21) #6
  br label %.thread3118

2515:                                             ; preds = %2499
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %21) #6
  br label %.thread3123

2516:                                             ; preds = %154
  %2517 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2518 = load i32, ptr %2517, align 8, !tbaa !32
  %2519 = load ptr, ptr %84, align 8, !tbaa !84
  %2520 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2521 = load i32, ptr %2520, align 4, !tbaa !34
  %2522 = sext i32 %2521 to i64
  %2523 = getelementptr inbounds ptr, ptr %2519, i64 %2522
  %2524 = load ptr, ptr %2523, align 8, !tbaa !45
  %2525 = getelementptr inbounds i8, ptr %.02322, i64 1
  %2526 = load i8, ptr %2525, align 1, !tbaa !52
  %2527 = icmp eq i8 %2526, -15
  br i1 %2527, label %2528, label %2550

2528:                                             ; preds = %2516
  %2529 = load ptr, ptr %122, align 8, !tbaa !151
  %.not2836 = icmp eq ptr %2529, null
  br i1 %.not2836, label %2550, label %2530

2530:                                             ; preds = %2528
  %2531 = load ptr, ptr %78, align 8, !tbaa !116
  %2532 = getelementptr inbounds i8, ptr %2524, i64 1
  %2533 = load i8, ptr %2532, align 1, !tbaa !152
  %2534 = sext i8 %2533 to i64
  %2535 = getelementptr inbounds %struct.Db, ptr %2531, i64 %2534
  %2536 = load ptr, ptr %2535, align 8, !tbaa !153
  %2537 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2538 = load ptr, ptr %2537, align 8, !tbaa !25
  %2539 = getelementptr inbounds i8, ptr %.02322, i64 2
  %2540 = load i16, ptr %2539, align 2, !tbaa !44
  %2541 = and i16 %2540, 2
  %.not2837 = icmp eq i16 %2541, 0
  br i1 %.not2837, label %2550, label %2542

2542:                                             ; preds = %2530
  %2543 = getelementptr inbounds i8, ptr %2524, i64 4
  %2544 = load i8, ptr %2543, align 4, !tbaa !132
  %.not2838 = icmp eq i8 %2544, 0
  br i1 %.not2838, label %2550, label %2545

2545:                                             ; preds = %2542
  %2546 = getelementptr inbounds i8, ptr %2524, i64 48
  %2547 = load ptr, ptr %2546, align 8, !tbaa !25
  %2548 = call i64 @sqlite3BtreeIntegerKey(ptr noundef %2547) #6
  %2549 = getelementptr inbounds i8, ptr %2524, i64 80
  store i64 %2548, ptr %2549, align 8, !tbaa !136
  br label %2550

2550:                                             ; preds = %2516, %2528, %2530, %2542, %2545
  %.02532 = phi ptr [ %2538, %2545 ], [ %2538, %2542 ], [ %2538, %2530 ], [ null, %2528 ], [ null, %2516 ]
  %.02531 = phi ptr [ %2536, %2545 ], [ %2536, %2542 ], [ %2536, %2530 ], [ null, %2528 ], [ null, %2516 ]
  %2551 = getelementptr inbounds i8, ptr %2524, i64 48
  %2552 = load ptr, ptr %2551, align 8, !tbaa !25
  %2553 = getelementptr inbounds i8, ptr %.02322, i64 2
  %2554 = load i16, ptr %2553, align 2, !tbaa !44
  %2555 = trunc i16 %2554 to i8
  %2556 = call i32 @sqlite3BtreeDelete(ptr noundef %2552, i8 noundef zeroext %2555) #6
  %2557 = getelementptr inbounds i8, ptr %2524, i64 32
  store i32 0, ptr %2557, align 8, !tbaa !87
  %2558 = getelementptr inbounds i8, ptr %2524, i64 36
  store i32 0, ptr %2558, align 4, !tbaa !145
  %.not2839 = icmp eq i32 %2556, 0
  br i1 %.not2839, label %2559, label %.thread3123

2559:                                             ; preds = %2550
  %2560 = and i32 %2518, 1
  %.not2840 = icmp eq i32 %2560, 0
  br i1 %.not2840, label %.thread3118, label %2561

2561:                                             ; preds = %2559
  %2562 = load i32, ptr %82, align 4, !tbaa !43
  %2563 = add nsw i32 %2562, 1
  store i32 %2563, ptr %82, align 4, !tbaa !43
  %2564 = load ptr, ptr %122, align 8, !tbaa !151
  %.not2841 = icmp eq ptr %2564, null
  br i1 %.not2841, label %.thread3118, label %2565

2565:                                             ; preds = %2561
  %2566 = getelementptr inbounds i8, ptr %.02532, i64 64
  %2567 = load i32, ptr %2566, align 8, !tbaa !162
  %2568 = and i32 %2567, 32
  %2569 = icmp eq i32 %2568, 0
  br i1 %2569, label %2570, label %.thread3118

2570:                                             ; preds = %2565
  %2571 = load ptr, ptr %123, align 8, !tbaa !159
  %2572 = load ptr, ptr %.02532, align 8, !tbaa !160
  %2573 = getelementptr inbounds i8, ptr %2524, i64 80
  %2574 = load i64, ptr %2573, align 8, !tbaa !136
  call void %2564(ptr noundef %2571, i32 noundef 9, ptr noundef %.02531, ptr noundef %2572, i64 noundef %2574) #6
  br label %.thread3118

2575:                                             ; preds = %154
  %2576 = load i32, ptr %82, align 4, !tbaa !43
  call void @sqlite3VdbeSetChanges(ptr noundef %49, i32 noundef %2576) #6
  store i32 0, ptr %82, align 4, !tbaa !43
  br label %.thread3118

2577:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  %2578 = load ptr, ptr %84, align 8, !tbaa !84
  %2579 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2580 = load i32, ptr %2579, align 4, !tbaa !34
  %2581 = sext i32 %2580 to i64
  %2582 = getelementptr inbounds ptr, ptr %2578, i64 %2581
  %2583 = load ptr, ptr %2582, align 8, !tbaa !45
  %2584 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2585 = load i32, ptr %2584, align 4, !tbaa !37
  %2586 = sext i32 %2585 to i64
  %2587 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2586
  %2588 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2589 = load i32, ptr %2588, align 8, !tbaa !25
  store i32 0, ptr %22, align 4, !tbaa !27
  %2590 = call i32 @sqlite3VdbeSorterCompare(ptr noundef %2583, ptr noundef %2587, i32 noundef %2589, ptr noundef nonnull %22) #6
  %.not2834 = icmp eq i32 %2590, 0
  %2591 = load i32, ptr %22, align 4
  %.not2835 = icmp eq i32 %2591, 0
  %.3065 = select i1 %.not2835, i32 7, i32 11
  %.292408 = select i1 %.not2834, i32 %.3065, i32 10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  switch i32 %.292408, label %.loopexit3537 [
    i32 11, label %.thread3154
    i32 7, label %.thread3118
    i32 10, label %.thread3123
  ]

2592:                                             ; preds = %154
  %2593 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2594 = load i32, ptr %2593, align 8, !tbaa !32
  %2595 = sext i32 %2594 to i64
  %2596 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2595
  %2597 = load ptr, ptr %84, align 8, !tbaa !84
  %2598 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2599 = load i32, ptr %2598, align 4, !tbaa !34
  %2600 = sext i32 %2599 to i64
  %2601 = getelementptr inbounds ptr, ptr %2597, i64 %2600
  %2602 = load ptr, ptr %2601, align 8, !tbaa !45
  %2603 = call i32 @sqlite3VdbeSorterRowkey(ptr noundef %2602, ptr noundef %2596) #6
  %.not2833 = icmp eq i32 %2603, 0
  br i1 %.not2833, label %.thread3290, label %.thread3123

.thread3290:                                      ; preds = %2592
  %2604 = load ptr, ptr %84, align 8, !tbaa !84
  %2605 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2606 = load i32, ptr %2605, align 4, !tbaa !37
  %2607 = sext i32 %2606 to i64
  %2608 = getelementptr inbounds ptr, ptr %2604, i64 %2607
  %2609 = load ptr, ptr %2608, align 8, !tbaa !45
  %2610 = getelementptr inbounds i8, ptr %2609, i64 32
  store i32 0, ptr %2610, align 8, !tbaa !87
  br label %.thread3118

2611:                                             ; preds = %154
  %2612 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %2613 = load ptr, ptr %84, align 8, !tbaa !84
  %2614 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2615 = load i32, ptr %2614, align 4, !tbaa !34
  %2616 = sext i32 %2615 to i64
  %2617 = getelementptr inbounds ptr, ptr %2613, i64 %2616
  %2618 = load ptr, ptr %2617, align 8, !tbaa !45
  %2619 = getelementptr inbounds i8, ptr %2618, i64 48
  %2620 = load ptr, ptr %2619, align 8, !tbaa !25
  %2621 = call i32 @sqlite3BtreePayloadSize(ptr noundef %2620) #6
  %2622 = load i32, ptr %121, align 8, !tbaa !27
  %2623 = icmp ugt i32 %2621, %2622
  br i1 %2623, label %.thread3298, label %2624

2624:                                             ; preds = %2611
  %2625 = call i32 @sqlite3VdbeMemFromBtree(ptr noundef %2620, i32 noundef 0, i32 noundef %2621, ptr noundef %2612) #6
  %.not2829 = icmp eq i32 %2625, 0
  br i1 %.not2829, label %2626, label %.thread3123

2626:                                             ; preds = %2624
  %2627 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2628 = load i32, ptr %2627, align 4, !tbaa !37
  %.not2830 = icmp eq i32 %2628, 0
  br i1 %.not2830, label %2629, label %.thread3118

2629:                                             ; preds = %2626
  %2630 = getelementptr inbounds i8, ptr %2612, i64 8
  %2631 = load i16, ptr %2630, align 8, !tbaa !35
  %2632 = and i16 %2631, 4096
  %.not2831 = icmp eq i16 %2632, 0
  br i1 %.not2831, label %.thread3118, label %2633

2633:                                             ; preds = %2629
  %2634 = call i32 @sqlite3VdbeMemMakeWriteable(ptr noundef nonnull %2612) #6
  %.not2832 = icmp eq i32 %2634, 0
  br i1 %.not2832, label %.thread3118, label %.critedge31

2635:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #6
  %2636 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %2637 = load ptr, ptr %84, align 8, !tbaa !84
  %2638 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2639 = load i32, ptr %2638, align 4, !tbaa !34
  %2640 = sext i32 %2639 to i64
  %2641 = getelementptr inbounds ptr, ptr %2637, i64 %2640
  %2642 = load ptr, ptr %2641, align 8, !tbaa !45
  %2643 = getelementptr inbounds i8, ptr %2642, i64 2
  %2644 = load i8, ptr %2643, align 2, !tbaa !89
  %.not2824 = icmp eq i8 %2644, 0
  br i1 %.not2824, label %2647, label %2645

2645:                                             ; preds = %2635
  %2646 = getelementptr inbounds i8, ptr %2636, i64 8
  store i16 1, ptr %2646, align 8, !tbaa !35
  br label %.thread3302

2647:                                             ; preds = %2635
  %2648 = getelementptr inbounds i8, ptr %2642, i64 3
  %2649 = load i8, ptr %2648, align 1, !tbaa !143
  %.not2825 = icmp eq i8 %2649, 0
  br i1 %.not2825, label %2653, label %2650

2650:                                             ; preds = %2647
  %2651 = getelementptr inbounds i8, ptr %2642, i64 80
  %2652 = load i64, ptr %2651, align 8, !tbaa !136
  br label %2674

2653:                                             ; preds = %2647
  %2654 = load i8, ptr %2642, align 8, !tbaa !90
  %2655 = icmp eq i8 %2654, 2
  br i1 %2655, label %2656, label %2664

2656:                                             ; preds = %2653
  %2657 = getelementptr inbounds i8, ptr %2642, i64 48
  %2658 = load ptr, ptr %2657, align 8, !tbaa !25
  %2659 = load ptr, ptr %2658, align 8, !tbaa !163
  %2660 = load ptr, ptr %2659, align 8, !tbaa !165
  %2661 = getelementptr inbounds i8, ptr %2660, i64 96
  %2662 = load ptr, ptr %2661, align 8, !tbaa !167
  %2663 = call i32 %2662(ptr noundef nonnull %2658, ptr noundef nonnull %23) #6
  call void @sqlite3VtabImportErrmsg(ptr noundef nonnull %0, ptr noundef nonnull %2659) #6
  %.not2828 = icmp eq i32 %2663, 0
  br i1 %.not2828, label %._crit_edge4624, label %2676

._crit_edge4624:                                  ; preds = %2656
  %.pre4625 = load i64, ptr %23, align 8, !tbaa !48
  br label %2674

2664:                                             ; preds = %2653
  %2665 = call i32 @sqlite3VdbeCursorRestore(ptr noundef nonnull %2642) #6
  %.not2826 = icmp eq i32 %2665, 0
  br i1 %.not2826, label %2666, label %2676

2666:                                             ; preds = %2664
  %2667 = load i8, ptr %2643, align 2, !tbaa !89
  %.not2827 = icmp eq i8 %2667, 0
  br i1 %.not2827, label %2670, label %2668

2668:                                             ; preds = %2666
  %2669 = getelementptr inbounds i8, ptr %2636, i64 8
  store i16 1, ptr %2669, align 8, !tbaa !35
  br label %.thread3302

2670:                                             ; preds = %2666
  %2671 = getelementptr inbounds i8, ptr %2642, i64 48
  %2672 = load ptr, ptr %2671, align 8, !tbaa !25
  %2673 = call i64 @sqlite3BtreeIntegerKey(ptr noundef %2672) #6
  br label %2674

2674:                                             ; preds = %._crit_edge4624, %2650, %2670
  %2675 = phi i64 [ %2652, %2650 ], [ %.pre4625, %._crit_edge4624 ], [ %2673, %2670 ]
  %.48 = phi i32 [ %.02330, %2650 ], [ 0, %._crit_edge4624 ], [ 0, %2670 ]
  store i64 %2675, ptr %2636, align 8, !tbaa !25
  br label %.thread3302

.thread3302:                                      ; preds = %2645, %2674, %2668
  %.49.ph = phi i32 [ 0, %2668 ], [ %.48, %2674 ], [ %.02330, %2645 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  br label %.thread3118

2676:                                             ; preds = %2664, %2656
  %.49 = phi i32 [ %2663, %2656 ], [ %2665, %2664 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  br label %.thread3123

2677:                                             ; preds = %154
  %2678 = load ptr, ptr %84, align 8, !tbaa !84
  %2679 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2680 = load i32, ptr %2679, align 4, !tbaa !34
  %2681 = sext i32 %2680 to i64
  %2682 = getelementptr inbounds ptr, ptr %2678, i64 %2681
  %2683 = load ptr, ptr %2682, align 8, !tbaa !45
  %2684 = getelementptr inbounds i8, ptr %2683, i64 2
  store i8 1, ptr %2684, align 2, !tbaa !89
  %2685 = getelementptr inbounds i8, ptr %2683, i64 32
  store i32 0, ptr %2685, align 8, !tbaa !87
  %2686 = load i8, ptr %2683, align 8, !tbaa !90
  %2687 = icmp eq i8 %2686, 0
  br i1 %2687, label %2688, label %.thread3118

2688:                                             ; preds = %2677
  %2689 = getelementptr inbounds i8, ptr %2683, i64 48
  %2690 = load ptr, ptr %2689, align 8, !tbaa !25
  call void @sqlite3BtreeClearCursor(ptr noundef %2690) #6
  br label %.thread3118

2691:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  %2692 = load ptr, ptr %84, align 8, !tbaa !84
  %2693 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2694 = load i32, ptr %2693, align 4, !tbaa !34
  %2695 = sext i32 %2694 to i64
  %2696 = getelementptr inbounds ptr, ptr %2692, i64 %2695
  %2697 = load ptr, ptr %2696, align 8, !tbaa !45
  %2698 = getelementptr inbounds i8, ptr %2697, i64 48
  %2699 = load ptr, ptr %2698, align 8, !tbaa !25
  store i32 0, ptr %24, align 4, !tbaa !27
  %2700 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2701 = load i32, ptr %2700, align 4, !tbaa !37
  %2702 = getelementptr inbounds i8, ptr %2697, i64 36
  store i32 %2701, ptr %2702, align 4, !tbaa !145
  %2703 = icmp eq i32 %2701, 0
  br i1 %2703, label %2706, label %2704

2704:                                             ; preds = %2691
  %2705 = call i32 @sqlite3BtreeCursorIsValidNN(ptr noundef %2699) #6
  %.not2822 = icmp eq i32 %2705, 0
  br i1 %.not2822, label %2706, label %.thread3307

2706:                                             ; preds = %2704, %2691
  %2707 = call i32 @sqlite3BtreeLast(ptr noundef %2699, ptr noundef nonnull %24) #6
  %2708 = load i32, ptr %24, align 4, !tbaa !27
  %2709 = trunc i32 %2708 to i8
  %2710 = getelementptr inbounds i8, ptr %2697, i64 2
  store i8 %2709, ptr %2710, align 2, !tbaa !89
  %2711 = getelementptr inbounds i8, ptr %2697, i64 3
  store i8 0, ptr %2711, align 1, !tbaa !143
  %2712 = getelementptr inbounds i8, ptr %2697, i64 32
  store i32 0, ptr %2712, align 8, !tbaa !87
  %.not2823 = icmp eq i32 %2707, 0
  br i1 %.not2823, label %2713, label %2719

2713:                                             ; preds = %2706
  %2714 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2715 = load i32, ptr %2714, align 8, !tbaa !32
  %2716 = icmp sgt i32 %2715, 0
  %2717 = load i32, ptr %24, align 4
  %2718 = icmp ne i32 %2717, 0
  %or.cond37 = select i1 %2716, i1 %2718, i1 false
  br i1 %or.cond37, label %.thread3310, label %.thread3307

.thread3310:                                      ; preds = %2713
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  br label %.thread3154

.thread3307:                                      ; preds = %2704, %2713
  %.51.ph = phi i32 [ 0, %2713 ], [ %.02330, %2704 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  br label %.thread3118

2719:                                             ; preds = %2706
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  br label %.thread3123

2720:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  %2721 = load ptr, ptr %84, align 8, !tbaa !84
  %2722 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2723 = load i32, ptr %2722, align 4, !tbaa !34
  %2724 = sext i32 %2723 to i64
  %2725 = getelementptr inbounds ptr, ptr %2721, i64 %2724
  %2726 = load ptr, ptr %2725, align 8, !tbaa !45
  %2727 = getelementptr inbounds i8, ptr %2726, i64 48
  %2728 = load ptr, ptr %2727, align 8, !tbaa !25
  %2729 = call i32 @sqlite3BtreeFirst(ptr noundef %2728, ptr noundef nonnull %25) #6
  %.not2820 = icmp eq i32 %2729, 0
  br i1 %.not2820, label %2730, label %2743

2730:                                             ; preds = %2720
  %2731 = load i32, ptr %25, align 4, !tbaa !27
  %2732 = icmp eq i32 %2731, 0
  br i1 %2732, label %2733, label %.thread3314

2733:                                             ; preds = %2730
  %2734 = call i64 @sqlite3BtreeRowCountEst(ptr noundef %2728) #6
  %2735 = icmp sgt i64 %2734, -1
  br i1 %2735, label %2736, label %2742

2736:                                             ; preds = %2733
  %2737 = call signext i16 @sqlite3LogEst(i64 noundef %2734) #6
  %2738 = sext i16 %2737 to i32
  %2739 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2740 = load i32, ptr %2739, align 4, !tbaa !37
  %2741 = icmp sle i32 %2740, %2738
  %.pr3480 = load i32, ptr %25, align 4
  %.not2821 = icmp eq i32 %.pr3480, 0
  %or.cond5159 = select i1 %2741, i1 %.not2821, i1 false
  br i1 %or.cond5159, label %.thread3316, label %.thread3314

2742:                                             ; preds = %2733
  %.pr3480.old = load i32, ptr %25, align 4, !tbaa !27
  %.not2821.old = icmp eq i32 %.pr3480.old, 0
  br i1 %.not2821.old, label %.thread3316, label %.thread3314

.thread3314:                                      ; preds = %2736, %2730, %2742
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  br label %.thread3154

.thread3316:                                      ; preds = %2736, %2742
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  br label %.thread3118

2743:                                             ; preds = %2720
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  br label %.thread3123

2744:                                             ; preds = %154, %154
  %2745 = load i32, ptr %120, align 4, !tbaa !27
  %2746 = add i32 %2745, 1
  store i32 %2746, ptr %120, align 4, !tbaa !27
  br label %2747

2747:                                             ; preds = %2744, %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  %2748 = load ptr, ptr %84, align 8, !tbaa !84
  %2749 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2750 = load i32, ptr %2749, align 4, !tbaa !34
  %2751 = sext i32 %2750 to i64
  %2752 = getelementptr inbounds ptr, ptr %2748, i64 %2751
  %2753 = load ptr, ptr %2752, align 8, !tbaa !45
  store i32 1, ptr %26, align 4, !tbaa !27
  %2754 = load i8, ptr %2753, align 8, !tbaa !90
  %2755 = icmp eq i8 %2754, 1
  br i1 %2755, label %2756, label %2758

2756:                                             ; preds = %2747
  %2757 = call i32 @sqlite3VdbeSorterRewind(ptr noundef nonnull %2753, ptr noundef nonnull %26) #6
  br label %2764

2758:                                             ; preds = %2747
  %2759 = getelementptr inbounds i8, ptr %2753, i64 48
  %2760 = load ptr, ptr %2759, align 8, !tbaa !25
  %2761 = call i32 @sqlite3BtreeFirst(ptr noundef %2760, ptr noundef nonnull %26) #6
  %2762 = getelementptr inbounds i8, ptr %2753, i64 3
  store i8 0, ptr %2762, align 1, !tbaa !143
  %2763 = getelementptr inbounds i8, ptr %2753, i64 32
  store i32 0, ptr %2763, align 8, !tbaa !87
  br label %2764

2764:                                             ; preds = %2758, %2756
  %.52 = phi i32 [ %2757, %2756 ], [ %2761, %2758 ]
  %.not2818 = icmp eq i32 %.52, 0
  br i1 %.not2818, label %2765, label %2769

2765:                                             ; preds = %2764
  %2766 = load i32, ptr %26, align 4, !tbaa !27
  %2767 = trunc i32 %2766 to i8
  %2768 = getelementptr inbounds i8, ptr %2753, i64 2
  store i8 %2767, ptr %2768, align 2, !tbaa !89
  %.not2819 = icmp eq i32 %2766, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  br i1 %.not2819, label %.thread3118, label %.thread3154

2769:                                             ; preds = %2764
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  br label %.thread3123

2770:                                             ; preds = %154
  %2771 = load ptr, ptr %84, align 8, !tbaa !84
  %2772 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2773 = load i32, ptr %2772, align 4, !tbaa !34
  %2774 = sext i32 %2773 to i64
  %2775 = getelementptr inbounds ptr, ptr %2771, i64 %2774
  %2776 = load ptr, ptr %2775, align 8, !tbaa !45
  store i32 0, ptr %27, align 4, !tbaa !27
  %2777 = call i32 @sqlite3VdbeSorterNext(ptr noundef %49, ptr noundef %2776, ptr noundef nonnull %27) #6
  br label %2800

2778:                                             ; preds = %154, %154
  %2779 = load ptr, ptr %84, align 8, !tbaa !84
  %2780 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2781 = load i32, ptr %2780, align 4, !tbaa !34
  %2782 = sext i32 %2781 to i64
  %2783 = getelementptr inbounds ptr, ptr %2779, i64 %2782
  %2784 = load ptr, ptr %2783, align 8, !tbaa !45
  %2785 = icmp eq ptr %2784, null
  br i1 %2785, label %.thread3118, label %2786

2786:                                             ; preds = %2778, %154, %154
  %2787 = load ptr, ptr %84, align 8, !tbaa !84
  %2788 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2789 = load i32, ptr %2788, align 4, !tbaa !34
  %2790 = sext i32 %2789 to i64
  %2791 = getelementptr inbounds ptr, ptr %2787, i64 %2790
  %2792 = load ptr, ptr %2791, align 8, !tbaa !45
  %2793 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2794 = load i32, ptr %2793, align 4, !tbaa !37
  store i32 %2794, ptr %27, align 4, !tbaa !27
  %2795 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2796 = load ptr, ptr %2795, align 8, !tbaa !25
  %2797 = getelementptr inbounds i8, ptr %2792, i64 48
  %2798 = load ptr, ptr %2797, align 8, !tbaa !25
  %2799 = call i32 %2796(ptr noundef %2798, ptr noundef nonnull %27) #6
  br label %2800

2800:                                             ; preds = %2786, %2770
  %.02528 = phi ptr [ %2792, %2786 ], [ %2776, %2770 ]
  %.53 = phi i32 [ %2799, %2786 ], [ %2777, %2770 ]
  %2801 = getelementptr inbounds i8, ptr %.02528, i64 32
  store i32 0, ptr %2801, align 8, !tbaa !87
  %.not2817 = icmp eq i32 %.53, 0
  br i1 %.not2817, label %2802, label %.thread3123

2802:                                             ; preds = %2800
  %2803 = load i32, ptr %27, align 4, !tbaa !27
  %2804 = icmp eq i32 %2803, 0
  %2805 = getelementptr inbounds i8, ptr %.02528, i64 2
  br i1 %2804, label %2806, label %2813

2806:                                             ; preds = %2802
  store i8 0, ptr %2805, align 2, !tbaa !89
  %2807 = getelementptr inbounds i8, ptr %.02322, i64 2
  %2808 = load i16, ptr %2807, align 2, !tbaa !44
  %2809 = zext i16 %2808 to i64
  %2810 = getelementptr inbounds [5 x i32], ptr %119, i64 0, i64 %2809
  %2811 = load i32, ptr %2810, align 4, !tbaa !27
  %2812 = add i32 %2811, 1
  store i32 %2812, ptr %2810, align 4, !tbaa !27
  br label %.thread3455

2813:                                             ; preds = %2802
  store i8 1, ptr %2805, align 2, !tbaa !89
  br label %.thread3458

2814:                                             ; preds = %154, %154
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %28) #6
  %2815 = load ptr, ptr %84, align 8, !tbaa !84
  %2816 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2817 = load i32, ptr %2816, align 4, !tbaa !34
  %2818 = sext i32 %2817 to i64
  %2819 = getelementptr inbounds ptr, ptr %2815, i64 %2818
  %2820 = load ptr, ptr %2819, align 8, !tbaa !45
  %2821 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2822 = load i32, ptr %2821, align 8, !tbaa !32
  %2823 = sext i32 %2822 to i64
  %2824 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2823
  %2825 = getelementptr inbounds i8, ptr %.02322, i64 2
  %2826 = load i16, ptr %2825, align 2, !tbaa !44
  %2827 = and i16 %2826, 1
  %.not2812 = icmp eq i16 %2827, 0
  br i1 %.not2812, label %2831, label %2828

2828:                                             ; preds = %2814
  %2829 = load i32, ptr %82, align 4, !tbaa !43
  %2830 = add nsw i32 %2829, 1
  store i32 %2830, ptr %82, align 4, !tbaa !43
  br label %2831

2831:                                             ; preds = %2828, %2814
  %2832 = getelementptr inbounds i8, ptr %2824, i64 8
  %2833 = load i16, ptr %2832, align 8, !tbaa !35
  %2834 = and i16 %2833, 16384
  %.not2813 = icmp eq i16 %2834, 0
  br i1 %.not2813, label %.thread3323, label %2835

2835:                                             ; preds = %2831
  %2836 = call i32 @sqlite3VdbeMemExpandBlob(ptr noundef nonnull %2824) #6
  %.not2814 = icmp eq i32 %2836, 0
  br i1 %.not2814, label %..thread3323_crit_edge, label %.thread3327

..thread3323_crit_edge:                           ; preds = %2835
  %.pre4623 = load i8, ptr %.02322, align 8, !tbaa !30
  br label %.thread3323

.thread3323:                                      ; preds = %..thread3323_crit_edge, %2831
  %2837 = phi i8 [ %.pre4623, %..thread3323_crit_edge ], [ %156, %2831 ]
  %2838 = icmp eq i8 %2837, 125
  br i1 %2838, label %2839, label %2841

2839:                                             ; preds = %.thread3323
  %2840 = call i32 @sqlite3VdbeSorterWrite(ptr noundef %2820, ptr noundef nonnull %2824) #6
  br label %2867

2841:                                             ; preds = %.thread3323
  %2842 = getelementptr inbounds i8, ptr %2824, i64 12
  %2843 = load i32, ptr %2842, align 4, !tbaa !54
  %2844 = sext i32 %2843 to i64
  store i64 %2844, ptr %116, align 8, !tbaa !149
  %2845 = getelementptr inbounds i8, ptr %2824, i64 16
  %2846 = load ptr, ptr %2845, align 8, !tbaa !53
  store ptr %2846, ptr %28, align 8, !tbaa !158
  %2847 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2848 = load i32, ptr %2847, align 4, !tbaa !37
  %2849 = sext i32 %2848 to i64
  %2850 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2849
  store ptr %2850, ptr %117, align 8, !tbaa !169
  %2851 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2852 = load i32, ptr %2851, align 8, !tbaa !25
  %2853 = trunc i32 %2852 to i16
  store i16 %2853, ptr %118, align 8, !tbaa !170
  %2854 = getelementptr inbounds i8, ptr %2820, i64 48
  %2855 = load ptr, ptr %2854, align 8, !tbaa !25
  %2856 = load i16, ptr %2825, align 2, !tbaa !44
  %2857 = zext i16 %2856 to i32
  %2858 = and i32 %2857, 10
  %2859 = and i32 %2857, 16
  %.not2815 = icmp eq i32 %2859, 0
  br i1 %.not2815, label %2863, label %2860

2860:                                             ; preds = %2841
  %2861 = getelementptr inbounds i8, ptr %2820, i64 36
  %2862 = load i32, ptr %2861, align 4, !tbaa !145
  br label %2863

2863:                                             ; preds = %2841, %2860
  %2864 = phi i32 [ %2862, %2860 ], [ 0, %2841 ]
  %2865 = call i32 @sqlite3BtreeInsert(ptr noundef %2855, ptr noundef nonnull %28, i32 noundef %2858, i32 noundef %2864) #6
  %2866 = getelementptr inbounds i8, ptr %2820, i64 32
  store i32 0, ptr %2866, align 8, !tbaa !87
  br label %2867

2867:                                             ; preds = %2863, %2839
  %.54 = phi i32 [ %2840, %2839 ], [ %2865, %2863 ]
  %.not2816 = icmp eq i32 %.54, 0
  br i1 %.not2816, label %2868, label %.thread3327

.thread3327:                                      ; preds = %2835, %2867
  %.55.ph = phi i32 [ %.54, %2867 ], [ %2836, %2835 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %28) #6
  br label %.thread3123

2868:                                             ; preds = %2867
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %28) #6
  br label %.thread3118

2869:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %30) #6
  %2870 = load ptr, ptr %84, align 8, !tbaa !84
  %2871 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2872 = load i32, ptr %2871, align 4, !tbaa !34
  %2873 = sext i32 %2872 to i64
  %2874 = getelementptr inbounds ptr, ptr %2870, i64 %2873
  %2875 = load ptr, ptr %2874, align 8, !tbaa !45
  %2876 = getelementptr inbounds i8, ptr %2875, i64 48
  %2877 = load ptr, ptr %2876, align 8, !tbaa !25
  %2878 = getelementptr inbounds i8, ptr %2875, i64 56
  %2879 = load ptr, ptr %2878, align 8, !tbaa !131
  store ptr %2879, ptr %30, align 8, !tbaa !137
  %2880 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2881 = load i32, ptr %2880, align 4, !tbaa !37
  %2882 = trunc i32 %2881 to i16
  store i16 %2882, ptr %113, align 8, !tbaa !139
  store i8 0, ptr %114, align 2, !tbaa !140
  %2883 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2884 = load i32, ptr %2883, align 8, !tbaa !32
  %2885 = sext i32 %2884 to i64
  %2886 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2885
  store ptr %2886, ptr %115, align 8, !tbaa !141
  %2887 = call i32 @sqlite3BtreeMovetoUnpacked(ptr noundef %2877, ptr noundef nonnull %30, i64 noundef 0, i32 noundef 0, ptr noundef nonnull %29) #6
  %.not2810 = icmp eq i32 %2887, 0
  br i1 %.not2810, label %2888, label %.thread3331

2888:                                             ; preds = %2869
  %2889 = load i32, ptr %29, align 4, !tbaa !27
  %2890 = icmp eq i32 %2889, 0
  br i1 %2890, label %2891, label %2893

2891:                                             ; preds = %2888
  %2892 = call i32 @sqlite3BtreeDelete(ptr noundef %2877, i8 noundef zeroext 4) #6
  %.not2811 = icmp eq i32 %2892, 0
  br i1 %.not2811, label %2893, label %.thread3331

.thread3331:                                      ; preds = %2869, %2891
  %.57.ph = phi i32 [ %2892, %2891 ], [ %2887, %2869 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  br label %.thread3123

2893:                                             ; preds = %2888, %2891
  %2894 = getelementptr inbounds i8, ptr %2875, i64 32
  store i32 0, ptr %2894, align 8, !tbaa !87
  %2895 = getelementptr inbounds i8, ptr %2875, i64 36
  store i32 0, ptr %2895, align 4, !tbaa !145
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  br label %.thread3118

2896:                                             ; preds = %154, %154
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #6
  %2897 = load ptr, ptr %84, align 8, !tbaa !84
  %2898 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2899 = load i32, ptr %2898, align 4, !tbaa !34
  %2900 = sext i32 %2899 to i64
  %2901 = getelementptr inbounds ptr, ptr %2897, i64 %2900
  %2902 = load ptr, ptr %2901, align 8, !tbaa !45
  %2903 = call i32 @sqlite3VdbeCursorRestore(ptr noundef %2902) #6
  %.not2807 = icmp eq i32 %2903, 0
  br i1 %.not2807, label %2904, label %2937

2904:                                             ; preds = %2896
  %2905 = getelementptr inbounds i8, ptr %2902, i64 2
  %2906 = load i8, ptr %2905, align 2, !tbaa !89
  %.not2808 = icmp eq i8 %2906, 0
  br i1 %.not2808, label %2907, label %2932

2907:                                             ; preds = %2904
  store i64 0, ptr %31, align 8, !tbaa !48
  %2908 = getelementptr inbounds i8, ptr %2902, i64 48
  %2909 = load ptr, ptr %2908, align 8, !tbaa !25
  %2910 = call i32 @sqlite3VdbeIdxRowid(ptr noundef %49, ptr noundef %2909, ptr noundef nonnull %31) #6
  %.not2809 = icmp eq i32 %2910, 0
  br i1 %.not2809, label %2911, label %2937

2911:                                             ; preds = %2907
  %2912 = load i8, ptr %.02322, align 8, !tbaa !30
  %2913 = icmp eq i8 %2912, -128
  br i1 %2913, label %2914, label %2929

2914:                                             ; preds = %2911
  %2915 = load ptr, ptr %84, align 8, !tbaa !84
  %2916 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2917 = load i32, ptr %2916, align 4, !tbaa !37
  %2918 = sext i32 %2917 to i64
  %2919 = getelementptr inbounds ptr, ptr %2915, i64 %2918
  %2920 = load ptr, ptr %2919, align 8, !tbaa !45
  %2921 = getelementptr inbounds i8, ptr %2920, i64 2
  store i8 0, ptr %2921, align 2, !tbaa !89
  %2922 = load i64, ptr %31, align 8, !tbaa !48
  %2923 = getelementptr inbounds i8, ptr %2920, i64 80
  store i64 %2922, ptr %2923, align 8, !tbaa !136
  %2924 = getelementptr inbounds i8, ptr %2920, i64 3
  store i8 1, ptr %2924, align 1, !tbaa !143
  %2925 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2926 = load ptr, ptr %2925, align 8, !tbaa !25
  %2927 = getelementptr inbounds i8, ptr %2920, i64 24
  store ptr %2926, ptr %2927, align 8, !tbaa !171
  %2928 = getelementptr inbounds i8, ptr %2920, i64 40
  store ptr %2902, ptr %2928, align 8, !tbaa !172
  br label %.thread3335

2929:                                             ; preds = %2911
  %2930 = call ptr @out2Prerelease(ptr noundef nonnull %0, ptr noundef nonnull %.02322)
  %2931 = load i64, ptr %31, align 8, !tbaa !48
  store i64 %2931, ptr %2930, align 8, !tbaa !25
  br label %.thread3335

2932:                                             ; preds = %2904
  %2933 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2934 = load i32, ptr %2933, align 8, !tbaa !32
  %2935 = sext i32 %2934 to i64
  %2936 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2935
  call void @sqlite3VdbeMemSetNull(ptr noundef %2936) #6
  br label %.thread3335

.thread3335:                                      ; preds = %2914, %2929, %2932
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  br label %.thread3118

2937:                                             ; preds = %2907, %2896
  %.59 = phi i32 [ %2903, %2896 ], [ %2910, %2907 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  br label %.thread3123

2938:                                             ; preds = %154, %154, %154, %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #6
  %2939 = load ptr, ptr %84, align 8, !tbaa !84
  %2940 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2941 = load i32, ptr %2940, align 4, !tbaa !34
  %2942 = sext i32 %2941 to i64
  %2943 = getelementptr inbounds ptr, ptr %2939, i64 %2942
  %2944 = load ptr, ptr %2943, align 8, !tbaa !45
  %2945 = getelementptr inbounds i8, ptr %2944, i64 56
  %2946 = load ptr, ptr %2945, align 8, !tbaa !131
  store ptr %2946, ptr %33, align 8, !tbaa !137
  %2947 = getelementptr inbounds i8, ptr %.02322, i64 16
  %2948 = load i32, ptr %2947, align 8, !tbaa !25
  %2949 = trunc i32 %2948 to i16
  store i16 %2949, ptr %110, align 8, !tbaa !139
  %2950 = icmp ult i8 %156, 61
  %spec.select5160 = sext i1 %2950 to i8
  store i8 %spec.select5160, ptr %111, align 2, !tbaa !140
  %2951 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2952 = load i32, ptr %2951, align 4, !tbaa !37
  %2953 = sext i32 %2952 to i64
  %2954 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %2953
  store ptr %2954, ptr %112, align 8, !tbaa !141
  store i32 0, ptr %32, align 4, !tbaa !27
  %2955 = call i32 @sqlite3VdbeIdxKeyCompare(ptr noundef %49, ptr noundef nonnull %2944, ptr noundef nonnull %33, ptr noundef nonnull %32) #6
  %2956 = load i8, ptr %.02322, align 8, !tbaa !30
  %2957 = and i8 %2956, 1
  %.not2804 = icmp eq i8 %2957, 0
  %2958 = load i32, ptr %32, align 4
  %2959 = add nsw i32 %2958, 1
  %2960 = sub nsw i32 0, %2958
  %storemerge2805 = select i1 %.not2804, i32 %2959, i32 %2960
  %.not2806 = icmp eq i32 %2955, 0
  %2961 = icmp sgt i32 %storemerge2805, 0
  %.3069 = select i1 %2961, i32 11, i32 7
  %.392418 = select i1 %.not2806, i32 %.3069, i32 10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  switch i32 %.392418, label %.loopexit3537 [
    i32 11, label %.thread3154
    i32 7, label %.thread3118
    i32 10, label %.thread3123
  ]

2962:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  %2963 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %2964 = getelementptr inbounds i8, ptr %2963, i64 8
  store i16 1, ptr %2964, align 8, !tbaa !35
  %2965 = load i32, ptr %92, align 8, !tbaa !121
  %2966 = load i32, ptr %87, align 4, !tbaa !173
  %2967 = add nsw i32 %2966, 1
  %2968 = icmp sgt i32 %2965, %2967
  br i1 %2968, label %2969, label %2971

2969:                                             ; preds = %2962
  %2970 = getelementptr inbounds i8, ptr %0, i64 190
  store i8 2, ptr %2970, align 2, !tbaa !39
  br label %.loopexit3536

2971:                                             ; preds = %2962
  %2972 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2973 = load i32, ptr %2972, align 4, !tbaa !37
  store i32 0, ptr %34, align 4, !tbaa !27
  %2974 = load ptr, ptr %78, align 8, !tbaa !116
  %2975 = sext i32 %2973 to i64
  %2976 = getelementptr inbounds %struct.Db, ptr %2974, i64 %2975, i32 1
  %2977 = load ptr, ptr %2976, align 8, !tbaa !117
  %2978 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2979 = load i32, ptr %2978, align 4, !tbaa !34
  %2980 = call i32 @sqlite3BtreeDropTable(ptr noundef %2977, i32 noundef %2979, ptr noundef nonnull %34) #6
  store i16 4, ptr %2964, align 8, !tbaa !35
  %2981 = load i32, ptr %34, align 4, !tbaa !27
  %2982 = sext i32 %2981 to i64
  store i64 %2982, ptr %2963, align 8, !tbaa !25
  %.not2802 = icmp eq i32 %2980, 0
  br i1 %.not2802, label %2983, label %.loopexit3536

2983:                                             ; preds = %2971
  %.not2803 = icmp eq i32 %2981, 0
  br i1 %.not2803, label %.thread3339, label %2984

2984:                                             ; preds = %2983
  %2985 = load i32, ptr %2978, align 4, !tbaa !34
  call void @sqlite3RootPageMoved(ptr noundef nonnull %49, i32 noundef %2973, i32 noundef %2981, i32 noundef %2985) #6
  %2986 = trunc i32 %2973 to i8
  %2987 = add i8 %2986, 1
  br label %.thread3339

.thread3339:                                      ; preds = %2983, %2984
  %.22343.ph = phi i8 [ %.02341, %2983 ], [ %2987, %2984 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  br label %.thread3118

.loopexit3536:                                    ; preds = %2971, %2969
  %.60 = phi i32 [ 6, %2969 ], [ %2980, %2971 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  br label %.thread3123

2988:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  store i32 0, ptr %35, align 4, !tbaa !27
  %2989 = load ptr, ptr %78, align 8, !tbaa !116
  %2990 = getelementptr inbounds i8, ptr %.02322, i64 8
  %2991 = load i32, ptr %2990, align 8, !tbaa !32
  %2992 = sext i32 %2991 to i64
  %2993 = getelementptr inbounds %struct.Db, ptr %2989, i64 %2992, i32 1
  %2994 = load ptr, ptr %2993, align 8, !tbaa !117
  %2995 = getelementptr inbounds i8, ptr %.02322, i64 4
  %2996 = load i32, ptr %2995, align 4, !tbaa !34
  %2997 = getelementptr inbounds i8, ptr %.02322, i64 12
  %2998 = load i32, ptr %2997, align 4, !tbaa !37
  %.not2799 = icmp eq i32 %2998, 0
  %. = select i1 %.not2799, ptr null, ptr %35
  %2999 = call i32 @sqlite3BtreeClearTable(ptr noundef %2994, i32 noundef %2996, ptr noundef %.) #6
  %3000 = load i32, ptr %2997, align 4, !tbaa !37
  %.not2800 = icmp eq i32 %3000, 0
  br i1 %.not2800, label %3012, label %3001

3001:                                             ; preds = %2988
  %3002 = load i32, ptr %35, align 4, !tbaa !27
  %3003 = load i32, ptr %82, align 4, !tbaa !43
  %3004 = add nsw i32 %3003, %3002
  store i32 %3004, ptr %82, align 4, !tbaa !43
  %3005 = icmp sgt i32 %3000, 0
  br i1 %3005, label %3006, label %3012

3006:                                             ; preds = %3001
  %3007 = sext i32 %3002 to i64
  %3008 = zext nneg i32 %3000 to i64
  %3009 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3008
  %3010 = load i64, ptr %3009, align 8, !tbaa !25
  %3011 = add nsw i64 %3010, %3007
  store i64 %3011, ptr %3009, align 8, !tbaa !25
  br label %3012

3012:                                             ; preds = %3001, %3006, %2988
  %.not2801 = icmp eq i32 %2999, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  br i1 %.not2801, label %.thread3118, label %.thread3123

3013:                                             ; preds = %154
  %3014 = load ptr, ptr %84, align 8, !tbaa !84
  %3015 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3016 = load i32, ptr %3015, align 4, !tbaa !34
  %3017 = sext i32 %3016 to i64
  %3018 = getelementptr inbounds ptr, ptr %3014, i64 %3017
  %3019 = load ptr, ptr %3018, align 8, !tbaa !45
  %3020 = load i8, ptr %3019, align 8, !tbaa !90
  %3021 = icmp eq i8 %3020, 1
  %3022 = getelementptr inbounds i8, ptr %3019, i64 48
  %3023 = load ptr, ptr %3022, align 8, !tbaa !25
  br i1 %3021, label %3024, label %3025

3024:                                             ; preds = %3013
  call void @sqlite3VdbeSorterReset(ptr noundef %49, ptr noundef %3023) #6
  br label %.thread3118

3025:                                             ; preds = %3013
  %3026 = call i32 @sqlite3BtreeClearTableOfCursor(ptr noundef %3023) #6
  %.not2798 = icmp eq i32 %3026, 0
  br i1 %.not2798, label %.thread3118, label %.thread3123

3027:                                             ; preds = %154, %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  %3028 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  store i32 0, ptr %36, align 4, !tbaa !27
  %3029 = load ptr, ptr %78, align 8, !tbaa !116
  %3030 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3031 = load i32, ptr %3030, align 4, !tbaa !34
  %3032 = sext i32 %3031 to i64
  %3033 = load i8, ptr %.02322, align 8, !tbaa !30
  %3034 = icmp eq i8 %3033, -121
  %.3071 = select i1 %3034, i32 1, i32 2
  %3035 = getelementptr inbounds %struct.Db, ptr %3029, i64 %3032, i32 1
  %3036 = load ptr, ptr %3035, align 8, !tbaa !117
  %3037 = call i32 @sqlite3BtreeCreateTable(ptr noundef %3036, ptr noundef nonnull %36, i32 noundef %.3071) #6
  %.not2797 = icmp eq i32 %3037, 0
  br i1 %.not2797, label %.thread3348, label %3040

.thread3348:                                      ; preds = %3027
  %3038 = load i32, ptr %36, align 4, !tbaa !27
  %3039 = sext i32 %3038 to i64
  store i64 %3039, ptr %3028, align 8, !tbaa !25
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  br label %.thread3118

3040:                                             ; preds = %3027
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  br label %.thread3123

3041:                                             ; preds = %154
  %3042 = load i8, ptr %109, align 2, !tbaa !174
  %3043 = add i8 %3042, 1
  store i8 %3043, ptr %109, align 2, !tbaa !174
  %3044 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3045 = load ptr, ptr %3044, align 8, !tbaa !25
  %3046 = call i32 @sqlite3_exec(ptr noundef %49, ptr noundef %3045, ptr noundef null, ptr noundef null, ptr noundef null) #6
  %3047 = load i8, ptr %109, align 2, !tbaa !174
  %3048 = add i8 %3047, -1
  store i8 %3048, ptr %109, align 2, !tbaa !174
  %.not2796 = icmp eq i32 %3046, 0
  br i1 %.not2796, label %.thread3118, label %.thread3123

3049:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %37) #6
  %3050 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3051 = load i32, ptr %3050, align 4, !tbaa !34
  store ptr %49, ptr %37, align 8, !tbaa !175
  store i32 %3051, ptr %105, align 8, !tbaa !177
  store ptr %89, ptr %106, align 8, !tbaa !178
  %3052 = load ptr, ptr %78, align 8, !tbaa !116
  %3053 = sext i32 %3051 to i64
  %3054 = getelementptr inbounds %struct.Db, ptr %3052, i64 %3053
  %3055 = load ptr, ptr %3054, align 8, !tbaa !153
  %3056 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3057 = load ptr, ptr %3056, align 8, !tbaa !25
  %3058 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %49, ptr noundef nonnull @.str.17, ptr noundef %3055, ptr noundef nonnull @.str.16, ptr noundef %3057) #6
  %3059 = icmp eq ptr %3058, null
  br i1 %3059, label %.thread3356, label %3060

.thread3356:                                      ; preds = %3049
  call void @sqlite3ResetAllSchemasOfConnection(ptr noundef nonnull %49) #6
  br label %.thread3362

3060:                                             ; preds = %3049
  store i8 1, ptr %107, align 1, !tbaa !179
  store i32 0, ptr %108, align 4, !tbaa !180
  %3061 = call i32 @sqlite3_exec(ptr noundef nonnull %49, ptr noundef nonnull %3058, ptr noundef nonnull @sqlite3InitCallback, ptr noundef nonnull %37, ptr noundef null) #6
  %3062 = icmp eq i32 %3061, 0
  %3063 = load i32, ptr %108, align 4
  %spec.select3072 = select i1 %3062, i32 %3063, i32 %3061
  %spec.select3072.fr = freeze i32 %spec.select3072
  call void @sqlite3DbFree(ptr noundef nonnull %49, ptr noundef nonnull %3058) #6
  store i8 0, ptr %107, align 1, !tbaa !179
  %.not2795 = icmp eq i32 %spec.select3072.fr, 0
  br i1 %.not2795, label %.thread3365, label %3064

.thread3365:                                      ; preds = %3060
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #6
  br label %.thread3118

3064:                                             ; preds = %3060
  call void @sqlite3ResetAllSchemasOfConnection(ptr noundef nonnull %49) #6
  %3065 = icmp eq i32 %spec.select3072.fr, 7
  br i1 %3065, label %.thread3362, label %3066

.thread3362:                                      ; preds = %.thread3356, %3064
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #6
  br label %.critedge31

3066:                                             ; preds = %3064
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #6
  br label %.thread3123

3067:                                             ; preds = %154
  %3068 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3069 = load i32, ptr %3068, align 4, !tbaa !34
  %3070 = call i32 @sqlite3AnalysisLoad(ptr noundef %49, i32 noundef %3069) #6
  %.not2794 = icmp eq i32 %3070, 0
  br i1 %.not2794, label %.thread3118, label %.thread3123

3071:                                             ; preds = %154
  %3072 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3073 = load i32, ptr %3072, align 4, !tbaa !34
  %3074 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3075 = load ptr, ptr %3074, align 8, !tbaa !25
  call void @sqlite3UnlinkAndDeleteTable(ptr noundef %49, i32 noundef %3073, ptr noundef %3075) #6
  br label %.thread3118

3076:                                             ; preds = %154
  %3077 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3078 = load i32, ptr %3077, align 4, !tbaa !34
  %3079 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3080 = load ptr, ptr %3079, align 8, !tbaa !25
  call void @sqlite3UnlinkAndDeleteIndex(ptr noundef %49, i32 noundef %3078, ptr noundef %3080) #6
  br label %.thread3118

3081:                                             ; preds = %154
  %3082 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3083 = load i32, ptr %3082, align 4, !tbaa !34
  %3084 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3085 = load ptr, ptr %3084, align 8, !tbaa !25
  call void @sqlite3UnlinkAndDeleteTrigger(ptr noundef %49, i32 noundef %3083, ptr noundef %3085) #6
  br label %.thread3118

3086:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #6
  %3087 = getelementptr inbounds i8, ptr %.02322, i64 8
  %3088 = load i32, ptr %3087, align 8, !tbaa !32
  %3089 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3090 = load ptr, ptr %3089, align 8, !tbaa !25
  %3091 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3092 = load i32, ptr %3091, align 4, !tbaa !37
  %3093 = sext i32 %3092 to i64
  %3094 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3093
  %3095 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3096 = load i32, ptr %3095, align 4, !tbaa !34
  %3097 = sext i32 %3096 to i64
  %3098 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3097
  %3099 = load ptr, ptr %78, align 8, !tbaa !116
  %3100 = getelementptr inbounds i8, ptr %.02322, i64 2
  %3101 = load i16, ptr %3100, align 2, !tbaa !44
  %3102 = zext i16 %3101 to i64
  %3103 = getelementptr inbounds %struct.Db, ptr %3099, i64 %3102, i32 1
  %3104 = load ptr, ptr %3103, align 8, !tbaa !117
  %3105 = load i64, ptr %3094, align 8, !tbaa !25
  %3106 = trunc i64 %3105 to i32
  %3107 = add nsw i32 %3106, 1
  %3108 = call ptr @sqlite3BtreeIntegrityCheck(ptr noundef %3104, ptr noundef %3090, i32 noundef %3088, i32 noundef %3107, ptr noundef nonnull %38) #6
  call void @sqlite3VdbeMemSetNull(ptr noundef %3098) #6
  %3109 = load i32, ptr %38, align 4, !tbaa !27
  %3110 = icmp eq i32 %3109, 0
  br i1 %3110, label %.thread3368, label %3111

3111:                                             ; preds = %3086
  %3112 = icmp eq ptr %3108, null
  br i1 %3112, label %3120, label %3113

3113:                                             ; preds = %3111
  %3114 = add nsw i32 %3109, -1
  %3115 = sext i32 %3114 to i64
  %3116 = load i64, ptr %3094, align 8, !tbaa !25
  %3117 = sub nsw i64 %3116, %3115
  store i64 %3117, ptr %3094, align 8, !tbaa !25
  %3118 = call i32 @sqlite3VdbeMemSetStr(ptr noundef nonnull %3098, ptr noundef nonnull %3108, i32 noundef -1, i8 noundef zeroext 1, ptr noundef nonnull @sqlite3_free) #6
  br label %.thread3368

.thread3368:                                      ; preds = %3113, %3086
  %3119 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef nonnull %3098, i32 noundef %86) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  br label %.thread3118

3120:                                             ; preds = %3111
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  br label %.critedge31

3121:                                             ; preds = %154
  %3122 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3123 = load i32, ptr %3122, align 4, !tbaa !34
  %3124 = sext i32 %3123 to i64
  %3125 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3124
  %3126 = getelementptr inbounds i8, ptr %.02322, i64 8
  %3127 = load i32, ptr %3126, align 8, !tbaa !32
  %3128 = sext i32 %3127 to i64
  %3129 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3128
  %3130 = getelementptr inbounds i8, ptr %3125, i64 8
  %3131 = load i16, ptr %3130, align 8, !tbaa !35
  %3132 = and i16 %3131, 32
  %3133 = icmp eq i16 %3132, 0
  br i1 %3133, label %3134, label %3138

3134:                                             ; preds = %3121
  call void @sqlite3VdbeMemSetRowSet(ptr noundef nonnull %3125) #6
  %3135 = load i16, ptr %3130, align 8, !tbaa !35
  %3136 = and i16 %3135, 32
  %3137 = icmp eq i16 %3136, 0
  br i1 %3137, label %.critedge31, label %3138

3138:                                             ; preds = %3134, %3121
  %3139 = load ptr, ptr %3125, align 8, !tbaa !25
  %3140 = load i64, ptr %3129, align 8, !tbaa !25
  call void @sqlite3RowSetInsert(ptr noundef %3139, i64 noundef %3140) #6
  br label %.thread3118

3141:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #6
  %3142 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3143 = load i32, ptr %3142, align 4, !tbaa !34
  %3144 = sext i32 %3143 to i64
  %3145 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3144
  %3146 = getelementptr inbounds i8, ptr %3145, i64 8
  %3147 = load i16, ptr %3146, align 8, !tbaa !35
  %3148 = and i16 %3147, 32
  %3149 = icmp eq i16 %3148, 0
  br i1 %3149, label %.thread3370, label %3150

3150:                                             ; preds = %3141
  %3151 = load ptr, ptr %3145, align 8, !tbaa !25
  %3152 = call i32 @sqlite3RowSetNext(ptr noundef %3151, ptr noundef nonnull %39) #6
  %3153 = icmp eq i32 %3152, 0
  br i1 %3153, label %.thread3370, label %3154

.thread3370:                                      ; preds = %3141, %3150
  call void @sqlite3VdbeMemSetNull(ptr noundef nonnull %3145) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  br label %.thread3455

3154:                                             ; preds = %3150
  %3155 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3156 = load i32, ptr %3155, align 4, !tbaa !37
  %3157 = sext i32 %3156 to i64
  %3158 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3157
  %3159 = load i64, ptr %39, align 8, !tbaa !48
  call void @sqlite3VdbeMemSetInt64(ptr noundef %3158, i64 noundef %3159) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  br label %.thread3458

3160:                                             ; preds = %154
  %3161 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3162 = load i32, ptr %3161, align 4, !tbaa !34
  %3163 = sext i32 %3162 to i64
  %3164 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3163
  %3165 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3166 = load i32, ptr %3165, align 4, !tbaa !37
  %3167 = sext i32 %3166 to i64
  %3168 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3167
  %3169 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3170 = load i32, ptr %3169, align 8, !tbaa !25
  %3171 = getelementptr inbounds i8, ptr %3164, i64 8
  %3172 = load i16, ptr %3171, align 8, !tbaa !35
  %3173 = and i16 %3172, 32
  %3174 = icmp eq i16 %3173, 0
  br i1 %3174, label %3175, label %3179

3175:                                             ; preds = %3160
  call void @sqlite3VdbeMemSetRowSet(ptr noundef nonnull %3164) #6
  %3176 = load i16, ptr %3171, align 8, !tbaa !35
  %3177 = and i16 %3176, 32
  %3178 = icmp eq i16 %3177, 0
  br i1 %3178, label %.critedge31, label %3179

3179:                                             ; preds = %3175, %3160
  %.not2792 = icmp eq i32 %3170, 0
  br i1 %.not2792, label %.thread3374, label %3180

3180:                                             ; preds = %3179
  %3181 = load ptr, ptr %3164, align 8, !tbaa !25
  %3182 = load i64, ptr %3168, align 8, !tbaa !25
  %3183 = call i32 @sqlite3RowSetTest(ptr noundef %3181, i32 noundef %3170, i64 noundef %3182) #6
  %.not2793 = icmp eq i32 %3183, 0
  br i1 %.not2793, label %3184, label %.thread3154

3184:                                             ; preds = %3180
  %3185 = icmp sgt i32 %3170, -1
  br i1 %3185, label %.thread3374, label %.thread3118

.thread3374:                                      ; preds = %3179, %3184
  %3186 = load ptr, ptr %3164, align 8, !tbaa !25
  %3187 = load i64, ptr %3168, align 8, !tbaa !25
  call void @sqlite3RowSetInsert(ptr noundef %3186, i64 noundef %3187) #6
  br label %.thread3118

3188:                                             ; preds = %154
  %3189 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3190 = load ptr, ptr %3189, align 8, !tbaa !25
  %3191 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3192 = load i32, ptr %3191, align 4, !tbaa !37
  %3193 = sext i32 %3192 to i64
  %3194 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3193
  %3195 = getelementptr inbounds i8, ptr %.02322, i64 2
  %3196 = load i16, ptr %3195, align 2, !tbaa !44
  %.not2786 = icmp eq i16 %3196, 0
  br i1 %.not2786, label %.critedge3076, label %3197

3197:                                             ; preds = %3188
  %3198 = getelementptr inbounds i8, ptr %3190, i64 32
  %3199 = load ptr, ptr %3198, align 8, !tbaa !181
  %.024974000 = load ptr, ptr %95, align 8, !tbaa !45
  %.not27874001 = icmp eq ptr %.024974000, null
  br i1 %.not27874001, label %.critedge3076, label %.lr.ph4004

3200:                                             ; preds = %.lr.ph4004
  %3201 = getelementptr inbounds i8, ptr %.024974002, i64 8
  %.02497 = load ptr, ptr %3201, align 8, !tbaa !45
  %.not2787 = icmp eq ptr %.02497, null
  br i1 %.not2787, label %.critedge3076, label %.lr.ph4004, !llvm.loop !183

.lr.ph4004:                                       ; preds = %3197, %3200
  %.024974002 = phi ptr [ %.02497, %3200 ], [ %.024974000, %3197 ]
  %3202 = getelementptr inbounds i8, ptr %.024974002, i64 56
  %3203 = load ptr, ptr %3202, align 8, !tbaa !184
  %.not2788 = icmp eq ptr %3203, %3199
  br i1 %.not2788, label %.thread3118, label %3200

.critedge3076:                                    ; preds = %3200, %3197, %3188
  %3204 = load i32, ptr %99, align 8, !tbaa !42
  %3205 = load i32, ptr %100, align 8, !tbaa !27
  %.not2789 = icmp slt i32 %3204, %3205
  br i1 %.not2789, label %3206, label %.critedge31.thread3385

.critedge31.thread3385:                           ; preds = %.critedge3076
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef nonnull %0, ptr noundef nonnull @.str.18) #6
  br label %.thread3123

3206:                                             ; preds = %.critedge3076
  %3207 = getelementptr inbounds i8, ptr %3194, i64 8
  %3208 = load i16, ptr %3207, align 8, !tbaa !35
  %3209 = and i16 %3208, 64
  %3210 = icmp eq i16 %3209, 0
  br i1 %3210, label %3211, label %3281

3211:                                             ; preds = %3206
  %3212 = getelementptr inbounds i8, ptr %3190, i64 12
  %3213 = load i32, ptr %3212, align 4, !tbaa !185
  %3214 = getelementptr inbounds i8, ptr %3190, i64 16
  %3215 = load i32, ptr %3214, align 8, !tbaa !186
  %3216 = add nsw i32 %3215, %3213
  %3217 = icmp eq i32 %3215, 0
  %3218 = zext i1 %3217 to i32
  %spec.select3077 = add nsw i32 %3216, %3218
  %3219 = mul i32 %spec.select3077, 56
  %3220 = shl i32 %3215, 3
  %3221 = getelementptr inbounds i8, ptr %3190, i64 8
  %3222 = load i32, ptr %3221, align 8, !tbaa !187
  %3223 = add nsw i32 %3222, 7
  %3224 = sdiv i32 %3223, 8
  %3225 = add i32 %3220, 112
  %3226 = add i32 %3225, %3224
  %3227 = add i32 %3226, %3219
  %3228 = sext i32 %3227 to i64
  %3229 = call ptr @sqlite3DbMallocZero(ptr noundef nonnull %49, i64 noundef %3228) #6
  %.not2790 = icmp eq ptr %3229, null
  br i1 %.not2790, label %.critedge31, label %3230

3230:                                             ; preds = %3211
  call void @sqlite3VdbeMemRelease(ptr noundef nonnull %3194) #6
  store i16 64, ptr %3207, align 8, !tbaa !35
  store ptr %3229, ptr %3194, align 8, !tbaa !25
  store ptr %0, ptr %3229, align 8, !tbaa !188
  %3231 = getelementptr inbounds i8, ptr %3229, i64 96
  store i32 %spec.select3077, ptr %3231, align 8, !tbaa !189
  %3232 = load i32, ptr %3214, align 8, !tbaa !186
  %3233 = getelementptr inbounds i8, ptr %3229, i64 100
  store i32 %3232, ptr %3233, align 4, !tbaa !190
  %3234 = ptrtoint ptr %.02322 to i64
  %3235 = ptrtoint ptr %.02321 to i64
  %3236 = sub i64 %3234, %3235
  %3237 = sdiv exact i64 %3236, 24
  %3238 = trunc i64 %3237 to i32
  %3239 = getelementptr inbounds i8, ptr %3229, i64 84
  store i32 %3238, ptr %3239, align 4, !tbaa !191
  %3240 = load ptr, ptr %52, align 8, !tbaa !20
  %3241 = getelementptr inbounds i8, ptr %3229, i64 32
  store ptr %3240, ptr %3241, align 8, !tbaa !147
  %3242 = load i32, ptr %101, align 8, !tbaa !192
  %3243 = getelementptr inbounds i8, ptr %3229, i64 92
  store i32 %3242, ptr %3243, align 4, !tbaa !193
  %3244 = load ptr, ptr %84, align 8, !tbaa !84
  %3245 = getelementptr inbounds i8, ptr %3229, i64 40
  store ptr %3244, ptr %3245, align 8, !tbaa !194
  %3246 = load i32, ptr %102, align 4, !tbaa !195
  %3247 = getelementptr inbounds i8, ptr %3229, i64 80
  store i32 %3246, ptr %3247, align 8, !tbaa !196
  %3248 = load ptr, ptr %47, align 8, !tbaa !5
  %3249 = getelementptr inbounds i8, ptr %3229, i64 16
  store ptr %3248, ptr %3249, align 8, !tbaa !197
  %3250 = load i32, ptr %103, align 8, !tbaa !198
  %3251 = getelementptr inbounds i8, ptr %3229, i64 88
  store i32 %3250, ptr %3251, align 8, !tbaa !199
  %3252 = getelementptr inbounds i8, ptr %3190, i64 32
  %3253 = load ptr, ptr %3252, align 8, !tbaa !181
  %3254 = getelementptr inbounds i8, ptr %3229, i64 56
  store ptr %3253, ptr %3254, align 8, !tbaa !184
  %3255 = sext i32 %spec.select3077 to i64
  %.idx = mul nsw i64 %3255, 56
  %3256 = getelementptr i8, ptr %3229, i64 %.idx
  %.ptr4097 = getelementptr i8, ptr %3256, i64 112
  %.not27914005 = icmp eq i32 %spec.select3077, 0
  br i1 %.not27914005, label %.loopexit3530, label %.lr.ph4008.preheader

.lr.ph4008.preheader:                             ; preds = %3230
  %.ptr = getelementptr inbounds i8, ptr %3229, i64 112
  %3257 = add nsw i64 %.idx, -56
  %3258 = udiv i64 %3257, 56
  %3259 = add nuw nsw i64 %3258, 1
  %xtraiter = and i64 %3259, 7
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph4008.prol.loopexit, label %.lr.ph4008.prol

.lr.ph4008.prol:                                  ; preds = %.lr.ph4008.preheader, %.lr.ph4008.prol
  %.025004006.prol = phi ptr [ %3262, %.lr.ph4008.prol ], [ %.ptr, %.lr.ph4008.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph4008.prol ], [ 0, %.lr.ph4008.preheader ]
  %3260 = getelementptr inbounds i8, ptr %.025004006.prol, i64 8
  store i16 128, ptr %3260, align 8, !tbaa !35
  %3261 = getelementptr inbounds i8, ptr %.025004006.prol, i64 40
  store ptr %49, ptr %3261, align 8, !tbaa !200
  %3262 = getelementptr inbounds i8, ptr %.025004006.prol, i64 56
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %.lr.ph4008.prol.loopexit, label %.lr.ph4008.prol, !llvm.loop !201

.lr.ph4008.prol.loopexit:                         ; preds = %.lr.ph4008.prol, %.lr.ph4008.preheader
  %.025004006.unr = phi ptr [ %.ptr, %.lr.ph4008.preheader ], [ %3262, %.lr.ph4008.prol ]
  %3263 = icmp ult i64 %3257, 392
  br i1 %3263, label %.loopexit3530, label %.lr.ph4008

.lr.ph4008:                                       ; preds = %.lr.ph4008.prol.loopexit, %.lr.ph4008
  %.025004006 = phi ptr [ %3280, %.lr.ph4008 ], [ %.025004006.unr, %.lr.ph4008.prol.loopexit ]
  %3264 = getelementptr inbounds i8, ptr %.025004006, i64 8
  store i16 128, ptr %3264, align 8, !tbaa !35
  %3265 = getelementptr inbounds i8, ptr %.025004006, i64 40
  store ptr %49, ptr %3265, align 8, !tbaa !200
  %3266 = getelementptr inbounds i8, ptr %.025004006, i64 64
  store i16 128, ptr %3266, align 8, !tbaa !35
  %3267 = getelementptr inbounds i8, ptr %.025004006, i64 96
  store ptr %49, ptr %3267, align 8, !tbaa !200
  %3268 = getelementptr inbounds i8, ptr %.025004006, i64 120
  store i16 128, ptr %3268, align 8, !tbaa !35
  %3269 = getelementptr inbounds i8, ptr %.025004006, i64 152
  store ptr %49, ptr %3269, align 8, !tbaa !200
  %3270 = getelementptr inbounds i8, ptr %.025004006, i64 176
  store i16 128, ptr %3270, align 8, !tbaa !35
  %3271 = getelementptr inbounds i8, ptr %.025004006, i64 208
  store ptr %49, ptr %3271, align 8, !tbaa !200
  %3272 = getelementptr inbounds i8, ptr %.025004006, i64 232
  store i16 128, ptr %3272, align 8, !tbaa !35
  %3273 = getelementptr inbounds i8, ptr %.025004006, i64 264
  store ptr %49, ptr %3273, align 8, !tbaa !200
  %3274 = getelementptr inbounds i8, ptr %.025004006, i64 288
  store i16 128, ptr %3274, align 8, !tbaa !35
  %3275 = getelementptr inbounds i8, ptr %.025004006, i64 320
  store ptr %49, ptr %3275, align 8, !tbaa !200
  %3276 = getelementptr inbounds i8, ptr %.025004006, i64 344
  store i16 128, ptr %3276, align 8, !tbaa !35
  %3277 = getelementptr inbounds i8, ptr %.025004006, i64 376
  store ptr %49, ptr %3277, align 8, !tbaa !200
  %3278 = getelementptr inbounds i8, ptr %.025004006, i64 400
  store i16 128, ptr %3278, align 8, !tbaa !35
  %3279 = getelementptr inbounds i8, ptr %.025004006, i64 432
  store ptr %49, ptr %3279, align 8, !tbaa !200
  %3280 = getelementptr inbounds i8, ptr %.025004006, i64 448
  %.not2791.7 = icmp eq ptr %3280, %.ptr4097
  br i1 %.not2791.7, label %.loopexit3530, label %.lr.ph4008, !llvm.loop !203

3281:                                             ; preds = %3206
  %3282 = load ptr, ptr %3194, align 8, !tbaa !25
  %.phi.trans.insert4617 = getelementptr inbounds i8, ptr %3282, i64 96
  %.pre4618 = load i32, ptr %.phi.trans.insert4617, align 8, !tbaa !189
  %.phi.trans.insert4619 = getelementptr inbounds i8, ptr %3282, i64 100
  %.pre4620 = load i32, ptr %.phi.trans.insert4619, align 4, !tbaa !190
  %.phi.trans.insert4621 = getelementptr inbounds i8, ptr %3190, i64 16
  %.pre4622 = load i32, ptr %.phi.trans.insert4621, align 8, !tbaa !186
  br label %.loopexit3530

.loopexit3530:                                    ; preds = %.lr.ph4008.prol.loopexit, %.lr.ph4008, %3230, %3281
  %3283 = phi i32 [ %.pre4622, %3281 ], [ %3232, %3230 ], [ %3232, %.lr.ph4008 ], [ %3232, %.lr.ph4008.prol.loopexit ]
  %3284 = phi i32 [ %.pre4620, %3281 ], [ %3232, %3230 ], [ %3232, %.lr.ph4008 ], [ %3232, %.lr.ph4008.prol.loopexit ]
  %3285 = phi i32 [ %.pre4618, %3281 ], [ 0, %3230 ], [ %spec.select3077, %.lr.ph4008 ], [ %spec.select3077, %.lr.ph4008.prol.loopexit ]
  %.12498 = phi ptr [ %3282, %3281 ], [ %3229, %3230 ], [ %3229, %.lr.ph4008 ], [ %3229, %.lr.ph4008.prol.loopexit ]
  %3286 = load i32, ptr %99, align 8, !tbaa !42
  %3287 = add nsw i32 %3286, 1
  store i32 %3287, ptr %99, align 8, !tbaa !42
  %3288 = load ptr, ptr %95, align 8, !tbaa !38
  %3289 = getelementptr inbounds i8, ptr %.12498, i64 8
  store ptr %3288, ptr %3289, align 8, !tbaa !40
  %3290 = load i64, ptr %81, align 8, !tbaa !154
  %3291 = getelementptr inbounds i8, ptr %.12498, i64 64
  store i64 %3290, ptr %3291, align 8, !tbaa !204
  %3292 = load i32, ptr %82, align 4, !tbaa !43
  %3293 = getelementptr inbounds i8, ptr %.12498, i64 104
  store i32 %3292, ptr %3293, align 8, !tbaa !205
  %3294 = load ptr, ptr %0, align 8, !tbaa !13
  %3295 = getelementptr inbounds i8, ptr %3294, i64 104
  %3296 = load i32, ptr %3295, align 8, !tbaa !206
  %3297 = getelementptr inbounds i8, ptr %.12498, i64 108
  store i32 %3296, ptr %3297, align 4, !tbaa !207
  %3298 = load ptr, ptr %104, align 8, !tbaa !208
  %3299 = getelementptr inbounds i8, ptr %.12498, i64 72
  store ptr %3298, ptr %3299, align 8, !tbaa !209
  store ptr null, ptr %104, align 8, !tbaa !208
  store i32 0, ptr %82, align 4, !tbaa !43
  store ptr %.12498, ptr %95, align 8, !tbaa !38
  %3300 = getelementptr inbounds i8, ptr %.12498, i64 112
  store ptr %3300, ptr %52, align 8, !tbaa !20
  store i32 %3285, ptr %101, align 8, !tbaa !192
  %3301 = and i32 %3284, 65535
  store i32 %3301, ptr %102, align 4, !tbaa !195
  %3302 = sext i32 %3285 to i64
  %3303 = getelementptr inbounds %struct.Mem, ptr %3300, i64 %3302
  store ptr %3303, ptr %84, align 8, !tbaa !84
  %3304 = sext i32 %3283 to i64
  %3305 = getelementptr inbounds ptr, ptr %3303, i64 %3304
  %3306 = getelementptr inbounds i8, ptr %.12498, i64 48
  store ptr %3305, ptr %3306, align 8, !tbaa !83
  %3307 = getelementptr inbounds i8, ptr %3190, i64 8
  %3308 = load i32, ptr %3307, align 8, !tbaa !187
  %3309 = add nsw i32 %3308, 7
  %3310 = sdiv i32 %3309, 8
  %3311 = sext i32 %3310 to i64
  call void @llvm.memset.p0.i64(ptr nonnull align 1 %3305, i8 0, i64 %3311, i1 false)
  %3312 = load ptr, ptr %3190, align 8, !tbaa !210
  store ptr %3312, ptr %47, align 8, !tbaa !5
  %3313 = load i32, ptr %3307, align 8, !tbaa !187
  store i32 %3313, ptr %103, align 8, !tbaa !198
  %3314 = getelementptr inbounds i8, ptr %3312, i64 -24
  br label %.thread3118

3315:                                             ; preds = %154
  %3316 = call ptr @out2Prerelease(ptr noundef %0, ptr noundef nonnull %.02322)
  %3317 = load ptr, ptr %95, align 8, !tbaa !38
  %3318 = getelementptr inbounds i8, ptr %3317, i64 32
  %3319 = load ptr, ptr %3318, align 8, !tbaa !147
  %3320 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3321 = load i32, ptr %3320, align 4, !tbaa !34
  %3322 = getelementptr inbounds i8, ptr %3317, i64 16
  %3323 = load ptr, ptr %3322, align 8, !tbaa !197
  %3324 = getelementptr inbounds i8, ptr %3317, i64 84
  %3325 = load i32, ptr %3324, align 4, !tbaa !191
  %3326 = sext i32 %3325 to i64
  %3327 = getelementptr inbounds %struct.VdbeOp, ptr %3323, i64 %3326, i32 3
  %3328 = load i32, ptr %3327, align 4, !tbaa !34
  %3329 = add nsw i32 %3328, %3321
  %3330 = sext i32 %3329 to i64
  %3331 = getelementptr inbounds %struct.Mem, ptr %3319, i64 %3330
  call void @sqlite3VdbeMemShallowCopy(ptr noundef %3316, ptr noundef %3331, i32 noundef 4096) #6
  br label %.thread3118

3332:                                             ; preds = %154
  %3333 = load i32, ptr %90, align 4, !tbaa !114
  %3334 = and i32 %3333, 33554432
  %.not2784 = icmp eq i32 %3334, 0
  br i1 %.not2784, label %3341, label %3335

3335:                                             ; preds = %3332
  %3336 = getelementptr inbounds i8, ptr %.02322, i64 8
  %3337 = load i32, ptr %3336, align 8, !tbaa !32
  %3338 = sext i32 %3337 to i64
  %3339 = load i64, ptr %97, align 8, !tbaa !211
  %3340 = add nsw i64 %3339, %3338
  store i64 %3340, ptr %97, align 8, !tbaa !211
  br label %.thread3118

3341:                                             ; preds = %3332
  %3342 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3343 = load i32, ptr %3342, align 4, !tbaa !34
  %.not2785 = icmp eq i32 %3343, 0
  %3344 = getelementptr inbounds i8, ptr %.02322, i64 8
  %3345 = load i32, ptr %3344, align 8, !tbaa !32
  %3346 = sext i32 %3345 to i64
  br i1 %.not2785, label %3350, label %3347

3347:                                             ; preds = %3341
  %3348 = load i64, ptr %96, align 8, !tbaa !212
  %3349 = add nsw i64 %3348, %3346
  store i64 %3349, ptr %96, align 8, !tbaa !212
  br label %.thread3118

3350:                                             ; preds = %3341
  %3351 = load i64, ptr %98, align 8, !tbaa !213
  %3352 = add nsw i64 %3351, %3346
  store i64 %3352, ptr %98, align 8, !tbaa !213
  br label %.thread3118

3353:                                             ; preds = %154
  %3354 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3355 = load i32, ptr %3354, align 4, !tbaa !34
  %.not2783 = icmp eq i32 %3355, 0
  br i1 %.not2783, label %3362, label %3356

3356:                                             ; preds = %3353
  %3357 = load i64, ptr %96, align 8, !tbaa !212
  %3358 = icmp eq i64 %3357, 0
  br i1 %3358, label %3359, label %.thread3118

3359:                                             ; preds = %3356
  %3360 = load i64, ptr %97, align 8, !tbaa !211
  %3361 = icmp eq i64 %3360, 0
  br i1 %3361, label %.thread3154, label %.thread3118

3362:                                             ; preds = %3353
  %3363 = load i64, ptr %98, align 8, !tbaa !213
  %3364 = icmp eq i64 %3363, 0
  br i1 %3364, label %3365, label %.thread3118

3365:                                             ; preds = %3362
  %3366 = load i64, ptr %97, align 8, !tbaa !211
  %3367 = icmp eq i64 %3366, 0
  br i1 %3367, label %.thread3154, label %.thread3118

3368:                                             ; preds = %154
  %3369 = load ptr, ptr %95, align 8, !tbaa !38
  %.not2781 = icmp eq ptr %3369, null
  br i1 %.not2781, label %3375, label %.preheader3532

.preheader3532:                                   ; preds = %3368, %.preheader3532
  %.02492 = phi ptr [ %3371, %.preheader3532 ], [ %3369, %3368 ]
  %3370 = getelementptr inbounds i8, ptr %.02492, i64 8
  %3371 = load ptr, ptr %3370, align 8, !tbaa !40
  %.not2782 = icmp eq ptr %3371, null
  br i1 %.not2782, label %3372, label %.preheader3532, !llvm.loop !214

3372:                                             ; preds = %.preheader3532
  %3373 = getelementptr inbounds i8, ptr %.02492, i64 32
  %3374 = load ptr, ptr %3373, align 8, !tbaa !147
  br label %3375

3375:                                             ; preds = %3368, %3372
  %.02367.sink5161 = phi ptr [ %3374, %3372 ], [ %.02367, %3368 ]
  %3376 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3377 = load i32, ptr %3376, align 4, !tbaa !34
  %3378 = sext i32 %3377 to i64
  %3379 = getelementptr inbounds %struct.Mem, ptr %.02367.sink5161, i64 %3378
  %3380 = call i32 @sqlite3VdbeMemIntegerify(ptr noundef %3379) #6
  %3381 = getelementptr inbounds i8, ptr %.02322, i64 8
  %3382 = load i32, ptr %3381, align 8, !tbaa !32
  %3383 = sext i32 %3382 to i64
  %3384 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3383
  %3385 = call i32 @sqlite3VdbeMemIntegerify(ptr noundef %3384) #6
  %3386 = load i64, ptr %3379, align 8, !tbaa !25
  %3387 = load i64, ptr %3384, align 8, !tbaa !25
  %3388 = icmp slt i64 %3386, %3387
  br i1 %3388, label %3389, label %.thread3118

3389:                                             ; preds = %3375
  store i64 %3387, ptr %3379, align 8, !tbaa !25
  br label %.thread3118

3390:                                             ; preds = %154
  %3391 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3392 = load i32, ptr %3391, align 4, !tbaa !34
  %3393 = sext i32 %3392 to i64
  %3394 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3393
  %3395 = load i64, ptr %3394, align 8, !tbaa !25
  %3396 = icmp sgt i64 %3395, 0
  br i1 %3396, label %3397, label %.thread3118

3397:                                             ; preds = %3390
  %3398 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3399 = load i32, ptr %3398, align 4, !tbaa !37
  %3400 = sext i32 %3399 to i64
  %3401 = sub nsw i64 %3395, %3400
  store i64 %3401, ptr %3394, align 8, !tbaa !25
  br label %.thread3154

3402:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #6
  %3403 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3404 = load i32, ptr %3403, align 4, !tbaa !34
  %3405 = sext i32 %3404 to i64
  %3406 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3405
  %3407 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3408 = load i32, ptr %3407, align 4, !tbaa !37
  %3409 = call ptr @out2Prerelease(ptr noundef nonnull %0, ptr noundef nonnull %.02322)
  %3410 = load i64, ptr %3406, align 8, !tbaa !25
  store i64 %3410, ptr %40, align 8, !tbaa !48
  %3411 = icmp slt i64 %3410, 1
  br i1 %3411, label %3418, label %3412

3412:                                             ; preds = %3402
  %3413 = sext i32 %3408 to i64
  %3414 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3413
  %3415 = load i64, ptr %3414, align 8, !tbaa !25
  %spec.select3078 = call i64 @llvm.smax.i64(i64 %3415, i64 0)
  %3416 = call i32 @sqlite3AddInt64(ptr noundef nonnull %40, i64 noundef %spec.select3078) #6
  %.not2780 = icmp eq i32 %3416, 0
  %3417 = load i64, ptr %40, align 8
  %spec.select3105 = select i1 %.not2780, i64 %3417, i64 -1
  br label %3418

3418:                                             ; preds = %3412, %3402
  %storemerge = phi i64 [ -1, %3402 ], [ %spec.select3105, %3412 ]
  store i64 %storemerge, ptr %3409, align 8, !tbaa !25
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  br label %.thread3118

3419:                                             ; preds = %154
  %3420 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3421 = load i32, ptr %3420, align 4, !tbaa !34
  %3422 = sext i32 %3421 to i64
  %3423 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3422
  %3424 = load i64, ptr %3423, align 8, !tbaa !25
  %.not2779 = icmp eq i64 %3424, 0
  br i1 %.not2779, label %.thread3118, label %3425

3425:                                             ; preds = %3419
  %3426 = icmp sgt i64 %3424, 0
  br i1 %3426, label %3427, label %.thread3154

3427:                                             ; preds = %3425
  %3428 = add nsw i64 %3424, -1
  store i64 %3428, ptr %3423, align 8, !tbaa !25
  br label %.thread3154

3429:                                             ; preds = %154
  %3430 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3431 = load i32, ptr %3430, align 4, !tbaa !34
  %3432 = sext i32 %3431 to i64
  %3433 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3432
  %3434 = load i64, ptr %3433, align 8, !tbaa !25
  %.not2778 = icmp eq i64 %3434, -9223372036854775808
  br i1 %.not2778, label %.thread3118, label %3435

3435:                                             ; preds = %3429
  %3436 = add nsw i64 %3434, -1
  store i64 %3436, ptr %3433, align 8, !tbaa !25
  %3437 = icmp eq i64 %3436, 0
  br i1 %3437, label %.thread3154, label %.thread3118

3438:                                             ; preds = %154
  %3439 = getelementptr inbounds i8, ptr %.02322, i64 2
  %3440 = load i16, ptr %3439, align 2, !tbaa !44
  %3441 = zext i16 %3440 to i64
  %3442 = shl nuw nsw i64 %3441, 3
  %3443 = add nuw nsw i64 %3442, 48
  %3444 = call ptr @sqlite3DbMallocRawNN(ptr noundef %49, i64 noundef %3443) #6
  %3445 = icmp eq ptr %3444, null
  br i1 %3445, label %.critedge31, label %.thread3392

.thread3392:                                      ; preds = %3438
  %3446 = getelementptr inbounds i8, ptr %3444, i64 16
  store ptr null, ptr %3446, align 8, !tbaa !215
  %3447 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3448 = load ptr, ptr %3447, align 8, !tbaa !25
  %3449 = getelementptr inbounds i8, ptr %3444, i64 8
  store ptr %3448, ptr %3449, align 8, !tbaa !68
  %3450 = ptrtoint ptr %.02322 to i64
  %3451 = ptrtoint ptr %.02321 to i64
  %3452 = sub i64 %3450, %3451
  %3453 = sdiv exact i64 %3452, 24
  %3454 = trunc i64 %3453 to i32
  %3455 = getelementptr inbounds i8, ptr %3444, i64 32
  store i32 %3454, ptr %3455, align 8, !tbaa !69
  %3456 = getelementptr inbounds i8, ptr %3444, i64 24
  store ptr %0, ptr %3456, align 8, !tbaa !70
  %3457 = trunc i16 %3440 to i8
  %3458 = getelementptr inbounds i8, ptr %3444, i64 42
  store i8 %3457, ptr %3458, align 2, !tbaa !71
  %3459 = getelementptr inbounds i8, ptr %.02322, i64 1
  store i8 -16, ptr %3459, align 1, !tbaa !52
  store ptr %3444, ptr %3447, align 8, !tbaa !25
  store i8 -107, ptr %.02322, align 8, !tbaa !30
  br label %3460

3460:                                             ; preds = %._crit_edge4615, %.thread3392
  %3461 = phi ptr [ %.pre4616, %._crit_edge4615 ], [ %3444, %.thread3392 ]
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %41) #6
  %3462 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3463 = load i32, ptr %3462, align 4, !tbaa !37
  %3464 = sext i32 %3463 to i64
  %3465 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3464
  %3466 = getelementptr inbounds i8, ptr %3461, i64 16
  %3467 = load ptr, ptr %3466, align 8, !tbaa !215
  %.not2772 = icmp eq ptr %3467, %3465
  br i1 %.not2772, label %.loopexit3533, label %3468

3468:                                             ; preds = %3460
  store ptr %3465, ptr %3466, align 8, !tbaa !215
  %3469 = getelementptr inbounds i8, ptr %3461, i64 42
  %3470 = load i8, ptr %3469, align 2, !tbaa !71
  %.not4096 = icmp eq i8 %3470, 0
  br i1 %.not4096, label %.loopexit3533, label %.lr.ph3999

.lr.ph3999:                                       ; preds = %3468
  %3471 = getelementptr inbounds i8, ptr %.02322, i64 8
  %3472 = load i32, ptr %3471, align 8, !tbaa !32
  %3473 = getelementptr inbounds i8, ptr %3461, i64 48
  %3474 = zext i8 %3470 to i64
  %3475 = sext i32 %3472 to i64
  %min.iters.check5644 = icmp ult i8 %3470, 4
  br i1 %min.iters.check5644, label %scalar.ph5643.preheader, label %vector.ph5645

vector.ph5645:                                    ; preds = %.lr.ph3999
  %n.vec5647 = and i64 %3474, 252
  %ind.end5648 = and i64 %3474, 3
  %broadcast.splatinsert5653 = insertelement <2 x i64> poison, i64 %3475, i64 0
  %broadcast.splat5654 = shufflevector <2 x i64> %broadcast.splatinsert5653, <2 x i64> poison, <2 x i32> zeroinitializer
  br label %vector.body5650

vector.body5650:                                  ; preds = %vector.body5650, %vector.ph5645
  %index5651 = phi i64 [ 0, %vector.ph5645 ], [ %index.next5657, %vector.body5650 ]
  %offset.idx5652 = sub i64 %3474, %index5651
  %3476 = insertelement <2 x i64> poison, i64 %offset.idx5652, i64 0
  %3477 = shufflevector <2 x i64> %3476, <2 x i64> poison, <2 x i32> zeroinitializer
  %3478 = add <2 x i64> %3477, <i64 -1, i64 -2>
  %3479 = add <2 x i64> %3477, <i64 -3, i64 -4>
  %3480 = add nsw <2 x i64> %3478, %broadcast.splat5654
  %3481 = add nsw <2 x i64> %3479, %broadcast.splat5654
  %3482 = getelementptr inbounds %struct.Mem, ptr %.02367, <2 x i64> %3480
  %3483 = getelementptr inbounds %struct.Mem, ptr %.02367, <2 x i64> %3481
  %3484 = extractelement <2 x i64> %3478, i64 0
  %3485 = getelementptr inbounds [1 x ptr], ptr %3473, i64 0, i64 %3484
  %3486 = getelementptr inbounds i8, ptr %3485, i64 -8
  %3487 = getelementptr inbounds i8, ptr %3485, i64 -24
  %reverse5655 = shufflevector <2 x ptr> %3482, <2 x ptr> poison, <2 x i32> <i32 1, i32 0>
  store <2 x ptr> %reverse5655, ptr %3486, align 8, !tbaa !45
  %reverse5656 = shufflevector <2 x ptr> %3483, <2 x ptr> poison, <2 x i32> <i32 1, i32 0>
  store <2 x ptr> %reverse5656, ptr %3487, align 8, !tbaa !45
  %index.next5657 = add nuw i64 %index5651, 4
  %3488 = icmp eq i64 %index.next5657, %n.vec5647
  br i1 %3488, label %middle.block5642, label %vector.body5650, !llvm.loop !216

middle.block5642:                                 ; preds = %vector.body5650
  %cmp.n5658 = icmp eq i64 %n.vec5647, %3474
  br i1 %cmp.n5658, label %.loopexit3533, label %scalar.ph5643.preheader

scalar.ph5643.preheader:                          ; preds = %middle.block5642, %.lr.ph3999
  %indvars.iv4581.ph = phi i64 [ %3474, %.lr.ph3999 ], [ %ind.end5648, %middle.block5642 ]
  br label %scalar.ph5643

scalar.ph5643:                                    ; preds = %scalar.ph5643.preheader, %scalar.ph5643
  %indvars.iv4581 = phi i64 [ %indvars.iv.next4582, %scalar.ph5643 ], [ %indvars.iv4581.ph, %scalar.ph5643.preheader ]
  %indvars.iv.next4582 = add nsw i64 %indvars.iv4581, -1
  %3489 = add nsw i64 %indvars.iv.next4582, %3475
  %3490 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3489
  %3491 = getelementptr inbounds [1 x ptr], ptr %3473, i64 0, i64 %indvars.iv.next4582
  store ptr %3490, ptr %3491, align 8, !tbaa !45
  %3492 = icmp ugt i64 %indvars.iv4581, 1
  br i1 %3492, label %scalar.ph5643, label %.loopexit3533, !llvm.loop !217

.loopexit3533:                                    ; preds = %scalar.ph5643, %middle.block5642, %3468, %3460
  %3493 = getelementptr inbounds i8, ptr %3465, i64 12
  %3494 = load i32, ptr %3493, align 4, !tbaa !54
  %3495 = add nsw i32 %3494, 1
  store i32 %3495, ptr %3493, align 4, !tbaa !54
  call void @sqlite3VdbeMemInit(ptr noundef nonnull %41, ptr noundef %49, i16 noundef zeroext 1) #6
  store ptr %41, ptr %3461, align 8, !tbaa !66
  %3496 = getelementptr inbounds i8, ptr %3461, i64 41
  store i8 0, ptr %3496, align 1, !tbaa !76
  %3497 = getelementptr inbounds i8, ptr %3461, i64 40
  store i8 0, ptr %3497, align 8, !tbaa !218
  %3498 = getelementptr inbounds i8, ptr %3461, i64 8
  %3499 = load ptr, ptr %3498, align 8, !tbaa !68
  %3500 = getelementptr inbounds i8, ptr %3499, i64 24
  %3501 = load ptr, ptr %3500, align 8, !tbaa !77
  %3502 = getelementptr inbounds i8, ptr %3461, i64 42
  %3503 = load i8, ptr %3502, align 2, !tbaa !71
  %3504 = zext i8 %3503 to i32
  %3505 = getelementptr inbounds i8, ptr %3461, i64 48
  call void %3501(ptr noundef nonnull %3461, i32 noundef %3504, ptr noundef nonnull %3505) #6
  %3506 = load i8, ptr %3496, align 1, !tbaa !76
  %.not2773 = icmp eq i8 %3506, 0
  br i1 %.not2773, label %3514, label %3507

3507:                                             ; preds = %.loopexit3533
  %3508 = getelementptr inbounds i8, ptr %3461, i64 36
  %3509 = load i32, ptr %3508, align 4, !tbaa !79
  %.not2774 = icmp eq i32 %3509, 0
  br i1 %.not2774, label %3513, label %3510

3510:                                             ; preds = %3507
  %3511 = call ptr @sqlite3_value_text(ptr noundef nonnull %41) #6
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef nonnull %0, ptr noundef nonnull @.str.6, ptr noundef %3511) #6
  %3512 = load i32, ptr %3508, align 4, !tbaa !79
  br label %3513

3513:                                             ; preds = %3510, %3507
  %.66 = phi i32 [ %3512, %3510 ], [ %.02330, %3507 ]
  call void @sqlite3VdbeMemRelease(ptr noundef nonnull %41) #6
  %.not2775 = icmp eq i32 %.66, 0
  br i1 %.not2775, label %3514, label %3522

3514:                                             ; preds = %.loopexit3533, %3513
  %.67 = phi i32 [ 0, %3513 ], [ %.02330, %.loopexit3533 ]
  %3515 = load i8, ptr %3497, align 8, !tbaa !218
  %.not2776 = icmp eq i8 %3515, 0
  br i1 %.not2776, label %.thread3396, label %3516

3516:                                             ; preds = %3514
  %3517 = getelementptr inbounds i8, ptr %.02322, i64 -20
  %3518 = load i32, ptr %3517, align 4, !tbaa !34
  %.not2777 = icmp eq i32 %3518, 0
  br i1 %.not2777, label %.thread3396, label %3519

3519:                                             ; preds = %3516
  %3520 = sext i32 %3518 to i64
  %3521 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3520
  call void @sqlite3VdbeMemSetInt64(ptr noundef nonnull %3521, i64 noundef 1) #6
  br label %.thread3396

.thread3396:                                      ; preds = %3516, %3519, %3514
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %41) #6
  br label %.thread3118

3522:                                             ; preds = %3513
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %41) #6
  br label %.thread3123

3523:                                             ; preds = %154
  %3524 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3525 = load i32, ptr %3524, align 4, !tbaa !34
  %3526 = sext i32 %3525 to i64
  %3527 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3526
  %3528 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3529 = load ptr, ptr %3528, align 8, !tbaa !25
  %3530 = call i32 @sqlite3VdbeMemFinalize(ptr noundef %3527, ptr noundef %3529) #6
  %.not2770 = icmp eq i32 %3530, 0
  br i1 %.not2770, label %3532, label %.thread3402

.thread3402:                                      ; preds = %3523
  %3531 = call ptr @sqlite3_value_text(ptr noundef %3527) #6
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef nonnull %0, ptr noundef nonnull @.str.6, ptr noundef %3531) #6
  br label %.thread3123

3532:                                             ; preds = %3523
  %3533 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %3527, i32 noundef %86) #6
  %3534 = call i32 @sqlite3VdbeMemTooBig(ptr noundef %3527) #6
  %.not2771 = icmp eq i32 %3534, 0
  br i1 %.not2771, label %.thread3118, label %.thread3298

3535:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %42) #6
  store i32 0, ptr %42, align 4, !tbaa !27
  store i32 -1, ptr %93, align 4, !tbaa !27
  store i32 -1, ptr %94, align 4, !tbaa !27
  %3536 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3537 = load i32, ptr %3536, align 4, !tbaa !34
  %3538 = getelementptr inbounds i8, ptr %.02322, i64 8
  %3539 = load i32, ptr %3538, align 8, !tbaa !32
  %3540 = call i32 @sqlite3Checkpoint(ptr noundef %49, i32 noundef %3537, i32 noundef %3539, ptr noundef nonnull %94, ptr noundef nonnull %93) #6
  switch i32 %3540, label %3554 [
    i32 0, label %..thread3404_crit_edge
    i32 5, label %3541
  ]

..thread3404_crit_edge:                           ; preds = %3535
  %.pre4614 = load i32, ptr %42, align 4, !tbaa !27
  br label %.thread3404

3541:                                             ; preds = %3535
  store i32 1, ptr %42, align 4, !tbaa !27
  br label %.thread3404

.thread3404:                                      ; preds = %..thread3404_crit_edge, %3541
  %3542 = phi i32 [ %.pre4614, %..thread3404_crit_edge ], [ 1, %3541 ]
  %3543 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3544 = load i32, ptr %3543, align 4, !tbaa !37
  %3545 = sext i32 %3544 to i64
  %3546 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3545
  %3547 = sext i32 %3542 to i64
  call void @sqlite3VdbeMemSetInt64(ptr noundef %3546, i64 noundef %3547) #6
  %3548 = getelementptr inbounds i8, ptr %3546, i64 56
  %3549 = load i32, ptr %94, align 4, !tbaa !27
  %3550 = sext i32 %3549 to i64
  call void @sqlite3VdbeMemSetInt64(ptr noundef nonnull %3548, i64 noundef %3550) #6
  %3551 = getelementptr inbounds i8, ptr %3546, i64 112
  %3552 = load i32, ptr %93, align 4, !tbaa !27
  %3553 = sext i32 %3552 to i64
  call void @sqlite3VdbeMemSetInt64(ptr noundef nonnull %3551, i64 noundef %3553) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %42) #6
  br label %.thread3118

3554:                                             ; preds = %3535
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %42) #6
  br label %.thread3123

3555:                                             ; preds = %154
  %3556 = call ptr @out2Prerelease(ptr noundef nonnull %0, ptr noundef nonnull %.02322)
  %3557 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3558 = load i32, ptr %3557, align 4, !tbaa !37
  %3559 = load ptr, ptr %78, align 8, !tbaa !116
  %3560 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3561 = load i32, ptr %3560, align 4, !tbaa !34
  %3562 = sext i32 %3561 to i64
  %3563 = getelementptr inbounds %struct.Db, ptr %3559, i64 %3562, i32 1
  %3564 = load ptr, ptr %3563, align 8, !tbaa !117
  %3565 = call ptr @sqlite3BtreePager(ptr noundef %3564) #6
  %3566 = call i32 @sqlite3PagerGetJournalMode(ptr noundef %3565) #6
  %3567 = icmp eq i32 %3558, -1
  %3568 = call i32 @sqlite3PagerOkToChangeJournalMode(ptr noundef %3565) #6
  %.not2763 = icmp eq i32 %3568, 0
  %3569 = select i1 %.not2763, i1 true, i1 %3567
  %.12474 = select i1 %3569, i32 %3566, i32 %3558
  %3570 = call ptr @sqlite3PagerFilename(ptr noundef %3565, i32 noundef 1) #6
  %3571 = icmp eq i32 %.12474, 5
  br i1 %3571, label %3572, label %3577

3572:                                             ; preds = %3555
  %3573 = call i32 @sqlite3Strlen30(ptr noundef %3570) #6
  %3574 = icmp eq i32 %3573, 0
  br i1 %3574, label %.thread3407, label %3575

3575:                                             ; preds = %3572
  %3576 = call i32 @sqlite3PagerWalSupported(ptr noundef %3565) #6
  %.not2764 = icmp eq i32 %3576, 0
  %.not2765 = icmp eq i32 %.12474, %3566
  %or.cond5165 = select i1 %.not2764, i1 true, i1 %.not2765
  br i1 %or.cond5165, label %.thread3407, label %3578

3577:                                             ; preds = %3555
  %.not2765.old = icmp eq i32 %.12474, %3566
  br i1 %.not2765.old, label %.thread3407, label %3578

3578:                                             ; preds = %3575, %3577
  %3579 = icmp eq i32 %3566, 5
  %or.cond33 = or i1 %3579, %3571
  br i1 %or.cond33, label %3580, label %.thread3407

3580:                                             ; preds = %3578
  %3581 = load i8, ptr %91, align 1, !tbaa !108
  %.not2766 = icmp eq i8 %3581, 0
  br i1 %.not2766, label %3585, label %3582

3582:                                             ; preds = %3580
  %3583 = load i32, ptr %92, align 8, !tbaa !121
  %3584 = icmp sgt i32 %3583, 1
  br i1 %3584, label %3585, label %3587

3585:                                             ; preds = %3582, %3580
  %3586 = select i1 %3571, ptr @.str.20, ptr @.str.21
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef nonnull %0, ptr noundef nonnull @.str.19, ptr noundef nonnull %3586) #6
  br label %.thread3123

3587:                                             ; preds = %3582
  br i1 %3579, label %3588, label %3592

3588:                                             ; preds = %3587
  %3589 = call i32 @sqlite3PagerCloseWal(ptr noundef %3565, ptr noundef nonnull %49) #6
  %3590 = icmp eq i32 %3589, 0
  br i1 %3590, label %.thread3411, label %.thread3407

.thread3411:                                      ; preds = %3588
  %3591 = call i32 @sqlite3PagerSetJournalMode(ptr noundef %3565, i32 noundef %.12474) #6
  br label %3598

3592:                                             ; preds = %3587
  %3593 = icmp eq i32 %3566, 4
  br i1 %3593, label %3594, label %3596

3594:                                             ; preds = %3592
  %3595 = call i32 @sqlite3PagerSetJournalMode(ptr noundef %3565, i32 noundef 2) #6
  br label %3596

3596:                                             ; preds = %3592, %3594
  %3597 = icmp eq i32 %.02330, 0
  br i1 %3597, label %3598, label %.thread3407

3598:                                             ; preds = %.thread3411, %3596
  %3599 = select i1 %3571, i32 2, i32 1
  %3600 = call i32 @sqlite3BtreeSetVersion(ptr noundef %3564, i32 noundef %3599) #6
  br label %.thread3407

.thread3407:                                      ; preds = %3588, %3575, %3572, %3598, %3596, %3578, %3577
  %.224753410 = phi i32 [ %.12474, %3598 ], [ %.12474, %3596 ], [ %.12474, %3578 ], [ %3566, %3577 ], [ %3566, %3572 ], [ %3566, %3575 ], [ %.12474, %3588 ]
  %.72 = phi i32 [ %3600, %3598 ], [ %.02330, %3596 ], [ %.02330, %3578 ], [ %.02330, %3577 ], [ %.02330, %3572 ], [ %.02330, %3575 ], [ %3589, %3588 ]
  %.not2767 = icmp eq i32 %.72, 0
  %spec.select3084 = select i1 %.not2767, i32 %.224753410, i32 %3566
  %3601 = call i32 @sqlite3PagerSetJournalMode(ptr noundef %3565, i32 noundef %spec.select3084) #6
  %3602 = getelementptr inbounds i8, ptr %3556, i64 8
  store i16 2562, ptr %3602, align 8, !tbaa !35
  %3603 = call ptr @sqlite3JournalModename(i32 noundef %3601) #6
  %3604 = getelementptr inbounds i8, ptr %3556, i64 16
  store ptr %3603, ptr %3604, align 8, !tbaa !53
  %3605 = call i32 @sqlite3Strlen30(ptr noundef %3603) #6
  %3606 = getelementptr inbounds i8, ptr %3556, i64 12
  store i32 %3605, ptr %3606, align 4, !tbaa !54
  %3607 = getelementptr inbounds i8, ptr %3556, i64 10
  store i8 1, ptr %3607, align 2, !tbaa !55
  %3608 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %3556, i32 noundef %86) #6
  br i1 %.not2767, label %.thread3118, label %.thread3123

3609:                                             ; preds = %154
  %3610 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3611 = load i32, ptr %3610, align 4, !tbaa !34
  %3612 = call i32 @sqlite3RunVacuum(ptr noundef nonnull %89, ptr noundef %49, i32 noundef %3611) #6
  %.not2762 = icmp eq i32 %3612, 0
  br i1 %.not2762, label %.thread3118, label %.thread3123

3613:                                             ; preds = %154
  %3614 = load ptr, ptr %78, align 8, !tbaa !116
  %3615 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3616 = load i32, ptr %3615, align 4, !tbaa !34
  %3617 = sext i32 %3616 to i64
  %3618 = getelementptr inbounds %struct.Db, ptr %3614, i64 %3617, i32 1
  %3619 = load ptr, ptr %3618, align 8, !tbaa !117
  %3620 = call i32 @sqlite3BtreeIncrVacuum(ptr noundef %3619) #6
  switch i32 %3620, label %.thread3123 [
    i32 0, label %.thread3118
    i32 101, label %.thread3154
  ]

3621:                                             ; preds = %154
  %3622 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3623 = load i32, ptr %3622, align 4, !tbaa !34
  %.not2759 = icmp eq i32 %3623, 0
  br i1 %.not2759, label %3624, label %3625

3624:                                             ; preds = %3621
  call void @sqlite3ExpirePreparedStatements(ptr noundef %49) #6
  br label %.thread3118

3625:                                             ; preds = %3621
  %3626 = load i16, ptr %83, align 8
  %3627 = or i16 %3626, 1
  store i16 %3627, ptr %83, align 8
  br label %.thread3118

3628:                                             ; preds = %154
  %3629 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3630 = load i32, ptr %3629, align 4, !tbaa !37
  %3631 = trunc i32 %3630 to i8
  %3632 = and i32 %3630, 255
  %.not2757 = icmp eq i32 %3632, 0
  br i1 %.not2757, label %3633, label %3637

3633:                                             ; preds = %3628
  %3634 = load i32, ptr %90, align 4, !tbaa !114
  %3635 = and i32 %3634, 16384
  %3636 = icmp eq i32 %3635, 0
  br i1 %3636, label %3637, label %.thread3118

3637:                                             ; preds = %3633, %3628
  %3638 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3639 = load i32, ptr %3638, align 4, !tbaa !34
  %3640 = load ptr, ptr %78, align 8, !tbaa !116
  %3641 = sext i32 %3639 to i64
  %3642 = getelementptr inbounds %struct.Db, ptr %3640, i64 %3641, i32 1
  %3643 = load ptr, ptr %3642, align 8, !tbaa !117
  %3644 = getelementptr inbounds i8, ptr %.02322, i64 8
  %3645 = load i32, ptr %3644, align 8, !tbaa !32
  %3646 = call i32 @sqlite3BtreeLockTable(ptr noundef %3643, i32 noundef %3645, i8 noundef zeroext %3631) #6
  %.not2758 = icmp eq i32 %3646, 0
  br i1 %.not2758, label %.thread3118, label %3647

3647:                                             ; preds = %3637
  %3648 = and i32 %3646, 255
  %3649 = icmp eq i32 %3648, 6
  br i1 %3649, label %3650, label %.thread3123

3650:                                             ; preds = %3647
  %3651 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3652 = load ptr, ptr %3651, align 8, !tbaa !25
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef nonnull %0, ptr noundef nonnull @.str.22, ptr noundef %3652) #6
  br label %.thread3123

3653:                                             ; preds = %154
  %3654 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3655 = load ptr, ptr %3654, align 8, !tbaa !25
  %3656 = call i32 @sqlite3VtabBegin(ptr noundef %49, ptr noundef %3655) #6
  %.not2755 = icmp eq ptr %3655, null
  br i1 %.not2755, label %3660, label %3657

3657:                                             ; preds = %3653
  %3658 = getelementptr inbounds i8, ptr %3655, i64 16
  %3659 = load ptr, ptr %3658, align 8, !tbaa !219
  call void @sqlite3VtabImportErrmsg(ptr noundef nonnull %0, ptr noundef %3659) #6
  br label %3660

3660:                                             ; preds = %3657, %3653
  %.not2756 = icmp eq i32 %3656, 0
  br i1 %.not2756, label %.thread3118, label %.thread3123

3661:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %43) #6
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %43, i8 0, i64 56, i1 false)
  store ptr %49, ptr %88, align 8, !tbaa !200
  %3662 = getelementptr inbounds i8, ptr %.02322, i64 8
  %3663 = load i32, ptr %3662, align 8, !tbaa !32
  %3664 = sext i32 %3663 to i64
  %3665 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3664
  %3666 = call i32 @sqlite3VdbeMemCopy(ptr noundef nonnull %43, ptr noundef %3665) #6
  %3667 = call ptr @sqlite3_value_text(ptr noundef nonnull %43) #6
  %.not2753 = icmp eq ptr %3667, null
  br i1 %.not2753, label %3672, label %3668

3668:                                             ; preds = %3661
  %3669 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3670 = load i32, ptr %3669, align 4, !tbaa !34
  %3671 = call i32 @sqlite3VtabCallCreate(ptr noundef %49, i32 noundef %3670, ptr noundef nonnull %3667, ptr noundef nonnull %89) #6
  br label %3672

3672:                                             ; preds = %3668, %3661
  %.77 = phi i32 [ %3671, %3668 ], [ %3666, %3661 ]
  call void @sqlite3VdbeMemRelease(ptr noundef nonnull %43) #6
  %.not2754 = icmp eq i32 %.77, 0
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %43) #6
  br i1 %.not2754, label %.thread3118, label %.thread3123

3673:                                             ; preds = %154
  %3674 = load i32, ptr %87, align 4, !tbaa !173
  %3675 = add nsw i32 %3674, 1
  store i32 %3675, ptr %87, align 4, !tbaa !173
  %3676 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3677 = load i32, ptr %3676, align 4, !tbaa !34
  %3678 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3679 = load ptr, ptr %3678, align 8, !tbaa !25
  %3680 = call i32 @sqlite3VtabCallDestroy(ptr noundef %49, i32 noundef %3677, ptr noundef %3679) #6
  %3681 = load i32, ptr %87, align 4, !tbaa !173
  %3682 = add nsw i32 %3681, -1
  store i32 %3682, ptr %87, align 4, !tbaa !173
  %.not2752 = icmp eq i32 %3680, 0
  br i1 %.not2752, label %.thread3118, label %.thread3123

3683:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #6
  store ptr null, ptr %44, align 8, !tbaa !45
  %3684 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3685 = load ptr, ptr %3684, align 8, !tbaa !25
  %3686 = getelementptr inbounds i8, ptr %3685, i64 16
  %3687 = load ptr, ptr %3686, align 8, !tbaa !219
  %3688 = icmp eq ptr %3687, null
  br i1 %3688, label %.thread3432, label %3689

3689:                                             ; preds = %3683
  %3690 = load ptr, ptr %3687, align 8, !tbaa !165
  %3691 = icmp eq ptr %3690, null
  br i1 %3691, label %.thread3432, label %3692

3692:                                             ; preds = %3689
  %3693 = getelementptr inbounds i8, ptr %3690, i64 48
  %3694 = load ptr, ptr %3693, align 8, !tbaa !221
  %3695 = call i32 %3694(ptr noundef nonnull %3687, ptr noundef nonnull %44) #6
  call void @sqlite3VtabImportErrmsg(ptr noundef nonnull %0, ptr noundef nonnull %3687) #6
  %.not2750 = icmp eq i32 %3695, 0
  br i1 %.not2750, label %3696, label %.thread3432

3696:                                             ; preds = %3692
  %3697 = load ptr, ptr %44, align 8, !tbaa !45
  store ptr %3687, ptr %3697, align 8, !tbaa !163
  %3698 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3699 = load i32, ptr %3698, align 4, !tbaa !34
  %3700 = call ptr @allocateCursor(ptr noundef nonnull %0, i32 noundef %3699, i32 noundef 0, i32 noundef -1, i8 noundef zeroext 2)
  %.not2751 = icmp eq ptr %3700, null
  br i1 %.not2751, label %3706, label %.thread3435

.thread3435:                                      ; preds = %3696
  %3701 = load ptr, ptr %44, align 8, !tbaa !45
  %3702 = getelementptr inbounds i8, ptr %3700, i64 48
  store ptr %3701, ptr %3702, align 8, !tbaa !25
  %3703 = getelementptr inbounds i8, ptr %3687, i64 8
  %3704 = load i32, ptr %3703, align 8, !tbaa !222
  %3705 = add nsw i32 %3704, 1
  store i32 %3705, ptr %3703, align 8, !tbaa !222
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #6
  br label %.thread3118

.thread3432:                                      ; preds = %3689, %3683, %3692
  %.78.ph = phi i32 [ %3695, %3692 ], [ 6, %3683 ], [ 6, %3689 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #6
  br label %.thread3123

3706:                                             ; preds = %3696
  %3707 = getelementptr inbounds i8, ptr %3690, i64 56
  %3708 = load ptr, ptr %3707, align 8, !tbaa !223
  %3709 = load ptr, ptr %44, align 8, !tbaa !45
  %3710 = call i32 %3708(ptr noundef %3709) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #6
  br label %.critedge31

3711:                                             ; preds = %154
  %3712 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3713 = load i32, ptr %3712, align 4, !tbaa !37
  %3714 = sext i32 %3713 to i64
  %3715 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3714
  %3716 = getelementptr inbounds i8, ptr %3715, i64 56
  %3717 = load ptr, ptr %84, align 8, !tbaa !84
  %3718 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3719 = load i32, ptr %3718, align 4, !tbaa !34
  %3720 = sext i32 %3719 to i64
  %3721 = getelementptr inbounds ptr, ptr %3717, i64 %3720
  %3722 = load ptr, ptr %3721, align 8, !tbaa !45
  %3723 = getelementptr inbounds i8, ptr %3722, i64 48
  %3724 = load ptr, ptr %3723, align 8, !tbaa !25
  %3725 = load ptr, ptr %3724, align 8, !tbaa !163
  %3726 = load ptr, ptr %3725, align 8, !tbaa !165
  %3727 = load i64, ptr %3716, align 8, !tbaa !25
  %3728 = trunc i64 %3727 to i32
  %3729 = load i64, ptr %3715, align 8, !tbaa !25
  %3730 = trunc i64 %3729 to i32
  %3731 = load ptr, ptr %80, align 8, !tbaa !224
  %3732 = icmp sgt i32 %3728, 0
  br i1 %3732, label %.lr.ph3993.preheader, label %._crit_edge3994

.lr.ph3993.preheader:                             ; preds = %3711
  %wide.trip.count4575 = and i64 %3727, 2147483647
  %min.iters.check5661 = icmp ult i64 %wide.trip.count4575, 4
  br i1 %min.iters.check5661, label %.lr.ph3993.preheader5693, label %vector.ph5662

vector.ph5662:                                    ; preds = %.lr.ph3993.preheader
  %n.mod.vf5663 = and i64 %3727, 3
  %n.vec5664 = sub nsw i64 %wide.trip.count4575, %n.mod.vf5663
  br label %vector.body5666

vector.body5666:                                  ; preds = %vector.body5666, %vector.ph5662
  %index5667 = phi i64 [ 0, %vector.ph5662 ], [ %index.next5669, %vector.body5666 ]
  %vec.ind = phi <2 x i64> [ <i64 0, i64 1>, %vector.ph5662 ], [ %vec.ind.next, %vector.body5666 ]
  %3733 = add nuw nsw <2 x i64> %vec.ind, <i64 1, i64 1>
  %3734 = add <2 x i64> %vec.ind, <i64 3, i64 3>
  %3735 = getelementptr inbounds %struct.Mem, ptr %3716, <2 x i64> %3733
  %3736 = getelementptr inbounds %struct.Mem, ptr %3716, <2 x i64> %3734
  %3737 = getelementptr inbounds ptr, ptr %3731, i64 %index5667
  %3738 = getelementptr inbounds i8, ptr %3737, i64 16
  store <2 x ptr> %3735, ptr %3737, align 8, !tbaa !45
  store <2 x ptr> %3736, ptr %3738, align 8, !tbaa !45
  %index.next5669 = add nuw i64 %index5667, 4
  %vec.ind.next = add <2 x i64> %vec.ind, <i64 4, i64 4>
  %3739 = icmp eq i64 %index.next5669, %n.vec5664
  br i1 %3739, label %middle.block5659, label %vector.body5666, !llvm.loop !225

middle.block5659:                                 ; preds = %vector.body5666
  %cmp.n5670 = icmp eq i64 %n.mod.vf5663, 0
  br i1 %cmp.n5670, label %._crit_edge3994, label %.lr.ph3993.preheader5693

.lr.ph3993.preheader5693:                         ; preds = %middle.block5659, %.lr.ph3993.preheader
  %indvars.iv4572.ph = phi i64 [ 0, %.lr.ph3993.preheader ], [ %n.vec5664, %middle.block5659 ]
  br label %.lr.ph3993

.lr.ph3993:                                       ; preds = %.lr.ph3993.preheader5693, %.lr.ph3993
  %indvars.iv4572 = phi i64 [ %indvars.iv.next4573, %.lr.ph3993 ], [ %indvars.iv4572.ph, %.lr.ph3993.preheader5693 ]
  %indvars.iv.next4573 = add nuw nsw i64 %indvars.iv4572, 1
  %3740 = getelementptr inbounds %struct.Mem, ptr %3716, i64 %indvars.iv.next4573
  %3741 = getelementptr inbounds ptr, ptr %3731, i64 %indvars.iv4572
  store ptr %3740, ptr %3741, align 8, !tbaa !45
  %exitcond4576.not = icmp eq i64 %indvars.iv.next4573, %wide.trip.count4575
  br i1 %exitcond4576.not, label %._crit_edge3994, label %.lr.ph3993, !llvm.loop !226

._crit_edge3994:                                  ; preds = %.lr.ph3993, %middle.block5659, %3711
  %3742 = getelementptr inbounds i8, ptr %3726, i64 64
  %3743 = load ptr, ptr %3742, align 8, !tbaa !227
  %3744 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3745 = load ptr, ptr %3744, align 8, !tbaa !25
  %3746 = call i32 %3743(ptr noundef nonnull %3724, i32 noundef %3730, ptr noundef %3745, i32 noundef %3728, ptr noundef %3731) #6
  call void @sqlite3VtabImportErrmsg(ptr noundef nonnull %0, ptr noundef nonnull %3725) #6
  %.not2748 = icmp eq i32 %3746, 0
  br i1 %.not2748, label %3747, label %.thread3123

3747:                                             ; preds = %._crit_edge3994
  %3748 = getelementptr inbounds i8, ptr %3726, i64 80
  %3749 = load ptr, ptr %3748, align 8, !tbaa !228
  %3750 = call i32 %3749(ptr noundef nonnull %3724) #6
  %3751 = getelementptr inbounds i8, ptr %3722, i64 2
  store i8 0, ptr %3751, align 2, !tbaa !89
  %.not2749 = icmp eq i32 %3750, 0
  br i1 %.not2749, label %.thread3118, label %.thread3154

3752:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %45) #6
  %3753 = load ptr, ptr %84, align 8, !tbaa !84
  %3754 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3755 = load i32, ptr %3754, align 4, !tbaa !34
  %3756 = sext i32 %3755 to i64
  %3757 = getelementptr inbounds ptr, ptr %3753, i64 %3756
  %3758 = load ptr, ptr %3757, align 8, !tbaa !45
  %3759 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3760 = load i32, ptr %3759, align 4, !tbaa !37
  %3761 = sext i32 %3760 to i64
  %3762 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3761
  %3763 = getelementptr inbounds i8, ptr %3758, i64 2
  %3764 = load i8, ptr %3763, align 2, !tbaa !89
  %.not2744 = icmp eq i8 %3764, 0
  br i1 %.not2744, label %3766, label %3765

3765:                                             ; preds = %3752
  call void @sqlite3VdbeMemSetNull(ptr noundef %3762) #6
  br label %.thread3445

3766:                                             ; preds = %3752
  %3767 = getelementptr inbounds i8, ptr %3758, i64 48
  %3768 = load ptr, ptr %3767, align 8, !tbaa !25
  %3769 = load ptr, ptr %3768, align 8, !tbaa !163
  %3770 = load ptr, ptr %3769, align 8, !tbaa !165
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %153, i8 0, i64 48, i1 false)
  store ptr %3762, ptr %45, align 8, !tbaa !66
  %3771 = getelementptr inbounds i8, ptr %3762, i64 8
  %3772 = load i16, ptr %3771, align 8, !tbaa !35
  %3773 = and i16 %3772, 15872
  %3774 = or disjoint i16 %3773, 1
  store i16 %3774, ptr %3771, align 8, !tbaa !35
  %3775 = getelementptr inbounds i8, ptr %3770, i64 88
  %3776 = load ptr, ptr %3775, align 8, !tbaa !229
  %3777 = load ptr, ptr %3767, align 8, !tbaa !25
  %3778 = getelementptr inbounds i8, ptr %.02322, i64 8
  %3779 = load i32, ptr %3778, align 8, !tbaa !32
  %3780 = call i32 %3776(ptr noundef %3777, ptr noundef nonnull %45, i32 noundef %3779) #6
  call void @sqlite3VtabImportErrmsg(ptr noundef nonnull %0, ptr noundef nonnull %3769) #6
  %3781 = load i32, ptr %85, align 4, !tbaa !79
  %3782 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %3762, i32 noundef %86) #6
  %3783 = call i32 @sqlite3VdbeMemTooBig(ptr noundef %3762) #6
  %.not2746 = icmp eq i32 %3783, 0
  br i1 %.not2746, label %3784, label %3785

3784:                                             ; preds = %3766
  %.not2745 = icmp eq i32 %3781, 0
  %spec.select3088 = select i1 %.not2745, i32 %3780, i32 %3781
  %.not2747 = icmp eq i32 %spec.select3088, 0
  br i1 %.not2747, label %.thread3445, label %.thread3448

.thread3448:                                      ; preds = %3784
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %45) #6
  br label %.thread3123

.thread3445:                                      ; preds = %3765, %3784
  %.80.ph = phi i32 [ %.02330, %3765 ], [ 0, %3784 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %45) #6
  br label %.thread3118

3785:                                             ; preds = %3766
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %45) #6
  br label %.thread3298

3786:                                             ; preds = %154
  %3787 = load ptr, ptr %84, align 8, !tbaa !84
  %3788 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3789 = load i32, ptr %3788, align 4, !tbaa !34
  %3790 = sext i32 %3789 to i64
  %3791 = getelementptr inbounds ptr, ptr %3787, i64 %3790
  %3792 = load ptr, ptr %3791, align 8, !tbaa !45
  %3793 = getelementptr inbounds i8, ptr %3792, i64 2
  %3794 = load i8, ptr %3793, align 2, !tbaa !89
  %.not2741 = icmp eq i8 %3794, 0
  br i1 %.not2741, label %3795, label %.thread3118

3795:                                             ; preds = %3786
  %3796 = getelementptr inbounds i8, ptr %3792, i64 48
  %3797 = load ptr, ptr %3796, align 8, !tbaa !25
  %3798 = load ptr, ptr %3797, align 8, !tbaa !163
  %3799 = load ptr, ptr %3798, align 8, !tbaa !165
  %3800 = getelementptr inbounds i8, ptr %3799, i64 72
  %3801 = load ptr, ptr %3800, align 8, !tbaa !230
  %3802 = call i32 %3801(ptr noundef nonnull %3797) #6
  call void @sqlite3VtabImportErrmsg(ptr noundef nonnull %0, ptr noundef nonnull %3798) #6
  %.not2742 = icmp eq i32 %3802, 0
  br i1 %.not2742, label %3803, label %.thread3123

3803:                                             ; preds = %3795
  %3804 = getelementptr inbounds i8, ptr %3799, i64 80
  %3805 = load ptr, ptr %3804, align 8, !tbaa !228
  %3806 = load ptr, ptr %3796, align 8, !tbaa !25
  %3807 = call i32 %3805(ptr noundef %3806) #6
  %.not2743 = icmp eq i32 %3807, 0
  br i1 %.not2743, label %.thread3455, label %.thread3458

3808:                                             ; preds = %154
  %3809 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3810 = load ptr, ptr %3809, align 8, !tbaa !25
  %3811 = getelementptr inbounds i8, ptr %3810, i64 16
  %3812 = load ptr, ptr %3811, align 8, !tbaa !219
  %3813 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3814 = load i32, ptr %3813, align 4, !tbaa !34
  %3815 = sext i32 %3814 to i64
  %3816 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3815
  %3817 = call i32 @sqlite3VdbeChangeEncoding(ptr noundef %3816, i32 noundef 1) #6
  %.not2739 = icmp eq i32 %3817, 0
  br i1 %.not2739, label %3818, label %.thread3123

3818:                                             ; preds = %3808
  %3819 = load ptr, ptr %3812, align 8, !tbaa !165
  %3820 = getelementptr inbounds i8, ptr %3819, i64 152
  %3821 = load ptr, ptr %3820, align 8, !tbaa !231
  %3822 = getelementptr inbounds i8, ptr %3816, i64 16
  %3823 = load ptr, ptr %3822, align 8, !tbaa !53
  %3824 = call i32 %3821(ptr noundef nonnull %3812, ptr noundef %3823) #6
  call void @sqlite3VtabImportErrmsg(ptr noundef nonnull %0, ptr noundef nonnull %3812) #6
  %3825 = load i16, ptr %83, align 8
  %3826 = and i16 %3825, -2
  store i16 %3826, ptr %83, align 8
  %.not2740 = icmp eq i32 %3824, 0
  br i1 %.not2740, label %.thread3118, label %.thread3123

3827:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #6
  %3828 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3829 = load ptr, ptr %3828, align 8, !tbaa !25
  %3830 = getelementptr inbounds i8, ptr %3829, i64 16
  %3831 = load ptr, ptr %3830, align 8, !tbaa !219
  %3832 = icmp eq ptr %3831, null
  br i1 %3832, label %.thread3474, label %3833

3833:                                             ; preds = %3827
  %3834 = load ptr, ptr %3831, align 8, !tbaa !165
  %3835 = icmp eq ptr %3834, null
  br i1 %3835, label %.thread3474, label %3836

3836:                                             ; preds = %3833
  %3837 = getelementptr inbounds i8, ptr %.02322, i64 8
  %3838 = load i32, ptr %3837, align 8, !tbaa !32
  %3839 = getelementptr inbounds i8, ptr %3834, i64 104
  %3840 = load ptr, ptr %3839, align 8, !tbaa !232
  %.not2735 = icmp eq ptr %3840, null
  br i1 %.not2735, label %.thread3470, label %3841

3841:                                             ; preds = %3836
  %3842 = load i8, ptr %79, align 2, !tbaa !233
  %3843 = load ptr, ptr %80, align 8, !tbaa !224
  %3844 = icmp sgt i32 %3838, 0
  br i1 %3844, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %3841
  %3845 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3846 = load i32, ptr %3845, align 4, !tbaa !37
  %3847 = sext i32 %3846 to i64
  %3848 = getelementptr inbounds %struct.Mem, ptr %.02367, i64 %3847
  %wide.trip.count = zext nneg i32 %3838 to i64
  %min.iters.check5673 = icmp ult i32 %3838, 4
  br i1 %min.iters.check5673, label %.lr.ph.preheader5694, label %vector.ph5674

vector.ph5674:                                    ; preds = %.lr.ph.preheader
  %n.vec5676 = and i64 %wide.trip.count, 2147483644
  %3849 = mul nuw nsw i64 %n.vec5676, 56
  %ind.end5678 = getelementptr i8, ptr %3848, i64 %3849
  br label %vector.body5680

vector.body5680:                                  ; preds = %vector.body5680, %vector.ph5674
  %pointer.phi = phi ptr [ %3848, %vector.ph5674 ], [ %ptr.ind, %vector.body5680 ]
  %index5681 = phi i64 [ 0, %vector.ph5674 ], [ %index.next5682, %vector.body5680 ]
  %3850 = getelementptr i8, ptr %pointer.phi, <2 x i64> <i64 0, i64 56>
  %3851 = getelementptr i8, ptr %pointer.phi, <2 x i64> <i64 112, i64 168>
  %3852 = getelementptr inbounds ptr, ptr %3843, i64 %index5681
  %3853 = getelementptr inbounds i8, ptr %3852, i64 16
  store <2 x ptr> %3850, ptr %3852, align 8, !tbaa !45
  store <2 x ptr> %3851, ptr %3853, align 8, !tbaa !45
  %index.next5682 = add nuw i64 %index5681, 4
  %ptr.ind = getelementptr i8, ptr %pointer.phi, i64 224
  %3854 = icmp eq i64 %index.next5682, %n.vec5676
  br i1 %3854, label %middle.block5671, label %vector.body5680, !llvm.loop !234

middle.block5671:                                 ; preds = %vector.body5680
  %cmp.n5683 = icmp eq i64 %n.vec5676, %wide.trip.count
  br i1 %cmp.n5683, label %._crit_edge.loopexit, label %.lr.ph.preheader5694

.lr.ph.preheader5694:                             ; preds = %middle.block5671, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 0, %.lr.ph.preheader ], [ %n.vec5676, %middle.block5671 ]
  %.023573990.ph = phi ptr [ %3848, %.lr.ph.preheader ], [ %ind.end5678, %middle.block5671 ]
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader5694, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %indvars.iv.ph, %.lr.ph.preheader5694 ]
  %.023573990 = phi ptr [ %3856, %.lr.ph ], [ %.023573990.ph, %.lr.ph.preheader5694 ]
  %3855 = getelementptr inbounds ptr, ptr %3843, i64 %indvars.iv
  store ptr %.023573990, ptr %3855, align 8, !tbaa !45
  %3856 = getelementptr inbounds i8, ptr %.023573990, i64 56
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge.loopexit, label %.lr.ph, !llvm.loop !235

._crit_edge.loopexit:                             ; preds = %.lr.ph, %middle.block5671
  %.pre = load ptr, ptr %3839, align 8, !tbaa !232
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %3841
  %3857 = phi ptr [ %.pre, %._crit_edge.loopexit ], [ %3840, %3841 ]
  %3858 = getelementptr inbounds i8, ptr %.02322, i64 2
  %3859 = load i16, ptr %3858, align 2, !tbaa !44
  %3860 = trunc i16 %3859 to i8
  store i8 %3860, ptr %79, align 2, !tbaa !233
  %3861 = call i32 %3857(ptr noundef nonnull %3831, i32 noundef %3838, ptr noundef %3843, ptr noundef nonnull %46) #6
  store i8 %3842, ptr %79, align 2, !tbaa !233
  call void @sqlite3VtabImportErrmsg(ptr noundef nonnull %0, ptr noundef nonnull %3831) #6
  %3862 = icmp eq i32 %3861, 0
  br i1 %3862, label %3863, label %3868

3863:                                             ; preds = %._crit_edge
  %3864 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3865 = load i32, ptr %3864, align 4, !tbaa !34
  %.not2736 = icmp eq i32 %3865, 0
  br i1 %.not2736, label %.thread3497, label %3866

3866:                                             ; preds = %3863
  %3867 = load i64, ptr %46, align 8, !tbaa !48
  store i64 %3867, ptr %81, align 8, !tbaa !154
  br label %.thread3497

3868:                                             ; preds = %._crit_edge
  %3869 = and i32 %3861, 255
  %3870 = icmp eq i32 %3869, 19
  br i1 %3870, label %3871, label %3883

3871:                                             ; preds = %3868
  %3872 = load ptr, ptr %3828, align 8, !tbaa !25
  %3873 = getelementptr inbounds i8, ptr %3872, i64 28
  %3874 = load i8, ptr %3873, align 4, !tbaa !236
  %.not2737 = icmp eq i8 %3874, 0
  br i1 %.not2737, label %3883, label %3875

3875:                                             ; preds = %3871
  %3876 = load i16, ptr %3858, align 2, !tbaa !44
  switch i16 %3876, label %3877 [
    i16 4, label %.thread3470
    i16 5, label %.thread3492
  ]

3877:                                             ; preds = %3875
  %3878 = trunc i16 %3876 to i8
  br label %.thread3492

.thread3492:                                      ; preds = %3875, %3877
  %3879 = phi i8 [ %3878, %3877 ], [ 2, %3875 ]
  %3880 = getelementptr inbounds i8, ptr %0, i64 190
  store i8 %3879, ptr %3880, align 2, !tbaa !39
  br label %3886

.thread3497:                                      ; preds = %3866, %3863
  %3881 = load i32, ptr %82, align 4, !tbaa !43
  %3882 = add nsw i32 %3881, 1
  store i32 %3882, ptr %82, align 4, !tbaa !43
  br label %.thread3470

3883:                                             ; preds = %3868, %3871
  %3884 = load i32, ptr %82, align 4, !tbaa !43
  %3885 = add nsw i32 %3884, 1
  store i32 %3885, ptr %82, align 4, !tbaa !43
  br label %3886

.thread3470:                                      ; preds = %3875, %3836, %.thread3497
  %.85.ph = phi i32 [ %.02330, %3836 ], [ 0, %.thread3497 ], [ 0, %3875 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #6
  br label %.thread3118

.thread3474:                                      ; preds = %3833, %3827
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #6
  br label %.thread3123

3886:                                             ; preds = %3883, %.thread3492
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #6
  br label %.thread3123

3887:                                             ; preds = %154
  %3888 = call ptr @out2Prerelease(ptr noundef nonnull %0, ptr noundef nonnull %.02322)
  %3889 = load ptr, ptr %78, align 8, !tbaa !116
  %3890 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3891 = load i32, ptr %3890, align 4, !tbaa !34
  %3892 = sext i32 %3891 to i64
  %3893 = getelementptr inbounds %struct.Db, ptr %3889, i64 %3892, i32 1
  %3894 = load ptr, ptr %3893, align 8, !tbaa !117
  %3895 = call i32 @sqlite3BtreeLastPage(ptr noundef %3894) #6
  %3896 = zext i32 %3895 to i64
  store i64 %3896, ptr %3888, align 8, !tbaa !25
  br label %.thread3118

3897:                                             ; preds = %154
  %3898 = call ptr @out2Prerelease(ptr noundef nonnull %0, ptr noundef nonnull %.02322)
  %3899 = load ptr, ptr %78, align 8, !tbaa !116
  %3900 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3901 = load i32, ptr %3900, align 4, !tbaa !34
  %3902 = sext i32 %3901 to i64
  %3903 = getelementptr inbounds %struct.Db, ptr %3899, i64 %3902, i32 1
  %3904 = load ptr, ptr %3903, align 8, !tbaa !117
  %3905 = getelementptr inbounds i8, ptr %.02322, i64 12
  %3906 = load i32, ptr %3905, align 4, !tbaa !37
  %.not2734 = icmp eq i32 %3906, 0
  br i1 %.not2734, label %3910, label %3907

3907:                                             ; preds = %3897
  %3908 = call i32 @sqlite3BtreeLastPage(ptr noundef %3904) #6
  %3909 = load i32, ptr %3905, align 4, !tbaa !37
  %spec.select3094 = call i32 @llvm.umax.i32(i32 %3908, i32 %3909)
  br label %3910

3910:                                             ; preds = %3907, %3897
  %.02348 = phi i32 [ 0, %3897 ], [ %spec.select3094, %3907 ]
  %3911 = call i32 @sqlite3BtreeMaxPageCount(ptr noundef %3904, i32 noundef %.02348) #6
  %3912 = sext i32 %3911 to i64
  store i64 %3912, ptr %3898, align 8, !tbaa !25
  br label %.thread3118

3913:                                             ; preds = %154
  %3914 = load i8, ptr %145, align 4, !tbaa !63
  %3915 = and i8 %3914, -127
  %.not2953 = icmp eq i8 %3915, 0
  br i1 %.not2953, label %3941, label %3916

3916:                                             ; preds = %3913
  %3917 = load i16, ptr %83, align 8
  %3918 = and i16 %3917, 2
  %.not2954 = icmp eq i16 %3918, 0
  br i1 %.not2954, label %3919, label %3941

3919:                                             ; preds = %3916
  %3920 = getelementptr inbounds i8, ptr %.02322, i64 16
  %3921 = load ptr, ptr %3920, align 8, !tbaa !25
  %.not2955 = icmp eq ptr %3921, null
  br i1 %.not2955, label %3922, label %.thread3477

3922:                                             ; preds = %3919
  %3923 = load ptr, ptr %146, align 8, !tbaa !47
  %.not2956 = icmp eq ptr %3923, null
  br i1 %.not2956, label %3941, label %.thread3477

.thread3477:                                      ; preds = %3919, %3922
  %3924 = phi ptr [ %3923, %3922 ], [ %3921, %3919 ]
  %.not2957 = icmp sgt i8 %3914, -1
  br i1 %.not2957, label %3929, label %3925

3925:                                             ; preds = %.thread3477
  %3926 = load ptr, ptr %147, align 8, !tbaa !64
  %3927 = call ptr @sqlite3VdbeExpandSql(ptr noundef nonnull %0, ptr noundef nonnull %3924) #6
  %3928 = load ptr, ptr %148, align 8, !tbaa !65
  call void %3926(ptr noundef %3928, ptr noundef %3927) #6
  call void @sqlite3_free(ptr noundef %3927) #6
  br label %3941

3929:                                             ; preds = %.thread3477
  %3930 = load i32, ptr %149, align 8, !tbaa !237
  %3931 = icmp sgt i32 %3930, 1
  br i1 %3931, label %3932, label %3937

3932:                                             ; preds = %3929
  %3933 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef nonnull %49, ptr noundef nonnull @.str.23, ptr noundef nonnull %3924) #6
  %3934 = load ptr, ptr %147, align 8, !tbaa !64
  %3935 = load ptr, ptr %148, align 8, !tbaa !65
  %3936 = call i32 %3934(i32 noundef 1, ptr noundef %3935, ptr noundef nonnull %0, ptr noundef %3933) #6
  call void @sqlite3DbFree(ptr noundef nonnull %49, ptr noundef %3933) #6
  br label %3941

3937:                                             ; preds = %3929
  %3938 = load ptr, ptr %147, align 8, !tbaa !64
  %3939 = load ptr, ptr %148, align 8, !tbaa !65
  %3940 = call i32 %3938(i32 noundef 1, ptr noundef %3939, ptr noundef nonnull %0, ptr noundef nonnull %3924) #6
  br label %3941

3941:                                             ; preds = %3925, %3937, %3932, %3922, %3916, %3913
  %3942 = getelementptr inbounds i8, ptr %.02322, i64 4
  %3943 = load i32, ptr %3942, align 4, !tbaa !34
  %3944 = load i32, ptr getelementptr inbounds (i8, ptr @sqlite3Config, i64 428), align 4, !tbaa !238
  %.not2958 = icmp slt i32 %3943, %3944
  br i1 %.not2958, label %._crit_edge4053, label %.preheader

.preheader:                                       ; preds = %3941
  %3945 = load i32, ptr %103, align 8, !tbaa !198
  %3946 = icmp sgt i32 %3945, 1
  br i1 %3946, label %.lr.ph4052, label %._crit_edge4053

.lr.ph4052:                                       ; preds = %.preheader
  %3947 = load ptr, ptr %47, align 8, !tbaa !5
  %wide.trip.count4606 = zext nneg i32 %3945 to i64
  %3948 = add nsw i64 %wide.trip.count4606, -1
  %xtraiter6162 = and i64 %3948, 1
  %3949 = icmp eq i32 %3945, 2
  br i1 %3949, label %._crit_edge4053.loopexit.unr-lcssa, label %.lr.ph4052.new

.lr.ph4052.new:                                   ; preds = %.lr.ph4052
  %unroll_iter = and i64 %3948, -2
  br label %3950

3950:                                             ; preds = %3963, %.lr.ph4052.new
  %indvars.iv4603 = phi i64 [ 1, %.lr.ph4052.new ], [ %indvars.iv.next4604.1, %3963 ]
  %niter = phi i64 [ 0, %.lr.ph4052.new ], [ %niter.next.1, %3963 ]
  %3951 = getelementptr inbounds %struct.VdbeOp, ptr %3947, i64 %indvars.iv4603
  %3952 = load i8, ptr %3951, align 8, !tbaa !30
  %3953 = icmp eq i8 %3952, 20
  br i1 %3953, label %3954, label %3956

3954:                                             ; preds = %3950
  %3955 = getelementptr inbounds i8, ptr %3951, i64 4
  store i32 0, ptr %3955, align 4, !tbaa !34
  br label %3956

3956:                                             ; preds = %3950, %3954
  %3957 = getelementptr inbounds %struct.VdbeOp, ptr %3947, i64 %indvars.iv4603
  %3958 = getelementptr inbounds i8, ptr %3957, i64 24
  %3959 = load i8, ptr %3958, align 8, !tbaa !30
  %3960 = icmp eq i8 %3959, 20
  br i1 %3960, label %3961, label %3963

3961:                                             ; preds = %3956
  %3962 = getelementptr inbounds i8, ptr %3957, i64 28
  store i32 0, ptr %3962, align 4, !tbaa !34
  br label %3963

3963:                                             ; preds = %3961, %3956
  %indvars.iv.next4604.1 = add nuw nsw i64 %indvars.iv4603, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge4053.loopexit.unr-lcssa, label %3950, !llvm.loop !243

._crit_edge4053.loopexit.unr-lcssa:               ; preds = %3963, %.lr.ph4052
  %indvars.iv4603.unr = phi i64 [ 1, %.lr.ph4052 ], [ %indvars.iv.next4604.1, %3963 ]
  %lcmp.mod6163.not = icmp eq i64 %xtraiter6162, 0
  br i1 %lcmp.mod6163.not, label %._crit_edge4053, label %.epil.preheader

.epil.preheader:                                  ; preds = %._crit_edge4053.loopexit.unr-lcssa
  %3964 = getelementptr inbounds %struct.VdbeOp, ptr %3947, i64 %indvars.iv4603.unr
  %3965 = load i8, ptr %3964, align 8, !tbaa !30
  %3966 = icmp eq i8 %3965, 20
  br i1 %3966, label %3967, label %._crit_edge4053

3967:                                             ; preds = %.epil.preheader
  %3968 = getelementptr inbounds i8, ptr %3964, i64 4
  store i32 0, ptr %3968, align 4, !tbaa !34
  br label %._crit_edge4053

._crit_edge4053:                                  ; preds = %._crit_edge4053.loopexit.unr-lcssa, %3967, %.epil.preheader, %.preheader, %3941
  %3969 = phi i32 [ %3943, %3941 ], [ 0, %.preheader ], [ 0, %.epil.preheader ], [ 0, %3967 ], [ 0, %._crit_edge4053.loopexit.unr-lcssa ]
  %3970 = add nsw i32 %3969, 1
  store i32 %3970, ptr %3942, align 4, !tbaa !34
  br label %.thread3154

.thread3118:                                      ; preds = %.lr.ph4004, %.lr.ph4046, %1061, %464, %443, %.lr.ph4060, %2765, %1038, %950, %1541, %1049, %380, %1023, %3786, %3747, %3637, %3633, %3613, %3532, %3429, %.loopexit3530, %3184, %.thread3374, %3025, %3024, %2629, %2633, %2626, %2559, %2570, %2565, %2561, %2109, %1792, %1790, %1693, %1706, %1028, %942, %796, %793, %602, %554, %.thread3470, %3818, %.thread3445, %.thread3435, %.thread3407, %.thread3404, %.thread3396, %.thread3368, %.thread3365, %.thread3348, %.thread3339, %.thread3335, %2893, %2868, %.thread3316, %.thread3307, %.thread3302, %.thread3290, %.thread3285, %2427, %.thread3274, %.thread3255, %.thread3253, %.thread3243, %.thread3230, %.thread3174, %.thread3172, %.thread3159, %1214, %.thread3145, %.thread3116, %309, %3672, %3660, %3012, %2116, %1958, %1237, %1081, %3375, %3389, %2677, %2688, %1141, %1146, %818, %850, %.thread3154, %188, %208, %220, %313, %318, %323, %398, %406, %470, %479, %709, %855, %883, %1914, %2139, %2349, %2575, %2577, %2938, %3071, %3076, %3081, %3138, %3315, %3418, %3887, %3910, %165, %163, %196, %234, %371, %379, %358, %713, %710, %895, %887, %908, %1039, %1093, %1099, %1085, %1165, %1152, %1182, %1169, %1238, %1245, %2040, %2348, %2778, %3041, %3067, %3347, %3350, %3335, %3362, %3365, %3356, %3359, %3390, %3419, %3435, %3609, %3625, %3624, %3673, %154
  %.32370 = phi ptr [ %.02367, %154 ], [ %.02367, %3910 ], [ %.02367, %3887 ], [ %.02367, %165 ], [ %.02367, %163 ], [ %.02367, %.thread3154 ], [ %.02367, %3673 ], [ %.02367, %3672 ], [ %.02367, %3660 ], [ %.02367, %3625 ], [ %.02367, %3624 ], [ %.02367, %3609 ], [ %.02367, %3435 ], [ %.02367, %3419 ], [ %.02367, %3418 ], [ %.02367, %3390 ], [ %.02367, %3359 ], [ %.02367, %3356 ], [ %.02367, %3365 ], [ %.02367, %3362 ], [ %.02367, %3335 ], [ %.02367, %3347 ], [ %.02367, %3350 ], [ %.02367, %3315 ], [ %.02367, %3138 ], [ %.02367, %3081 ], [ %.02367, %3076 ], [ %.02367, %3071 ], [ %.02367, %3067 ], [ %.02367, %3041 ], [ %.02367, %3012 ], [ %.02367, %2938 ], [ %.02367, %2893 ], [ %.02367, %2868 ], [ %.02367, %2778 ], [ %.02367, %2577 ], [ %.02367, %2575 ], [ %.02367, %2427 ], [ %.02367, %2349 ], [ %.02367, %2348 ], [ %.02367, %.thread3255 ], [ %.02367, %2139 ], [ %.02367, %2116 ], [ %.02367, %2040 ], [ %.02367, %1958 ], [ %.02367, %1914 ], [ %.02367, %1245 ], [ %.02367, %1238 ], [ %.02367, %1237 ], [ %.02367, %1214 ], [ %.02367, %1182 ], [ %.02367, %1169 ], [ %.02367, %1165 ], [ %.02367, %1152 ], [ %.02367, %1085 ], [ %.02367, %1093 ], [ %.02367, %1099 ], [ %.02367, %1039 ], [ %.02367, %908 ], [ %.02367, %895 ], [ %.02367, %887 ], [ %.02367, %883 ], [ %.02367, %855 ], [ %.02367, %713 ], [ %.02367, %710 ], [ %.02367, %709 ], [ %.02367, %479 ], [ %.02367, %470 ], [ %.02367, %406 ], [ %.02367, %398 ], [ %.02367, %379 ], [ %.02367, %371 ], [ %.02367, %358 ], [ %.02367, %323 ], [ %.02367, %318 ], [ %.02367, %313 ], [ %310, %309 ], [ %.02367, %234 ], [ %.02367, %220 ], [ %.02367, %208 ], [ %.02367, %196 ], [ %.02367, %188 ], [ %.02367, %850 ], [ %.02367, %818 ], [ %.02367, %1081 ], [ %.02367, %1146 ], [ %.02367, %1141 ], [ %.02367, %2688 ], [ %.02367, %2677 ], [ %.02367, %3389 ], [ %.02367, %3375 ], [ %.02367, %.thread3116 ], [ %.02367, %.thread3145 ], [ %.02367, %.thread3159 ], [ %.02367, %.thread3172 ], [ %.02367, %.thread3174 ], [ %.02367, %.thread3230 ], [ %.02367, %.thread3243 ], [ %.02367, %.thread3253 ], [ %.02367, %.thread3274 ], [ %.02367, %.thread3285 ], [ %.02367, %.thread3290 ], [ %.02367, %.thread3302 ], [ %.02367, %.thread3307 ], [ %.02367, %.thread3316 ], [ %.02367, %.thread3335 ], [ %.02367, %.thread3339 ], [ %.02367, %.thread3348 ], [ %.02367, %.thread3365 ], [ %.02367, %.thread3368 ], [ %.02367, %.thread3396 ], [ %.02367, %.thread3404 ], [ %.02367, %.thread3407 ], [ %.02367, %.thread3435 ], [ %.02367, %.thread3445 ], [ %.02367, %3818 ], [ %.02367, %.thread3470 ], [ %.02367, %554 ], [ %.02367, %602 ], [ %.02367, %793 ], [ %.02367, %796 ], [ %.02367, %942 ], [ %.02367, %1028 ], [ %.02367, %1706 ], [ %.02367, %1693 ], [ %.02367, %1790 ], [ %.02367, %1792 ], [ %.02367, %2109 ], [ %.02367, %2561 ], [ %.02367, %2565 ], [ %.02367, %2570 ], [ %.02367, %2559 ], [ %.02367, %2626 ], [ %.02367, %2633 ], [ %.02367, %2629 ], [ %.02367, %3024 ], [ %.02367, %3025 ], [ %.02367, %.thread3374 ], [ %.02367, %3184 ], [ %3300, %.loopexit3530 ], [ %.02367, %3429 ], [ %.02367, %3532 ], [ %.02367, %3613 ], [ %.02367, %3633 ], [ %.02367, %3637 ], [ %.02367, %3747 ], [ %.02367, %3786 ], [ %.02367, %1023 ], [ %.02367, %380 ], [ %.02367, %1049 ], [ %.02367, %1541 ], [ %.02367, %950 ], [ %.02367, %1038 ], [ %.02367, %2765 ], [ %.02367, %.lr.ph4060 ], [ %.02367, %443 ], [ %.02367, %464 ], [ %.02367, %1061 ], [ %.02367, %.lr.ph4046 ], [ %.02367, %.lr.ph4004 ]
  %.22366 = phi i32 [ %.12365, %154 ], [ %.12365, %3910 ], [ %.12365, %3887 ], [ %169, %165 ], [ %.12365, %163 ], [ %.12365, %.thread3154 ], [ %.12365, %3673 ], [ %.12365, %3672 ], [ %.12365, %3660 ], [ %.12365, %3625 ], [ %.12365, %3624 ], [ %.12365, %3609 ], [ %.12365, %3435 ], [ %.12365, %3419 ], [ %.12365, %3418 ], [ %.12365, %3390 ], [ %.12365, %3359 ], [ %.12365, %3356 ], [ %.12365, %3365 ], [ %.12365, %3362 ], [ %.12365, %3335 ], [ %.12365, %3347 ], [ %.12365, %3350 ], [ %.12365, %3315 ], [ %.12365, %3138 ], [ %.12365, %3081 ], [ %.12365, %3076 ], [ %.12365, %3071 ], [ %.12365, %3067 ], [ %.12365, %3041 ], [ %.12365, %3012 ], [ %.12365, %2938 ], [ %.12365, %2893 ], [ %.12365, %2868 ], [ %.12365, %2778 ], [ %.12365, %2577 ], [ %.12365, %2575 ], [ %.12365, %2427 ], [ %.12365, %2349 ], [ %.12365, %2348 ], [ %.12365, %.thread3255 ], [ %.12365, %2139 ], [ %.12365, %2116 ], [ %.12365, %2040 ], [ %.12365, %1958 ], [ %.12365, %1914 ], [ %.12365, %1245 ], [ %.12365, %1238 ], [ %.12365, %1237 ], [ %.12365, %1214 ], [ %.12365, %1182 ], [ %.12365, %1169 ], [ %.12365, %1165 ], [ %.12365, %1152 ], [ %.12365, %1085 ], [ %.12365, %1093 ], [ %.12365, %1099 ], [ %.12365, %1039 ], [ %.12365, %908 ], [ %.12365, %895 ], [ %.12365, %887 ], [ %.12365, %883 ], [ %.12365, %855 ], [ %.12365, %713 ], [ %.12365, %710 ], [ %.12365, %709 ], [ %.12365, %479 ], [ %.12365, %470 ], [ %.12365, %406 ], [ %.12365, %398 ], [ %.12365, %379 ], [ %.12365, %371 ], [ %.12365, %358 ], [ %.12365, %323 ], [ %.12365, %318 ], [ %.12365, %313 ], [ %.12365, %309 ], [ %.12365, %234 ], [ %.12365, %220 ], [ %.12365, %208 ], [ %.12365, %196 ], [ %.12365, %188 ], [ %.12365, %850 ], [ %.12365, %818 ], [ %.12365, %1081 ], [ %.12365, %1146 ], [ %.12365, %1141 ], [ %.12365, %2688 ], [ %.12365, %2677 ], [ %.12365, %3389 ], [ %.12365, %3375 ], [ %.12365, %.thread3116 ], [ %.12365, %.thread3145 ], [ %.12365, %.thread3159 ], [ %.12365, %.thread3172 ], [ %.12365, %.thread3174 ], [ %.12365, %.thread3230 ], [ %.12365, %.thread3243 ], [ %.12365, %.thread3253 ], [ %.12365, %.thread3274 ], [ %.12365, %.thread3285 ], [ %.12365, %.thread3290 ], [ %.12365, %.thread3302 ], [ %.12365, %.thread3307 ], [ %.12365, %.thread3316 ], [ %.12365, %.thread3335 ], [ %.12365, %.thread3339 ], [ %.12365, %.thread3348 ], [ %.12365, %.thread3365 ], [ %.12365, %.thread3368 ], [ %.12365, %.thread3396 ], [ %.12365, %.thread3404 ], [ %.12365, %.thread3407 ], [ %.12365, %.thread3435 ], [ %.12365, %.thread3445 ], [ %.12365, %3818 ], [ %.12365, %.thread3470 ], [ %.12365, %554 ], [ %.12365, %602 ], [ %.12365, %793 ], [ %.12365, %796 ], [ %.12365, %942 ], [ %.12365, %1028 ], [ %.12365, %1706 ], [ %.12365, %1693 ], [ %.12365, %1790 ], [ %.12365, %1792 ], [ %.12365, %2109 ], [ %.12365, %2561 ], [ %.12365, %2565 ], [ %.12365, %2570 ], [ %.12365, %2559 ], [ %.12365, %2626 ], [ %.12365, %2633 ], [ %.12365, %2629 ], [ %.12365, %3024 ], [ %.12365, %3025 ], [ %.12365, %.thread3374 ], [ %.12365, %3184 ], [ %.12365, %.loopexit3530 ], [ %.12365, %3429 ], [ %.12365, %3532 ], [ %.12365, %3613 ], [ %.12365, %3633 ], [ %.12365, %3637 ], [ %.12365, %3747 ], [ %.12365, %3786 ], [ %.12365, %1023 ], [ %.12365, %380 ], [ %.12365, %1049 ], [ %.12365, %1541 ], [ %.12365, %950 ], [ %.12365, %1038 ], [ %.12365, %2765 ], [ %.12365, %.lr.ph4060 ], [ %.12365, %443 ], [ %.12365, %464 ], [ %.12365, %1061 ], [ %.12365, %.lr.ph4046 ], [ %.12365, %.lr.ph4004 ]
  %.72356 = phi i32 [ %.02349, %154 ], [ %.02349, %3910 ], [ %.02349, %3887 ], [ %.02349, %165 ], [ %.02349, %163 ], [ %.02349, %.thread3154 ], [ %.02349, %3673 ], [ %.02349, %3672 ], [ %.02349, %3660 ], [ %.02349, %3625 ], [ %.02349, %3624 ], [ %.02349, %3609 ], [ %.02349, %3435 ], [ %.02349, %3419 ], [ %.02349, %3418 ], [ %.02349, %3390 ], [ %.02349, %3359 ], [ %.02349, %3356 ], [ %.02349, %3365 ], [ %.02349, %3362 ], [ %.02349, %3335 ], [ %.02349, %3347 ], [ %.02349, %3350 ], [ %.02349, %3315 ], [ %.02349, %3138 ], [ %.02349, %3081 ], [ %.02349, %3076 ], [ %.02349, %3071 ], [ %.02349, %3067 ], [ %.02349, %3041 ], [ %.02349, %3012 ], [ %.02349, %2938 ], [ %.02349, %2893 ], [ %.02349, %2868 ], [ %.02349, %2778 ], [ %.02349, %2577 ], [ %.02349, %2575 ], [ %.02349, %2427 ], [ %.02349, %2349 ], [ %.02349, %2348 ], [ %.02349, %.thread3255 ], [ %.02349, %2139 ], [ %.02349, %2116 ], [ %.02349, %2040 ], [ %.02349, %1958 ], [ %.02349, %1914 ], [ %.02349, %1245 ], [ %.02349, %1238 ], [ %.02349, %1237 ], [ %.02349, %1214 ], [ %.02349, %1182 ], [ %.02349, %1169 ], [ %.02349, %1165 ], [ %.02349, %1152 ], [ %.02349, %1085 ], [ 0, %1093 ], [ %.02349, %1099 ], [ 0, %1039 ], [ %.02349, %908 ], [ %.02349, %895 ], [ %.02349, %887 ], [ %.02349, %883 ], [ %.02349, %855 ], [ %.02349, %713 ], [ %.02349, %710 ], [ %.02349, %709 ], [ %.02349, %479 ], [ %.02349, %470 ], [ %.02349, %406 ], [ %.02349, %398 ], [ %.02349, %379 ], [ %.02349, %371 ], [ %.02349, %358 ], [ %.02349, %323 ], [ %.02349, %318 ], [ %.02349, %313 ], [ %.02349, %309 ], [ %.02349, %234 ], [ %.02349, %220 ], [ %.02349, %208 ], [ %.02349, %196 ], [ %.02349, %188 ], [ %.02349, %850 ], [ %.02349, %818 ], [ %spec.select, %1081 ], [ %.02349, %1146 ], [ %.02349, %1141 ], [ %.02349, %2688 ], [ %.02349, %2677 ], [ %.02349, %3389 ], [ %.02349, %3375 ], [ %.02349, %.thread3116 ], [ %.02349, %.thread3145 ], [ %.02349, %.thread3159 ], [ %.02349, %.thread3172 ], [ %.02349, %.thread3174 ], [ %.02349, %.thread3230 ], [ %.02349, %.thread3243 ], [ %.02349, %.thread3253 ], [ %.02349, %.thread3274 ], [ %.02349, %.thread3285 ], [ %.02349, %.thread3290 ], [ %.02349, %.thread3302 ], [ %.02349, %.thread3307 ], [ %.02349, %.thread3316 ], [ %.02349, %.thread3335 ], [ %.02349, %.thread3339 ], [ %.02349, %.thread3348 ], [ %.02349, %.thread3365 ], [ %.02349, %.thread3368 ], [ %.02349, %.thread3396 ], [ %.02349, %.thread3404 ], [ %.02349, %.thread3407 ], [ %.02349, %.thread3435 ], [ %.02349, %.thread3445 ], [ %.02349, %3818 ], [ %.02349, %.thread3470 ], [ %.02349, %554 ], [ %.02349, %602 ], [ %.02349, %793 ], [ %.02349, %796 ], [ 1, %942 ], [ %.02457, %1028 ], [ %.02349, %1706 ], [ %.02349, %1693 ], [ %.02349, %1790 ], [ %.02349, %1792 ], [ %.02349, %2109 ], [ %.02349, %2561 ], [ %.02349, %2565 ], [ %.02349, %2570 ], [ %.02349, %2559 ], [ %.02349, %2626 ], [ %.02349, %2633 ], [ %.02349, %2629 ], [ %.02349, %3024 ], [ %.02349, %3025 ], [ %.02349, %.thread3374 ], [ %.02349, %3184 ], [ %.02349, %.loopexit3530 ], [ %.02349, %3429 ], [ %.02349, %3532 ], [ %.02349, %3613 ], [ %.02349, %3633 ], [ %.02349, %3637 ], [ %.02349, %3747 ], [ %.02349, %3786 ], [ %.02457, %1023 ], [ %.02349, %380 ], [ %.02349, %1049 ], [ %.02349, %1541 ], [ %.02349, %950 ], [ %.02349, %1038 ], [ %.02349, %2765 ], [ %.02349, %.lr.ph4060 ], [ %.02349, %443 ], [ %.02349, %464 ], [ 0, %1061 ], [ %.02349, %.lr.ph4046 ], [ %.02349, %.lr.ph4004 ]
  %.32344 = phi i8 [ %.02341, %154 ], [ %.02341, %3910 ], [ %.02341, %3887 ], [ %.02341, %165 ], [ %.02341, %163 ], [ %.02341, %.thread3154 ], [ %.02341, %3673 ], [ %.02341, %3672 ], [ %.02341, %3660 ], [ %.02341, %3625 ], [ %.02341, %3624 ], [ %.02341, %3609 ], [ %.02341, %3435 ], [ %.02341, %3419 ], [ %.02341, %3418 ], [ %.02341, %3390 ], [ %.02341, %3359 ], [ %.02341, %3356 ], [ %.02341, %3365 ], [ %.02341, %3362 ], [ %.02341, %3335 ], [ %.02341, %3347 ], [ %.02341, %3350 ], [ %.02341, %3315 ], [ %.02341, %3138 ], [ %.02341, %3081 ], [ %.02341, %3076 ], [ %.02341, %3071 ], [ %.02341, %3067 ], [ %.02341, %3041 ], [ %.02341, %3012 ], [ %.02341, %2938 ], [ %.02341, %2893 ], [ %.02341, %2868 ], [ %.02341, %2778 ], [ %.02341, %2577 ], [ %.02341, %2575 ], [ %.02341, %2427 ], [ %.02341, %2349 ], [ %.02341, %2348 ], [ %.02341, %.thread3255 ], [ %.02341, %2139 ], [ %.02341, %2116 ], [ %.02341, %2040 ], [ %.02341, %1958 ], [ %.02341, %1914 ], [ %.02341, %1245 ], [ %.02341, %1238 ], [ %.02341, %1237 ], [ %.02341, %1214 ], [ %.02341, %1182 ], [ %.02341, %1169 ], [ %.02341, %1165 ], [ %.02341, %1152 ], [ %.02341, %1085 ], [ %.02341, %1093 ], [ %.02341, %1099 ], [ %.02341, %1039 ], [ %.02341, %908 ], [ %.02341, %895 ], [ %.02341, %887 ], [ %.02341, %883 ], [ %.02341, %855 ], [ %.02341, %713 ], [ %.02341, %710 ], [ %.02341, %709 ], [ %.02341, %479 ], [ %.02341, %470 ], [ %.02341, %406 ], [ %.02341, %398 ], [ %.02341, %379 ], [ %.02341, %371 ], [ %.02341, %358 ], [ %.02341, %323 ], [ %.02341, %318 ], [ %.02341, %313 ], [ %.02341, %309 ], [ %.02341, %234 ], [ %.02341, %220 ], [ %.02341, %208 ], [ %.02341, %196 ], [ %.02341, %188 ], [ %.02341, %850 ], [ %.02341, %818 ], [ %.02341, %1081 ], [ %.02341, %1146 ], [ %.02341, %1141 ], [ %.02341, %2688 ], [ %.02341, %2677 ], [ %.02341, %3389 ], [ %.02341, %3375 ], [ %.02341, %.thread3116 ], [ %.02341, %.thread3145 ], [ %.02341, %.thread3159 ], [ %.02341, %.thread3172 ], [ %.02341, %.thread3174 ], [ %.02341, %.thread3230 ], [ %.02341, %.thread3243 ], [ %.02341, %.thread3253 ], [ %.02341, %.thread3274 ], [ %.02341, %.thread3285 ], [ %.02341, %.thread3290 ], [ %.02341, %.thread3302 ], [ %.02341, %.thread3307 ], [ %.02341, %.thread3316 ], [ %.02341, %.thread3335 ], [ %.22343.ph, %.thread3339 ], [ %.02341, %.thread3348 ], [ %.02341, %.thread3365 ], [ %.02341, %.thread3368 ], [ %.02341, %.thread3396 ], [ %.02341, %.thread3404 ], [ %.02341, %.thread3407 ], [ %.02341, %.thread3435 ], [ %.02341, %.thread3445 ], [ %.02341, %3818 ], [ %.02341, %.thread3470 ], [ %.02341, %554 ], [ %.02341, %602 ], [ %.02341, %793 ], [ %.02341, %796 ], [ %.02341, %942 ], [ %.02341, %1028 ], [ %.02341, %1706 ], [ %.02341, %1693 ], [ %.02341, %1790 ], [ %.02341, %1792 ], [ %.02341, %2109 ], [ %.02341, %2561 ], [ %.02341, %2565 ], [ %.02341, %2570 ], [ %.02341, %2559 ], [ %.02341, %2626 ], [ %.02341, %2633 ], [ %.02341, %2629 ], [ %.02341, %3024 ], [ %.02341, %3025 ], [ %.02341, %.thread3374 ], [ %.02341, %3184 ], [ %.02341, %.loopexit3530 ], [ %.02341, %3429 ], [ %.02341, %3532 ], [ %.02341, %3613 ], [ %.02341, %3633 ], [ %.02341, %3637 ], [ %.02341, %3747 ], [ %.02341, %3786 ], [ %.02341, %1023 ], [ %.02341, %380 ], [ %.02341, %1049 ], [ %.02341, %1541 ], [ %.02341, %950 ], [ %.02341, %1038 ], [ %.02341, %2765 ], [ %.02341, %.lr.ph4060 ], [ %.02341, %443 ], [ %.02341, %464 ], [ %.02341, %1061 ], [ %.02341, %.lr.ph4046 ], [ %.02341, %.lr.ph4004 ]
  %.86 = phi i32 [ %.02330, %154 ], [ %.02330, %3910 ], [ %.02330, %3887 ], [ %.22332, %165 ], [ %.22332, %163 ], [ %.32333, %.thread3154 ], [ 0, %3673 ], [ 0, %3672 ], [ 0, %3660 ], [ %.02330, %3625 ], [ %.02330, %3624 ], [ 0, %3609 ], [ %.02330, %3435 ], [ %.02330, %3419 ], [ %.02330, %3418 ], [ %.02330, %3390 ], [ %.02330, %3359 ], [ %.02330, %3356 ], [ %.02330, %3365 ], [ %.02330, %3362 ], [ %.02330, %3335 ], [ %.02330, %3347 ], [ %.02330, %3350 ], [ %.02330, %3315 ], [ %.02330, %3138 ], [ %.02330, %3081 ], [ %.02330, %3076 ], [ %.02330, %3071 ], [ 0, %3067 ], [ 0, %3041 ], [ 0, %3012 ], [ %2955, %2938 ], [ 0, %2893 ], [ 0, %2868 ], [ %.02330, %2778 ], [ %2590, %2577 ], [ %.02330, %2575 ], [ %.45, %2427 ], [ %.02330, %2349 ], [ 0, %2348 ], [ 0, %.thread3255 ], [ %.02330, %2139 ], [ %.02330, %2116 ], [ 0, %2040 ], [ 0, %1958 ], [ %.02330, %1914 ], [ %.02330, %1245 ], [ %.02330, %1238 ], [ %.02330, %1237 ], [ %.02330, %1214 ], [ %.02330, %1182 ], [ %.02330, %1169 ], [ %.02330, %1165 ], [ %.02330, %1152 ], [ %.02330, %1085 ], [ %.02330, %1093 ], [ %.02330, %1099 ], [ %.02330, %1039 ], [ 0, %908 ], [ %.02330, %895 ], [ %.02330, %887 ], [ %.02330, %883 ], [ %.02330, %855 ], [ %.02330, %713 ], [ %.02330, %710 ], [ %.02330, %709 ], [ %.02330, %479 ], [ %.02330, %470 ], [ %.02330, %406 ], [ %.02330, %398 ], [ %.72337, %379 ], [ %.72337, %371 ], [ %.72337, %358 ], [ %.02330, %323 ], [ %.02330, %318 ], [ %.02330, %313 ], [ %.02330, %309 ], [ %.02330, %234 ], [ %.02330, %220 ], [ %.02330, %208 ], [ %.02330, %196 ], [ %.02330, %188 ], [ %.02330, %850 ], [ %.02330, %818 ], [ %.02330, %1081 ], [ %.02330, %1146 ], [ %.02330, %1141 ], [ %.02330, %2688 ], [ %.02330, %2677 ], [ %.02330, %3389 ], [ %.02330, %3375 ], [ %.02330, %.thread3116 ], [ 0, %.thread3145 ], [ 0, %.thread3159 ], [ %.02330, %.thread3172 ], [ 0, %.thread3174 ], [ 0, %.thread3230 ], [ 0, %.thread3243 ], [ %.02330, %.thread3253 ], [ 0, %.thread3274 ], [ 0, %.thread3285 ], [ 0, %.thread3290 ], [ %.49.ph, %.thread3302 ], [ %.51.ph, %.thread3307 ], [ 0, %.thread3316 ], [ 0, %.thread3335 ], [ 0, %.thread3339 ], [ 0, %.thread3348 ], [ 0, %.thread3365 ], [ %.02330, %.thread3368 ], [ %.67, %.thread3396 ], [ 0, %.thread3404 ], [ 0, %.thread3407 ], [ 0, %.thread3435 ], [ %.80.ph, %.thread3445 ], [ 0, %3818 ], [ %.85.ph, %.thread3470 ], [ %.02330, %554 ], [ %.02330, %602 ], [ %.102340, %793 ], [ %.102340, %796 ], [ %.02330, %942 ], [ %.02330, %1028 ], [ 0, %1706 ], [ 0, %1693 ], [ 0, %1790 ], [ 0, %1792 ], [ 0, %2109 ], [ 0, %2561 ], [ 0, %2565 ], [ 0, %2570 ], [ 0, %2559 ], [ 0, %2626 ], [ 0, %2633 ], [ 0, %2629 ], [ %.02330, %3024 ], [ 0, %3025 ], [ %.02330, %.thread3374 ], [ %.02330, %3184 ], [ %.02330, %.loopexit3530 ], [ %.02330, %3429 ], [ 0, %3532 ], [ %3620, %3613 ], [ %.02330, %3633 ], [ 0, %3637 ], [ 0, %3747 ], [ %.02330, %3786 ], [ %.02330, %1023 ], [ %.02330, %380 ], [ %.02330, %1049 ], [ %.02330, %1541 ], [ %.02330, %950 ], [ %.02330, %1038 ], [ 0, %2765 ], [ %.02330, %.lr.ph4060 ], [ %.02330, %443 ], [ %.02330, %464 ], [ %.02330, %1061 ], [ %.02330, %.lr.ph4046 ], [ %.02330, %.lr.ph4004 ]
  %.7 = phi ptr [ %.02322, %154 ], [ %.02322, %3910 ], [ %.02322, %3887 ], [ %.12323, %165 ], [ %.12323, %163 ], [ %187, %.thread3154 ], [ %.02322, %3673 ], [ %.02322, %3672 ], [ %.02322, %3660 ], [ %.02322, %3625 ], [ %.02322, %3624 ], [ %.02322, %3609 ], [ %.02322, %3435 ], [ %.02322, %3419 ], [ %.02322, %3418 ], [ %.02322, %3390 ], [ %.02322, %3359 ], [ %.02322, %3356 ], [ %.02322, %3365 ], [ %.02322, %3362 ], [ %.02322, %3335 ], [ %.02322, %3347 ], [ %.02322, %3350 ], [ %.02322, %3315 ], [ %.02322, %3138 ], [ %.02322, %3081 ], [ %.02322, %3076 ], [ %.02322, %3071 ], [ %.02322, %3067 ], [ %.02322, %3041 ], [ %.02322, %3012 ], [ %.02322, %2938 ], [ %.02322, %2893 ], [ %.02322, %2868 ], [ %.02322, %2778 ], [ %.02322, %2577 ], [ %.02322, %2575 ], [ %.02322, %2427 ], [ %.02322, %2349 ], [ %.02322, %2348 ], [ %spec.select3062, %.thread3255 ], [ %.02322, %2139 ], [ %.02322, %2116 ], [ %.02322, %2040 ], [ %.02322, %1958 ], [ %.02322, %1914 ], [ %.02322, %1245 ], [ %.02322, %1238 ], [ %.02322, %1237 ], [ %.02322, %1214 ], [ %.02322, %1182 ], [ %.02322, %1169 ], [ %.02322, %1165 ], [ %.02322, %1152 ], [ %1090, %1085 ], [ %1098, %1093 ], [ %1104, %1099 ], [ %.02322, %1039 ], [ %.02322, %908 ], [ %.02322, %895 ], [ %.02322, %887 ], [ %.02322, %883 ], [ %.02322, %855 ], [ %.02322, %713 ], [ %.02322, %710 ], [ %.02322, %709 ], [ %.02322, %479 ], [ %.02322, %470 ], [ %.02322, %406 ], [ %.02322, %398 ], [ %.02322, %379 ], [ %.02322, %371 ], [ %.02322, %358 ], [ %.02322, %323 ], [ %.02322, %318 ], [ %.02322, %313 ], [ %312, %309 ], [ %.02322, %234 ], [ %233, %220 ], [ %218, %208 ], [ %.02322, %196 ], [ %194, %188 ], [ %.02322, %850 ], [ %.02322, %818 ], [ %.02322, %1081 ], [ %.02322, %1146 ], [ %.02322, %1141 ], [ %.02322, %2688 ], [ %.02322, %2677 ], [ %.02322, %3389 ], [ %.02322, %3375 ], [ %.02322, %.thread3116 ], [ %.02322, %.thread3145 ], [ %.02322, %.thread3159 ], [ %.02322, %.thread3172 ], [ %.02322, %.thread3174 ], [ %.02322, %.thread3230 ], [ %.02322, %.thread3243 ], [ %.02322, %.thread3253 ], [ %.02322, %.thread3274 ], [ %.02322, %.thread3285 ], [ %.02322, %.thread3290 ], [ %.02322, %.thread3302 ], [ %.02322, %.thread3307 ], [ %.02322, %.thread3316 ], [ %.02322, %.thread3335 ], [ %.02322, %.thread3339 ], [ %.02322, %.thread3348 ], [ %.02322, %.thread3365 ], [ %.02322, %.thread3368 ], [ %.02322, %.thread3396 ], [ %.02322, %.thread3404 ], [ %.02322, %.thread3407 ], [ %.02322, %.thread3435 ], [ %.02322, %.thread3445 ], [ %.02322, %3818 ], [ %.02322, %.thread3470 ], [ %.02322, %554 ], [ %.02322, %602 ], [ %.02322, %793 ], [ %.02322, %796 ], [ %.02322, %942 ], [ %.02322, %1028 ], [ %.02322, %1706 ], [ %.02322, %1693 ], [ %.02322, %1790 ], [ %.02322, %1792 ], [ %.02322, %2109 ], [ %.02322, %2561 ], [ %.02322, %2565 ], [ %.02322, %2570 ], [ %.02322, %2559 ], [ %.02322, %2626 ], [ %.02322, %2633 ], [ %.02322, %2629 ], [ %.02322, %3024 ], [ %.02322, %3025 ], [ %.02322, %.thread3374 ], [ %.02322, %3184 ], [ %3314, %.loopexit3530 ], [ %.02322, %3429 ], [ %.02322, %3532 ], [ %.02322, %3613 ], [ %.02322, %3633 ], [ %.02322, %3637 ], [ %.02322, %3747 ], [ %.02322, %3786 ], [ %.02322, %1023 ], [ %.02322, %380 ], [ %.02322, %1049 ], [ %.02322, %1541 ], [ %.02322, %950 ], [ %.02322, %1038 ], [ %.02322, %2765 ], [ %.02322, %.lr.ph4060 ], [ %.02322, %443 ], [ %.02322, %464 ], [ %.02322, %1061 ], [ %.02322, %.lr.ph4046 ], [ %.02322, %.lr.ph4004 ]
  %.3 = phi ptr [ %.02321, %154 ], [ %.02321, %3910 ], [ %.02321, %3887 ], [ %.02321, %165 ], [ %.02321, %163 ], [ %.02321, %.thread3154 ], [ %.02321, %3673 ], [ %.02321, %3672 ], [ %.02321, %3660 ], [ %.02321, %3625 ], [ %.02321, %3624 ], [ %.02321, %3609 ], [ %.02321, %3435 ], [ %.02321, %3419 ], [ %.02321, %3418 ], [ %.02321, %3390 ], [ %.02321, %3359 ], [ %.02321, %3356 ], [ %.02321, %3365 ], [ %.02321, %3362 ], [ %.02321, %3335 ], [ %.02321, %3347 ], [ %.02321, %3350 ], [ %.02321, %3315 ], [ %.02321, %3138 ], [ %.02321, %3081 ], [ %.02321, %3076 ], [ %.02321, %3071 ], [ %.02321, %3067 ], [ %.02321, %3041 ], [ %.02321, %3012 ], [ %.02321, %2938 ], [ %.02321, %2893 ], [ %.02321, %2868 ], [ %.02321, %2778 ], [ %.02321, %2577 ], [ %.02321, %2575 ], [ %.02321, %2427 ], [ %.02321, %2349 ], [ %.02321, %2348 ], [ %.02321, %.thread3255 ], [ %.02321, %2139 ], [ %.02321, %2116 ], [ %.02321, %2040 ], [ %.02321, %1958 ], [ %.02321, %1914 ], [ %.02321, %1245 ], [ %.02321, %1238 ], [ %.02321, %1237 ], [ %.02321, %1214 ], [ %.02321, %1182 ], [ %.02321, %1169 ], [ %.02321, %1165 ], [ %.02321, %1152 ], [ %.02321, %1085 ], [ %.02321, %1093 ], [ %.02321, %1099 ], [ %.02321, %1039 ], [ %.02321, %908 ], [ %.02321, %895 ], [ %.02321, %887 ], [ %.02321, %883 ], [ %.02321, %855 ], [ %.02321, %713 ], [ %.02321, %710 ], [ %.02321, %709 ], [ %.02321, %479 ], [ %.02321, %470 ], [ %.02321, %406 ], [ %.02321, %398 ], [ %.02321, %379 ], [ %.02321, %371 ], [ %.02321, %358 ], [ %.02321, %323 ], [ %.02321, %318 ], [ %.02321, %313 ], [ %.pre4669, %309 ], [ %.02321, %234 ], [ %.02321, %220 ], [ %.02321, %208 ], [ %.02321, %196 ], [ %.02321, %188 ], [ %.02321, %850 ], [ %.02321, %818 ], [ %.02321, %1081 ], [ %.02321, %1146 ], [ %.02321, %1141 ], [ %.02321, %2688 ], [ %.02321, %2677 ], [ %.02321, %3389 ], [ %.02321, %3375 ], [ %.02321, %.thread3116 ], [ %.02321, %.thread3145 ], [ %.02321, %.thread3159 ], [ %.02321, %.thread3172 ], [ %.02321, %.thread3174 ], [ %.02321, %.thread3230 ], [ %.02321, %.thread3243 ], [ %.02321, %.thread3253 ], [ %.02321, %.thread3274 ], [ %.02321, %.thread3285 ], [ %.02321, %.thread3290 ], [ %.02321, %.thread3302 ], [ %.02321, %.thread3307 ], [ %.02321, %.thread3316 ], [ %.02321, %.thread3335 ], [ %.02321, %.thread3339 ], [ %.02321, %.thread3348 ], [ %.02321, %.thread3365 ], [ %.02321, %.thread3368 ], [ %.02321, %.thread3396 ], [ %.02321, %.thread3404 ], [ %.02321, %.thread3407 ], [ %.02321, %.thread3435 ], [ %.02321, %.thread3445 ], [ %.02321, %3818 ], [ %.02321, %.thread3470 ], [ %.02321, %554 ], [ %.02321, %602 ], [ %.02321, %793 ], [ %.02321, %796 ], [ %.02321, %942 ], [ %.02321, %1028 ], [ %.02321, %1706 ], [ %.02321, %1693 ], [ %.02321, %1790 ], [ %.02321, %1792 ], [ %.02321, %2109 ], [ %.02321, %2561 ], [ %.02321, %2565 ], [ %.02321, %2570 ], [ %.02321, %2559 ], [ %.02321, %2626 ], [ %.02321, %2633 ], [ %.02321, %2629 ], [ %.02321, %3024 ], [ %.02321, %3025 ], [ %.02321, %.thread3374 ], [ %.02321, %3184 ], [ %3312, %.loopexit3530 ], [ %.02321, %3429 ], [ %.02321, %3532 ], [ %.02321, %3613 ], [ %.02321, %3633 ], [ %.02321, %3637 ], [ %.02321, %3747 ], [ %.02321, %3786 ], [ %.02321, %1023 ], [ %.02321, %380 ], [ %.02321, %1049 ], [ %.02321, %1541 ], [ %.02321, %950 ], [ %.02321, %1038 ], [ %.02321, %2765 ], [ %.02321, %.lr.ph4060 ], [ %.02321, %443 ], [ %.02321, %464 ], [ %.02321, %1061 ], [ %.02321, %.lr.ph4046 ], [ %.02321, %.lr.ph4004 ]
  %3971 = getelementptr inbounds i8, ptr %.7, i64 24
  br label %154

.thread3123:                                      ; preds = %3818, %3808, %.thread3407, %2624, %2109, %2054, %2067, %2096, %1790, %1792, %1687, %788, %3795, %._crit_edge3994, %3613, %3025, %2592, %2550, %3672, %3660, %3012, %1958, %1972, %879, %165, %3673, %3609, %3067, %3041, %2800, %2348, %2040, %908, %2938, %2577, %1755, %.lr.ph4036, %3886, %3650, %3647, %3585, %.critedge3051, %1720, %1686, %494, %491, %.thread3474, %.thread3448, %.thread3432, %3554, %.thread3402, %3522, %.critedge31.thread3385, %3066, %3040, %.loopexit3536, %2937, %.thread3331, %.thread3327, %2769, %2743, %2719, %2676, %2515, %.thread3281, %.thread3277, %.thread3260, %.thread3227, %1806, %1825, %1676, %.thread3163, %.loopexit3539, %.critedge31, %.thread3298
  %.12359 = phi i32 [ %.32361, %.critedge31 ], [ %.42362, %.loopexit3539 ], [ %155, %3886 ], [ %155, %.thread3298 ], [ %155, %3554 ], [ %155, %3522 ], [ %155, %3066 ], [ %155, %3040 ], [ %155, %.loopexit3536 ], [ %155, %2937 ], [ %155, %2769 ], [ %155, %2743 ], [ %155, %2719 ], [ %155, %2676 ], [ %155, %2515 ], [ %155, %1676 ], [ %155, %.thread3163 ], [ %155, %1825 ], [ %155, %1806 ], [ %155, %.thread3227 ], [ %155, %.thread3260 ], [ %155, %.thread3277 ], [ %155, %.thread3281 ], [ %155, %.thread3327 ], [ %155, %.thread3331 ], [ %155, %.critedge31.thread3385 ], [ %155, %.thread3402 ], [ %155, %.thread3432 ], [ %155, %.thread3448 ], [ %155, %.thread3474 ], [ %155, %491 ], [ %155, %494 ], [ %155, %1686 ], [ %155, %1720 ], [ %155, %.critedge3051 ], [ %155, %3585 ], [ %155, %3647 ], [ %155, %3650 ], [ %155, %.lr.ph4036 ], [ %155, %1755 ], [ %155, %2577 ], [ %155, %2938 ], [ %155, %908 ], [ %155, %2040 ], [ %155, %2348 ], [ %155, %2800 ], [ %155, %3041 ], [ %155, %3067 ], [ %155, %3609 ], [ %155, %3673 ], [ %155, %165 ], [ %155, %879 ], [ %155, %1972 ], [ %155, %1958 ], [ %155, %3012 ], [ %155, %3660 ], [ %155, %3672 ], [ %155, %2550 ], [ %155, %2592 ], [ %155, %3025 ], [ %155, %3613 ], [ %155, %._crit_edge3994 ], [ %155, %3795 ], [ %155, %788 ], [ %155, %1687 ], [ %155, %1792 ], [ %155, %1790 ], [ %155, %2096 ], [ %155, %2067 ], [ %155, %2054 ], [ %155, %2109 ], [ %155, %2624 ], [ %155, %.thread3407 ], [ %155, %3808 ], [ %155, %3818 ]
  %.42345 = phi i8 [ %.52346, %.critedge31 ], [ %.62347, %.loopexit3539 ], [ %.02341, %3886 ], [ %.02341, %.thread3298 ], [ %.02341, %3554 ], [ %.02341, %3522 ], [ %.02341, %3066 ], [ %.02341, %3040 ], [ %.02341, %.loopexit3536 ], [ %.02341, %2937 ], [ %.02341, %2769 ], [ %.02341, %2743 ], [ %.02341, %2719 ], [ %.02341, %2676 ], [ %.02341, %2515 ], [ %.02341, %1676 ], [ %.02341, %.thread3163 ], [ %.02341, %1825 ], [ %.02341, %1806 ], [ %.02341, %.thread3227 ], [ %.02341, %.thread3260 ], [ %.02341, %.thread3277 ], [ %.02341, %.thread3281 ], [ %.02341, %.thread3327 ], [ %.02341, %.thread3331 ], [ %.02341, %.critedge31.thread3385 ], [ %.02341, %.thread3402 ], [ %.02341, %.thread3432 ], [ %.02341, %.thread3448 ], [ %.02341, %.thread3474 ], [ %.02341, %491 ], [ %.02341, %494 ], [ %.02341, %1686 ], [ %.02341, %1720 ], [ %.02341, %.critedge3051 ], [ %.02341, %3585 ], [ %.02341, %3647 ], [ %.02341, %3650 ], [ %.02341, %.lr.ph4036 ], [ %.02341, %1755 ], [ %.02341, %2577 ], [ %.02341, %2938 ], [ %.02341, %908 ], [ %.02341, %2040 ], [ %.02341, %2348 ], [ %.02341, %2800 ], [ %.02341, %3041 ], [ %.02341, %3067 ], [ %.02341, %3609 ], [ %.02341, %3673 ], [ %.02341, %165 ], [ %.02341, %879 ], [ %.02341, %1972 ], [ %.02341, %1958 ], [ %.02341, %3012 ], [ %.02341, %3660 ], [ %.02341, %3672 ], [ %.02341, %2550 ], [ %.02341, %2592 ], [ %.02341, %3025 ], [ %.02341, %3613 ], [ %.02341, %._crit_edge3994 ], [ %.02341, %3795 ], [ %.02341, %788 ], [ %.02341, %1687 ], [ %.02341, %1792 ], [ %.02341, %1790 ], [ %.02341, %2096 ], [ %.02341, %2067 ], [ %.02341, %2054 ], [ %.02341, %2109 ], [ %.02341, %2624 ], [ %.02341, %.thread3407 ], [ %.02341, %3808 ], [ %.02341, %3818 ]
  %.87 = phi i32 [ 7, %.critedge31 ], [ %4001, %.loopexit3539 ], [ %3861, %3886 ], [ 18, %.thread3298 ], [ %3540, %3554 ], [ %.66, %3522 ], [ %spec.select3072.fr, %3066 ], [ %3037, %3040 ], [ %.60, %.loopexit3536 ], [ %.59, %2937 ], [ %.52, %2769 ], [ %2729, %2743 ], [ %2707, %2719 ], [ %.49, %2676 ], [ %2504, %2515 ], [ %1673, %1676 ], [ %.16.ph, %.thread3163 ], [ 1, %1825 ], [ 5, %1806 ], [ %.32.ph, %.thread3227 ], [ %.41.ph, %.thread3260 ], [ %2292, %.thread3277 ], [ %.46.ph, %.thread3281 ], [ %.55.ph, %.thread3327 ], [ %.57.ph, %.thread3331 ], [ 1, %.critedge31.thread3385 ], [ %3530, %.thread3402 ], [ %.78.ph, %.thread3432 ], [ %spec.select3088, %.thread3448 ], [ 6, %.thread3474 ], [ 9, %491 ], [ %495, %494 ], [ 5, %1686 ], [ 5, %1720 ], [ 1, %.critedge3051 ], [ 1, %3585 ], [ %3646, %3647 ], [ %3646, %3650 ], [ %1769, %.lr.ph4036 ], [ %1759, %1755 ], [ %3824, %3818 ], [ %3817, %3808 ], [ %.72, %.thread3407 ], [ %2625, %2624 ], [ %2115, %2109 ], [ %2065, %2054 ], [ %2069, %2067 ], [ %.36, %2096 ], [ %1791, %1790 ], [ %.21.fr, %1792 ], [ %1692, %1687 ], [ %.92339, %788 ], [ %3802, %3795 ], [ %3746, %._crit_edge3994 ], [ %3620, %3613 ], [ %3026, %3025 ], [ %2603, %2592 ], [ %2556, %2550 ], [ %.77, %3672 ], [ %3656, %3660 ], [ %2999, %3012 ], [ %1938, %1958 ], [ 516, %1972 ], [ 20, %879 ], [ 9, %165 ], [ %3680, %3673 ], [ %3612, %3609 ], [ %3070, %3067 ], [ %3046, %3041 ], [ %.53, %2800 ], [ %.43, %2348 ], [ %.33, %2040 ], [ %909, %908 ], [ %2955, %2938 ], [ %2590, %2577 ]
  %.8 = phi ptr [ %.9, %.critedge31 ], [ %.10, %.loopexit3539 ], [ %.02322, %3886 ], [ %.02322, %.thread3298 ], [ %.02322, %3554 ], [ %.02322, %3522 ], [ %.02322, %3066 ], [ %.02322, %3040 ], [ %.02322, %.loopexit3536 ], [ %.02322, %2937 ], [ %.02322, %2769 ], [ %.02322, %2743 ], [ %.02322, %2719 ], [ %.02322, %2676 ], [ %.02322, %2515 ], [ %.02322, %1676 ], [ %.02322, %.thread3163 ], [ %.02322, %1825 ], [ %.02322, %1806 ], [ %.02322, %.thread3227 ], [ %.02322, %.thread3260 ], [ %.02322, %.thread3277 ], [ %.02322, %.thread3281 ], [ %.02322, %.thread3327 ], [ %.02322, %.thread3331 ], [ %.02322, %.critedge31.thread3385 ], [ %.02322, %.thread3402 ], [ %.02322, %.thread3432 ], [ %.02322, %.thread3448 ], [ %.02322, %.thread3474 ], [ %.02322, %491 ], [ %.02322, %494 ], [ %.02322, %1686 ], [ %.02322, %1720 ], [ %.02322, %.critedge3051 ], [ %.02322, %3585 ], [ %.02322, %3647 ], [ %.02322, %3650 ], [ %.02322, %.lr.ph4036 ], [ %.02322, %1755 ], [ %.02322, %3818 ], [ %.02322, %3808 ], [ %.02322, %.thread3407 ], [ %.02322, %2624 ], [ %.02322, %2109 ], [ %.02322, %2054 ], [ %.02322, %2067 ], [ %.02322, %2096 ], [ %.02322, %1790 ], [ %.02322, %1792 ], [ %.02322, %1687 ], [ %.02322, %788 ], [ %.02322, %3795 ], [ %.02322, %._crit_edge3994 ], [ %.02322, %3613 ], [ %.02322, %3025 ], [ %.02322, %2592 ], [ %.02322, %2550 ], [ %.02322, %3672 ], [ %.02322, %3660 ], [ %.02322, %3012 ], [ %.02322, %1958 ], [ %.02322, %1972 ], [ %.02322, %879 ], [ %.12323, %165 ], [ %.02322, %3673 ], [ %.02322, %3609 ], [ %.02322, %3067 ], [ %.02322, %3041 ], [ %.02322, %2800 ], [ %.02322, %2348 ], [ %.02322, %2040 ], [ %.02322, %908 ], [ %.02322, %2938 ], [ %.02322, %2577 ]
  %.4 = phi ptr [ %.5, %.critedge31 ], [ %.6, %.loopexit3539 ], [ %.02321, %3886 ], [ %.02321, %.thread3298 ], [ %.02321, %3554 ], [ %.02321, %3522 ], [ %.02321, %3066 ], [ %.02321, %3040 ], [ %.02321, %.loopexit3536 ], [ %.02321, %2937 ], [ %.02321, %2769 ], [ %.02321, %2743 ], [ %.02321, %2719 ], [ %.02321, %2676 ], [ %.02321, %2515 ], [ %.02321, %1676 ], [ %.02321, %.thread3163 ], [ %.02321, %1825 ], [ %.02321, %1806 ], [ %.02321, %.thread3227 ], [ %.02321, %.thread3260 ], [ %.02321, %.thread3277 ], [ %.02321, %.thread3281 ], [ %.02321, %.thread3327 ], [ %.02321, %.thread3331 ], [ %.02321, %.critedge31.thread3385 ], [ %.02321, %.thread3402 ], [ %.02321, %.thread3432 ], [ %.02321, %.thread3448 ], [ %.02321, %.thread3474 ], [ %.02321, %491 ], [ %.02321, %494 ], [ %.02321, %1686 ], [ %.02321, %1720 ], [ %.02321, %.critedge3051 ], [ %.02321, %3585 ], [ %.02321, %3647 ], [ %.02321, %3650 ], [ %.02321, %.lr.ph4036 ], [ %.02321, %1755 ], [ %.02321, %2577 ], [ %.02321, %2938 ], [ %.02321, %908 ], [ %.02321, %2040 ], [ %.02321, %2348 ], [ %.02321, %2800 ], [ %.02321, %3041 ], [ %.02321, %3067 ], [ %.02321, %3609 ], [ %.02321, %3673 ], [ %.02321, %165 ], [ %.02321, %879 ], [ %.02321, %1972 ], [ %.02321, %1958 ], [ %.02321, %3012 ], [ %.02321, %3660 ], [ %.02321, %3672 ], [ %.02321, %2550 ], [ %.02321, %2592 ], [ %.02321, %3025 ], [ %.02321, %3613 ], [ %.02321, %._crit_edge3994 ], [ %.02321, %3795 ], [ %.02321, %788 ], [ %.02321, %1687 ], [ %.02321, %1792 ], [ %.02321, %1790 ], [ %.02321, %2096 ], [ %.02321, %2067 ], [ %.02321, %2054 ], [ %.02321, %2109 ], [ %.02321, %2624 ], [ %.02321, %.thread3407 ], [ %.02321, %3808 ], [ %.02321, %3818 ]
  %3972 = getelementptr inbounds i8, ptr %49, i64 85
  %3973 = load i8, ptr %3972, align 1, !tbaa !62
  %.not3033 = icmp eq i8 %3973, 0
  %spec.select3095 = select i1 %.not3033, i32 %.87, i32 7
  %3974 = getelementptr inbounds i8, ptr %0, i64 144
  %3975 = load ptr, ptr %3974, align 8, !tbaa !46
  %3976 = icmp eq ptr %3975, null
  %3977 = icmp ne i32 %spec.select3095, 3082
  %or.cond35 = select i1 %3976, i1 %3977, i1 false
  br i1 %or.cond35, label %3978, label %3980

3978:                                             ; preds = %.thread3123
  %3979 = call ptr @sqlite3ErrStr(i32 noundef %spec.select3095) #6
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef nonnull %0, ptr noundef nonnull @.str.6, ptr noundef %3979) #6
  br label %3980

3980:                                             ; preds = %3978, %.thread3123
  store i32 %spec.select3095, ptr %54, align 8, !tbaa !21
  call void @sqlite3SystemError(ptr noundef nonnull %49, i32 noundef %spec.select3095) #6
  %3981 = ptrtoint ptr %.8 to i64
  %3982 = ptrtoint ptr %.4 to i64
  %3983 = sub i64 %3981, %3982
  %3984 = sdiv exact i64 %3983, 24
  %3985 = trunc i64 %3984 to i32
  %3986 = getelementptr inbounds i8, ptr %0, i64 224
  %3987 = load ptr, ptr %3986, align 8, !tbaa !47
  %3988 = load ptr, ptr %3974, align 8, !tbaa !46
  call void (i32, ptr, ...) @sqlite3_log(i32 noundef %spec.select3095, ptr noundef nonnull @.str.24, i32 noundef %3985, ptr noundef %3987, ptr noundef %3988) #6
  %3989 = call i32 @sqlite3VdbeHalt(ptr noundef nonnull %0) #6
  %3990 = icmp eq i32 %spec.select3095, 3082
  br i1 %3990, label %3991, label %3992

3991:                                             ; preds = %3980
  call void @sqlite3OomFault(ptr noundef nonnull %49) #6
  br label %3992

3992:                                             ; preds = %3991, %3980
  %.not3034 = icmp eq i8 %.42345, 0
  br i1 %.not3034, label %.thread3110, label %3993

3993:                                             ; preds = %3992
  %3994 = zext i8 %.42345 to i32
  %3995 = add nsw i32 %3994, -1
  call void @sqlite3ResetOneSchema(ptr noundef nonnull %49, i32 noundef %3995) #6
  br label %.thread3110

.thread3110:                                      ; preds = %1728, %1807, %1822, %1814, %305, %306, %1908, %1733, %528, %3992, %3993
  %.22360 = phi i32 [ %.12359, %3993 ], [ %.12359, %3992 ], [ %155, %1908 ], [ %155, %528 ], [ %155, %1733 ], [ %155, %306 ], [ %155, %305 ], [ %155, %1814 ], [ %155, %1822 ], [ %155, %1807 ], [ %155, %1728 ]
  %.89 = phi i32 [ 1, %3993 ], [ 1, %3992 ], [ %1842, %1908 ], [ 100, %528 ], [ 5, %1733 ], [ %308, %306 ], [ 5, %305 ], [ 5, %1814 ], [ %.3053, %1822 ], [ %1808, %1807 ], [ %1729, %1728 ]
  %3996 = getelementptr inbounds i8, ptr %0, i64 220
  %3997 = load i32, ptr %3996, align 4, !tbaa !27
  %3998 = add i32 %3997, %.22360
  store i32 %3998, ptr %3996, align 4, !tbaa !27
  call void @sqlite3VdbeLeave(ptr noundef %0) #6
  br label %.loopexit3537

.thread3298:                                      ; preds = %2611, %3532, %796, %576, %414, %354, %3785, %1663, %.thread3166
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %0, ptr noundef nonnull @.str.25) #6
  br label %.thread3123

.critedge31:                                      ; preds = %585, %574, %568, %557, %562, %3438, %3211, %3175, %2633, %2127, %2102, %2047, %716, %3134, %2021, %335, %462, %441, %512, %._crit_edge4095, %3706, %3120, %.thread3362, %2307, %.thread3170, %1540, %1
  %.32361 = phi i32 [ 0, %1 ], [ %155, %3706 ], [ %155, %3120 ], [ %155, %2307 ], [ %155, %1540 ], [ %155, %.thread3170 ], [ %155, %.thread3362 ], [ %155, %._crit_edge4095 ], [ %155, %512 ], [ %155, %441 ], [ %155, %462 ], [ %155, %335 ], [ %155, %2021 ], [ %155, %3134 ], [ %155, %716 ], [ %155, %2047 ], [ %155, %2102 ], [ %155, %2127 ], [ %155, %2633 ], [ %155, %3175 ], [ %155, %3211 ], [ %155, %3438 ], [ %155, %562 ], [ %155, %557 ], [ %155, %568 ], [ %155, %574 ], [ %155, %585 ]
  %.52346 = phi i8 [ 0, %1 ], [ %.02341, %3706 ], [ %.02341, %3120 ], [ %.02341, %2307 ], [ %.02341, %1540 ], [ %.02341, %.thread3170 ], [ %.02341, %.thread3362 ], [ %.02341, %._crit_edge4095 ], [ %.02341, %512 ], [ %.02341, %441 ], [ %.02341, %462 ], [ %.02341, %335 ], [ %.02341, %2021 ], [ %.02341, %3134 ], [ %.02341, %716 ], [ %.02341, %2047 ], [ %.02341, %2102 ], [ %.02341, %2127 ], [ %.02341, %2633 ], [ %.02341, %3175 ], [ %.02341, %3211 ], [ %.02341, %3438 ], [ %.02341, %562 ], [ %.02341, %557 ], [ %.02341, %568 ], [ %.02341, %574 ], [ %.02341, %585 ]
  %.9 = phi ptr [ %48, %1 ], [ %.02322, %3706 ], [ %.02322, %3120 ], [ %.02322, %2307 ], [ %.02322, %1540 ], [ %.02322, %.thread3170 ], [ %.02322, %.thread3362 ], [ %.02322, %._crit_edge4095 ], [ %.02322, %512 ], [ %.02322, %441 ], [ %.02322, %462 ], [ %.02322, %335 ], [ %.02322, %2021 ], [ %.02322, %3134 ], [ %.02322, %716 ], [ %.02322, %2047 ], [ %.02322, %2102 ], [ %.02322, %2127 ], [ %.02322, %2633 ], [ %.02322, %3175 ], [ %.02322, %3211 ], [ %.02322, %3438 ], [ %.02322, %562 ], [ %.02322, %557 ], [ %.02322, %568 ], [ %.02322, %574 ], [ %.02322, %585 ]
  %.5 = phi ptr [ %48, %1 ], [ %.02321, %3706 ], [ %.02321, %3120 ], [ %.02321, %2307 ], [ %.02321, %1540 ], [ %.02321, %.thread3170 ], [ %.02321, %.thread3362 ], [ %.02321, %._crit_edge4095 ], [ %.02321, %512 ], [ %.02321, %441 ], [ %.02321, %462 ], [ %.02321, %335 ], [ %.02321, %2021 ], [ %.02321, %3134 ], [ %.02321, %716 ], [ %.02321, %2047 ], [ %.02321, %2102 ], [ %.02321, %2127 ], [ %.02321, %2633 ], [ %.02321, %3175 ], [ %.02321, %3211 ], [ %.02321, %3438 ], [ %.02321, %562 ], [ %.02321, %557 ], [ %.02321, %568 ], [ %.02321, %574 ], [ %.02321, %585 ]
  call void @sqlite3OomFault(ptr noundef %49) #6
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %0, ptr noundef nonnull @.str.26) #6
  br label %.thread3123

.loopexit3539:                                    ; preds = %.thread3458, %57
  %.42362 = phi i32 [ 0, %57 ], [ %155, %.thread3458 ]
  %.62347 = phi i8 [ 0, %57 ], [ %.02341, %.thread3458 ]
  %.10 = phi ptr [ %48, %57 ], [ %.12323, %.thread3458 ]
  %.6 = phi ptr [ %48, %57 ], [ %.02321, %.thread3458 ]
  %3999 = getelementptr inbounds i8, ptr %49, i64 85
  %4000 = load i8, ptr %3999, align 1, !tbaa !62
  %.not3032 = icmp eq i8 %4000, 0
  %4001 = select i1 %.not3032, i32 9, i32 7
  store i32 %4001, ptr %54, align 8, !tbaa !21
  %4002 = call ptr @sqlite3ErrStr(i32 noundef %4001) #6
  call void (ptr, ptr, ...) @sqlite3VdbeError(ptr noundef %0, ptr noundef nonnull @.str.6, ptr noundef %4002) #6
  br label %.thread3123

.loopexit3537:                                    ; preds = %2938, %2577, %.thread3110
  %.0 = phi i32 [ %.89, %.thread3110 ], [ undef, %2577 ], [ undef, %2938 ]
  ret i32 %.0
}

declare void @sqlite3VdbeEnter(ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeSetChanges(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeFrameRestore(ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeError(ptr noundef, ptr noundef, ...) local_unnamed_addr #2

declare ptr @sqlite3MPrintf(ptr noundef, ptr noundef, ...) local_unnamed_addr #2

declare void @sqlite3_log(i32 noundef, ptr noundef, ...) local_unnamed_addr #2

declare i32 @sqlite3VdbeHalt(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden ptr @out2Prerelease(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3Strlen30(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemSetStr(ptr noundef, ptr noundef, i32 noundef, i8 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeChangeEncoding(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3DbFree(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeMemSetNull(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemTooBig(ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeMemShallowCopy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3VdbeMemMove(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemMakeWriteable(ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeMemSetInt64(ptr noundef, i64 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeCheckFk(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeCloseStatement(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemNulTerminate(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemExpandBlob(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemStringify(ptr noundef, i8 noundef zeroext, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemGrow(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3

; Function Attrs: nounwind uwtable
declare hidden zeroext i16 @numericType(ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3AddInt64(ptr noundef, i64 noundef) local_unnamed_addr #2

declare i32 @sqlite3SubInt64(ptr noundef, i64 noundef) local_unnamed_addr #2

declare i32 @sqlite3MulInt64(ptr noundef, i64 noundef) local_unnamed_addr #2

declare double @sqlite3VdbeRealValue(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3IsNaN(double noundef) local_unnamed_addr #2

declare void @sqlite3VdbeIntegerAffinity(ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3DbMallocRawNN(ptr noundef, i64 noundef) local_unnamed_addr #2

declare ptr @sqlite3_value_text(ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeDeleteAuxData(ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i64 @sqlite3VdbeIntValue(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemIntegerify(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemRealify(ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeMemCast(ptr noundef, i8 noundef zeroext, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @sqlite3MemCompare(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeCursorMoveto(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreePayloadSize(ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3BtreePayloadFetch(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i8 @sqlite3GetVarint32(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3CorruptError(i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

declare i32 @sqlite3VdbeMemFromBtree(ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i8 @sqlite3VdbeOneByteSerialTypeLen(i8 noundef zeroext) local_unnamed_addr #2

declare i32 @sqlite3VdbeSerialTypeLen(i32 noundef) local_unnamed_addr #2

declare void @sqlite3VdbeMemRelease(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeSerialGet(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeSerialType(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VarintLen(i64 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemClearAndResize(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3PutVarint(ptr noundef, i64 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeSerialPut(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeCount(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VtabSavepoint(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3StrICmp(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeTripAllCursors(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeSavepoint(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3ExpirePreparedStatements(ptr noundef) local_unnamed_addr #2

declare void @sqlite3ResetAllSchemasOfConnection(ptr noundef) local_unnamed_addr #2

declare void @sqlite3RollbackAll(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3CloseSavepoints(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeBeginTrans(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeBeginStmt(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3BtreeGetMeta(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3DbStrDup(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3ResetOneSchema(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeUpdateMeta(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden ptr @allocateCursor(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext) local_unnamed_addr #1

declare i32 @sqlite3BtreeCursor(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3BtreeCursorHintFlags(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeOpen(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeCreateTable(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeSorterInit(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeFreeCursor(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeMovetoUnpacked(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeCursorHasHint(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeNext(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreePrevious(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeEof(ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3VdbeAllocUnpackedRecord(ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeRecordUnpack(ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeLast(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i64 @sqlite3BtreeIntegerKey(ptr noundef) local_unnamed_addr #2

declare void @sqlite3_randomness(i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeInsert(ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeDelete(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @sqlite3VdbeSorterCompare(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeSorterRowkey(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3VtabImportErrmsg(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeCursorRestore(ptr noundef) local_unnamed_addr #2

declare void @sqlite3BtreeClearCursor(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeCursorIsValidNN(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeFirst(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i64 @sqlite3BtreeRowCountEst(ptr noundef) local_unnamed_addr #2

declare signext i16 @sqlite3LogEst(i64 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeSorterRewind(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeSorterNext(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeSorterWrite(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeIdxRowid(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeIdxKeyCompare(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeDropTable(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3RootPageMoved(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeClearTable(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeSorterReset(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeClearTableOfCursor(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3_exec(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3InitCallback(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #2

declare i32 @sqlite3AnalysisLoad(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3UnlinkAndDeleteTable(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3UnlinkAndDeleteIndex(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3UnlinkAndDeleteTrigger(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3BtreeIntegrityCheck(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3_free(ptr noundef) #2

declare void @sqlite3VdbeMemSetRowSet(ptr noundef) local_unnamed_addr #2

declare void @sqlite3RowSetInsert(ptr noundef, i64 noundef) local_unnamed_addr #2

declare i32 @sqlite3RowSetNext(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3RowSetTest(ptr noundef, i32 noundef, i64 noundef) local_unnamed_addr #2

declare ptr @sqlite3DbMallocZero(ptr noundef, i64 noundef) local_unnamed_addr #2

declare void @sqlite3VdbeMemInit(ptr noundef, ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemFinalize(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3Checkpoint(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3BtreePager(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3PagerGetJournalMode(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3PagerOkToChangeJournalMode(ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3PagerFilename(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3PagerWalSupported(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3PagerCloseWal(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3PagerSetJournalMode(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeSetVersion(ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @sqlite3JournalModename(i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3RunVacuum(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeIncrVacuum(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeLockTable(ptr noundef, i32 noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @sqlite3VtabBegin(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeMemCopy(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VtabCallCreate(ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VtabCallDestroy(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeLastPage(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeMaxPageCount(ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @sqlite3VdbeExpandSql(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3ErrStr(i32 noundef) local_unnamed_addr #2

declare void @sqlite3SystemError(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3OomFault(ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeLeave(ptr noundef) local_unnamed_addr #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #5

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 104}
!6 = !{!"Vdbe", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !11, i64 60, !11, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !12, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !12, i64 176, !11, i64 184, !10, i64 188, !8, i64 190, !8, i64 191, !11, i64 192, !11, i64 192, !11, i64 192, !11, i64 192, !11, i64 192, !11, i64 192, !11, i64 192, !11, i64 193, !11, i64 193, !11, i64 196, !11, i64 200, !8, i64 204, !7, i64 224, !7, i64 232, !7, i64 240, !7, i64 248, !11, i64 256, !11, i64 260, !7, i64 264, !7, i64 272}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"short", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!"long long", !8, i64 0}
!13 = !{!6, !7, i64 0}
!14 = !{!15, !8, i64 82}
!15 = !{!"sqlite3", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !11, i64 40, !11, i64 44, !12, i64 48, !12, i64 56, !11, i64 64, !11, i64 68, !11, i64 72, !11, i64 76, !10, i64 80, !8, i64 82, !8, i64 83, !8, i64 84, !8, i64 85, !8, i64 86, !8, i64 87, !8, i64 88, !8, i64 89, !8, i64 90, !8, i64 91, !8, i64 92, !8, i64 93, !8, i64 94, !11, i64 96, !11, i64 100, !11, i64 104, !11, i64 108, !8, i64 112, !11, i64 160, !16, i64 164, !11, i64 172, !11, i64 176, !11, i64 180, !11, i64 184, !11, i64 188, !11, i64 192, !7, i64 200, !7, i64 208, !7, i64 216, !7, i64 224, !7, i64 232, !7, i64 240, !7, i64 248, !7, i64 256, !7, i64 264, !7, i64 272, !7, i64 280, !7, i64 288, !7, i64 296, !7, i64 304, !7, i64 312, !7, i64 320, !7, i64 328, !8, i64 336, !17, i64 344, !7, i64 400, !7, i64 408, !7, i64 416, !7, i64 424, !11, i64 432, !11, i64 436, !18, i64 440, !7, i64 464, !7, i64 472, !7, i64 480, !18, i64 488, !18, i64 512, !19, i64 536, !8, i64 560, !7, i64 624, !11, i64 632, !11, i64 636, !11, i64 640, !12, i64 648, !12, i64 656, !7, i64 664}
!16 = !{!"sqlite3InitInfo", !11, i64 0, !8, i64 4, !8, i64 5, !8, i64 6, !8, i64 7}
!17 = !{!"Lookaside", !11, i64 0, !10, i64 4, !8, i64 6, !11, i64 8, !11, i64 12, !8, i64 16, !7, i64 32, !7, i64 40, !7, i64 48}
!18 = !{!"Hash", !11, i64 0, !11, i64 4, !7, i64 8, !7, i64 16}
!19 = !{!"BusyHandler", !7, i64 0, !7, i64 8, !11, i64 16}
!20 = !{!6, !7, i64 112}
!21 = !{!6, !11, i64 56}
!22 = !{!6, !12, i64 72}
!23 = !{!6, !7, i64 136}
!24 = !{!15, !11, i64 552}
!25 = !{!8, !8, i64 0}
!26 = !{!15, !7, i64 416}
!27 = !{!11, !11, i64 0}
!28 = !{!15, !11, i64 432}
!29 = !{!6, !11, i64 52}
!30 = !{!31, !8, i64 0}
!31 = !{!"VdbeOp", !8, i64 0, !8, i64 1, !10, i64 2, !11, i64 4, !11, i64 8, !11, i64 12, !8, i64 16}
!32 = !{!31, !11, i64 8}
!33 = !{!15, !7, i64 424}
!34 = !{!31, !11, i64 4}
!35 = !{!36, !10, i64 8}
!36 = !{!"Mem", !8, i64 0, !10, i64 8, !8, i64 10, !8, i64 11, !11, i64 12, !7, i64 16, !7, i64 24, !11, i64 32, !11, i64 36, !7, i64 40, !7, i64 48}
!37 = !{!31, !11, i64 12}
!38 = !{!6, !7, i64 240}
!39 = !{!6, !8, i64 190}
!40 = !{!41, !7, i64 8}
!41 = !{!"VdbeFrame", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !12, i64 64, !7, i64 72, !11, i64 80, !11, i64 84, !11, i64 88, !11, i64 92, !11, i64 96, !11, i64 100, !11, i64 104, !11, i64 108}
!42 = !{!6, !11, i64 256}
!43 = !{!6, !11, i64 60}
!44 = !{!31, !10, i64 2}
!45 = !{!7, !7, i64 0}
!46 = !{!6, !7, i64 144}
!47 = !{!6, !7, i64 224}
!48 = !{!12, !12, i64 0}
!49 = !{!50, !50, i64 0}
!50 = !{!"double", !8, i64 0}
!51 = !{!36, !11, i64 32}
!52 = !{!31, !8, i64 1}
!53 = !{!36, !7, i64 16}
!54 = !{!36, !11, i64 12}
!55 = !{!36, !8, i64 10}
!56 = distinct !{!56, !57}
!57 = !{!"llvm.loop.mustprogress"}
!58 = !{!6, !7, i64 160}
!59 = distinct !{!59, !57}
!60 = !{!6, !11, i64 48}
!61 = distinct !{!61, !57}
!62 = !{!15, !8, i64 85}
!63 = !{!15, !8, i64 92}
!64 = !{!15, !7, i64 208}
!65 = !{!15, !7, i64 216}
!66 = !{!67, !7, i64 0}
!67 = !{!"sqlite3_context", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !11, i64 32, !11, i64 36, !8, i64 40, !8, i64 41, !8, i64 42, !8, i64 48}
!68 = !{!67, !7, i64 8}
!69 = !{!67, !11, i64 32}
!70 = !{!67, !7, i64 24}
!71 = !{!67, !8, i64 42}
!72 = distinct !{!72, !57, !73, !74}
!73 = !{!"llvm.loop.isvectorized", i32 1}
!74 = !{!"llvm.loop.unroll.runtime.disable"}
!75 = distinct !{!75, !57, !74, !73}
!76 = !{!67, !8, i64 41}
!77 = !{!78, !7, i64 24}
!78 = !{!"FuncDef", !8, i64 0, !10, i64 2, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !8, i64 48}
!79 = !{!67, !11, i64 36}
!80 = distinct !{!80, !57}
!81 = !{!82, !7, i64 24}
!82 = !{!"KeyInfo", !11, i64 0, !8, i64 4, !10, i64 6, !10, i64 8, !7, i64 16, !7, i64 24, !8, i64 32}
!83 = !{!41, !7, i64 48}
!84 = !{!6, !7, i64 152}
!85 = !{!86, !7, i64 88}
!86 = !{!"VdbeCursor", !8, i64 0, !8, i64 1, !8, i64 2, !8, i64 3, !8, i64 4, !11, i64 5, !11, i64 5, !11, i64 5, !7, i64 8, !12, i64 16, !7, i64 24, !11, i64 32, !11, i64 36, !7, i64 40, !8, i64 48, !7, i64 56, !11, i64 64, !11, i64 68, !10, i64 72, !10, i64 74, !12, i64 80, !7, i64 88, !7, i64 96, !11, i64 104, !11, i64 108, !8, i64 112}
!87 = !{!86, !11, i64 32}
!88 = !{!86, !10, i64 74}
!89 = !{!86, !8, i64 2}
!90 = !{!86, !8, i64 0}
!91 = !{!86, !11, i64 108}
!92 = !{!86, !11, i64 104}
!93 = !{!86, !7, i64 96}
!94 = !{!86, !11, i64 64}
!95 = distinct !{!95, !57}
!96 = !{!36, !7, i64 24}
!97 = !{!10, !10, i64 0}
!98 = distinct !{!98, !57}
!99 = !{!6, !8, i64 191}
!100 = distinct !{!100, !57}
!101 = !{!36, !11, i64 36}
!102 = distinct !{!102, !57}
!103 = !{!15, !11, i64 180}
!104 = !{!15, !11, i64 640}
!105 = !{!15, !11, i64 636}
!106 = !{!107, !7, i64 0}
!107 = !{!"Savepoint", !7, i64 0, !12, i64 8, !12, i64 16, !7, i64 24}
!108 = !{!15, !8, i64 83}
!109 = !{!15, !8, i64 91}
!110 = !{!15, !7, i64 624}
!111 = !{!107, !7, i64 24}
!112 = distinct !{!112, !57}
!113 = !{!15, !11, i64 40}
!114 = !{!15, !11, i64 44}
!115 = distinct !{!115, !57}
!116 = !{!15, !7, i64 32}
!117 = !{!118, !7, i64 8}
!118 = !{!"Db", !7, i64 0, !7, i64 8, !8, i64 16, !8, i64 17, !7, i64 24}
!119 = distinct !{!119, !57}
!120 = distinct !{!120, !57}
!121 = !{!15, !11, i64 176}
!122 = !{!6, !11, i64 64}
!123 = !{!118, !7, i64 24}
!124 = !{!125, !11, i64 4}
!125 = !{!"Schema", !11, i64 0, !11, i64 4, !18, i64 8, !18, i64 32, !18, i64 56, !18, i64 80, !7, i64 104, !8, i64 112, !8, i64 113, !10, i64 114, !11, i64 116}
!126 = !{!125, !11, i64 0}
!127 = !{!125, !8, i64 112}
!128 = !{!86, !11, i64 68}
!129 = !{!82, !10, i64 6}
!130 = !{!82, !10, i64 8}
!131 = !{!86, !7, i64 56}
!132 = !{!86, !8, i64 4}
!133 = !{!15, !7, i64 0}
!134 = !{!86, !7, i64 8}
!135 = !{!86, !12, i64 16}
!136 = !{!86, !12, i64 80}
!137 = !{!138, !7, i64 0}
!138 = !{!"UnpackedRecord", !7, i64 0, !7, i64 8, !10, i64 16, !8, i64 18, !8, i64 19, !8, i64 20, !8, i64 21, !8, i64 22}
!139 = !{!138, !10, i64 16}
!140 = !{!138, !8, i64 18}
!141 = !{!138, !7, i64 8}
!142 = !{!138, !8, i64 22}
!143 = !{!86, !8, i64 3}
!144 = distinct !{!144, !57}
!145 = !{!86, !11, i64 36}
!146 = distinct !{!146, !57}
!147 = !{!41, !7, i64 32}
!148 = distinct !{!148, !57}
!149 = !{!150, !12, i64 8}
!150 = !{!"BtreePayload", !7, i64 0, !12, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !11, i64 36, !11, i64 40}
!151 = !{!15, !7, i64 280}
!152 = !{!86, !8, i64 1}
!153 = !{!118, !7, i64 0}
!154 = !{!15, !12, i64 48}
!155 = !{!150, !7, i64 16}
!156 = !{!150, !11, i64 36}
!157 = !{!150, !11, i64 40}
!158 = !{!150, !7, i64 0}
!159 = !{!15, !7, i64 272}
!160 = !{!161, !7, i64 0}
!161 = !{!"Table", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !11, i64 56, !11, i64 60, !11, i64 64, !10, i64 68, !10, i64 70, !10, i64 72, !10, i64 74, !8, i64 76, !11, i64 80, !11, i64 84, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120}
!162 = !{!161, !11, i64 64}
!163 = !{!164, !7, i64 0}
!164 = !{!"sqlite3_vtab_cursor", !7, i64 0}
!165 = !{!166, !7, i64 0}
!166 = !{!"sqlite3_vtab", !7, i64 0, !11, i64 8, !7, i64 16}
!167 = !{!168, !7, i64 96}
!168 = !{!"sqlite3_module", !11, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176}
!169 = !{!150, !7, i64 24}
!170 = !{!150, !10, i64 32}
!171 = !{!86, !7, i64 24}
!172 = !{!86, !7, i64 40}
!173 = !{!15, !11, i64 188}
!174 = !{!15, !8, i64 94}
!175 = !{!176, !7, i64 0}
!176 = !{!"", !7, i64 0, !7, i64 8, !11, i64 16, !11, i64 20}
!177 = !{!176, !11, i64 16}
!178 = !{!176, !7, i64 8}
!179 = !{!15, !8, i64 169}
!180 = !{!176, !11, i64 20}
!181 = !{!182, !7, i64 32}
!182 = !{!"SubProgram", !7, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!183 = distinct !{!183, !57}
!184 = !{!41, !7, i64 56}
!185 = !{!182, !11, i64 12}
!186 = !{!182, !11, i64 16}
!187 = !{!182, !11, i64 8}
!188 = !{!41, !7, i64 0}
!189 = !{!41, !11, i64 96}
!190 = !{!41, !11, i64 100}
!191 = !{!41, !11, i64 84}
!192 = !{!6, !11, i64 40}
!193 = !{!41, !11, i64 92}
!194 = !{!41, !7, i64 40}
!195 = !{!6, !11, i64 44}
!196 = !{!41, !11, i64 80}
!197 = !{!41, !7, i64 16}
!198 = !{!6, !11, i64 184}
!199 = !{!41, !11, i64 88}
!200 = !{!36, !7, i64 40}
!201 = distinct !{!201, !202}
!202 = !{!"llvm.loop.unroll.disable"}
!203 = distinct !{!203, !57}
!204 = !{!41, !12, i64 64}
!205 = !{!41, !11, i64 104}
!206 = !{!15, !11, i64 104}
!207 = !{!41, !11, i64 108}
!208 = !{!6, !7, i64 272}
!209 = !{!41, !7, i64 72}
!210 = !{!182, !7, i64 0}
!211 = !{!15, !12, i64 656}
!212 = !{!15, !12, i64 648}
!213 = !{!6, !12, i64 80}
!214 = distinct !{!214, !57}
!215 = !{!67, !7, i64 16}
!216 = distinct !{!216, !57, !73, !74}
!217 = distinct !{!217, !57, !74, !73}
!218 = !{!67, !8, i64 40}
!219 = !{!220, !7, i64 16}
!220 = !{!"VTable", !7, i64 0, !7, i64 8, !7, i64 16, !11, i64 24, !8, i64 28, !11, i64 32, !7, i64 40}
!221 = !{!168, !7, i64 48}
!222 = !{!166, !11, i64 8}
!223 = !{!168, !7, i64 56}
!224 = !{!6, !7, i64 120}
!225 = distinct !{!225, !57, !73, !74}
!226 = distinct !{!226, !57, !74, !73}
!227 = !{!168, !7, i64 64}
!228 = !{!168, !7, i64 80}
!229 = !{!168, !7, i64 88}
!230 = !{!168, !7, i64 72}
!231 = !{!168, !7, i64 152}
!232 = !{!168, !7, i64 104}
!233 = !{!15, !8, i64 90}
!234 = distinct !{!234, !57, !73, !74}
!235 = distinct !{!235, !57, !74, !73}
!236 = !{!220, !8, i64 28}
!237 = !{!15, !11, i64 184}
!238 = !{!239, !11, i64 428}
!239 = !{!"Sqlite3Config", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !240, i64 40, !241, i64 104, !242, i64 176, !7, i64 280, !11, i64 288, !11, i64 292, !11, i64 296, !12, i64 304, !12, i64 312, !7, i64 320, !11, i64 328, !11, i64 332, !7, i64 336, !11, i64 344, !11, i64 348, !11, i64 352, !11, i64 356, !11, i64 360, !11, i64 364, !11, i64 368, !11, i64 372, !11, i64 376, !11, i64 380, !11, i64 384, !7, i64 392, !7, i64 400, !7, i64 408, !7, i64 416, !11, i64 424, !11, i64 428}
!240 = !{!"sqlite3_mem_methods", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56}
!241 = !{!"sqlite3_mutex_methods", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64}
!242 = !{!"sqlite3_pcache_methods2", !11, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96}
!243 = distinct !{!243, !57}


; Effective O3 passes: BDCEPass,ConstraintEliminationPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass