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

; 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.VdbeOpList = type { i8, i8, i8, i8 }
%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.EncName = type { ptr, i8 }
%struct.Parse = type { ptr, ptr, ptr, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, %struct.Token, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, i32, i32, i32, i32, i8, i8, i8, [10 x %struct.yColCache], [8 x i32], %struct.Token, %struct.Token, i16, i8, i8, i8, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, %struct.Token, ptr, ptr, ptr, ptr, ptr }
%struct.yColCache = type { i32, i16, i8, i32, i32, i32 }
%struct.Token = type { ptr, i32 }
%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.PragmaName = type { ptr, i8, i8, i8, i8, i32 }
%struct.VdbeOp = type { i8, i8, i16, i32, i32, i32, %union.p4union }
%union.p4union = type { 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.Column = type { ptr, ptr, ptr, i8, i8, i8, i8 }
%struct.Index = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i16, i16, i16, i8, i8 }
%struct.Expr = type { i8, i8, i32, %union.anon.0, ptr, ptr, %union.anon.1, i32, i32, i16, i16, i16, i8, ptr, ptr }
%union.anon.0 = type { ptr }
%union.anon.1 = type { ptr }
%struct.HashElem = type { ptr, ptr, ptr, ptr }
%struct.CollSeq = type { ptr, i8, ptr, ptr, ptr }
%struct.FKey = type { ptr, ptr, ptr, ptr, ptr, i32, i8, [2 x i8], [2 x ptr], [1 x %struct.sColMap] }
%struct.sColMap = type { i32, ptr }
%struct.ExprList = type { i32, ptr }
%struct.ExprList_item = type { ptr, ptr, ptr, i8, i8, %union.anon.2 }
%union.anon.2 = type { i32 }

@.str.3 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@sqlite3Pragma.getCacheSize = external hidden constant [9 x %struct.VdbeOpList], align 16
@sqlite3UpperToLower = external constant [0 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [10 x i8], align 1
@sqlite3Pragma.setMeta6 = external hidden constant [5 x %struct.VdbeOpList], align 16
@sqlite3Config = external global %struct.Sqlite3Config, align 8
@sqlite3_temp_directory = external global ptr, align 8
@.str.11 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [4 x i8], align 1
@__const.sqlite3Pragma.azOrigin = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.20 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [29 x i8], align 1
@sqlite3Pragma.endCode = external hidden constant [4 x %struct.VdbeOpList], align 16
@.str.34 = external hidden unnamed_addr constant [3 x i8], align 1
@sqlite3Pragma.encnames = external hidden constant [9 x %struct.EncName], align 16
@.str.43 = external hidden unnamed_addr constant [25 x i8], align 1
@sqlite3Pragma.setCookie = external hidden constant [2 x %struct.VdbeOpList], align 1
@sqlite3Pragma.readCookie = external hidden constant [3 x %struct.VdbeOpList], align 1
@.str.44 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [18 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @sqlite3GetBoolean(ptr noundef, i8 noundef zeroext) #0

; Function Attrs: nounwind uwtable
declare hidden zeroext i8 @getSafetyLevel(ptr noundef, i32 noundef, i8 noundef zeroext) #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @sqlite3JournalModename(i32 noundef) #0

; Function Attrs: nounwind uwtable
define dso_local void @sqlite3Pragma(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4) #0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca [4 x ptr], align 16
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca ptr, align 8
  %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 ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca i64, align 8
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i64, align 8
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i16, align 2
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca [3 x ptr], align 16
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca ptr, align 8
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca ptr, align 8
  %78 = alloca ptr, align 8
  %79 = alloca ptr, align 8
  %80 = alloca ptr, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca ptr, align 8
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca ptr, align 8
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca ptr, align 8
  %98 = alloca ptr, align 8
  %99 = alloca ptr, align 8
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca ptr, align 8
  %104 = alloca ptr, align 8
  %105 = alloca ptr, align 8
  %106 = alloca ptr, align 8
  %107 = alloca ptr, align 8
  %108 = alloca ptr, align 8
  %109 = alloca ptr, align 8
  %110 = alloca ptr, align 8
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca ptr, align 8
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca ptr, align 8
  %120 = alloca ptr, align 8
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %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 i32, align 4
  %137 = alloca ptr, align 8
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca ptr, align 8
  %143 = alloca ptr, align 8
  %144 = alloca ptr, align 8
  %145 = alloca ptr, align 8
  %146 = alloca i16, align 2
  %147 = alloca ptr, align 8
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i64, align 8
  %151 = alloca i64, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  store i32 %4, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #4
  store ptr null, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #4
  store ptr null, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #4
  store ptr null, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  %152 = load ptr, ptr %6, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.Parse, ptr %152, i32 0, i32 0
  %154 = load ptr, ptr %153, align 8, !tbaa !11
  store ptr %154, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #4
  %155 = load ptr, ptr %6, align 8, !tbaa !5
  %156 = call ptr @sqlite3GetVdbe(ptr noundef %155)
  store ptr %156, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #4
  %157 = load ptr, ptr %20, align 8, !tbaa !5
  %158 = icmp eq ptr %157, null
  br i1 %158, label %159, label %160

159:                                              ; preds = %5
  store i32 1, ptr %22, align 4
  br label %2947

160:                                              ; preds = %5
  %161 = load ptr, ptr %20, align 8, !tbaa !5
  call void @sqlite3VdbeRunOnlyOnce(ptr noundef %161)
  %162 = load ptr, ptr %6, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.Parse, ptr %162, i32 0, i32 18
  store i32 2, ptr %163, align 8, !tbaa !15
  %164 = load ptr, ptr %6, align 8, !tbaa !5
  %165 = load ptr, ptr %7, align 8, !tbaa !5
  %166 = load ptr, ptr %8, align 8, !tbaa !5
  %167 = call i32 @sqlite3TwoPartName(ptr noundef %164, ptr noundef %165, ptr noundef %166, ptr noundef %14)
  store i32 %167, ptr %16, align 4, !tbaa !9
  %168 = load i32, ptr %16, align 4, !tbaa !9
  %169 = icmp slt i32 %168, 0
  br i1 %169, label %170, label %171

170:                                              ; preds = %160
  store i32 1, ptr %22, align 4
  br label %2947

171:                                              ; preds = %160
  %172 = load ptr, ptr %18, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.sqlite3, ptr %172, i32 0, i32 4
  %174 = load ptr, ptr %173, align 8, !tbaa !16
  %175 = load i32, ptr %16, align 4, !tbaa !9
  %176 = sext i32 %175 to i64
  %177 = getelementptr inbounds %struct.Db, ptr %174, i64 %176
  store ptr %177, ptr %19, align 8, !tbaa !5
  %178 = load i32, ptr %16, align 4, !tbaa !9
  %179 = icmp eq i32 %178, 1
  br i1 %179, label %180, label %185

180:                                              ; preds = %171
  %181 = load ptr, ptr %6, align 8, !tbaa !5
  %182 = call i32 @sqlite3OpenTempDatabase(ptr noundef %181)
  %183 = icmp ne i32 %182, 0
  br i1 %183, label %184, label %185

184:                                              ; preds = %180
  store i32 1, ptr %22, align 4
  br label %2947

185:                                              ; preds = %180, %171
  %186 = load ptr, ptr %18, align 8, !tbaa !5
  %187 = load ptr, ptr %14, align 8, !tbaa !5
  %188 = call ptr @sqlite3NameFromToken(ptr noundef %186, ptr noundef %187)
  store ptr %188, ptr %11, align 8, !tbaa !5
  %189 = load ptr, ptr %11, align 8, !tbaa !5
  %190 = icmp ne ptr %189, null
  br i1 %190, label %192, label %191

191:                                              ; preds = %185
  store i32 1, ptr %22, align 4
  br label %2947

192:                                              ; preds = %185
  %193 = load i32, ptr %10, align 4, !tbaa !9
  %194 = icmp ne i32 %193, 0
  br i1 %194, label %195, label %199

195:                                              ; preds = %192
  %196 = load ptr, ptr %18, align 8, !tbaa !5
  %197 = load ptr, ptr %9, align 8, !tbaa !5
  %198 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %196, ptr noundef @.str.6, ptr noundef %197)
  store ptr %198, ptr %12, align 8, !tbaa !5
  br label %203

199:                                              ; preds = %192
  %200 = load ptr, ptr %18, align 8, !tbaa !5
  %201 = load ptr, ptr %9, align 8, !tbaa !5
  %202 = call ptr @sqlite3NameFromToken(ptr noundef %200, ptr noundef %201)
  store ptr %202, ptr %12, align 8, !tbaa !5
  br label %203

203:                                              ; preds = %199, %195
  %204 = load ptr, ptr %8, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.Token, ptr %204, i32 0, i32 1
  %206 = load i32, ptr %205, align 8, !tbaa !23
  %207 = icmp ugt i32 %206, 0
  br i1 %207, label %208, label %212

208:                                              ; preds = %203
  %209 = load ptr, ptr %19, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.Db, ptr %209, i32 0, i32 0
  %211 = load ptr, ptr %210, align 8, !tbaa !24
  br label %213

212:                                              ; preds = %203
  br label %213

213:                                              ; preds = %212, %208
  %214 = phi ptr [ %211, %208 ], [ null, %212 ]
  store ptr %214, ptr %13, align 8, !tbaa !5
  %215 = load ptr, ptr %6, align 8, !tbaa !5
  %216 = load ptr, ptr %11, align 8, !tbaa !5
  %217 = load ptr, ptr %12, align 8, !tbaa !5
  %218 = load ptr, ptr %13, align 8, !tbaa !5
  %219 = call i32 @sqlite3AuthCheck(ptr noundef %215, i32 noundef 19, ptr noundef %216, ptr noundef %217, ptr noundef %218)
  %220 = icmp ne i32 %219, 0
  br i1 %220, label %221, label %222

221:                                              ; preds = %213
  br label %2942

222:                                              ; preds = %213
  %223 = getelementptr inbounds [4 x ptr], ptr %15, i64 0, i64 0
  store ptr null, ptr %223, align 16, !tbaa !5
  %224 = load ptr, ptr %11, align 8, !tbaa !5
  %225 = getelementptr inbounds [4 x ptr], ptr %15, i64 0, i64 1
  store ptr %224, ptr %225, align 8, !tbaa !5
  %226 = load ptr, ptr %12, align 8, !tbaa !5
  %227 = getelementptr inbounds [4 x ptr], ptr %15, i64 0, i64 2
  store ptr %226, ptr %227, align 16, !tbaa !5
  %228 = getelementptr inbounds [4 x ptr], ptr %15, i64 0, i64 3
  store ptr null, ptr %228, align 8, !tbaa !5
  %229 = load ptr, ptr %18, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.sqlite3, ptr %229, i32 0, i32 71
  %231 = getelementptr inbounds %struct.BusyHandler, ptr %230, i32 0, i32 2
  store i32 0, ptr %231, align 8, !tbaa !26
  %232 = load ptr, ptr %18, align 8, !tbaa !5
  %233 = load ptr, ptr %13, align 8, !tbaa !5
  %234 = getelementptr inbounds [4 x ptr], ptr %15, i64 0, i64 0
  %235 = call i32 @sqlite3_file_control(ptr noundef %232, ptr noundef %233, i32 noundef 14, ptr noundef %234)
  store i32 %235, ptr %17, align 4, !tbaa !9
  %236 = load i32, ptr %17, align 4, !tbaa !9
  %237 = icmp eq i32 %236, 0
  br i1 %237, label %238, label %249

238:                                              ; preds = %222
  %239 = load ptr, ptr %20, align 8, !tbaa !5
  call void @sqlite3VdbeSetNumCols(ptr noundef %239, i32 noundef 1)
  %240 = load ptr, ptr %20, align 8, !tbaa !5
  %241 = getelementptr inbounds [4 x ptr], ptr %15, i64 0, i64 0
  %242 = load ptr, ptr %241, align 16, !tbaa !5
  %243 = call i32 @sqlite3VdbeSetColName(ptr noundef %240, i32 noundef 0, i32 noundef 0, ptr noundef %242, ptr noundef inttoptr (i64 -1 to ptr))
  %244 = load ptr, ptr %20, align 8, !tbaa !5
  %245 = getelementptr inbounds [4 x ptr], ptr %15, i64 0, i64 0
  %246 = load ptr, ptr %245, align 16, !tbaa !5
  call void @returnSingleText(ptr noundef %244, ptr noundef %246)
  %247 = getelementptr inbounds [4 x ptr], ptr %15, i64 0, i64 0
  %248 = load ptr, ptr %247, align 16, !tbaa !5
  call void @sqlite3_free(ptr noundef %248)
  br label %2942

249:                                              ; preds = %222
  %250 = load i32, ptr %17, align 4, !tbaa !9
  %251 = icmp ne i32 %250, 12
  br i1 %251, label %252, label %270

252:                                              ; preds = %249
  %253 = getelementptr inbounds [4 x ptr], ptr %15, i64 0, i64 0
  %254 = load ptr, ptr %253, align 16, !tbaa !5
  %255 = icmp ne ptr %254, null
  br i1 %255, label %256, label %262

256:                                              ; preds = %252
  %257 = load ptr, ptr %6, align 8, !tbaa !5
  %258 = getelementptr inbounds [4 x ptr], ptr %15, i64 0, i64 0
  %259 = load ptr, ptr %258, align 16, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3ErrorMsg(ptr noundef %257, ptr noundef @.str.7, ptr noundef %259)
  %260 = getelementptr inbounds [4 x ptr], ptr %15, i64 0, i64 0
  %261 = load ptr, ptr %260, align 16, !tbaa !5
  call void @sqlite3_free(ptr noundef %261)
  br label %262

262:                                              ; preds = %256, %252
  %263 = load ptr, ptr %6, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.Parse, ptr %263, i32 0, i32 16
  %265 = load i32, ptr %264, align 8, !tbaa !27
  %266 = add nsw i32 %265, 1
  store i32 %266, ptr %264, align 8, !tbaa !27
  %267 = load i32, ptr %17, align 4, !tbaa !9
  %268 = load ptr, ptr %6, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.Parse, ptr %268, i32 0, i32 3
  store i32 %267, ptr %269, align 8, !tbaa !28
  br label %2942

270:                                              ; preds = %249
  %271 = load ptr, ptr %11, align 8, !tbaa !5
  %272 = call ptr @pragmaLocate(ptr noundef %271)
  store ptr %272, ptr %21, align 8, !tbaa !5
  %273 = load ptr, ptr %21, align 8, !tbaa !5
  %274 = icmp eq ptr %273, null
  br i1 %274, label %275, label %276

275:                                              ; preds = %270
  br label %2942

276:                                              ; preds = %270
  %277 = load ptr, ptr %21, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.PragmaName, ptr %277, i32 0, i32 2
  %279 = load i8, ptr %278, align 1, !tbaa !29
  %280 = zext i8 %279 to i32
  %281 = and i32 %280, 1
  %282 = icmp ne i32 %281, 0
  br i1 %282, label %283, label %289

283:                                              ; preds = %276
  %284 = load ptr, ptr %6, align 8, !tbaa !5
  %285 = call i32 @sqlite3ReadSchema(ptr noundef %284)
  %286 = icmp ne i32 %285, 0
  br i1 %286, label %287, label %288

287:                                              ; preds = %283
  br label %2942

288:                                              ; preds = %283
  br label %289

289:                                              ; preds = %288, %276
  %290 = load ptr, ptr %21, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.PragmaName, ptr %290, i32 0, i32 2
  %292 = load i8, ptr %291, align 1, !tbaa !29
  %293 = zext i8 %292 to i32
  %294 = and i32 %293, 2
  %295 = icmp eq i32 %294, 0
  br i1 %295, label %296, label %309

296:                                              ; preds = %289
  %297 = load ptr, ptr %21, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.PragmaName, ptr %297, i32 0, i32 2
  %299 = load i8, ptr %298, align 1, !tbaa !29
  %300 = zext i8 %299 to i32
  %301 = and i32 %300, 4
  %302 = icmp eq i32 %301, 0
  br i1 %302, label %306, label %303

303:                                              ; preds = %296
  %304 = load ptr, ptr %12, align 8, !tbaa !5
  %305 = icmp eq ptr %304, null
  br i1 %305, label %306, label %309

306:                                              ; preds = %303, %296
  %307 = load ptr, ptr %20, align 8, !tbaa !5
  %308 = load ptr, ptr %21, align 8, !tbaa !5
  call void @setPragmaResultColumnNames(ptr noundef %307, ptr noundef %308)
  br label %309

309:                                              ; preds = %306, %303, %289
  %310 = load ptr, ptr %21, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.PragmaName, ptr %310, i32 0, i32 1
  %312 = load i8, ptr %311, align 8, !tbaa !31
  %313 = zext i8 %312 to i32
  switch i32 %313, label %2882 [
    i32 11, label %314
    i32 26, label %362
    i32 27, label %395
    i32 23, label %442
    i32 22, label %474
    i32 19, label %537
    i32 20, label %616
    i32 1, label %636
    i32 15, label %696
    i32 4, label %725
    i32 5, label %754
    i32 24, label %804
    i32 32, label %888
    i32 33, label %902
    i32 30, label %951
    i32 2, label %992
    i32 31, label %1049
    i32 16, label %1170
    i32 17, label %1276
    i32 10, label %1333
    i32 7, label %1379
    i32 14, label %1406
    i32 13, label %1490
    i32 6, label %1826
    i32 18, label %1835
    i32 12, label %2497
    i32 0, label %2595
    i32 8, label %2647
    i32 36, label %2663
    i32 35, label %2702
    i32 28, label %2726
    i32 25, label %2729
    i32 29, label %2896
    i32 34, label %2909
  ]

314:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #4
  %315 = load ptr, ptr %20, align 8, !tbaa !5
  %316 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3VdbeUsesBtree(ptr noundef %315, i32 noundef %316)
  %317 = load ptr, ptr %12, align 8, !tbaa !5
  %318 = icmp ne ptr %317, null
  br i1 %318, label %337, label %319

319:                                              ; preds = %314
  %320 = load ptr, ptr %6, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.Parse, ptr %320, i32 0, i32 18
  %322 = load i32, ptr %321, align 8, !tbaa !15
  %323 = add nsw i32 %322, 2
  store i32 %323, ptr %321, align 8, !tbaa !15
  %324 = load ptr, ptr %20, align 8, !tbaa !5
  %325 = call ptr @sqlite3VdbeAddOpList(ptr noundef %324, i32 noundef 9, ptr noundef @sqlite3Pragma.getCacheSize, i32 noundef 0)
  store ptr %325, ptr %23, align 8, !tbaa !5
  %326 = load i32, ptr %16, align 4, !tbaa !9
  %327 = load ptr, ptr %23, align 8, !tbaa !5
  %328 = getelementptr inbounds %struct.VdbeOp, ptr %327, i64 0
  %329 = getelementptr inbounds %struct.VdbeOp, ptr %328, i32 0, i32 3
  store i32 %326, ptr %329, align 4, !tbaa !32
  %330 = load i32, ptr %16, align 4, !tbaa !9
  %331 = load ptr, ptr %23, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.VdbeOp, ptr %331, i64 1
  %333 = getelementptr inbounds %struct.VdbeOp, ptr %332, i32 0, i32 3
  store i32 %330, ptr %333, align 4, !tbaa !32
  %334 = load ptr, ptr %23, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.VdbeOp, ptr %334, i64 6
  %336 = getelementptr inbounds %struct.VdbeOp, ptr %335, i32 0, i32 3
  store i32 -2000, ptr %336, align 4, !tbaa !32
  br label %361

337:                                              ; preds = %314
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  %338 = load ptr, ptr %12, align 8, !tbaa !5
  %339 = call i32 @sqlite3Atoi(ptr noundef %338)
  %340 = call i32 @sqlite3AbsInt32(i32 noundef %339)
  store i32 %340, ptr %24, align 4, !tbaa !9
  %341 = load ptr, ptr %6, align 8, !tbaa !5
  %342 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3BeginWriteOperation(ptr noundef %341, i32 noundef 0, i32 noundef %342)
  %343 = load ptr, ptr %20, align 8, !tbaa !5
  %344 = load i32, ptr %16, align 4, !tbaa !9
  %345 = load i32, ptr %24, align 4, !tbaa !9
  %346 = call i32 @sqlite3VdbeAddOp3(ptr noundef %343, i32 noundef 103, i32 noundef %344, i32 noundef 3, i32 noundef %345)
  %347 = load i32, ptr %24, align 4, !tbaa !9
  %348 = load ptr, ptr %19, align 8, !tbaa !5
  %349 = getelementptr inbounds %struct.Db, ptr %348, i32 0, i32 4
  %350 = load ptr, ptr %349, align 8, !tbaa !34
  %351 = getelementptr inbounds %struct.Schema, ptr %350, i32 0, i32 10
  store i32 %347, ptr %351, align 4, !tbaa !35
  %352 = load ptr, ptr %19, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.Db, ptr %352, i32 0, i32 1
  %354 = load ptr, ptr %353, align 8, !tbaa !37
  %355 = load ptr, ptr %19, align 8, !tbaa !5
  %356 = getelementptr inbounds %struct.Db, ptr %355, i32 0, i32 4
  %357 = load ptr, ptr %356, align 8, !tbaa !34
  %358 = getelementptr inbounds %struct.Schema, ptr %357, i32 0, i32 10
  %359 = load i32, ptr %358, align 4, !tbaa !35
  %360 = call i32 @sqlite3BtreeSetCacheSize(ptr noundef %354, i32 noundef %359)
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  br label %361

361:                                              ; preds = %337, %319
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #4
  br label %2930

362:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  %363 = load ptr, ptr %19, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.Db, ptr %363, i32 0, i32 1
  %365 = load ptr, ptr %364, align 8, !tbaa !37
  store ptr %365, ptr %25, align 8, !tbaa !5
  %366 = load ptr, ptr %12, align 8, !tbaa !5
  %367 = icmp ne ptr %366, null
  br i1 %367, label %380, label %368

368:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  %369 = load ptr, ptr %25, align 8, !tbaa !5
  %370 = icmp ne ptr %369, null
  br i1 %370, label %371, label %374

371:                                              ; preds = %368
  %372 = load ptr, ptr %25, align 8, !tbaa !5
  %373 = call i32 @sqlite3BtreeGetPageSize(ptr noundef %372)
  br label %375

374:                                              ; preds = %368
  br label %375

375:                                              ; preds = %374, %371
  %376 = phi i32 [ %373, %371 ], [ 0, %374 ]
  store i32 %376, ptr %26, align 4, !tbaa !9
  %377 = load ptr, ptr %20, align 8, !tbaa !5
  %378 = load i32, ptr %26, align 4, !tbaa !9
  %379 = sext i32 %378 to i64
  call void @returnSingleInt(ptr noundef %377, i64 noundef %379)
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #4
  br label %394

380:                                              ; preds = %362
  %381 = load ptr, ptr %12, align 8, !tbaa !5
  %382 = call i32 @sqlite3Atoi(ptr noundef %381)
  %383 = load ptr, ptr %18, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.sqlite3, ptr %383, i32 0, i32 27
  store i32 %382, ptr %384, align 8, !tbaa !38
  %385 = load ptr, ptr %25, align 8, !tbaa !5
  %386 = load ptr, ptr %18, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.sqlite3, ptr %386, i32 0, i32 27
  %388 = load i32, ptr %387, align 8, !tbaa !38
  %389 = call i32 @sqlite3BtreeSetPageSize(ptr noundef %385, i32 noundef %388, i32 noundef -1, i32 noundef 0)
  %390 = icmp eq i32 7, %389
  br i1 %390, label %391, label %393

391:                                              ; preds = %380
  %392 = load ptr, ptr %18, align 8, !tbaa !5
  call void @sqlite3OomFault(ptr noundef %392)
  br label %393

393:                                              ; preds = %391, %380
  br label %394

394:                                              ; preds = %393, %375
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  br label %2930

395:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  %396 = load ptr, ptr %19, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.Db, ptr %396, i32 0, i32 1
  %398 = load ptr, ptr %397, align 8, !tbaa !37
  store ptr %398, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  store i32 -1, ptr %28, align 4, !tbaa !9
  %399 = load ptr, ptr %12, align 8, !tbaa !5
  %400 = icmp ne ptr %399, null
  br i1 %400, label %401, label %405

401:                                              ; preds = %395
  %402 = load ptr, ptr %12, align 8, !tbaa !5
  %403 = call zeroext i8 @sqlite3GetBoolean(ptr noundef %402, i8 noundef zeroext 0)
  %404 = zext i8 %403 to i32
  store i32 %404, ptr %28, align 4, !tbaa !9
  br label %405

405:                                              ; preds = %401, %395
  %406 = load ptr, ptr %8, align 8, !tbaa !5
  %407 = getelementptr inbounds %struct.Token, ptr %406, i32 0, i32 1
  %408 = load i32, ptr %407, align 8, !tbaa !23
  %409 = icmp eq i32 %408, 0
  br i1 %409, label %410, label %435

410:                                              ; preds = %405
  %411 = load i32, ptr %28, align 4, !tbaa !9
  %412 = icmp sge i32 %411, 0
  br i1 %412, label %413, label %435

413:                                              ; preds = %410
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  store i32 0, ptr %29, align 4, !tbaa !9
  br label %414

414:                                              ; preds = %431, %413
  %415 = load i32, ptr %29, align 4, !tbaa !9
  %416 = load ptr, ptr %18, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.sqlite3, ptr %416, i32 0, i32 5
  %418 = load i32, ptr %417, align 8, !tbaa !39
  %419 = icmp slt i32 %415, %418
  br i1 %419, label %420, label %434

420:                                              ; preds = %414
  %421 = load ptr, ptr %18, align 8, !tbaa !5
  %422 = getelementptr inbounds %struct.sqlite3, ptr %421, i32 0, i32 4
  %423 = load ptr, ptr %422, align 8, !tbaa !16
  %424 = load i32, ptr %29, align 4, !tbaa !9
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds %struct.Db, ptr %423, i64 %425
  %427 = getelementptr inbounds %struct.Db, ptr %426, i32 0, i32 1
  %428 = load ptr, ptr %427, align 8, !tbaa !37
  %429 = load i32, ptr %28, align 4, !tbaa !9
  %430 = call i32 @sqlite3BtreeSecureDelete(ptr noundef %428, i32 noundef %429)
  br label %431

431:                                              ; preds = %420
  %432 = load i32, ptr %29, align 4, !tbaa !9
  %433 = add nsw i32 %432, 1
  store i32 %433, ptr %29, align 4, !tbaa !9
  br label %414, !llvm.loop !40

434:                                              ; preds = %414
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  br label %435

435:                                              ; preds = %434, %410, %405
  %436 = load ptr, ptr %27, align 8, !tbaa !5
  %437 = load i32, ptr %28, align 4, !tbaa !9
  %438 = call i32 @sqlite3BtreeSecureDelete(ptr noundef %436, i32 noundef %437)
  store i32 %438, ptr %28, align 4, !tbaa !9
  %439 = load ptr, ptr %20, align 8, !tbaa !5
  %440 = load i32, ptr %28, align 4, !tbaa !9
  %441 = sext i32 %440 to i64
  call void @returnSingleInt(ptr noundef %439, i64 noundef %441)
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  br label %2930

442:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  %443 = load ptr, ptr %6, align 8, !tbaa !5
  %444 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3CodeVerifySchema(ptr noundef %443, i32 noundef %444)
  %445 = load ptr, ptr %6, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.Parse, ptr %445, i32 0, i32 18
  %447 = load i32, ptr %446, align 8, !tbaa !15
  %448 = add nsw i32 %447, 1
  store i32 %448, ptr %446, align 8, !tbaa !15
  store i32 %448, ptr %30, align 4, !tbaa !9
  %449 = load ptr, ptr %11, align 8, !tbaa !5
  %450 = getelementptr inbounds i8, ptr %449, i64 0
  %451 = load i8, ptr %450, align 1, !tbaa !42
  %452 = zext i8 %451 to i64
  %453 = getelementptr inbounds [0 x i8], ptr @sqlite3UpperToLower, i64 0, i64 %452
  %454 = load i8, ptr %453, align 1, !tbaa !42
  %455 = zext i8 %454 to i32
  %456 = icmp eq i32 %455, 112
  br i1 %456, label %457, label %462

457:                                              ; preds = %442
  %458 = load ptr, ptr %20, align 8, !tbaa !5
  %459 = load i32, ptr %16, align 4, !tbaa !9
  %460 = load i32, ptr %30, align 4, !tbaa !9
  %461 = call i32 @sqlite3VdbeAddOp2(ptr noundef %458, i32 noundef 159, i32 noundef %459, i32 noundef %460)
  br label %470

462:                                              ; preds = %442
  %463 = load ptr, ptr %20, align 8, !tbaa !5
  %464 = load i32, ptr %16, align 4, !tbaa !9
  %465 = load i32, ptr %30, align 4, !tbaa !9
  %466 = load ptr, ptr %12, align 8, !tbaa !5
  %467 = call i32 @sqlite3Atoi(ptr noundef %466)
  %468 = call i32 @sqlite3AbsInt32(i32 noundef %467)
  %469 = call i32 @sqlite3VdbeAddOp3(ptr noundef %463, i32 noundef 160, i32 noundef %464, i32 noundef %465, i32 noundef %468)
  br label %470

470:                                              ; preds = %462, %457
  %471 = load ptr, ptr %20, align 8, !tbaa !5
  %472 = load i32, ptr %30, align 4, !tbaa !9
  %473 = call i32 @sqlite3VdbeAddOp2(ptr noundef %471, i32 noundef 88, i32 noundef %472, i32 noundef 1)
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  br label %2930

474:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #4
  store ptr @.str.8, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #4
  %475 = load ptr, ptr %12, align 8, !tbaa !5
  %476 = call i32 @getLockingMode(ptr noundef %475)
  store i32 %476, ptr %32, align 4, !tbaa !9
  %477 = load ptr, ptr %8, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.Token, ptr %477, i32 0, i32 1
  %479 = load i32, ptr %478, align 8, !tbaa !23
  %480 = icmp eq i32 %479, 0
  br i1 %480, label %481, label %489

481:                                              ; preds = %474
  %482 = load i32, ptr %32, align 4, !tbaa !9
  %483 = icmp eq i32 %482, -1
  br i1 %483, label %484, label %489

484:                                              ; preds = %481
  %485 = load ptr, ptr %18, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.sqlite3, ptr %485, i32 0, i32 19
  %487 = load i8, ptr %486, align 1, !tbaa !43
  %488 = zext i8 %487 to i32
  store i32 %488, ptr %32, align 4, !tbaa !9
  br label %530

489:                                              ; preds = %481, %474
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #4
  %490 = load ptr, ptr %8, align 8, !tbaa !5
  %491 = getelementptr inbounds %struct.Token, ptr %490, i32 0, i32 1
  %492 = load i32, ptr %491, align 8, !tbaa !23
  %493 = icmp eq i32 %492, 0
  br i1 %493, label %494, label %522

494:                                              ; preds = %489
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  store i32 2, ptr %34, align 4, !tbaa !9
  br label %495

495:                                              ; preds = %514, %494
  %496 = load i32, ptr %34, align 4, !tbaa !9
  %497 = load ptr, ptr %18, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.sqlite3, ptr %497, i32 0, i32 5
  %499 = load i32, ptr %498, align 8, !tbaa !39
  %500 = icmp slt i32 %496, %499
  br i1 %500, label %501, label %517

501:                                              ; preds = %495
  %502 = load ptr, ptr %18, align 8, !tbaa !5
  %503 = getelementptr inbounds %struct.sqlite3, ptr %502, i32 0, i32 4
  %504 = load ptr, ptr %503, align 8, !tbaa !16
  %505 = load i32, ptr %34, align 4, !tbaa !9
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds %struct.Db, ptr %504, i64 %506
  %508 = getelementptr inbounds %struct.Db, ptr %507, i32 0, i32 1
  %509 = load ptr, ptr %508, align 8, !tbaa !37
  %510 = call ptr @sqlite3BtreePager(ptr noundef %509)
  store ptr %510, ptr %33, align 8, !tbaa !5
  %511 = load ptr, ptr %33, align 8, !tbaa !5
  %512 = load i32, ptr %32, align 4, !tbaa !9
  %513 = call i32 @sqlite3PagerLockingMode(ptr noundef %511, i32 noundef %512)
  br label %514

514:                                              ; preds = %501
  %515 = load i32, ptr %34, align 4, !tbaa !9
  %516 = add nsw i32 %515, 1
  store i32 %516, ptr %34, align 4, !tbaa !9
  br label %495, !llvm.loop !44

517:                                              ; preds = %495
  %518 = load i32, ptr %32, align 4, !tbaa !9
  %519 = trunc i32 %518 to i8
  %520 = load ptr, ptr %18, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.sqlite3, ptr %520, i32 0, i32 19
  store i8 %519, ptr %521, align 1, !tbaa !43
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  br label %522

522:                                              ; preds = %517, %489
  %523 = load ptr, ptr %19, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.Db, ptr %523, i32 0, i32 1
  %525 = load ptr, ptr %524, align 8, !tbaa !37
  %526 = call ptr @sqlite3BtreePager(ptr noundef %525)
  store ptr %526, ptr %33, align 8, !tbaa !5
  %527 = load ptr, ptr %33, align 8, !tbaa !5
  %528 = load i32, ptr %32, align 4, !tbaa !9
  %529 = call i32 @sqlite3PagerLockingMode(ptr noundef %527, i32 noundef %528)
  store i32 %529, ptr %32, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  br label %530

530:                                              ; preds = %522, %484
  %531 = load i32, ptr %32, align 4, !tbaa !9
  %532 = icmp eq i32 %531, 1
  br i1 %532, label %533, label %534

533:                                              ; preds = %530
  store ptr @.str.9, ptr %31, align 8, !tbaa !5
  br label %534

534:                                              ; preds = %533, %530
  %535 = load ptr, ptr %20, align 8, !tbaa !5
  %536 = load ptr, ptr %31, align 8, !tbaa !5
  call void @returnSingleText(ptr noundef %535, ptr noundef %536)
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  br label %2930

537:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  %538 = load ptr, ptr %12, align 8, !tbaa !5
  %539 = icmp eq ptr %538, null
  br i1 %539, label %540, label %541

540:                                              ; preds = %537
  store i32 -1, ptr %35, align 4, !tbaa !9
  br label %564

541:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  %542 = load ptr, ptr %12, align 8, !tbaa !5
  %543 = call i32 @sqlite3Strlen30(ptr noundef %542)
  store i32 %543, ptr %38, align 4, !tbaa !9
  store i32 0, ptr %35, align 4, !tbaa !9
  br label %544

544:                                              ; preds = %556, %541
  %545 = load i32, ptr %35, align 4, !tbaa !9
  %546 = call ptr @sqlite3JournalModename(i32 noundef %545)
  store ptr %546, ptr %37, align 8, !tbaa !5
  %547 = icmp ne ptr %546, null
  br i1 %547, label %548, label %559

548:                                              ; preds = %544
  %549 = load ptr, ptr %12, align 8, !tbaa !5
  %550 = load ptr, ptr %37, align 8, !tbaa !5
  %551 = load i32, ptr %38, align 4, !tbaa !9
  %552 = call i32 @sqlite3_strnicmp(ptr noundef %549, ptr noundef %550, i32 noundef %551)
  %553 = icmp eq i32 %552, 0
  br i1 %553, label %554, label %555

554:                                              ; preds = %548
  br label %559

555:                                              ; preds = %548
  br label %556

556:                                              ; preds = %555
  %557 = load i32, ptr %35, align 4, !tbaa !9
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr %35, align 4, !tbaa !9
  br label %544, !llvm.loop !45

559:                                              ; preds = %554, %544
  %560 = load ptr, ptr %37, align 8, !tbaa !5
  %561 = icmp ne ptr %560, null
  br i1 %561, label %563, label %562

562:                                              ; preds = %559
  store i32 -1, ptr %35, align 4, !tbaa !9
  br label %563

563:                                              ; preds = %562, %559
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  br label %564

564:                                              ; preds = %563, %540
  %565 = load i32, ptr %35, align 4, !tbaa !9
  %566 = icmp eq i32 %565, -1
  br i1 %566, label %567, label %575

567:                                              ; preds = %564
  %568 = load ptr, ptr %8, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.Token, ptr %568, i32 0, i32 1
  %570 = load i32, ptr %569, align 8, !tbaa !23
  %571 = icmp eq i32 %570, 0
  br i1 %571, label %572, label %575

572:                                              ; preds = %567
  store i32 0, ptr %16, align 4, !tbaa !9
  %573 = load ptr, ptr %8, align 8, !tbaa !5
  %574 = getelementptr inbounds %struct.Token, ptr %573, i32 0, i32 1
  store i32 1, ptr %574, align 8, !tbaa !23
  br label %575

575:                                              ; preds = %572, %567, %564
  %576 = load ptr, ptr %18, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.sqlite3, ptr %576, i32 0, i32 5
  %578 = load i32, ptr %577, align 8, !tbaa !39
  %579 = sub nsw i32 %578, 1
  store i32 %579, ptr %36, align 4, !tbaa !9
  br label %580

580:                                              ; preds = %610, %575
  %581 = load i32, ptr %36, align 4, !tbaa !9
  %582 = icmp sge i32 %581, 0
  br i1 %582, label %583, label %613

583:                                              ; preds = %580
  %584 = load ptr, ptr %18, align 8, !tbaa !5
  %585 = getelementptr inbounds %struct.sqlite3, ptr %584, i32 0, i32 4
  %586 = load ptr, ptr %585, align 8, !tbaa !16
  %587 = load i32, ptr %36, align 4, !tbaa !9
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds %struct.Db, ptr %586, i64 %588
  %590 = getelementptr inbounds %struct.Db, ptr %589, i32 0, i32 1
  %591 = load ptr, ptr %590, align 8, !tbaa !37
  %592 = icmp ne ptr %591, null
  br i1 %592, label %593, label %609

593:                                              ; preds = %583
  %594 = load i32, ptr %36, align 4, !tbaa !9
  %595 = load i32, ptr %16, align 4, !tbaa !9
  %596 = icmp eq i32 %594, %595
  br i1 %596, label %602, label %597

597:                                              ; preds = %593
  %598 = load ptr, ptr %8, align 8, !tbaa !5
  %599 = getelementptr inbounds %struct.Token, ptr %598, i32 0, i32 1
  %600 = load i32, ptr %599, align 8, !tbaa !23
  %601 = icmp eq i32 %600, 0
  br i1 %601, label %602, label %609

602:                                              ; preds = %597, %593
  %603 = load ptr, ptr %20, align 8, !tbaa !5
  %604 = load i32, ptr %36, align 4, !tbaa !9
  call void @sqlite3VdbeUsesBtree(ptr noundef %603, i32 noundef %604)
  %605 = load ptr, ptr %20, align 8, !tbaa !5
  %606 = load i32, ptr %36, align 4, !tbaa !9
  %607 = load i32, ptr %35, align 4, !tbaa !9
  %608 = call i32 @sqlite3VdbeAddOp3(ptr noundef %605, i32 noundef 9, i32 noundef %606, i32 noundef 1, i32 noundef %607)
  br label %609

609:                                              ; preds = %602, %597, %583
  br label %610

610:                                              ; preds = %609
  %611 = load i32, ptr %36, align 4, !tbaa !9
  %612 = add nsw i32 %611, -1
  store i32 %612, ptr %36, align 4, !tbaa !9
  br label %580, !llvm.loop !46

613:                                              ; preds = %580
  %614 = load ptr, ptr %20, align 8, !tbaa !5
  %615 = call i32 @sqlite3VdbeAddOp2(ptr noundef %614, i32 noundef 88, i32 noundef 1, i32 noundef 1)
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  br label %2930

616:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #4
  %617 = load ptr, ptr %19, align 8, !tbaa !5
  %618 = getelementptr inbounds %struct.Db, ptr %617, i32 0, i32 1
  %619 = load ptr, ptr %618, align 8, !tbaa !37
  %620 = call ptr @sqlite3BtreePager(ptr noundef %619)
  store ptr %620, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #4
  store i64 -2, ptr %40, align 8, !tbaa !47
  %621 = load ptr, ptr %12, align 8, !tbaa !5
  %622 = icmp ne ptr %621, null
  br i1 %622, label %623, label %630

623:                                              ; preds = %616
  %624 = load ptr, ptr %12, align 8, !tbaa !5
  %625 = call i32 @sqlite3DecOrHexToI64(ptr noundef %624, ptr noundef %40)
  %626 = load i64, ptr %40, align 8, !tbaa !47
  %627 = icmp slt i64 %626, -1
  br i1 %627, label %628, label %629

628:                                              ; preds = %623
  store i64 -1, ptr %40, align 8, !tbaa !47
  br label %629

629:                                              ; preds = %628, %623
  br label %630

630:                                              ; preds = %629, %616
  %631 = load ptr, ptr %39, align 8, !tbaa !5
  %632 = load i64, ptr %40, align 8, !tbaa !47
  %633 = call i64 @sqlite3PagerJournalSizeLimit(ptr noundef %631, i64 noundef %632)
  store i64 %633, ptr %40, align 8, !tbaa !47
  %634 = load ptr, ptr %20, align 8, !tbaa !5
  %635 = load i64, ptr %40, align 8, !tbaa !47
  call void @returnSingleInt(ptr noundef %634, i64 noundef %635)
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  br label %2930

636:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #4
  %637 = load ptr, ptr %19, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.Db, ptr %637, i32 0, i32 1
  %639 = load ptr, ptr %638, align 8, !tbaa !37
  store ptr %639, ptr %41, align 8, !tbaa !5
  %640 = load ptr, ptr %12, align 8, !tbaa !5
  %641 = icmp ne ptr %640, null
  br i1 %641, label %647, label %642

642:                                              ; preds = %636
  %643 = load ptr, ptr %20, align 8, !tbaa !5
  %644 = load ptr, ptr %41, align 8, !tbaa !5
  %645 = call i32 @sqlite3BtreeGetAutoVacuum(ptr noundef %644)
  %646 = sext i32 %645 to i64
  call void @returnSingleInt(ptr noundef %643, i64 noundef %646)
  br label %695

647:                                              ; preds = %636
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #4
  %648 = load ptr, ptr %12, align 8, !tbaa !5
  %649 = call i32 @getAutoVacuum(ptr noundef %648)
  store i32 %649, ptr %42, align 4, !tbaa !9
  %650 = load i32, ptr %42, align 4, !tbaa !9
  %651 = trunc i32 %650 to i8
  %652 = load ptr, ptr %18, align 8, !tbaa !5
  %653 = getelementptr inbounds %struct.sqlite3, ptr %652, i32 0, i32 20
  store i8 %651, ptr %653, align 8, !tbaa !48
  %654 = load ptr, ptr %41, align 8, !tbaa !5
  %655 = load i32, ptr %42, align 4, !tbaa !9
  %656 = call i32 @sqlite3BtreeSetAutoVacuum(ptr noundef %654, i32 noundef %655)
  store i32 %656, ptr %17, align 4, !tbaa !9
  %657 = load i32, ptr %17, align 4, !tbaa !9
  %658 = icmp eq i32 %657, 0
  br i1 %658, label %659, label %694

659:                                              ; preds = %647
  %660 = load i32, ptr %42, align 4, !tbaa !9
  %661 = icmp eq i32 %660, 1
  br i1 %661, label %665, label %662

662:                                              ; preds = %659
  %663 = load i32, ptr %42, align 4, !tbaa !9
  %664 = icmp eq i32 %663, 2
  br i1 %664, label %665, label %694

665:                                              ; preds = %662, %659
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #4
  %666 = load ptr, ptr %20, align 8, !tbaa !5
  %667 = call i32 @sqlite3VdbeCurrentAddr(ptr noundef %666)
  store i32 %667, ptr %44, align 4, !tbaa !9
  %668 = load ptr, ptr %20, align 8, !tbaa !5
  %669 = call ptr @sqlite3VdbeAddOpList(ptr noundef %668, i32 noundef 5, ptr noundef @sqlite3Pragma.setMeta6, i32 noundef 0)
  store ptr %669, ptr %43, align 8, !tbaa !5
  %670 = load i32, ptr %16, align 4, !tbaa !9
  %671 = load ptr, ptr %43, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.VdbeOp, ptr %671, i64 0
  %673 = getelementptr inbounds %struct.VdbeOp, ptr %672, i32 0, i32 3
  store i32 %670, ptr %673, align 4, !tbaa !32
  %674 = load i32, ptr %16, align 4, !tbaa !9
  %675 = load ptr, ptr %43, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.VdbeOp, ptr %675, i64 1
  %677 = getelementptr inbounds %struct.VdbeOp, ptr %676, i32 0, i32 3
  store i32 %674, ptr %677, align 4, !tbaa !32
  %678 = load i32, ptr %44, align 4, !tbaa !9
  %679 = add nsw i32 %678, 4
  %680 = load ptr, ptr %43, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.VdbeOp, ptr %680, i64 2
  %682 = getelementptr inbounds %struct.VdbeOp, ptr %681, i32 0, i32 4
  store i32 %679, ptr %682, align 8, !tbaa !49
  %683 = load i32, ptr %16, align 4, !tbaa !9
  %684 = load ptr, ptr %43, align 8, !tbaa !5
  %685 = getelementptr inbounds %struct.VdbeOp, ptr %684, i64 4
  %686 = getelementptr inbounds %struct.VdbeOp, ptr %685, i32 0, i32 3
  store i32 %683, ptr %686, align 4, !tbaa !32
  %687 = load i32, ptr %42, align 4, !tbaa !9
  %688 = sub nsw i32 %687, 1
  %689 = load ptr, ptr %43, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.VdbeOp, ptr %689, i64 4
  %691 = getelementptr inbounds %struct.VdbeOp, ptr %690, i32 0, i32 5
  store i32 %688, ptr %691, align 4, !tbaa !50
  %692 = load ptr, ptr %20, align 8, !tbaa !5
  %693 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3VdbeUsesBtree(ptr noundef %692, i32 noundef %693)
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  br label %694

694:                                              ; preds = %665, %662, %647
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  br label %695

695:                                              ; preds = %694, %642
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  br label %2930

696:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #4
  %697 = load ptr, ptr %12, align 8, !tbaa !5
  %698 = icmp eq ptr %697, null
  br i1 %698, label %706, label %699

699:                                              ; preds = %696
  %700 = load ptr, ptr %12, align 8, !tbaa !5
  %701 = call i32 @sqlite3GetInt32(ptr noundef %700, ptr noundef %45)
  %702 = icmp ne i32 %701, 0
  br i1 %702, label %703, label %706

703:                                              ; preds = %699
  %704 = load i32, ptr %45, align 4, !tbaa !9
  %705 = icmp sle i32 %704, 0
  br i1 %705, label %706, label %707

706:                                              ; preds = %703, %699, %696
  store i32 2147483647, ptr %45, align 4, !tbaa !9
  br label %707

707:                                              ; preds = %706, %703
  %708 = load ptr, ptr %6, align 8, !tbaa !5
  %709 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3BeginWriteOperation(ptr noundef %708, i32 noundef 0, i32 noundef %709)
  %710 = load ptr, ptr %20, align 8, !tbaa !5
  %711 = load i32, ptr %45, align 4, !tbaa !9
  %712 = call i32 @sqlite3VdbeAddOp2(ptr noundef %710, i32 noundef 77, i32 noundef %711, i32 noundef 1)
  %713 = load ptr, ptr %20, align 8, !tbaa !5
  %714 = load i32, ptr %16, align 4, !tbaa !9
  %715 = call i32 @sqlite3VdbeAddOp1(ptr noundef %713, i32 noundef 70, i32 noundef %714)
  store i32 %715, ptr %46, align 4, !tbaa !9
  %716 = load ptr, ptr %20, align 8, !tbaa !5
  %717 = call i32 @sqlite3VdbeAddOp1(ptr noundef %716, i32 noundef 88, i32 noundef 1)
  %718 = load ptr, ptr %20, align 8, !tbaa !5
  %719 = call i32 @sqlite3VdbeAddOp2(ptr noundef %718, i32 noundef 92, i32 noundef 1, i32 noundef -1)
  %720 = load ptr, ptr %20, align 8, !tbaa !5
  %721 = load i32, ptr %46, align 4, !tbaa !9
  %722 = call i32 @sqlite3VdbeAddOp2(ptr noundef %720, i32 noundef 67, i32 noundef 1, i32 noundef %721)
  %723 = load ptr, ptr %20, align 8, !tbaa !5
  %724 = load i32, ptr %46, align 4, !tbaa !9
  call void @sqlite3VdbeJumpHere(ptr noundef %723, i32 noundef %724)
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  br label %2930

725:                                              ; preds = %309
  %726 = load ptr, ptr %12, align 8, !tbaa !5
  %727 = icmp ne ptr %726, null
  br i1 %727, label %736, label %728

728:                                              ; preds = %725
  %729 = load ptr, ptr %20, align 8, !tbaa !5
  %730 = load ptr, ptr %19, align 8, !tbaa !5
  %731 = getelementptr inbounds %struct.Db, ptr %730, i32 0, i32 4
  %732 = load ptr, ptr %731, align 8, !tbaa !34
  %733 = getelementptr inbounds %struct.Schema, ptr %732, i32 0, i32 10
  %734 = load i32, ptr %733, align 4, !tbaa !35
  %735 = sext i32 %734 to i64
  call void @returnSingleInt(ptr noundef %729, i64 noundef %735)
  br label %753

736:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #4
  %737 = load ptr, ptr %12, align 8, !tbaa !5
  %738 = call i32 @sqlite3Atoi(ptr noundef %737)
  store i32 %738, ptr %47, align 4, !tbaa !9
  %739 = load i32, ptr %47, align 4, !tbaa !9
  %740 = load ptr, ptr %19, align 8, !tbaa !5
  %741 = getelementptr inbounds %struct.Db, ptr %740, i32 0, i32 4
  %742 = load ptr, ptr %741, align 8, !tbaa !34
  %743 = getelementptr inbounds %struct.Schema, ptr %742, i32 0, i32 10
  store i32 %739, ptr %743, align 4, !tbaa !35
  %744 = load ptr, ptr %19, align 8, !tbaa !5
  %745 = getelementptr inbounds %struct.Db, ptr %744, i32 0, i32 1
  %746 = load ptr, ptr %745, align 8, !tbaa !37
  %747 = load ptr, ptr %19, align 8, !tbaa !5
  %748 = getelementptr inbounds %struct.Db, ptr %747, i32 0, i32 4
  %749 = load ptr, ptr %748, align 8, !tbaa !34
  %750 = getelementptr inbounds %struct.Schema, ptr %749, i32 0, i32 10
  %751 = load i32, ptr %750, align 4, !tbaa !35
  %752 = call i32 @sqlite3BtreeSetCacheSize(ptr noundef %746, i32 noundef %751)
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  br label %753

753:                                              ; preds = %736, %728
  br label %2930

754:                                              ; preds = %309
  %755 = load ptr, ptr %12, align 8, !tbaa !5
  %756 = icmp ne ptr %755, null
  br i1 %756, label %773, label %757

757:                                              ; preds = %754
  %758 = load ptr, ptr %20, align 8, !tbaa !5
  %759 = load ptr, ptr %18, align 8, !tbaa !5
  %760 = getelementptr inbounds %struct.sqlite3, ptr %759, i32 0, i32 6
  %761 = load i32, ptr %760, align 4, !tbaa !51
  %762 = and i32 %761, 32
  %763 = icmp eq i32 %762, 0
  br i1 %763, label %764, label %765

764:                                              ; preds = %757
  br label %770

765:                                              ; preds = %757
  %766 = load ptr, ptr %19, align 8, !tbaa !5
  %767 = getelementptr inbounds %struct.Db, ptr %766, i32 0, i32 1
  %768 = load ptr, ptr %767, align 8, !tbaa !37
  %769 = call i32 @sqlite3BtreeSetSpillSize(ptr noundef %768, i32 noundef 0)
  br label %770

770:                                              ; preds = %765, %764
  %771 = phi i32 [ 0, %764 ], [ %769, %765 ]
  %772 = sext i32 %771 to i64
  call void @returnSingleInt(ptr noundef %758, i64 noundef %772)
  br label %803

773:                                              ; preds = %754
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #4
  store i32 1, ptr %48, align 4, !tbaa !9
  %774 = load ptr, ptr %12, align 8, !tbaa !5
  %775 = call i32 @sqlite3GetInt32(ptr noundef %774, ptr noundef %48)
  %776 = icmp ne i32 %775, 0
  br i1 %776, label %777, label %783

777:                                              ; preds = %773
  %778 = load ptr, ptr %19, align 8, !tbaa !5
  %779 = getelementptr inbounds %struct.Db, ptr %778, i32 0, i32 1
  %780 = load ptr, ptr %779, align 8, !tbaa !37
  %781 = load i32, ptr %48, align 4, !tbaa !9
  %782 = call i32 @sqlite3BtreeSetSpillSize(ptr noundef %780, i32 noundef %781)
  br label %783

783:                                              ; preds = %777, %773
  %784 = load ptr, ptr %12, align 8, !tbaa !5
  %785 = load i32, ptr %48, align 4, !tbaa !9
  %786 = icmp ne i32 %785, 0
  %787 = zext i1 %786 to i32
  %788 = trunc i32 %787 to i8
  %789 = call zeroext i8 @sqlite3GetBoolean(ptr noundef %784, i8 noundef zeroext %788)
  %790 = icmp ne i8 %789, 0
  br i1 %790, label %791, label %796

791:                                              ; preds = %783
  %792 = load ptr, ptr %18, align 8, !tbaa !5
  %793 = getelementptr inbounds %struct.sqlite3, ptr %792, i32 0, i32 6
  %794 = load i32, ptr %793, align 4, !tbaa !51
  %795 = or i32 %794, 32
  store i32 %795, ptr %793, align 4, !tbaa !51
  br label %801

796:                                              ; preds = %783
  %797 = load ptr, ptr %18, align 8, !tbaa !5
  %798 = getelementptr inbounds %struct.sqlite3, ptr %797, i32 0, i32 6
  %799 = load i32, ptr %798, align 4, !tbaa !51
  %800 = and i32 %799, -33
  store i32 %800, ptr %798, align 4, !tbaa !51
  br label %801

801:                                              ; preds = %796, %791
  %802 = load ptr, ptr %18, align 8, !tbaa !5
  call void @setAllPagerFlags(ptr noundef %802)
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  br label %803

803:                                              ; preds = %801, %770
  br label %2930

804:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #4
  %805 = load ptr, ptr %12, align 8, !tbaa !5
  %806 = icmp ne ptr %805, null
  br i1 %806, label %807, label %866

807:                                              ; preds = %804
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  %808 = load ptr, ptr %12, align 8, !tbaa !5
  %809 = call i32 @sqlite3DecOrHexToI64(ptr noundef %808, ptr noundef %49)
  %810 = load i64, ptr %49, align 8, !tbaa !47
  %811 = icmp slt i64 %810, 0
  br i1 %811, label %812, label %814

812:                                              ; preds = %807
  %813 = load i64, ptr getelementptr inbounds (%struct.Sqlite3Config, ptr @sqlite3Config, i32 0, i32 17), align 8, !tbaa !52
  store i64 %813, ptr %49, align 8, !tbaa !47
  br label %814

814:                                              ; preds = %812, %807
  %815 = load ptr, ptr %8, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.Token, ptr %815, i32 0, i32 1
  %817 = load i32, ptr %816, align 8, !tbaa !23
  %818 = icmp eq i32 %817, 0
  br i1 %818, label %819, label %823

819:                                              ; preds = %814
  %820 = load i64, ptr %49, align 8, !tbaa !47
  %821 = load ptr, ptr %18, align 8, !tbaa !5
  %822 = getelementptr inbounds %struct.sqlite3, ptr %821, i32 0, i32 8
  store i64 %820, ptr %822, align 8, !tbaa !57
  br label %823

823:                                              ; preds = %819, %814
  %824 = load ptr, ptr %18, align 8, !tbaa !5
  %825 = getelementptr inbounds %struct.sqlite3, ptr %824, i32 0, i32 5
  %826 = load i32, ptr %825, align 8, !tbaa !39
  %827 = sub nsw i32 %826, 1
  store i32 %827, ptr %50, align 4, !tbaa !9
  br label %828

828:                                              ; preds = %862, %823
  %829 = load i32, ptr %50, align 4, !tbaa !9
  %830 = icmp sge i32 %829, 0
  br i1 %830, label %831, label %865

831:                                              ; preds = %828
  %832 = load ptr, ptr %18, align 8, !tbaa !5
  %833 = getelementptr inbounds %struct.sqlite3, ptr %832, i32 0, i32 4
  %834 = load ptr, ptr %833, align 8, !tbaa !16
  %835 = load i32, ptr %50, align 4, !tbaa !9
  %836 = sext i32 %835 to i64
  %837 = getelementptr inbounds %struct.Db, ptr %834, i64 %836
  %838 = getelementptr inbounds %struct.Db, ptr %837, i32 0, i32 1
  %839 = load ptr, ptr %838, align 8, !tbaa !37
  %840 = icmp ne ptr %839, null
  br i1 %840, label %841, label %861

841:                                              ; preds = %831
  %842 = load i32, ptr %50, align 4, !tbaa !9
  %843 = load i32, ptr %16, align 4, !tbaa !9
  %844 = icmp eq i32 %842, %843
  br i1 %844, label %850, label %845

845:                                              ; preds = %841
  %846 = load ptr, ptr %8, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.Token, ptr %846, i32 0, i32 1
  %848 = load i32, ptr %847, align 8, !tbaa !23
  %849 = icmp eq i32 %848, 0
  br i1 %849, label %850, label %861

850:                                              ; preds = %845, %841
  %851 = load ptr, ptr %18, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.sqlite3, ptr %851, i32 0, i32 4
  %853 = load ptr, ptr %852, align 8, !tbaa !16
  %854 = load i32, ptr %50, align 4, !tbaa !9
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds %struct.Db, ptr %853, i64 %855
  %857 = getelementptr inbounds %struct.Db, ptr %856, i32 0, i32 1
  %858 = load ptr, ptr %857, align 8, !tbaa !37
  %859 = load i64, ptr %49, align 8, !tbaa !47
  %860 = call i32 @sqlite3BtreeSetMmapLimit(ptr noundef %858, i64 noundef %859)
  br label %861

861:                                              ; preds = %850, %845, %831
  br label %862

862:                                              ; preds = %861
  %863 = load i32, ptr %50, align 4, !tbaa !9
  %864 = add nsw i32 %863, -1
  store i32 %864, ptr %50, align 4, !tbaa !9
  br label %828, !llvm.loop !58

865:                                              ; preds = %828
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  br label %866

866:                                              ; preds = %865, %804
  store i64 -1, ptr %49, align 8, !tbaa !47
  %867 = load ptr, ptr %18, align 8, !tbaa !5
  %868 = load ptr, ptr %13, align 8, !tbaa !5
  %869 = call i32 @sqlite3_file_control(ptr noundef %867, ptr noundef %868, i32 noundef 18, ptr noundef %49)
  store i32 %869, ptr %17, align 4, !tbaa !9
  %870 = load i32, ptr %17, align 4, !tbaa !9
  %871 = icmp eq i32 %870, 0
  br i1 %871, label %872, label %875

872:                                              ; preds = %866
  %873 = load ptr, ptr %20, align 8, !tbaa !5
  %874 = load i64, ptr %49, align 8, !tbaa !47
  call void @returnSingleInt(ptr noundef %873, i64 noundef %874)
  br label %887

875:                                              ; preds = %866
  %876 = load i32, ptr %17, align 4, !tbaa !9
  %877 = icmp ne i32 %876, 12
  br i1 %877, label %878, label %886

878:                                              ; preds = %875
  %879 = load ptr, ptr %6, align 8, !tbaa !5
  %880 = getelementptr inbounds %struct.Parse, ptr %879, i32 0, i32 16
  %881 = load i32, ptr %880, align 8, !tbaa !27
  %882 = add nsw i32 %881, 1
  store i32 %882, ptr %880, align 8, !tbaa !27
  %883 = load i32, ptr %17, align 4, !tbaa !9
  %884 = load ptr, ptr %6, align 8, !tbaa !5
  %885 = getelementptr inbounds %struct.Parse, ptr %884, i32 0, i32 3
  store i32 %883, ptr %885, align 8, !tbaa !28
  br label %886

886:                                              ; preds = %878, %875
  br label %887

887:                                              ; preds = %886, %872
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  br label %2930

888:                                              ; preds = %309
  %889 = load ptr, ptr %12, align 8, !tbaa !5
  %890 = icmp ne ptr %889, null
  br i1 %890, label %897, label %891

891:                                              ; preds = %888
  %892 = load ptr, ptr %20, align 8, !tbaa !5
  %893 = load ptr, ptr %18, align 8, !tbaa !5
  %894 = getelementptr inbounds %struct.sqlite3, ptr %893, i32 0, i32 16
  %895 = load i8, ptr %894, align 4, !tbaa !59
  %896 = zext i8 %895 to i64
  call void @returnSingleInt(ptr noundef %892, i64 noundef %896)
  br label %901

897:                                              ; preds = %888
  %898 = load ptr, ptr %6, align 8, !tbaa !5
  %899 = load ptr, ptr %12, align 8, !tbaa !5
  %900 = call i32 @changeTempStorage(ptr noundef %898, ptr noundef %899)
  br label %901

901:                                              ; preds = %897, %891
  br label %2930

902:                                              ; preds = %309
  %903 = load ptr, ptr %12, align 8, !tbaa !5
  %904 = icmp ne ptr %903, null
  br i1 %904, label %908, label %905

905:                                              ; preds = %902
  %906 = load ptr, ptr %20, align 8, !tbaa !5
  %907 = load ptr, ptr @sqlite3_temp_directory, align 8, !tbaa !5
  call void @returnSingleText(ptr noundef %906, ptr noundef %907)
  br label %950

908:                                              ; preds = %902
  %909 = load ptr, ptr %12, align 8, !tbaa !5
  %910 = getelementptr inbounds i8, ptr %909, i64 0
  %911 = load i8, ptr %910, align 1, !tbaa !42
  %912 = icmp ne i8 %911, 0
  br i1 %912, label %913, label %930

913:                                              ; preds = %908
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #4
  %914 = load ptr, ptr %18, align 8, !tbaa !5
  %915 = getelementptr inbounds %struct.sqlite3, ptr %914, i32 0, i32 0
  %916 = load ptr, ptr %915, align 8, !tbaa !60
  %917 = load ptr, ptr %12, align 8, !tbaa !5
  %918 = call i32 @sqlite3OsAccess(ptr noundef %916, ptr noundef %917, i32 noundef 1, ptr noundef %51)
  store i32 %918, ptr %17, align 4, !tbaa !9
  %919 = load i32, ptr %17, align 4, !tbaa !9
  %920 = icmp ne i32 %919, 0
  br i1 %920, label %924, label %921

921:                                              ; preds = %913
  %922 = load i32, ptr %51, align 4, !tbaa !9
  %923 = icmp eq i32 %922, 0
  br i1 %923, label %924, label %926

924:                                              ; preds = %921, %913
  %925 = load ptr, ptr %6, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3ErrorMsg(ptr noundef %925, ptr noundef @.str.11)
  store i32 2, ptr %22, align 4
  br label %927

926:                                              ; preds = %921
  store i32 0, ptr %22, align 4
  br label %927

927:                                              ; preds = %926, %924
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  %928 = load i32, ptr %22, align 4
  switch i32 %928, label %2947 [
    i32 0, label %929
    i32 2, label %2942
  ]

929:                                              ; preds = %927
  br label %930

930:                                              ; preds = %929, %908
  %931 = load ptr, ptr %18, align 8, !tbaa !5
  %932 = getelementptr inbounds %struct.sqlite3, ptr %931, i32 0, i32 16
  %933 = load i8, ptr %932, align 4, !tbaa !59
  %934 = zext i8 %933 to i32
  %935 = icmp sle i32 %934, 1
  br i1 %935, label %936, label %939

936:                                              ; preds = %930
  %937 = load ptr, ptr %6, align 8, !tbaa !5
  %938 = call i32 @invalidateTempStorage(ptr noundef %937)
  br label %939

939:                                              ; preds = %936, %930
  %940 = load ptr, ptr @sqlite3_temp_directory, align 8, !tbaa !5
  call void @sqlite3_free(ptr noundef %940)
  %941 = load ptr, ptr %12, align 8, !tbaa !5
  %942 = getelementptr inbounds i8, ptr %941, i64 0
  %943 = load i8, ptr %942, align 1, !tbaa !42
  %944 = icmp ne i8 %943, 0
  br i1 %944, label %945, label %948

945:                                              ; preds = %939
  %946 = load ptr, ptr %12, align 8, !tbaa !5
  %947 = call ptr (ptr, ...) @sqlite3_mprintf(ptr noundef @.str.7, ptr noundef %946)
  store ptr %947, ptr @sqlite3_temp_directory, align 8, !tbaa !5
  br label %949

948:                                              ; preds = %939
  store ptr null, ptr @sqlite3_temp_directory, align 8, !tbaa !5
  br label %949

949:                                              ; preds = %948, %945
  br label %950

950:                                              ; preds = %949, %905
  br label %2930

951:                                              ; preds = %309
  %952 = load ptr, ptr %12, align 8, !tbaa !5
  %953 = icmp ne ptr %952, null
  br i1 %953, label %962, label %954

954:                                              ; preds = %951
  %955 = load ptr, ptr %20, align 8, !tbaa !5
  %956 = load ptr, ptr %19, align 8, !tbaa !5
  %957 = getelementptr inbounds %struct.Db, ptr %956, i32 0, i32 2
  %958 = load i8, ptr %957, align 8, !tbaa !61
  %959 = zext i8 %958 to i32
  %960 = sub nsw i32 %959, 1
  %961 = sext i32 %960 to i64
  call void @returnSingleInt(ptr noundef %955, i64 noundef %961)
  br label %991

962:                                              ; preds = %951
  %963 = load ptr, ptr %18, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.sqlite3, ptr %963, i32 0, i32 15
  %965 = load i8, ptr %964, align 1, !tbaa !62
  %966 = icmp ne i8 %965, 0
  br i1 %966, label %969, label %967

967:                                              ; preds = %962
  %968 = load ptr, ptr %6, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3ErrorMsg(ptr noundef %968, ptr noundef @.str.12)
  br label %990

969:                                              ; preds = %962
  %970 = load i32, ptr %16, align 4, !tbaa !9
  %971 = icmp ne i32 %970, 1
  br i1 %971, label %972, label %989

972:                                              ; preds = %969
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  %973 = load ptr, ptr %12, align 8, !tbaa !5
  %974 = call zeroext i8 @getSafetyLevel(ptr noundef %973, i32 noundef 0, i8 noundef zeroext 1)
  %975 = zext i8 %974 to i32
  %976 = add nsw i32 %975, 1
  %977 = and i32 %976, 7
  store i32 %977, ptr %52, align 4, !tbaa !9
  %978 = load i32, ptr %52, align 4, !tbaa !9
  %979 = icmp eq i32 %978, 0
  br i1 %979, label %980, label %981

980:                                              ; preds = %972
  store i32 1, ptr %52, align 4, !tbaa !9
  br label %981

981:                                              ; preds = %980, %972
  %982 = load i32, ptr %52, align 4, !tbaa !9
  %983 = trunc i32 %982 to i8
  %984 = load ptr, ptr %19, align 8, !tbaa !5
  %985 = getelementptr inbounds %struct.Db, ptr %984, i32 0, i32 2
  store i8 %983, ptr %985, align 8, !tbaa !61
  %986 = load ptr, ptr %19, align 8, !tbaa !5
  %987 = getelementptr inbounds %struct.Db, ptr %986, i32 0, i32 3
  store i8 1, ptr %987, align 1, !tbaa !63
  %988 = load ptr, ptr %18, align 8, !tbaa !5
  call void @setAllPagerFlags(ptr noundef %988)
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  br label %989

989:                                              ; preds = %981, %969
  br label %990

990:                                              ; preds = %989, %967
  br label %991

991:                                              ; preds = %990, %954
  br label %2930

992:                                              ; preds = %309
  %993 = load ptr, ptr %12, align 8, !tbaa !5
  %994 = icmp eq ptr %993, null
  br i1 %994, label %995, label %1009

995:                                              ; preds = %992
  %996 = load ptr, ptr %20, align 8, !tbaa !5
  %997 = load ptr, ptr %21, align 8, !tbaa !5
  call void @setPragmaResultColumnNames(ptr noundef %996, ptr noundef %997)
  %998 = load ptr, ptr %20, align 8, !tbaa !5
  %999 = load ptr, ptr %18, align 8, !tbaa !5
  %1000 = getelementptr inbounds %struct.sqlite3, ptr %999, i32 0, i32 6
  %1001 = load i32, ptr %1000, align 4, !tbaa !51
  %1002 = load ptr, ptr %21, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.PragmaName, ptr %1002, i32 0, i32 5
  %1004 = load i32, ptr %1003, align 4, !tbaa !64
  %1005 = and i32 %1001, %1004
  %1006 = icmp ne i32 %1005, 0
  %1007 = zext i1 %1006 to i32
  %1008 = sext i32 %1007 to i64
  call void @returnSingleInt(ptr noundef %998, i64 noundef %1008)
  br label %1048

1009:                                             ; preds = %992
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  %1010 = load ptr, ptr %21, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.PragmaName, ptr %1010, i32 0, i32 5
  %1012 = load i32, ptr %1011, align 4, !tbaa !64
  store i32 %1012, ptr %53, align 4, !tbaa !9
  %1013 = load ptr, ptr %18, align 8, !tbaa !5
  %1014 = getelementptr inbounds %struct.sqlite3, ptr %1013, i32 0, i32 15
  %1015 = load i8, ptr %1014, align 1, !tbaa !62
  %1016 = zext i8 %1015 to i32
  %1017 = icmp eq i32 %1016, 0
  br i1 %1017, label %1018, label %1021

1018:                                             ; preds = %1009
  %1019 = load i32, ptr %53, align 4, !tbaa !9
  %1020 = and i32 %1019, -524289
  store i32 %1020, ptr %53, align 4, !tbaa !9
  br label %1021

1021:                                             ; preds = %1018, %1009
  %1022 = load ptr, ptr %12, align 8, !tbaa !5
  %1023 = call zeroext i8 @sqlite3GetBoolean(ptr noundef %1022, i8 noundef zeroext 0)
  %1024 = icmp ne i8 %1023, 0
  br i1 %1024, label %1025, label %1031

1025:                                             ; preds = %1021
  %1026 = load i32, ptr %53, align 4, !tbaa !9
  %1027 = load ptr, ptr %18, align 8, !tbaa !5
  %1028 = getelementptr inbounds %struct.sqlite3, ptr %1027, i32 0, i32 6
  %1029 = load i32, ptr %1028, align 4, !tbaa !51
  %1030 = or i32 %1029, %1026
  store i32 %1030, ptr %1028, align 4, !tbaa !51
  br label %1044

1031:                                             ; preds = %1021
  %1032 = load i32, ptr %53, align 4, !tbaa !9
  %1033 = xor i32 %1032, -1
  %1034 = load ptr, ptr %18, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.sqlite3, ptr %1034, i32 0, i32 6
  %1036 = load i32, ptr %1035, align 4, !tbaa !51
  %1037 = and i32 %1036, %1033
  store i32 %1037, ptr %1035, align 4, !tbaa !51
  %1038 = load i32, ptr %53, align 4, !tbaa !9
  %1039 = icmp eq i32 %1038, 33554432
  br i1 %1039, label %1040, label %1043

1040:                                             ; preds = %1031
  %1041 = load ptr, ptr %18, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.sqlite3, ptr %1041, i32 0, i32 78
  store i64 0, ptr %1042, align 8, !tbaa !65
  br label %1043

1043:                                             ; preds = %1040, %1031
  br label %1044

1044:                                             ; preds = %1043, %1025
  %1045 = load ptr, ptr %20, align 8, !tbaa !5
  %1046 = call i32 @sqlite3VdbeAddOp0(ptr noundef %1045, i32 noundef 151)
  %1047 = load ptr, ptr %18, align 8, !tbaa !5
  call void @setAllPagerFlags(ptr noundef %1047)
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  br label %1048

1048:                                             ; preds = %1044, %995
  br label %2930

1049:                                             ; preds = %309
  %1050 = load ptr, ptr %12, align 8, !tbaa !5
  %1051 = icmp ne ptr %1050, null
  br i1 %1051, label %1052, label %1169

1052:                                             ; preds = %1049
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #4
  %1053 = load ptr, ptr %6, align 8, !tbaa !5
  %1054 = load ptr, ptr %12, align 8, !tbaa !5
  %1055 = load ptr, ptr %13, align 8, !tbaa !5
  %1056 = call ptr @sqlite3LocateTable(ptr noundef %1053, i32 noundef 2, ptr noundef %1054, ptr noundef %1055)
  store ptr %1056, ptr %54, align 8, !tbaa !5
  %1057 = load ptr, ptr %54, align 8, !tbaa !5
  %1058 = icmp ne ptr %1057, null
  br i1 %1058, label %1059, label %1168

1059:                                             ; preds = %1052
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  store i32 0, ptr %57, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #4
  %1060 = load ptr, ptr %54, align 8, !tbaa !5
  %1061 = call ptr @sqlite3PrimaryKeyIndex(ptr noundef %1060)
  store ptr %1061, ptr %59, align 8, !tbaa !5
  %1062 = load ptr, ptr %6, align 8, !tbaa !5
  %1063 = getelementptr inbounds %struct.Parse, ptr %1062, i32 0, i32 18
  store i32 6, ptr %1063, align 8, !tbaa !15
  %1064 = load ptr, ptr %6, align 8, !tbaa !5
  %1065 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3CodeVerifySchema(ptr noundef %1064, i32 noundef %1065)
  %1066 = load ptr, ptr %6, align 8, !tbaa !5
  %1067 = load ptr, ptr %54, align 8, !tbaa !5
  %1068 = call i32 @sqlite3ViewGetColumnNames(ptr noundef %1066, ptr noundef %1067)
  store i32 0, ptr %55, align 4, !tbaa !9
  %1069 = load ptr, ptr %54, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.Table, ptr %1069, i32 0, i32 1
  %1071 = load ptr, ptr %1070, align 8, !tbaa !66
  store ptr %1071, ptr %58, align 8, !tbaa !5
  br label %1072

1072:                                             ; preds = %1162, %1059
  %1073 = load i32, ptr %55, align 4, !tbaa !9
  %1074 = load ptr, ptr %54, align 8, !tbaa !5
  %1075 = getelementptr inbounds %struct.Table, ptr %1074, i32 0, i32 11
  %1076 = load i16, ptr %1075, align 2, !tbaa !68
  %1077 = sext i16 %1076 to i32
  %1078 = icmp slt i32 %1073, %1077
  br i1 %1078, label %1079, label %1167

1079:                                             ; preds = %1072
  %1080 = load ptr, ptr %58, align 8, !tbaa !5
  %1081 = getelementptr inbounds %struct.Column, ptr %1080, i32 0, i32 6
  %1082 = load i8, ptr %1081, align 1, !tbaa !69
  %1083 = zext i8 %1082 to i32
  %1084 = and i32 %1083, 2
  %1085 = icmp ne i32 %1084, 0
  br i1 %1085, label %1086, label %1089

1086:                                             ; preds = %1079
  %1087 = load i32, ptr %57, align 4, !tbaa !9
  %1088 = add nsw i32 %1087, 1
  store i32 %1088, ptr %57, align 4, !tbaa !9
  br label %1162

1089:                                             ; preds = %1079
  %1090 = load ptr, ptr %58, align 8, !tbaa !5
  %1091 = getelementptr inbounds %struct.Column, ptr %1090, i32 0, i32 6
  %1092 = load i8, ptr %1091, align 1, !tbaa !69
  %1093 = zext i8 %1092 to i32
  %1094 = and i32 %1093, 1
  %1095 = icmp eq i32 %1094, 0
  br i1 %1095, label %1096, label %1097

1096:                                             ; preds = %1089
  store i32 0, ptr %56, align 4, !tbaa !9
  br label %1129

1097:                                             ; preds = %1089
  %1098 = load ptr, ptr %59, align 8, !tbaa !5
  %1099 = icmp eq ptr %1098, null
  br i1 %1099, label %1100, label %1101

1100:                                             ; preds = %1097
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %1128

1101:                                             ; preds = %1097
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %1102

1102:                                             ; preds = %1124, %1101
  %1103 = load i32, ptr %56, align 4, !tbaa !9
  %1104 = load ptr, ptr %54, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.Table, ptr %1104, i32 0, i32 11
  %1106 = load i16, ptr %1105, align 2, !tbaa !68
  %1107 = sext i16 %1106 to i32
  %1108 = icmp sle i32 %1103, %1107
  br i1 %1108, label %1109, label %1121

1109:                                             ; preds = %1102
  %1110 = load ptr, ptr %59, align 8, !tbaa !5
  %1111 = getelementptr inbounds %struct.Index, ptr %1110, i32 0, i32 1
  %1112 = load ptr, ptr %1111, align 8, !tbaa !71
  %1113 = load i32, ptr %56, align 4, !tbaa !9
  %1114 = sub nsw i32 %1113, 1
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds i16, ptr %1112, i64 %1115
  %1117 = load i16, ptr %1116, align 2, !tbaa !73
  %1118 = sext i16 %1117 to i32
  %1119 = load i32, ptr %55, align 4, !tbaa !9
  %1120 = icmp ne i32 %1118, %1119
  br label %1121

1121:                                             ; preds = %1109, %1102
  %1122 = phi i1 [ false, %1102 ], [ %1120, %1109 ]
  br i1 %1122, label %1123, label %1127

1123:                                             ; preds = %1121
  br label %1124

1124:                                             ; preds = %1123
  %1125 = load i32, ptr %56, align 4, !tbaa !9
  %1126 = add nsw i32 %1125, 1
  store i32 %1126, ptr %56, align 4, !tbaa !9
  br label %1102, !llvm.loop !74

1127:                                             ; preds = %1121
  br label %1128

1128:                                             ; preds = %1127, %1100
  br label %1129

1129:                                             ; preds = %1128, %1096
  %1130 = load ptr, ptr %20, align 8, !tbaa !5
  %1131 = load i32, ptr %55, align 4, !tbaa !9
  %1132 = load i32, ptr %57, align 4, !tbaa !9
  %1133 = sub nsw i32 %1131, %1132
  %1134 = load ptr, ptr %58, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.Column, ptr %1134, i32 0, i32 0
  %1136 = load ptr, ptr %1135, align 8, !tbaa !75
  %1137 = load ptr, ptr %58, align 8, !tbaa !5
  %1138 = call ptr @sqlite3ColumnType(ptr noundef %1137, ptr noundef @.str.14)
  %1139 = load ptr, ptr %58, align 8, !tbaa !5
  %1140 = getelementptr inbounds %struct.Column, ptr %1139, i32 0, i32 3
  %1141 = load i8, ptr %1140, align 8, !tbaa !76
  %1142 = zext i8 %1141 to i32
  %1143 = icmp ne i32 %1142, 0
  %1144 = zext i1 %1143 to i64
  %1145 = select i1 %1143, i32 1, i32 0
  %1146 = load ptr, ptr %58, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.Column, ptr %1146, i32 0, i32 1
  %1148 = load ptr, ptr %1147, align 8, !tbaa !77
  %1149 = icmp ne ptr %1148, null
  br i1 %1149, label %1150, label %1156

1150:                                             ; preds = %1129
  %1151 = load ptr, ptr %58, align 8, !tbaa !5
  %1152 = getelementptr inbounds %struct.Column, ptr %1151, i32 0, i32 1
  %1153 = load ptr, ptr %1152, align 8, !tbaa !77
  %1154 = getelementptr inbounds %struct.Expr, ptr %1153, i32 0, i32 3
  %1155 = load ptr, ptr %1154, align 8, !tbaa !42
  br label %1157

1156:                                             ; preds = %1129
  br label %1157

1157:                                             ; preds = %1156, %1150
  %1158 = phi ptr [ %1155, %1150 ], [ null, %1156 ]
  %1159 = load i32, ptr %56, align 4, !tbaa !9
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %1130, i32 noundef 1, ptr noundef @.str.13, i32 noundef %1133, ptr noundef %1136, ptr noundef %1138, i32 noundef %1145, ptr noundef %1158, i32 noundef %1159)
  %1160 = load ptr, ptr %20, align 8, !tbaa !5
  %1161 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1160, i32 noundef 88, i32 noundef 1, i32 noundef 6)
  br label %1162

1162:                                             ; preds = %1157, %1086
  %1163 = load i32, ptr %55, align 4, !tbaa !9
  %1164 = add nsw i32 %1163, 1
  store i32 %1164, ptr %55, align 4, !tbaa !9
  %1165 = load ptr, ptr %58, align 8, !tbaa !5
  %1166 = getelementptr inbounds %struct.Column, ptr %1165, i32 1
  store ptr %1166, ptr %58, align 8, !tbaa !5
  br label %1072, !llvm.loop !78

1167:                                             ; preds = %1072
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  br label %1168

1168:                                             ; preds = %1167, %1052
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  br label %1169

1169:                                             ; preds = %1168, %1049
  br label %2930

1170:                                             ; preds = %309
  %1171 = load ptr, ptr %12, align 8, !tbaa !5
  %1172 = icmp ne ptr %1171, null
  br i1 %1172, label %1173, label %1275

1173:                                             ; preds = %1170
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #4
  %1174 = load ptr, ptr %18, align 8, !tbaa !5
  %1175 = load ptr, ptr %12, align 8, !tbaa !5
  %1176 = load ptr, ptr %13, align 8, !tbaa !5
  %1177 = call ptr @sqlite3FindIndex(ptr noundef %1174, ptr noundef %1175, ptr noundef %1176)
  store ptr %1177, ptr %60, align 8, !tbaa !5
  %1178 = load ptr, ptr %60, align 8, !tbaa !5
  %1179 = icmp ne ptr %1178, null
  br i1 %1179, label %1180, label %1274

1180:                                             ; preds = %1173
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #4
  %1181 = load ptr, ptr %21, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.PragmaName, ptr %1181, i32 0, i32 5
  %1183 = load i32, ptr %1182, align 4, !tbaa !64
  %1184 = icmp ne i32 %1183, 0
  br i1 %1184, label %1185, label %1192

1185:                                             ; preds = %1180
  %1186 = load ptr, ptr %60, align 8, !tbaa !5
  %1187 = getelementptr inbounds %struct.Index, ptr %1186, i32 0, i32 14
  %1188 = load i16, ptr %1187, align 8, !tbaa !79
  %1189 = zext i16 %1188 to i32
  store i32 %1189, ptr %63, align 4, !tbaa !9
  %1190 = load ptr, ptr %6, align 8, !tbaa !5
  %1191 = getelementptr inbounds %struct.Parse, ptr %1190, i32 0, i32 18
  store i32 6, ptr %1191, align 8, !tbaa !15
  br label %1199

1192:                                             ; preds = %1180
  %1193 = load ptr, ptr %60, align 8, !tbaa !5
  %1194 = getelementptr inbounds %struct.Index, ptr %1193, i32 0, i32 13
  %1195 = load i16, ptr %1194, align 2, !tbaa !80
  %1196 = zext i16 %1195 to i32
  store i32 %1196, ptr %63, align 4, !tbaa !9
  %1197 = load ptr, ptr %6, align 8, !tbaa !5
  %1198 = getelementptr inbounds %struct.Parse, ptr %1197, i32 0, i32 18
  store i32 3, ptr %1198, align 8, !tbaa !15
  br label %1199

1199:                                             ; preds = %1192, %1185
  %1200 = load ptr, ptr %60, align 8, !tbaa !5
  %1201 = getelementptr inbounds %struct.Index, ptr %1200, i32 0, i32 3
  %1202 = load ptr, ptr %1201, align 8, !tbaa !81
  store ptr %1202, ptr %61, align 8, !tbaa !5
  %1203 = load ptr, ptr %6, align 8, !tbaa !5
  %1204 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3CodeVerifySchema(ptr noundef %1203, i32 noundef %1204)
  store i32 0, ptr %62, align 4, !tbaa !9
  br label %1205

1205:                                             ; preds = %1270, %1199
  %1206 = load i32, ptr %62, align 4, !tbaa !9
  %1207 = load i32, ptr %63, align 4, !tbaa !9
  %1208 = icmp slt i32 %1206, %1207
  br i1 %1208, label %1209, label %1273

1209:                                             ; preds = %1205
  call void @llvm.lifetime.start.p0(i64 2, ptr %64) #4
  %1210 = load ptr, ptr %60, align 8, !tbaa !5
  %1211 = getelementptr inbounds %struct.Index, ptr %1210, i32 0, i32 1
  %1212 = load ptr, ptr %1211, align 8, !tbaa !71
  %1213 = load i32, ptr %62, align 4, !tbaa !9
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds i16, ptr %1212, i64 %1214
  %1216 = load i16, ptr %1215, align 2, !tbaa !73
  store i16 %1216, ptr %64, align 2, !tbaa !73
  %1217 = load ptr, ptr %20, align 8, !tbaa !5
  %1218 = load i32, ptr %62, align 4, !tbaa !9
  %1219 = load i16, ptr %64, align 2, !tbaa !73
  %1220 = sext i16 %1219 to i32
  %1221 = load i16, ptr %64, align 2, !tbaa !73
  %1222 = sext i16 %1221 to i32
  %1223 = icmp slt i32 %1222, 0
  br i1 %1223, label %1224, label %1225

1224:                                             ; preds = %1209
  br label %1234

1225:                                             ; preds = %1209
  %1226 = load ptr, ptr %61, align 8, !tbaa !5
  %1227 = getelementptr inbounds %struct.Table, ptr %1226, i32 0, i32 1
  %1228 = load ptr, ptr %1227, align 8, !tbaa !66
  %1229 = load i16, ptr %64, align 2, !tbaa !73
  %1230 = sext i16 %1229 to i64
  %1231 = getelementptr inbounds %struct.Column, ptr %1228, i64 %1230
  %1232 = getelementptr inbounds %struct.Column, ptr %1231, i32 0, i32 0
  %1233 = load ptr, ptr %1232, align 8, !tbaa !75
  br label %1234

1234:                                             ; preds = %1225, %1224
  %1235 = phi ptr [ null, %1224 ], [ %1233, %1225 ]
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %1217, i32 noundef 1, ptr noundef @.str.15, i32 noundef %1218, i32 noundef %1220, ptr noundef %1235)
  %1236 = load ptr, ptr %21, align 8, !tbaa !5
  %1237 = getelementptr inbounds %struct.PragmaName, ptr %1236, i32 0, i32 5
  %1238 = load i32, ptr %1237, align 4, !tbaa !64
  %1239 = icmp ne i32 %1238, 0
  br i1 %1239, label %1240, label %1264

1240:                                             ; preds = %1234
  %1241 = load ptr, ptr %20, align 8, !tbaa !5
  %1242 = load ptr, ptr %60, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.Index, ptr %1242, i32 0, i32 7
  %1244 = load ptr, ptr %1243, align 8, !tbaa !82
  %1245 = load i32, ptr %62, align 4, !tbaa !9
  %1246 = sext i32 %1245 to i64
  %1247 = getelementptr inbounds i8, ptr %1244, i64 %1246
  %1248 = load i8, ptr %1247, align 1, !tbaa !42
  %1249 = zext i8 %1248 to i32
  %1250 = load ptr, ptr %60, align 8, !tbaa !5
  %1251 = getelementptr inbounds %struct.Index, ptr %1250, i32 0, i32 8
  %1252 = load ptr, ptr %1251, align 8, !tbaa !83
  %1253 = load i32, ptr %62, align 4, !tbaa !9
  %1254 = sext i32 %1253 to i64
  %1255 = getelementptr inbounds ptr, ptr %1252, i64 %1254
  %1256 = load ptr, ptr %1255, align 8, !tbaa !5
  %1257 = load i32, ptr %62, align 4, !tbaa !9
  %1258 = load ptr, ptr %60, align 8, !tbaa !5
  %1259 = getelementptr inbounds %struct.Index, ptr %1258, i32 0, i32 13
  %1260 = load i16, ptr %1259, align 2, !tbaa !80
  %1261 = zext i16 %1260 to i32
  %1262 = icmp slt i32 %1257, %1261
  %1263 = zext i1 %1262 to i32
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %1241, i32 noundef 4, ptr noundef @.str.16, i32 noundef %1249, ptr noundef %1256, i32 noundef %1263)
  br label %1264

1264:                                             ; preds = %1240, %1234
  %1265 = load ptr, ptr %20, align 8, !tbaa !5
  %1266 = load ptr, ptr %6, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.Parse, ptr %1266, i32 0, i32 18
  %1268 = load i32, ptr %1267, align 8, !tbaa !15
  %1269 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1265, i32 noundef 88, i32 noundef 1, i32 noundef %1268)
  call void @llvm.lifetime.end.p0(i64 2, ptr %64) #4
  br label %1270

1270:                                             ; preds = %1264
  %1271 = load i32, ptr %62, align 4, !tbaa !9
  %1272 = add nsw i32 %1271, 1
  store i32 %1272, ptr %62, align 4, !tbaa !9
  br label %1205, !llvm.loop !84

1273:                                             ; preds = %1205
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  br label %1274

1274:                                             ; preds = %1273, %1173
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  br label %1275

1275:                                             ; preds = %1274, %1170
  br label %2930

1276:                                             ; preds = %309
  %1277 = load ptr, ptr %12, align 8, !tbaa !5
  %1278 = icmp ne ptr %1277, null
  br i1 %1278, label %1279, label %1332

1279:                                             ; preds = %1276
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #4
  %1280 = load ptr, ptr %18, align 8, !tbaa !5
  %1281 = load ptr, ptr %12, align 8, !tbaa !5
  %1282 = load ptr, ptr %13, align 8, !tbaa !5
  %1283 = call ptr @sqlite3FindTable(ptr noundef %1280, ptr noundef %1281, ptr noundef %1282)
  store ptr %1283, ptr %66, align 8, !tbaa !5
  %1284 = load ptr, ptr %66, align 8, !tbaa !5
  %1285 = icmp ne ptr %1284, null
  br i1 %1285, label %1286, label %1331

1286:                                             ; preds = %1279
  %1287 = load ptr, ptr %6, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.Parse, ptr %1287, i32 0, i32 18
  store i32 5, ptr %1288, align 8, !tbaa !15
  %1289 = load ptr, ptr %6, align 8, !tbaa !5
  %1290 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3CodeVerifySchema(ptr noundef %1289, i32 noundef %1290)
  %1291 = load ptr, ptr %66, align 8, !tbaa !5
  %1292 = getelementptr inbounds %struct.Table, ptr %1291, i32 0, i32 2
  %1293 = load ptr, ptr %1292, align 8, !tbaa !85
  store ptr %1293, ptr %65, align 8, !tbaa !5
  store i32 0, ptr %67, align 4, !tbaa !9
  br label %1294

1294:                                             ; preds = %1324, %1286
  %1295 = load ptr, ptr %65, align 8, !tbaa !5
  %1296 = icmp ne ptr %1295, null
  br i1 %1296, label %1297, label %1330

1297:                                             ; preds = %1294
  call void @llvm.lifetime.start.p0(i64 24, ptr %68) #4
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %68, ptr align 16 @__const.sqlite3Pragma.azOrigin, i64 24, i1 false)
  %1298 = load ptr, ptr %20, align 8, !tbaa !5
  %1299 = load i32, ptr %67, align 4, !tbaa !9
  %1300 = load ptr, ptr %65, align 8, !tbaa !5
  %1301 = getelementptr inbounds %struct.Index, ptr %1300, i32 0, i32 0
  %1302 = load ptr, ptr %1301, align 8, !tbaa !86
  %1303 = load ptr, ptr %65, align 8, !tbaa !5
  %1304 = getelementptr inbounds %struct.Index, ptr %1303, i32 0, i32 15
  %1305 = load i8, ptr %1304, align 2, !tbaa !87
  %1306 = zext i8 %1305 to i32
  %1307 = icmp ne i32 %1306, 0
  %1308 = zext i1 %1307 to i32
  %1309 = load ptr, ptr %65, align 8, !tbaa !5
  %1310 = getelementptr inbounds %struct.Index, ptr %1309, i32 0, i32 16
  %1311 = load i8, ptr %1310, align 1
  %1312 = and i8 %1311, 3
  %1313 = zext i8 %1312 to i32
  %1314 = zext i32 %1313 to i64
  %1315 = getelementptr inbounds [3 x ptr], ptr %68, i64 0, i64 %1314
  %1316 = load ptr, ptr %1315, align 8, !tbaa !5
  %1317 = load ptr, ptr %65, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.Index, ptr %1317, i32 0, i32 9
  %1319 = load ptr, ptr %1318, align 8, !tbaa !88
  %1320 = icmp ne ptr %1319, null
  %1321 = zext i1 %1320 to i32
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %1298, i32 noundef 1, ptr noundef @.str.20, i32 noundef %1299, ptr noundef %1302, i32 noundef %1308, ptr noundef %1316, i32 noundef %1321)
  %1322 = load ptr, ptr %20, align 8, !tbaa !5
  %1323 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1322, i32 noundef 88, i32 noundef 1, i32 noundef 5)
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #4
  br label %1324

1324:                                             ; preds = %1297
  %1325 = load ptr, ptr %65, align 8, !tbaa !5
  %1326 = getelementptr inbounds %struct.Index, ptr %1325, i32 0, i32 5
  %1327 = load ptr, ptr %1326, align 8, !tbaa !89
  store ptr %1327, ptr %65, align 8, !tbaa !5
  %1328 = load i32, ptr %67, align 4, !tbaa !9
  %1329 = add nsw i32 %1328, 1
  store i32 %1329, ptr %67, align 4, !tbaa !9
  br label %1294, !llvm.loop !90

1330:                                             ; preds = %1294
  br label %1331

1331:                                             ; preds = %1330, %1279
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  br label %1332

1332:                                             ; preds = %1331, %1276
  br label %2930

1333:                                             ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #4
  %1334 = load ptr, ptr %6, align 8, !tbaa !5
  %1335 = getelementptr inbounds %struct.Parse, ptr %1334, i32 0, i32 18
  store i32 3, ptr %1335, align 8, !tbaa !15
  store i32 0, ptr %69, align 4, !tbaa !9
  br label %1336

1336:                                             ; preds = %1375, %1333
  %1337 = load i32, ptr %69, align 4, !tbaa !9
  %1338 = load ptr, ptr %18, align 8, !tbaa !5
  %1339 = getelementptr inbounds %struct.sqlite3, ptr %1338, i32 0, i32 5
  %1340 = load i32, ptr %1339, align 8, !tbaa !39
  %1341 = icmp slt i32 %1337, %1340
  br i1 %1341, label %1342, label %1378

1342:                                             ; preds = %1336
  %1343 = load ptr, ptr %18, align 8, !tbaa !5
  %1344 = getelementptr inbounds %struct.sqlite3, ptr %1343, i32 0, i32 4
  %1345 = load ptr, ptr %1344, align 8, !tbaa !16
  %1346 = load i32, ptr %69, align 4, !tbaa !9
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds %struct.Db, ptr %1345, i64 %1347
  %1349 = getelementptr inbounds %struct.Db, ptr %1348, i32 0, i32 1
  %1350 = load ptr, ptr %1349, align 8, !tbaa !37
  %1351 = icmp eq ptr %1350, null
  br i1 %1351, label %1352, label %1353

1352:                                             ; preds = %1342
  br label %1375

1353:                                             ; preds = %1342
  %1354 = load ptr, ptr %20, align 8, !tbaa !5
  %1355 = load i32, ptr %69, align 4, !tbaa !9
  %1356 = load ptr, ptr %18, align 8, !tbaa !5
  %1357 = getelementptr inbounds %struct.sqlite3, ptr %1356, i32 0, i32 4
  %1358 = load ptr, ptr %1357, align 8, !tbaa !16
  %1359 = load i32, ptr %69, align 4, !tbaa !9
  %1360 = sext i32 %1359 to i64
  %1361 = getelementptr inbounds %struct.Db, ptr %1358, i64 %1360
  %1362 = getelementptr inbounds %struct.Db, ptr %1361, i32 0, i32 0
  %1363 = load ptr, ptr %1362, align 8, !tbaa !24
  %1364 = load ptr, ptr %18, align 8, !tbaa !5
  %1365 = getelementptr inbounds %struct.sqlite3, ptr %1364, i32 0, i32 4
  %1366 = load ptr, ptr %1365, align 8, !tbaa !16
  %1367 = load i32, ptr %69, align 4, !tbaa !9
  %1368 = sext i32 %1367 to i64
  %1369 = getelementptr inbounds %struct.Db, ptr %1366, i64 %1368
  %1370 = getelementptr inbounds %struct.Db, ptr %1369, i32 0, i32 1
  %1371 = load ptr, ptr %1370, align 8, !tbaa !37
  %1372 = call ptr @sqlite3BtreeGetFilename(ptr noundef %1371)
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %1354, i32 noundef 1, ptr noundef @.str.21, i32 noundef %1355, ptr noundef %1363, ptr noundef %1372)
  %1373 = load ptr, ptr %20, align 8, !tbaa !5
  %1374 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1373, i32 noundef 88, i32 noundef 1, i32 noundef 3)
  br label %1375

1375:                                             ; preds = %1353, %1352
  %1376 = load i32, ptr %69, align 4, !tbaa !9
  %1377 = add nsw i32 %1376, 1
  store i32 %1377, ptr %69, align 4, !tbaa !9
  br label %1336, !llvm.loop !91

1378:                                             ; preds = %1336
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  br label %2930

1379:                                             ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #4
  store i32 0, ptr %70, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #4
  %1380 = load ptr, ptr %6, align 8, !tbaa !5
  %1381 = getelementptr inbounds %struct.Parse, ptr %1380, i32 0, i32 18
  store i32 2, ptr %1381, align 8, !tbaa !15
  %1382 = load ptr, ptr %18, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.sqlite3, ptr %1382, i32 0, i32 70
  %1384 = getelementptr inbounds %struct.Hash, ptr %1383, i32 0, i32 2
  %1385 = load ptr, ptr %1384, align 8, !tbaa !92
  store ptr %1385, ptr %71, align 8, !tbaa !5
  br label %1386

1386:                                             ; preds = %1401, %1379
  %1387 = load ptr, ptr %71, align 8, !tbaa !5
  %1388 = icmp ne ptr %1387, null
  br i1 %1388, label %1389, label %1405

1389:                                             ; preds = %1386
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #4
  %1390 = load ptr, ptr %71, align 8, !tbaa !5
  %1391 = getelementptr inbounds %struct.HashElem, ptr %1390, i32 0, i32 2
  %1392 = load ptr, ptr %1391, align 8, !tbaa !93
  store ptr %1392, ptr %72, align 8, !tbaa !5
  %1393 = load ptr, ptr %20, align 8, !tbaa !5
  %1394 = load i32, ptr %70, align 4, !tbaa !9
  %1395 = add nsw i32 %1394, 1
  store i32 %1395, ptr %70, align 4, !tbaa !9
  %1396 = load ptr, ptr %72, align 8, !tbaa !5
  %1397 = getelementptr inbounds %struct.CollSeq, ptr %1396, i32 0, i32 0
  %1398 = load ptr, ptr %1397, align 8, !tbaa !95
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %1393, i32 noundef 1, ptr noundef @.str.22, i32 noundef %1394, ptr noundef %1398)
  %1399 = load ptr, ptr %20, align 8, !tbaa !5
  %1400 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1399, i32 noundef 88, i32 noundef 1, i32 noundef 2)
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  br label %1401

1401:                                             ; preds = %1389
  %1402 = load ptr, ptr %71, align 8, !tbaa !5
  %1403 = getelementptr inbounds %struct.HashElem, ptr %1402, i32 0, i32 0
  %1404 = load ptr, ptr %1403, align 8, !tbaa !97
  store ptr %1404, ptr %71, align 8, !tbaa !5
  br label %1386, !llvm.loop !98

1405:                                             ; preds = %1386
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  br label %2930

1406:                                             ; preds = %309
  %1407 = load ptr, ptr %12, align 8, !tbaa !5
  %1408 = icmp ne ptr %1407, null
  br i1 %1408, label %1409, label %1489

1409:                                             ; preds = %1406
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #4
  %1410 = load ptr, ptr %18, align 8, !tbaa !5
  %1411 = load ptr, ptr %12, align 8, !tbaa !5
  %1412 = load ptr, ptr %13, align 8, !tbaa !5
  %1413 = call ptr @sqlite3FindTable(ptr noundef %1410, ptr noundef %1411, ptr noundef %1412)
  store ptr %1413, ptr %74, align 8, !tbaa !5
  %1414 = load ptr, ptr %74, align 8, !tbaa !5
  %1415 = icmp ne ptr %1414, null
  br i1 %1415, label %1416, label %1488

1416:                                             ; preds = %1409
  %1417 = load ptr, ptr %74, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.Table, ptr %1417, i32 0, i32 4
  %1419 = load ptr, ptr %1418, align 8, !tbaa !99
  store ptr %1419, ptr %73, align 8, !tbaa !5
  %1420 = load ptr, ptr %73, align 8, !tbaa !5
  %1421 = icmp ne ptr %1420, null
  br i1 %1421, label %1422, label %1487

1422:                                             ; preds = %1416
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #4
  store i32 0, ptr %75, align 4, !tbaa !9
  %1423 = load ptr, ptr %6, align 8, !tbaa !5
  %1424 = getelementptr inbounds %struct.Parse, ptr %1423, i32 0, i32 18
  store i32 8, ptr %1424, align 8, !tbaa !15
  %1425 = load ptr, ptr %6, align 8, !tbaa !5
  %1426 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3CodeVerifySchema(ptr noundef %1425, i32 noundef %1426)
  br label %1427

1427:                                             ; preds = %1480, %1422
  %1428 = load ptr, ptr %73, align 8, !tbaa !5
  %1429 = icmp ne ptr %1428, null
  br i1 %1429, label %1430, label %1486

1430:                                             ; preds = %1427
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #4
  store i32 0, ptr %76, align 4, !tbaa !9
  br label %1431

1431:                                             ; preds = %1477, %1430
  %1432 = load i32, ptr %76, align 4, !tbaa !9
  %1433 = load ptr, ptr %73, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.FKey, ptr %1433, i32 0, i32 5
  %1435 = load i32, ptr %1434, align 8, !tbaa !100
  %1436 = icmp slt i32 %1432, %1435
  br i1 %1436, label %1437, label %1480

1437:                                             ; preds = %1431
  %1438 = load ptr, ptr %20, align 8, !tbaa !5
  %1439 = load i32, ptr %75, align 4, !tbaa !9
  %1440 = load i32, ptr %76, align 4, !tbaa !9
  %1441 = load ptr, ptr %73, align 8, !tbaa !5
  %1442 = getelementptr inbounds %struct.FKey, ptr %1441, i32 0, i32 2
  %1443 = load ptr, ptr %1442, align 8, !tbaa !102
  %1444 = load ptr, ptr %74, align 8, !tbaa !5
  %1445 = getelementptr inbounds %struct.Table, ptr %1444, i32 0, i32 1
  %1446 = load ptr, ptr %1445, align 8, !tbaa !66
  %1447 = load ptr, ptr %73, align 8, !tbaa !5
  %1448 = getelementptr inbounds %struct.FKey, ptr %1447, i32 0, i32 9
  %1449 = load i32, ptr %76, align 4, !tbaa !9
  %1450 = sext i32 %1449 to i64
  %1451 = getelementptr inbounds [1 x %struct.sColMap], ptr %1448, i64 0, i64 %1450
  %1452 = getelementptr inbounds %struct.sColMap, ptr %1451, i32 0, i32 0
  %1453 = load i32, ptr %1452, align 8, !tbaa !103
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds %struct.Column, ptr %1446, i64 %1454
  %1456 = getelementptr inbounds %struct.Column, ptr %1455, i32 0, i32 0
  %1457 = load ptr, ptr %1456, align 8, !tbaa !75
  %1458 = load ptr, ptr %73, align 8, !tbaa !5
  %1459 = getelementptr inbounds %struct.FKey, ptr %1458, i32 0, i32 9
  %1460 = load i32, ptr %76, align 4, !tbaa !9
  %1461 = sext i32 %1460 to i64
  %1462 = getelementptr inbounds [1 x %struct.sColMap], ptr %1459, i64 0, i64 %1461
  %1463 = getelementptr inbounds %struct.sColMap, ptr %1462, i32 0, i32 1
  %1464 = load ptr, ptr %1463, align 8, !tbaa !105
  %1465 = load ptr, ptr %73, align 8, !tbaa !5
  %1466 = getelementptr inbounds %struct.FKey, ptr %1465, i32 0, i32 7
  %1467 = getelementptr inbounds [2 x i8], ptr %1466, i64 0, i64 1
  %1468 = load i8, ptr %1467, align 1, !tbaa !42
  %1469 = call ptr @actionName(i8 noundef zeroext %1468)
  %1470 = load ptr, ptr %73, align 8, !tbaa !5
  %1471 = getelementptr inbounds %struct.FKey, ptr %1470, i32 0, i32 7
  %1472 = getelementptr inbounds [2 x i8], ptr %1471, i64 0, i64 0
  %1473 = load i8, ptr %1472, align 1, !tbaa !42
  %1474 = call ptr @actionName(i8 noundef zeroext %1473)
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %1438, i32 noundef 1, ptr noundef @.str.23, i32 noundef %1439, i32 noundef %1440, ptr noundef %1443, ptr noundef %1457, ptr noundef %1464, ptr noundef %1469, ptr noundef %1474, ptr noundef @.str.24)
  %1475 = load ptr, ptr %20, align 8, !tbaa !5
  %1476 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1475, i32 noundef 88, i32 noundef 1, i32 noundef 8)
  br label %1477

1477:                                             ; preds = %1437
  %1478 = load i32, ptr %76, align 4, !tbaa !9
  %1479 = add nsw i32 %1478, 1
  store i32 %1479, ptr %76, align 4, !tbaa !9
  br label %1431, !llvm.loop !106

1480:                                             ; preds = %1431
  %1481 = load i32, ptr %75, align 4, !tbaa !9
  %1482 = add nsw i32 %1481, 1
  store i32 %1482, ptr %75, align 4, !tbaa !9
  %1483 = load ptr, ptr %73, align 8, !tbaa !5
  %1484 = getelementptr inbounds %struct.FKey, ptr %1483, i32 0, i32 1
  %1485 = load ptr, ptr %1484, align 8, !tbaa !107
  store ptr %1485, ptr %73, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  br label %1427, !llvm.loop !108

1486:                                             ; preds = %1427
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  br label %1487

1487:                                             ; preds = %1486, %1416
  br label %1488

1488:                                             ; preds = %1487, %1409
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  br label %1489

1489:                                             ; preds = %1488, %1406
  br label %2930

1490:                                             ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #4
  %1491 = load ptr, ptr %6, align 8, !tbaa !5
  %1492 = getelementptr inbounds %struct.Parse, ptr %1491, i32 0, i32 18
  %1493 = load i32, ptr %1492, align 8, !tbaa !15
  %1494 = add nsw i32 %1493, 1
  store i32 %1494, ptr %85, align 4, !tbaa !9
  %1495 = load ptr, ptr %6, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.Parse, ptr %1495, i32 0, i32 18
  %1497 = load i32, ptr %1496, align 8, !tbaa !15
  %1498 = add nsw i32 %1497, 4
  store i32 %1498, ptr %1496, align 8, !tbaa !15
  %1499 = load ptr, ptr %6, align 8, !tbaa !5
  %1500 = getelementptr inbounds %struct.Parse, ptr %1499, i32 0, i32 18
  %1501 = load i32, ptr %1500, align 8, !tbaa !15
  %1502 = add nsw i32 %1501, 1
  store i32 %1502, ptr %1500, align 8, !tbaa !15
  store i32 %1502, ptr %86, align 4, !tbaa !9
  %1503 = load ptr, ptr %6, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.Parse, ptr %1503, i32 0, i32 18
  %1505 = load i32, ptr %1504, align 8, !tbaa !15
  %1506 = add nsw i32 %1505, 1
  store i32 %1506, ptr %1504, align 8, !tbaa !15
  store i32 %1506, ptr %87, align 4, !tbaa !9
  %1507 = load ptr, ptr %6, align 8, !tbaa !5
  %1508 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3CodeVerifySchema(ptr noundef %1507, i32 noundef %1508)
  %1509 = load ptr, ptr %18, align 8, !tbaa !5
  %1510 = getelementptr inbounds %struct.sqlite3, ptr %1509, i32 0, i32 4
  %1511 = load ptr, ptr %1510, align 8, !tbaa !16
  %1512 = load i32, ptr %16, align 4, !tbaa !9
  %1513 = sext i32 %1512 to i64
  %1514 = getelementptr inbounds %struct.Db, ptr %1511, i64 %1513
  %1515 = getelementptr inbounds %struct.Db, ptr %1514, i32 0, i32 4
  %1516 = load ptr, ptr %1515, align 8, !tbaa !34
  %1517 = getelementptr inbounds %struct.Schema, ptr %1516, i32 0, i32 2
  %1518 = getelementptr inbounds %struct.Hash, ptr %1517, i32 0, i32 2
  %1519 = load ptr, ptr %1518, align 8, !tbaa !109
  store ptr %1519, ptr %83, align 8, !tbaa !5
  br label %1520

1520:                                             ; preds = %1818, %1546, %1490
  %1521 = load ptr, ptr %83, align 8, !tbaa !5
  %1522 = icmp ne ptr %1521, null
  br i1 %1522, label %1523, label %1825

1523:                                             ; preds = %1520
  %1524 = load ptr, ptr %12, align 8, !tbaa !5
  %1525 = icmp ne ptr %1524, null
  br i1 %1525, label %1526, label %1531

1526:                                             ; preds = %1523
  %1527 = load ptr, ptr %6, align 8, !tbaa !5
  %1528 = load ptr, ptr %12, align 8, !tbaa !5
  %1529 = load ptr, ptr %13, align 8, !tbaa !5
  %1530 = call ptr @sqlite3LocateTable(ptr noundef %1527, i32 noundef 0, ptr noundef %1528, ptr noundef %1529)
  store ptr %1530, ptr %78, align 8, !tbaa !5
  store ptr null, ptr %83, align 8, !tbaa !5
  br label %1538

1531:                                             ; preds = %1523
  %1532 = load ptr, ptr %83, align 8, !tbaa !5
  %1533 = getelementptr inbounds %struct.HashElem, ptr %1532, i32 0, i32 2
  %1534 = load ptr, ptr %1533, align 8, !tbaa !93
  store ptr %1534, ptr %78, align 8, !tbaa !5
  %1535 = load ptr, ptr %83, align 8, !tbaa !5
  %1536 = getelementptr inbounds %struct.HashElem, ptr %1535, i32 0, i32 0
  %1537 = load ptr, ptr %1536, align 8, !tbaa !97
  store ptr %1537, ptr %83, align 8, !tbaa !5
  br label %1538

1538:                                             ; preds = %1531, %1526
  %1539 = load ptr, ptr %78, align 8, !tbaa !5
  %1540 = icmp eq ptr %1539, null
  br i1 %1540, label %1546, label %1541

1541:                                             ; preds = %1538
  %1542 = load ptr, ptr %78, align 8, !tbaa !5
  %1543 = getelementptr inbounds %struct.Table, ptr %1542, i32 0, i32 4
  %1544 = load ptr, ptr %1543, align 8, !tbaa !99
  %1545 = icmp eq ptr %1544, null
  br i1 %1545, label %1546, label %1547

1546:                                             ; preds = %1541, %1538
  br label %1520, !llvm.loop !110

1547:                                             ; preds = %1541
  %1548 = load ptr, ptr %6, align 8, !tbaa !5
  %1549 = load i32, ptr %16, align 4, !tbaa !9
  %1550 = load ptr, ptr %78, align 8, !tbaa !5
  %1551 = getelementptr inbounds %struct.Table, ptr %1550, i32 0, i32 7
  %1552 = load i32, ptr %1551, align 8, !tbaa !111
  %1553 = load ptr, ptr %78, align 8, !tbaa !5
  %1554 = getelementptr inbounds %struct.Table, ptr %1553, i32 0, i32 0
  %1555 = load ptr, ptr %1554, align 8, !tbaa !112
  call void @sqlite3TableLock(ptr noundef %1548, i32 noundef %1549, i32 noundef %1552, i8 noundef zeroext 0, ptr noundef %1555)
  %1556 = load ptr, ptr %78, align 8, !tbaa !5
  %1557 = getelementptr inbounds %struct.Table, ptr %1556, i32 0, i32 11
  %1558 = load i16, ptr %1557, align 2, !tbaa !68
  %1559 = sext i16 %1558 to i32
  %1560 = load i32, ptr %87, align 4, !tbaa !9
  %1561 = add nsw i32 %1559, %1560
  %1562 = load ptr, ptr %6, align 8, !tbaa !5
  %1563 = getelementptr inbounds %struct.Parse, ptr %1562, i32 0, i32 18
  %1564 = load i32, ptr %1563, align 8, !tbaa !15
  %1565 = icmp sgt i32 %1561, %1564
  br i1 %1565, label %1566, label %1575

1566:                                             ; preds = %1547
  %1567 = load ptr, ptr %78, align 8, !tbaa !5
  %1568 = getelementptr inbounds %struct.Table, ptr %1567, i32 0, i32 11
  %1569 = load i16, ptr %1568, align 2, !tbaa !68
  %1570 = sext i16 %1569 to i32
  %1571 = load i32, ptr %87, align 4, !tbaa !9
  %1572 = add nsw i32 %1570, %1571
  %1573 = load ptr, ptr %6, align 8, !tbaa !5
  %1574 = getelementptr inbounds %struct.Parse, ptr %1573, i32 0, i32 18
  store i32 %1572, ptr %1574, align 8, !tbaa !15
  br label %1575

1575:                                             ; preds = %1566, %1547
  %1576 = load ptr, ptr %6, align 8, !tbaa !5
  %1577 = load i32, ptr %16, align 4, !tbaa !9
  %1578 = load ptr, ptr %78, align 8, !tbaa !5
  call void @sqlite3OpenTable(ptr noundef %1576, i32 noundef 0, i32 noundef %1577, ptr noundef %1578, i32 noundef 105)
  %1579 = load ptr, ptr %20, align 8, !tbaa !5
  %1580 = load i32, ptr %85, align 4, !tbaa !9
  %1581 = load ptr, ptr %78, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.Table, ptr %1581, i32 0, i32 0
  %1583 = load ptr, ptr %1582, align 8, !tbaa !112
  %1584 = call i32 @sqlite3VdbeLoadString(ptr noundef %1579, i32 noundef %1580, ptr noundef %1583)
  store i32 1, ptr %81, align 4, !tbaa !9
  %1585 = load ptr, ptr %78, align 8, !tbaa !5
  %1586 = getelementptr inbounds %struct.Table, ptr %1585, i32 0, i32 4
  %1587 = load ptr, ptr %1586, align 8, !tbaa !99
  store ptr %1587, ptr %77, align 8, !tbaa !5
  br label %1588

1588:                                             ; preds = %1637, %1575
  %1589 = load ptr, ptr %77, align 8, !tbaa !5
  %1590 = icmp ne ptr %1589, null
  br i1 %1590, label %1591, label %1643

1591:                                             ; preds = %1588
  %1592 = load ptr, ptr %18, align 8, !tbaa !5
  %1593 = load ptr, ptr %77, align 8, !tbaa !5
  %1594 = getelementptr inbounds %struct.FKey, ptr %1593, i32 0, i32 2
  %1595 = load ptr, ptr %1594, align 8, !tbaa !102
  %1596 = load ptr, ptr %13, align 8, !tbaa !5
  %1597 = call ptr @sqlite3FindTable(ptr noundef %1592, ptr noundef %1595, ptr noundef %1596)
  store ptr %1597, ptr %79, align 8, !tbaa !5
  %1598 = load ptr, ptr %79, align 8, !tbaa !5
  %1599 = icmp eq ptr %1598, null
  br i1 %1599, label %1600, label %1601

1600:                                             ; preds = %1591
  br label %1637

1601:                                             ; preds = %1591
  store ptr null, ptr %80, align 8, !tbaa !5
  %1602 = load ptr, ptr %6, align 8, !tbaa !5
  %1603 = load i32, ptr %16, align 4, !tbaa !9
  %1604 = load ptr, ptr %79, align 8, !tbaa !5
  %1605 = getelementptr inbounds %struct.Table, ptr %1604, i32 0, i32 7
  %1606 = load i32, ptr %1605, align 8, !tbaa !111
  %1607 = load ptr, ptr %79, align 8, !tbaa !5
  %1608 = getelementptr inbounds %struct.Table, ptr %1607, i32 0, i32 0
  %1609 = load ptr, ptr %1608, align 8, !tbaa !112
  call void @sqlite3TableLock(ptr noundef %1602, i32 noundef %1603, i32 noundef %1606, i8 noundef zeroext 0, ptr noundef %1609)
  %1610 = load ptr, ptr %6, align 8, !tbaa !5
  %1611 = load ptr, ptr %79, align 8, !tbaa !5
  %1612 = load ptr, ptr %77, align 8, !tbaa !5
  %1613 = call i32 @sqlite3FkLocateIndex(ptr noundef %1610, ptr noundef %1611, ptr noundef %1612, ptr noundef %80, ptr noundef null)
  store i32 %1613, ptr %84, align 4, !tbaa !9
  %1614 = load i32, ptr %84, align 4, !tbaa !9
  %1615 = icmp eq i32 %1614, 0
  br i1 %1615, label %1616, label %1635

1616:                                             ; preds = %1601
  %1617 = load ptr, ptr %80, align 8, !tbaa !5
  %1618 = icmp eq ptr %1617, null
  br i1 %1618, label %1619, label %1624

1619:                                             ; preds = %1616
  %1620 = load ptr, ptr %6, align 8, !tbaa !5
  %1621 = load i32, ptr %81, align 4, !tbaa !9
  %1622 = load i32, ptr %16, align 4, !tbaa !9
  %1623 = load ptr, ptr %79, align 8, !tbaa !5
  call void @sqlite3OpenTable(ptr noundef %1620, i32 noundef %1621, i32 noundef %1622, ptr noundef %1623, i32 noundef 105)
  br label %1634

1624:                                             ; preds = %1616
  %1625 = load ptr, ptr %20, align 8, !tbaa !5
  %1626 = load i32, ptr %81, align 4, !tbaa !9
  %1627 = load ptr, ptr %80, align 8, !tbaa !5
  %1628 = getelementptr inbounds %struct.Index, ptr %1627, i32 0, i32 11
  %1629 = load i32, ptr %1628, align 8, !tbaa !113
  %1630 = load i32, ptr %16, align 4, !tbaa !9
  %1631 = call i32 @sqlite3VdbeAddOp3(ptr noundef %1625, i32 noundef 105, i32 noundef %1626, i32 noundef %1629, i32 noundef %1630)
  %1632 = load ptr, ptr %6, align 8, !tbaa !5
  %1633 = load ptr, ptr %80, align 8, !tbaa !5
  call void @sqlite3VdbeSetP4KeyInfo(ptr noundef %1632, ptr noundef %1633)
  br label %1634

1634:                                             ; preds = %1624, %1619
  br label %1636

1635:                                             ; preds = %1601
  store ptr null, ptr %83, align 8, !tbaa !5
  br label %1643

1636:                                             ; preds = %1634
  br label %1637

1637:                                             ; preds = %1636, %1600
  %1638 = load i32, ptr %81, align 4, !tbaa !9
  %1639 = add nsw i32 %1638, 1
  store i32 %1639, ptr %81, align 4, !tbaa !9
  %1640 = load ptr, ptr %77, align 8, !tbaa !5
  %1641 = getelementptr inbounds %struct.FKey, ptr %1640, i32 0, i32 1
  %1642 = load ptr, ptr %1641, align 8, !tbaa !107
  store ptr %1642, ptr %77, align 8, !tbaa !5
  br label %1588, !llvm.loop !114

1643:                                             ; preds = %1635, %1588
  %1644 = load ptr, ptr %77, align 8, !tbaa !5
  %1645 = icmp ne ptr %1644, null
  br i1 %1645, label %1646, label %1647

1646:                                             ; preds = %1643
  br label %1825

1647:                                             ; preds = %1643
  %1648 = load ptr, ptr %6, align 8, !tbaa !5
  %1649 = getelementptr inbounds %struct.Parse, ptr %1648, i32 0, i32 17
  %1650 = load i32, ptr %1649, align 4, !tbaa !115
  %1651 = load i32, ptr %81, align 4, !tbaa !9
  %1652 = icmp slt i32 %1650, %1651
  br i1 %1652, label %1653, label %1657

1653:                                             ; preds = %1647
  %1654 = load i32, ptr %81, align 4, !tbaa !9
  %1655 = load ptr, ptr %6, align 8, !tbaa !5
  %1656 = getelementptr inbounds %struct.Parse, ptr %1655, i32 0, i32 17
  store i32 %1654, ptr %1656, align 4, !tbaa !115
  br label %1657

1657:                                             ; preds = %1653, %1647
  %1658 = load ptr, ptr %20, align 8, !tbaa !5
  %1659 = call i32 @sqlite3VdbeAddOp1(ptr noundef %1658, i32 noundef 58, i32 noundef 0)
  store i32 %1659, ptr %88, align 4, !tbaa !9
  store i32 1, ptr %81, align 4, !tbaa !9
  %1660 = load ptr, ptr %78, align 8, !tbaa !5
  %1661 = getelementptr inbounds %struct.Table, ptr %1660, i32 0, i32 4
  %1662 = load ptr, ptr %1661, align 8, !tbaa !99
  store ptr %1662, ptr %77, align 8, !tbaa !5
  br label %1663

1663:                                             ; preds = %1812, %1657
  %1664 = load ptr, ptr %77, align 8, !tbaa !5
  %1665 = icmp ne ptr %1664, null
  br i1 %1665, label %1666, label %1818

1666:                                             ; preds = %1663
  %1667 = load ptr, ptr %18, align 8, !tbaa !5
  %1668 = load ptr, ptr %77, align 8, !tbaa !5
  %1669 = getelementptr inbounds %struct.FKey, ptr %1668, i32 0, i32 2
  %1670 = load ptr, ptr %1669, align 8, !tbaa !102
  %1671 = load ptr, ptr %13, align 8, !tbaa !5
  %1672 = call ptr @sqlite3FindTable(ptr noundef %1667, ptr noundef %1670, ptr noundef %1671)
  store ptr %1672, ptr %79, align 8, !tbaa !5
  store ptr null, ptr %80, align 8, !tbaa !5
  store ptr null, ptr %90, align 8, !tbaa !5
  %1673 = load ptr, ptr %79, align 8, !tbaa !5
  %1674 = icmp ne ptr %1673, null
  br i1 %1674, label %1675, label %1680

1675:                                             ; preds = %1666
  %1676 = load ptr, ptr %6, align 8, !tbaa !5
  %1677 = load ptr, ptr %79, align 8, !tbaa !5
  %1678 = load ptr, ptr %77, align 8, !tbaa !5
  %1679 = call i32 @sqlite3FkLocateIndex(ptr noundef %1676, ptr noundef %1677, ptr noundef %1678, ptr noundef %80, ptr noundef %90)
  store i32 %1679, ptr %84, align 4, !tbaa !9
  br label %1680

1680:                                             ; preds = %1675, %1666
  %1681 = load ptr, ptr %20, align 8, !tbaa !5
  %1682 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %1681)
  store i32 %1682, ptr %89, align 4, !tbaa !9
  %1683 = load ptr, ptr %79, align 8, !tbaa !5
  %1684 = icmp ne ptr %1683, null
  br i1 %1684, label %1685, label %1729

1685:                                             ; preds = %1680
  %1686 = load ptr, ptr %80, align 8, !tbaa !5
  %1687 = icmp eq ptr %1686, null
  br i1 %1687, label %1688, label %1729

1688:                                             ; preds = %1685
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #4
  %1689 = load ptr, ptr %77, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.FKey, ptr %1689, i32 0, i32 9
  %1691 = getelementptr inbounds [1 x %struct.sColMap], ptr %1690, i64 0, i64 0
  %1692 = getelementptr inbounds %struct.sColMap, ptr %1691, i32 0, i32 0
  %1693 = load i32, ptr %1692, align 8, !tbaa !103
  store i32 %1693, ptr %91, align 4, !tbaa !9
  %1694 = load i32, ptr %91, align 4, !tbaa !9
  %1695 = load ptr, ptr %78, align 8, !tbaa !5
  %1696 = getelementptr inbounds %struct.Table, ptr %1695, i32 0, i32 10
  %1697 = load i16, ptr %1696, align 4, !tbaa !116
  %1698 = sext i16 %1697 to i32
  %1699 = icmp ne i32 %1694, %1698
  br i1 %1699, label %1700, label %1713

1700:                                             ; preds = %1688
  %1701 = load ptr, ptr %20, align 8, !tbaa !5
  %1702 = load i32, ptr %91, align 4, !tbaa !9
  %1703 = load i32, ptr %87, align 4, !tbaa !9
  %1704 = call i32 @sqlite3VdbeAddOp3(ptr noundef %1701, i32 noundef 98, i32 noundef 0, i32 noundef %1702, i32 noundef %1703)
  %1705 = load ptr, ptr %20, align 8, !tbaa !5
  %1706 = load ptr, ptr %78, align 8, !tbaa !5
  %1707 = load i32, ptr %91, align 4, !tbaa !9
  %1708 = load i32, ptr %87, align 4, !tbaa !9
  call void @sqlite3ColumnDefault(ptr noundef %1705, ptr noundef %1706, i32 noundef %1707, i32 noundef %1708)
  %1709 = load ptr, ptr %20, align 8, !tbaa !5
  %1710 = load i32, ptr %87, align 4, !tbaa !9
  %1711 = load i32, ptr %89, align 4, !tbaa !9
  %1712 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1709, i32 noundef 34, i32 noundef %1710, i32 noundef %1711)
  br label %1717

1713:                                             ; preds = %1688
  %1714 = load ptr, ptr %20, align 8, !tbaa !5
  %1715 = load i32, ptr %87, align 4, !tbaa !9
  %1716 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1714, i32 noundef 123, i32 noundef 0, i32 noundef %1715)
  br label %1717

1717:                                             ; preds = %1713, %1700
  %1718 = load ptr, ptr %20, align 8, !tbaa !5
  %1719 = load i32, ptr %81, align 4, !tbaa !9
  %1720 = load i32, ptr %87, align 4, !tbaa !9
  %1721 = call i32 @sqlite3VdbeAddOp3(ptr noundef %1718, i32 noundef 32, i32 noundef %1719, i32 noundef 0, i32 noundef %1720)
  %1722 = load ptr, ptr %20, align 8, !tbaa !5
  %1723 = load i32, ptr %89, align 4, !tbaa !9
  %1724 = call i32 @sqlite3VdbeGoto(ptr noundef %1722, i32 noundef %1723)
  %1725 = load ptr, ptr %20, align 8, !tbaa !5
  %1726 = load ptr, ptr %20, align 8, !tbaa !5
  %1727 = call i32 @sqlite3VdbeCurrentAddr(ptr noundef %1726)
  %1728 = sub nsw i32 %1727, 2
  call void @sqlite3VdbeJumpHere(ptr noundef %1725, i32 noundef %1728)
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #4
  br label %1792

1729:                                             ; preds = %1685, %1680
  store i32 0, ptr %82, align 4, !tbaa !9
  br label %1730

1730:                                             ; preds = %1766, %1729
  %1731 = load i32, ptr %82, align 4, !tbaa !9
  %1732 = load ptr, ptr %77, align 8, !tbaa !5
  %1733 = getelementptr inbounds %struct.FKey, ptr %1732, i32 0, i32 5
  %1734 = load i32, ptr %1733, align 8, !tbaa !100
  %1735 = icmp slt i32 %1731, %1734
  br i1 %1735, label %1736, label %1769

1736:                                             ; preds = %1730
  %1737 = load ptr, ptr %20, align 8, !tbaa !5
  %1738 = load ptr, ptr %78, align 8, !tbaa !5
  %1739 = load ptr, ptr %90, align 8, !tbaa !5
  %1740 = icmp ne ptr %1739, null
  br i1 %1740, label %1741, label %1747

1741:                                             ; preds = %1736
  %1742 = load ptr, ptr %90, align 8, !tbaa !5
  %1743 = load i32, ptr %82, align 4, !tbaa !9
  %1744 = sext i32 %1743 to i64
  %1745 = getelementptr inbounds i32, ptr %1742, i64 %1744
  %1746 = load i32, ptr %1745, align 4, !tbaa !9
  br label %1755

1747:                                             ; preds = %1736
  %1748 = load ptr, ptr %77, align 8, !tbaa !5
  %1749 = getelementptr inbounds %struct.FKey, ptr %1748, i32 0, i32 9
  %1750 = load i32, ptr %82, align 4, !tbaa !9
  %1751 = sext i32 %1750 to i64
  %1752 = getelementptr inbounds [1 x %struct.sColMap], ptr %1749, i64 0, i64 %1751
  %1753 = getelementptr inbounds %struct.sColMap, ptr %1752, i32 0, i32 0
  %1754 = load i32, ptr %1753, align 8, !tbaa !103
  br label %1755

1755:                                             ; preds = %1747, %1741
  %1756 = phi i32 [ %1746, %1741 ], [ %1754, %1747 ]
  %1757 = load i32, ptr %87, align 4, !tbaa !9
  %1758 = load i32, ptr %82, align 4, !tbaa !9
  %1759 = add nsw i32 %1757, %1758
  call void @sqlite3ExprCodeGetColumnOfTable(ptr noundef %1737, ptr noundef %1738, i32 noundef 0, i32 noundef %1756, i32 noundef %1759)
  %1760 = load ptr, ptr %20, align 8, !tbaa !5
  %1761 = load i32, ptr %87, align 4, !tbaa !9
  %1762 = load i32, ptr %82, align 4, !tbaa !9
  %1763 = add nsw i32 %1761, %1762
  %1764 = load i32, ptr %89, align 4, !tbaa !9
  %1765 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1760, i32 noundef 34, i32 noundef %1763, i32 noundef %1764)
  br label %1766

1766:                                             ; preds = %1755
  %1767 = load i32, ptr %82, align 4, !tbaa !9
  %1768 = add nsw i32 %1767, 1
  store i32 %1768, ptr %82, align 4, !tbaa !9
  br label %1730, !llvm.loop !117

1769:                                             ; preds = %1730
  %1770 = load ptr, ptr %79, align 8, !tbaa !5
  %1771 = icmp ne ptr %1770, null
  br i1 %1771, label %1772, label %1791

1772:                                             ; preds = %1769
  %1773 = load ptr, ptr %20, align 8, !tbaa !5
  %1774 = load i32, ptr %87, align 4, !tbaa !9
  %1775 = load ptr, ptr %77, align 8, !tbaa !5
  %1776 = getelementptr inbounds %struct.FKey, ptr %1775, i32 0, i32 5
  %1777 = load i32, ptr %1776, align 8, !tbaa !100
  %1778 = load i32, ptr %86, align 4, !tbaa !9
  %1779 = load ptr, ptr %18, align 8, !tbaa !5
  %1780 = load ptr, ptr %80, align 8, !tbaa !5
  %1781 = call ptr @sqlite3IndexAffinityStr(ptr noundef %1779, ptr noundef %1780)
  %1782 = load ptr, ptr %77, align 8, !tbaa !5
  %1783 = getelementptr inbounds %struct.FKey, ptr %1782, i32 0, i32 5
  %1784 = load i32, ptr %1783, align 8, !tbaa !100
  %1785 = call i32 @sqlite3VdbeAddOp4(ptr noundef %1773, i32 noundef 100, i32 noundef %1774, i32 noundef %1777, i32 noundef %1778, ptr noundef %1781, i32 noundef %1784)
  %1786 = load ptr, ptr %20, align 8, !tbaa !5
  %1787 = load i32, ptr %81, align 4, !tbaa !9
  %1788 = load i32, ptr %89, align 4, !tbaa !9
  %1789 = load i32, ptr %86, align 4, !tbaa !9
  %1790 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %1786, i32 noundef 31, i32 noundef %1787, i32 noundef %1788, i32 noundef %1789, i32 noundef 0)
  br label %1791

1791:                                             ; preds = %1772, %1769
  br label %1792

1792:                                             ; preds = %1791, %1717
  %1793 = load ptr, ptr %20, align 8, !tbaa !5
  %1794 = load i32, ptr %85, align 4, !tbaa !9
  %1795 = add nsw i32 %1794, 1
  %1796 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1793, i32 noundef 123, i32 noundef 0, i32 noundef %1795)
  %1797 = load ptr, ptr %20, align 8, !tbaa !5
  %1798 = load i32, ptr %85, align 4, !tbaa !9
  %1799 = add nsw i32 %1798, 2
  %1800 = load ptr, ptr %77, align 8, !tbaa !5
  %1801 = getelementptr inbounds %struct.FKey, ptr %1800, i32 0, i32 2
  %1802 = load ptr, ptr %1801, align 8, !tbaa !102
  %1803 = load i32, ptr %81, align 4, !tbaa !9
  %1804 = sub nsw i32 %1803, 1
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %1797, i32 noundef %1799, ptr noundef @.str.25, ptr noundef %1802, i32 noundef %1804)
  %1805 = load ptr, ptr %20, align 8, !tbaa !5
  %1806 = load i32, ptr %85, align 4, !tbaa !9
  %1807 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1805, i32 noundef 88, i32 noundef %1806, i32 noundef 4)
  %1808 = load ptr, ptr %20, align 8, !tbaa !5
  %1809 = load i32, ptr %89, align 4, !tbaa !9
  call void @sqlite3VdbeResolveLabel(ptr noundef %1808, i32 noundef %1809)
  %1810 = load ptr, ptr %18, align 8, !tbaa !5
  %1811 = load ptr, ptr %90, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %1810, ptr noundef %1811)
  br label %1812

1812:                                             ; preds = %1792
  %1813 = load i32, ptr %81, align 4, !tbaa !9
  %1814 = add nsw i32 %1813, 1
  store i32 %1814, ptr %81, align 4, !tbaa !9
  %1815 = load ptr, ptr %77, align 8, !tbaa !5
  %1816 = getelementptr inbounds %struct.FKey, ptr %1815, i32 0, i32 1
  %1817 = load ptr, ptr %1816, align 8, !tbaa !107
  store ptr %1817, ptr %77, align 8, !tbaa !5
  br label %1663, !llvm.loop !118

1818:                                             ; preds = %1663
  %1819 = load ptr, ptr %20, align 8, !tbaa !5
  %1820 = load i32, ptr %88, align 4, !tbaa !9
  %1821 = add nsw i32 %1820, 1
  %1822 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1819, i32 noundef 7, i32 noundef 0, i32 noundef %1821)
  %1823 = load ptr, ptr %20, align 8, !tbaa !5
  %1824 = load i32, ptr %88, align 4, !tbaa !9
  call void @sqlite3VdbeJumpHere(ptr noundef %1823, i32 noundef %1824)
  br label %1520, !llvm.loop !110

1825:                                             ; preds = %1646, %1520
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  br label %2930

1826:                                             ; preds = %309
  %1827 = load ptr, ptr %12, align 8, !tbaa !5
  %1828 = icmp ne ptr %1827, null
  br i1 %1828, label %1829, label %1834

1829:                                             ; preds = %1826
  %1830 = load ptr, ptr %18, align 8, !tbaa !5
  %1831 = load ptr, ptr %12, align 8, !tbaa !5
  %1832 = call zeroext i8 @sqlite3GetBoolean(ptr noundef %1831, i8 noundef zeroext 0)
  %1833 = zext i8 %1832 to i32
  call void @sqlite3RegisterLikeFunctions(ptr noundef %1830, i32 noundef %1833)
  br label %1834

1834:                                             ; preds = %1829, %1826
  br label %2930

1835:                                             ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #4
  %1836 = load ptr, ptr %11, align 8, !tbaa !5
  %1837 = getelementptr inbounds i8, ptr %1836, i64 0
  %1838 = load i8, ptr %1837, align 1, !tbaa !42
  %1839 = zext i8 %1838 to i64
  %1840 = getelementptr inbounds [0 x i8], ptr @sqlite3UpperToLower, i64 0, i64 %1839
  %1841 = load i8, ptr %1840, align 1, !tbaa !42
  %1842 = zext i8 %1841 to i32
  %1843 = icmp eq i32 %1842, 113
  %1844 = zext i1 %1843 to i32
  store i32 %1844, ptr %96, align 4, !tbaa !9
  %1845 = load ptr, ptr %8, align 8, !tbaa !5
  %1846 = getelementptr inbounds %struct.Token, ptr %1845, i32 0, i32 0
  %1847 = load ptr, ptr %1846, align 8, !tbaa !119
  %1848 = icmp eq ptr %1847, null
  br i1 %1848, label %1849, label %1850

1849:                                             ; preds = %1835
  store i32 -1, ptr %16, align 4, !tbaa !9
  br label %1850

1850:                                             ; preds = %1849, %1835
  %1851 = load ptr, ptr %6, align 8, !tbaa !5
  %1852 = getelementptr inbounds %struct.Parse, ptr %1851, i32 0, i32 18
  store i32 6, ptr %1852, align 8, !tbaa !15
  store i32 100, ptr %95, align 4, !tbaa !9
  %1853 = load ptr, ptr %12, align 8, !tbaa !5
  %1854 = icmp ne ptr %1853, null
  br i1 %1854, label %1855, label %1862

1855:                                             ; preds = %1850
  %1856 = load ptr, ptr %12, align 8, !tbaa !5
  %1857 = call i32 @sqlite3GetInt32(ptr noundef %1856, ptr noundef %95)
  %1858 = load i32, ptr %95, align 4, !tbaa !9
  %1859 = icmp sle i32 %1858, 0
  br i1 %1859, label %1860, label %1861

1860:                                             ; preds = %1855
  store i32 100, ptr %95, align 4, !tbaa !9
  br label %1861

1861:                                             ; preds = %1860, %1855
  br label %1862

1862:                                             ; preds = %1861, %1850
  %1863 = load ptr, ptr %20, align 8, !tbaa !5
  %1864 = load i32, ptr %95, align 4, !tbaa !9
  %1865 = sub nsw i32 %1864, 1
  %1866 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1863, i32 noundef 77, i32 noundef %1865, i32 noundef 1)
  store i32 0, ptr %92, align 4, !tbaa !9
  br label %1867

1867:                                             ; preds = %2476, %1862
  %1868 = load i32, ptr %92, align 4, !tbaa !9
  %1869 = load ptr, ptr %18, align 8, !tbaa !5
  %1870 = getelementptr inbounds %struct.sqlite3, ptr %1869, i32 0, i32 5
  %1871 = load i32, ptr %1870, align 8, !tbaa !39
  %1872 = icmp slt i32 %1868, %1871
  br i1 %1872, label %1873, label %2479

1873:                                             ; preds = %1867
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #4
  store i32 0, ptr %100, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #4
  store i32 0, ptr %101, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #4
  %1874 = load i32, ptr %16, align 4, !tbaa !9
  %1875 = icmp sge i32 %1874, 0
  br i1 %1875, label %1876, label %1881

1876:                                             ; preds = %1873
  %1877 = load i32, ptr %92, align 4, !tbaa !9
  %1878 = load i32, ptr %16, align 4, !tbaa !9
  %1879 = icmp ne i32 %1877, %1878
  br i1 %1879, label %1880, label %1881

1880:                                             ; preds = %1876
  store i32 55, ptr %22, align 4
  br label %2473

1881:                                             ; preds = %1876, %1873
  %1882 = load ptr, ptr %6, align 8, !tbaa !5
  %1883 = load i32, ptr %92, align 4, !tbaa !9
  call void @sqlite3CodeVerifySchema(ptr noundef %1882, i32 noundef %1883)
  %1884 = load ptr, ptr %18, align 8, !tbaa !5
  %1885 = getelementptr inbounds %struct.sqlite3, ptr %1884, i32 0, i32 4
  %1886 = load ptr, ptr %1885, align 8, !tbaa !16
  %1887 = load i32, ptr %92, align 4, !tbaa !9
  %1888 = sext i32 %1887 to i64
  %1889 = getelementptr inbounds %struct.Db, ptr %1886, i64 %1888
  %1890 = getelementptr inbounds %struct.Db, ptr %1889, i32 0, i32 4
  %1891 = load ptr, ptr %1890, align 8, !tbaa !34
  %1892 = getelementptr inbounds %struct.Schema, ptr %1891, i32 0, i32 2
  store ptr %1892, ptr %98, align 8, !tbaa !5
  store i32 0, ptr %100, align 4, !tbaa !9
  %1893 = load ptr, ptr %98, align 8, !tbaa !5
  %1894 = getelementptr inbounds %struct.Hash, ptr %1893, i32 0, i32 2
  %1895 = load ptr, ptr %1894, align 8, !tbaa !120
  store ptr %1895, ptr %97, align 8, !tbaa !5
  br label %1896

1896:                                             ; preds = %1934, %1881
  %1897 = load ptr, ptr %97, align 8, !tbaa !5
  %1898 = icmp ne ptr %1897, null
  br i1 %1898, label %1899, label %1938

1899:                                             ; preds = %1896
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #4
  %1900 = load ptr, ptr %97, align 8, !tbaa !5
  %1901 = getelementptr inbounds %struct.HashElem, ptr %1900, i32 0, i32 2
  %1902 = load ptr, ptr %1901, align 8, !tbaa !93
  store ptr %1902, ptr %103, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #4
  %1903 = load ptr, ptr %103, align 8, !tbaa !5
  %1904 = getelementptr inbounds %struct.Table, ptr %1903, i32 0, i32 9
  %1905 = load i32, ptr %1904, align 8, !tbaa !121
  %1906 = and i32 %1905, 32
  %1907 = icmp eq i32 %1906, 0
  br i1 %1907, label %1908, label %1911

1908:                                             ; preds = %1899
  %1909 = load i32, ptr %100, align 4, !tbaa !9
  %1910 = add nsw i32 %1909, 1
  store i32 %1910, ptr %100, align 4, !tbaa !9
  br label %1911

1911:                                             ; preds = %1908, %1899
  store i32 0, ptr %102, align 4, !tbaa !9
  %1912 = load ptr, ptr %103, align 8, !tbaa !5
  %1913 = getelementptr inbounds %struct.Table, ptr %1912, i32 0, i32 2
  %1914 = load ptr, ptr %1913, align 8, !tbaa !85
  store ptr %1914, ptr %104, align 8, !tbaa !5
  br label %1915

1915:                                             ; preds = %1921, %1911
  %1916 = load ptr, ptr %104, align 8, !tbaa !5
  %1917 = icmp ne ptr %1916, null
  br i1 %1917, label %1918, label %1927

1918:                                             ; preds = %1915
  %1919 = load i32, ptr %100, align 4, !tbaa !9
  %1920 = add nsw i32 %1919, 1
  store i32 %1920, ptr %100, align 4, !tbaa !9
  br label %1921

1921:                                             ; preds = %1918
  %1922 = load ptr, ptr %104, align 8, !tbaa !5
  %1923 = getelementptr inbounds %struct.Index, ptr %1922, i32 0, i32 5
  %1924 = load ptr, ptr %1923, align 8, !tbaa !89
  store ptr %1924, ptr %104, align 8, !tbaa !5
  %1925 = load i32, ptr %102, align 4, !tbaa !9
  %1926 = add nsw i32 %1925, 1
  store i32 %1926, ptr %102, align 4, !tbaa !9
  br label %1915, !llvm.loop !122

1927:                                             ; preds = %1915
  %1928 = load i32, ptr %102, align 4, !tbaa !9
  %1929 = load i32, ptr %101, align 4, !tbaa !9
  %1930 = icmp sgt i32 %1928, %1929
  br i1 %1930, label %1931, label %1933

1931:                                             ; preds = %1927
  %1932 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %1932, ptr %101, align 4, !tbaa !9
  br label %1933

1933:                                             ; preds = %1931, %1927
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #4
  br label %1934

1934:                                             ; preds = %1933
  %1935 = load ptr, ptr %97, align 8, !tbaa !5
  %1936 = getelementptr inbounds %struct.HashElem, ptr %1935, i32 0, i32 0
  %1937 = load ptr, ptr %1936, align 8, !tbaa !97
  store ptr %1937, ptr %97, align 8, !tbaa !5
  br label %1896, !llvm.loop !123

1938:                                             ; preds = %1896
  %1939 = load ptr, ptr %18, align 8, !tbaa !5
  %1940 = load i32, ptr %100, align 4, !tbaa !9
  %1941 = add nsw i32 %1940, 1
  %1942 = sext i32 %1941 to i64
  %1943 = mul i64 4, %1942
  %1944 = call ptr @sqlite3DbMallocRawNN(ptr noundef %1939, i64 noundef %1943)
  store ptr %1944, ptr %99, align 8, !tbaa !5
  %1945 = load ptr, ptr %99, align 8, !tbaa !5
  %1946 = icmp eq ptr %1945, null
  br i1 %1946, label %1947, label %1948

1947:                                             ; preds = %1938
  store i32 53, ptr %22, align 4
  br label %2473

1948:                                             ; preds = %1938
  store i32 0, ptr %100, align 4, !tbaa !9
  %1949 = load ptr, ptr %98, align 8, !tbaa !5
  %1950 = getelementptr inbounds %struct.Hash, ptr %1949, i32 0, i32 2
  %1951 = load ptr, ptr %1950, align 8, !tbaa !120
  store ptr %1951, ptr %97, align 8, !tbaa !5
  br label %1952

1952:                                             ; preds = %1994, %1948
  %1953 = load ptr, ptr %97, align 8, !tbaa !5
  %1954 = icmp ne ptr %1953, null
  br i1 %1954, label %1955, label %1998

1955:                                             ; preds = %1952
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #4
  %1956 = load ptr, ptr %97, align 8, !tbaa !5
  %1957 = getelementptr inbounds %struct.HashElem, ptr %1956, i32 0, i32 2
  %1958 = load ptr, ptr %1957, align 8, !tbaa !93
  store ptr %1958, ptr %105, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #4
  %1959 = load ptr, ptr %105, align 8, !tbaa !5
  %1960 = getelementptr inbounds %struct.Table, ptr %1959, i32 0, i32 9
  %1961 = load i32, ptr %1960, align 8, !tbaa !121
  %1962 = and i32 %1961, 32
  %1963 = icmp eq i32 %1962, 0
  br i1 %1963, label %1964, label %1973

1964:                                             ; preds = %1955
  %1965 = load ptr, ptr %105, align 8, !tbaa !5
  %1966 = getelementptr inbounds %struct.Table, ptr %1965, i32 0, i32 7
  %1967 = load i32, ptr %1966, align 8, !tbaa !111
  %1968 = load ptr, ptr %99, align 8, !tbaa !5
  %1969 = load i32, ptr %100, align 4, !tbaa !9
  %1970 = add nsw i32 %1969, 1
  store i32 %1970, ptr %100, align 4, !tbaa !9
  %1971 = sext i32 %1969 to i64
  %1972 = getelementptr inbounds i32, ptr %1968, i64 %1971
  store i32 %1967, ptr %1972, align 4, !tbaa !9
  br label %1973

1973:                                             ; preds = %1964, %1955
  %1974 = load ptr, ptr %105, align 8, !tbaa !5
  %1975 = getelementptr inbounds %struct.Table, ptr %1974, i32 0, i32 2
  %1976 = load ptr, ptr %1975, align 8, !tbaa !85
  store ptr %1976, ptr %106, align 8, !tbaa !5
  br label %1977

1977:                                             ; preds = %1989, %1973
  %1978 = load ptr, ptr %106, align 8, !tbaa !5
  %1979 = icmp ne ptr %1978, null
  br i1 %1979, label %1980, label %1993

1980:                                             ; preds = %1977
  %1981 = load ptr, ptr %106, align 8, !tbaa !5
  %1982 = getelementptr inbounds %struct.Index, ptr %1981, i32 0, i32 11
  %1983 = load i32, ptr %1982, align 8, !tbaa !113
  %1984 = load ptr, ptr %99, align 8, !tbaa !5
  %1985 = load i32, ptr %100, align 4, !tbaa !9
  %1986 = add nsw i32 %1985, 1
  store i32 %1986, ptr %100, align 4, !tbaa !9
  %1987 = sext i32 %1985 to i64
  %1988 = getelementptr inbounds i32, ptr %1984, i64 %1987
  store i32 %1983, ptr %1988, align 4, !tbaa !9
  br label %1989

1989:                                             ; preds = %1980
  %1990 = load ptr, ptr %106, align 8, !tbaa !5
  %1991 = getelementptr inbounds %struct.Index, ptr %1990, i32 0, i32 5
  %1992 = load ptr, ptr %1991, align 8, !tbaa !89
  store ptr %1992, ptr %106, align 8, !tbaa !5
  br label %1977, !llvm.loop !124

1993:                                             ; preds = %1977
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #4
  br label %1994

1994:                                             ; preds = %1993
  %1995 = load ptr, ptr %97, align 8, !tbaa !5
  %1996 = getelementptr inbounds %struct.HashElem, ptr %1995, i32 0, i32 0
  %1997 = load ptr, ptr %1996, align 8, !tbaa !97
  store ptr %1997, ptr %97, align 8, !tbaa !5
  br label %1952, !llvm.loop !125

1998:                                             ; preds = %1952
  %1999 = load ptr, ptr %99, align 8, !tbaa !5
  %2000 = load i32, ptr %100, align 4, !tbaa !9
  %2001 = sext i32 %2000 to i64
  %2002 = getelementptr inbounds i32, ptr %1999, i64 %2001
  store i32 0, ptr %2002, align 4, !tbaa !9
  %2003 = load ptr, ptr %6, align 8, !tbaa !5
  %2004 = getelementptr inbounds %struct.Parse, ptr %2003, i32 0, i32 18
  %2005 = load i32, ptr %2004, align 8, !tbaa !15
  %2006 = load i32, ptr %101, align 4, !tbaa !9
  %2007 = add nsw i32 8, %2006
  %2008 = icmp sgt i32 %2005, %2007
  br i1 %2008, label %2009, label %2013

2009:                                             ; preds = %1998
  %2010 = load ptr, ptr %6, align 8, !tbaa !5
  %2011 = getelementptr inbounds %struct.Parse, ptr %2010, i32 0, i32 18
  %2012 = load i32, ptr %2011, align 8, !tbaa !15
  br label %2016

2013:                                             ; preds = %1998
  %2014 = load i32, ptr %101, align 4, !tbaa !9
  %2015 = add nsw i32 8, %2014
  br label %2016

2016:                                             ; preds = %2013, %2009
  %2017 = phi i32 [ %2012, %2009 ], [ %2015, %2013 ]
  %2018 = load ptr, ptr %6, align 8, !tbaa !5
  %2019 = getelementptr inbounds %struct.Parse, ptr %2018, i32 0, i32 18
  store i32 %2017, ptr %2019, align 8, !tbaa !15
  %2020 = load ptr, ptr %20, align 8, !tbaa !5
  %2021 = load i32, ptr %100, align 4, !tbaa !9
  %2022 = load ptr, ptr %99, align 8, !tbaa !5
  %2023 = call i32 @sqlite3VdbeAddOp4(ptr noundef %2020, i32 noundef 142, i32 noundef 2, i32 noundef %2021, i32 noundef 1, ptr noundef %2022, i32 noundef -12)
  %2024 = load ptr, ptr %20, align 8, !tbaa !5
  %2025 = load i32, ptr %92, align 4, !tbaa !9
  %2026 = trunc i32 %2025 to i8
  %2027 = zext i8 %2026 to i16
  call void @sqlite3VdbeChangeP5(ptr noundef %2024, i16 noundef zeroext %2027)
  %2028 = load ptr, ptr %20, align 8, !tbaa !5
  %2029 = call i32 @sqlite3VdbeAddOp1(ptr noundef %2028, i32 noundef 34, i32 noundef 2)
  store i32 %2029, ptr %94, align 4, !tbaa !9
  %2030 = load ptr, ptr %20, align 8, !tbaa !5
  %2031 = load ptr, ptr %18, align 8, !tbaa !5
  %2032 = load ptr, ptr %18, align 8, !tbaa !5
  %2033 = getelementptr inbounds %struct.sqlite3, ptr %2032, i32 0, i32 4
  %2034 = load ptr, ptr %2033, align 8, !tbaa !16
  %2035 = load i32, ptr %92, align 4, !tbaa !9
  %2036 = sext i32 %2035 to i64
  %2037 = getelementptr inbounds %struct.Db, ptr %2034, i64 %2036
  %2038 = getelementptr inbounds %struct.Db, ptr %2037, i32 0, i32 0
  %2039 = load ptr, ptr %2038, align 8, !tbaa !24
  %2040 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %2031, ptr noundef @.str.26, ptr noundef %2039)
  %2041 = call i32 @sqlite3VdbeAddOp4(ptr noundef %2030, i32 noundef 97, i32 noundef 0, i32 noundef 3, i32 noundef 0, ptr noundef %2040, i32 noundef -1)
  %2042 = load ptr, ptr %20, align 8, !tbaa !5
  %2043 = call i32 @sqlite3VdbeAddOp3(ptr noundef %2042, i32 noundef 84, i32 noundef 2, i32 noundef 4, i32 noundef 1)
  %2044 = load ptr, ptr %20, align 8, !tbaa !5
  %2045 = call i32 @sqlite3VdbeAddOp3(ptr noundef %2044, i32 noundef 52, i32 noundef 4, i32 noundef 3, i32 noundef 2)
  %2046 = load ptr, ptr %20, align 8, !tbaa !5
  %2047 = call i32 @integrityCheckResultRow(ptr noundef %2046, i32 noundef 2)
  %2048 = load ptr, ptr %20, align 8, !tbaa !5
  %2049 = load i32, ptr %94, align 4, !tbaa !9
  call void @sqlite3VdbeJumpHere(ptr noundef %2048, i32 noundef %2049)
  %2050 = load ptr, ptr %98, align 8, !tbaa !5
  %2051 = getelementptr inbounds %struct.Hash, ptr %2050, i32 0, i32 2
  %2052 = load ptr, ptr %2051, align 8, !tbaa !120
  store ptr %2052, ptr %97, align 8, !tbaa !5
  br label %2053

2053:                                             ; preds = %2468, %2016
  %2054 = load ptr, ptr %97, align 8, !tbaa !5
  %2055 = icmp ne ptr %2054, null
  br i1 %2055, label %2056, label %2472

2056:                                             ; preds = %2053
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #4
  %2057 = load ptr, ptr %97, align 8, !tbaa !5
  %2058 = getelementptr inbounds %struct.HashElem, ptr %2057, i32 0, i32 2
  %2059 = load ptr, ptr %2058, align 8, !tbaa !93
  store ptr %2059, ptr %107, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #4
  store ptr null, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #4
  store i32 -1, ptr %114, align 4, !tbaa !9
  %2060 = load ptr, ptr %107, align 8, !tbaa !5
  %2061 = getelementptr inbounds %struct.Table, ptr %2060, i32 0, i32 7
  %2062 = load i32, ptr %2061, align 8, !tbaa !111
  %2063 = icmp slt i32 %2062, 1
  br i1 %2063, label %2064, label %2065

2064:                                             ; preds = %2056
  store i32 70, ptr %22, align 4
  br label %2465

2065:                                             ; preds = %2056
  %2066 = load ptr, ptr %107, align 8, !tbaa !5
  %2067 = getelementptr inbounds %struct.Table, ptr %2066, i32 0, i32 6
  %2068 = load ptr, ptr %2067, align 8, !tbaa !126
  %2069 = icmp eq ptr %2068, null
  br i1 %2069, label %2070, label %2085

2070:                                             ; preds = %2065
  %2071 = load ptr, ptr %107, align 8, !tbaa !5
  %2072 = getelementptr inbounds %struct.Table, ptr %2071, i32 0, i32 9
  %2073 = load i32, ptr %2072, align 8, !tbaa !121
  %2074 = and i32 %2073, 512
  %2075 = icmp eq i32 %2074, 0
  br i1 %2075, label %2076, label %2085

2076:                                             ; preds = %2070
  %2077 = load ptr, ptr %107, align 8, !tbaa !5
  %2078 = getelementptr inbounds %struct.Table, ptr %2077, i32 0, i32 2
  %2079 = load ptr, ptr %2078, align 8, !tbaa !85
  %2080 = icmp eq ptr %2079, null
  br i1 %2080, label %2084, label %2081

2081:                                             ; preds = %2076
  %2082 = load i32, ptr %96, align 4, !tbaa !9
  %2083 = icmp ne i32 %2082, 0
  br i1 %2083, label %2084, label %2085

2084:                                             ; preds = %2081, %2076
  store i32 70, ptr %22, align 4
  br label %2465

2085:                                             ; preds = %2081, %2070, %2065
  %2086 = load ptr, ptr %107, align 8, !tbaa !5
  %2087 = getelementptr inbounds %struct.Table, ptr %2086, i32 0, i32 9
  %2088 = load i32, ptr %2087, align 8, !tbaa !121
  %2089 = and i32 %2088, 32
  %2090 = icmp eq i32 %2089, 0
  br i1 %2090, label %2091, label %2092

2091:                                             ; preds = %2085
  br label %2095

2092:                                             ; preds = %2085
  %2093 = load ptr, ptr %107, align 8, !tbaa !5
  %2094 = call ptr @sqlite3PrimaryKeyIndex(ptr noundef %2093)
  br label %2095

2095:                                             ; preds = %2092, %2091
  %2096 = phi ptr [ null, %2091 ], [ %2094, %2092 ]
  store ptr %2096, ptr %109, align 8, !tbaa !5
  %2097 = load ptr, ptr %6, align 8, !tbaa !5
  call void @sqlite3ExprCacheClear(ptr noundef %2097)
  %2098 = load ptr, ptr %6, align 8, !tbaa !5
  %2099 = load ptr, ptr %107, align 8, !tbaa !5
  %2100 = call i32 @sqlite3OpenTableAndIndices(ptr noundef %2098, ptr noundef %2099, i32 noundef 105, i8 noundef zeroext 0, i32 noundef 1, ptr noundef null, ptr noundef %112, ptr noundef %113)
  %2101 = load ptr, ptr %20, align 8, !tbaa !5
  %2102 = call i32 @sqlite3VdbeAddOp2(ptr noundef %2101, i32 noundef 77, i32 noundef 0, i32 noundef 7)
  store i32 0, ptr %93, align 4, !tbaa !9
  %2103 = load ptr, ptr %107, align 8, !tbaa !5
  %2104 = getelementptr inbounds %struct.Table, ptr %2103, i32 0, i32 2
  %2105 = load ptr, ptr %2104, align 8, !tbaa !85
  store ptr %2105, ptr %108, align 8, !tbaa !5
  br label %2106

2106:                                             ; preds = %2114, %2095
  %2107 = load ptr, ptr %108, align 8, !tbaa !5
  %2108 = icmp ne ptr %2107, null
  br i1 %2108, label %2109, label %2120

2109:                                             ; preds = %2106
  %2110 = load ptr, ptr %20, align 8, !tbaa !5
  %2111 = load i32, ptr %93, align 4, !tbaa !9
  %2112 = add nsw i32 8, %2111
  %2113 = call i32 @sqlite3VdbeAddOp2(ptr noundef %2110, i32 noundef 77, i32 noundef 0, i32 noundef %2112)
  br label %2114

2114:                                             ; preds = %2109
  %2115 = load ptr, ptr %108, align 8, !tbaa !5
  %2116 = getelementptr inbounds %struct.Index, ptr %2115, i32 0, i32 5
  %2117 = load ptr, ptr %2116, align 8, !tbaa !89
  store ptr %2117, ptr %108, align 8, !tbaa !5
  %2118 = load i32, ptr %93, align 4, !tbaa !9
  %2119 = add nsw i32 %2118, 1
  store i32 %2119, ptr %93, align 4, !tbaa !9
  br label %2106, !llvm.loop !127

2120:                                             ; preds = %2106
  %2121 = load ptr, ptr %20, align 8, !tbaa !5
  %2122 = load i32, ptr %112, align 4, !tbaa !9
  %2123 = call i32 @sqlite3VdbeAddOp2(ptr noundef %2121, i32 noundef 58, i32 noundef %2122, i32 noundef 0)
  %2124 = load ptr, ptr %20, align 8, !tbaa !5
  %2125 = call i32 @sqlite3VdbeAddOp2(ptr noundef %2124, i32 noundef 92, i32 noundef 7, i32 noundef 1)
  store i32 %2125, ptr %111, align 4, !tbaa !9
  store i32 0, ptr %93, align 4, !tbaa !9
  br label %2126

2126:                                             ; preds = %2184, %2120
  %2127 = load i32, ptr %93, align 4, !tbaa !9
  %2128 = load ptr, ptr %107, align 8, !tbaa !5
  %2129 = getelementptr inbounds %struct.Table, ptr %2128, i32 0, i32 11
  %2130 = load i16, ptr %2129, align 2, !tbaa !68
  %2131 = sext i16 %2130 to i32
  %2132 = icmp slt i32 %2127, %2131
  br i1 %2132, label %2133, label %2187

2133:                                             ; preds = %2126
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #4
  %2134 = load i32, ptr %93, align 4, !tbaa !9
  %2135 = load ptr, ptr %107, align 8, !tbaa !5
  %2136 = getelementptr inbounds %struct.Table, ptr %2135, i32 0, i32 10
  %2137 = load i16, ptr %2136, align 4, !tbaa !116
  %2138 = sext i16 %2137 to i32
  %2139 = icmp eq i32 %2134, %2138
  br i1 %2139, label %2140, label %2141

2140:                                             ; preds = %2133
  store i32 76, ptr %22, align 4
  br label %2181

2141:                                             ; preds = %2133
  %2142 = load ptr, ptr %107, align 8, !tbaa !5
  %2143 = getelementptr inbounds %struct.Table, ptr %2142, i32 0, i32 1
  %2144 = load ptr, ptr %2143, align 8, !tbaa !66
  %2145 = load i32, ptr %93, align 4, !tbaa !9
  %2146 = sext i32 %2145 to i64
  %2147 = getelementptr inbounds %struct.Column, ptr %2144, i64 %2146
  %2148 = getelementptr inbounds %struct.Column, ptr %2147, i32 0, i32 3
  %2149 = load i8, ptr %2148, align 8, !tbaa !76
  %2150 = zext i8 %2149 to i32
  %2151 = icmp eq i32 %2150, 0
  br i1 %2151, label %2152, label %2153

2152:                                             ; preds = %2141
  store i32 76, ptr %22, align 4
  br label %2181

2153:                                             ; preds = %2141
  %2154 = load ptr, ptr %20, align 8, !tbaa !5
  %2155 = load ptr, ptr %107, align 8, !tbaa !5
  %2156 = load i32, ptr %112, align 4, !tbaa !9
  %2157 = load i32, ptr %93, align 4, !tbaa !9
  call void @sqlite3ExprCodeGetColumnOfTable(ptr noundef %2154, ptr noundef %2155, i32 noundef %2156, i32 noundef %2157, i32 noundef 3)
  %2158 = load ptr, ptr %20, align 8, !tbaa !5
  call void @sqlite3VdbeChangeP5(ptr noundef %2158, i16 noundef zeroext 128)
  %2159 = load ptr, ptr %20, align 8, !tbaa !5
  %2160 = call i32 @sqlite3VdbeAddOp1(ptr noundef %2159, i32 noundef 35, i32 noundef 3)
  store i32 %2160, ptr %116, align 4, !tbaa !9
  %2161 = load ptr, ptr %18, align 8, !tbaa !5
  %2162 = load ptr, ptr %107, align 8, !tbaa !5
  %2163 = getelementptr inbounds %struct.Table, ptr %2162, i32 0, i32 0
  %2164 = load ptr, ptr %2163, align 8, !tbaa !112
  %2165 = load ptr, ptr %107, align 8, !tbaa !5
  %2166 = getelementptr inbounds %struct.Table, ptr %2165, i32 0, i32 1
  %2167 = load ptr, ptr %2166, align 8, !tbaa !66
  %2168 = load i32, ptr %93, align 4, !tbaa !9
  %2169 = sext i32 %2168 to i64
  %2170 = getelementptr inbounds %struct.Column, ptr %2167, i64 %2169
  %2171 = getelementptr inbounds %struct.Column, ptr %2170, i32 0, i32 0
  %2172 = load ptr, ptr %2171, align 8, !tbaa !75
  %2173 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %2161, ptr noundef @.str.27, ptr noundef %2164, ptr noundef %2172)
  store ptr %2173, ptr %115, align 8, !tbaa !5
  %2174 = load ptr, ptr %20, align 8, !tbaa !5
  %2175 = load ptr, ptr %115, align 8, !tbaa !5
  %2176 = call i32 @sqlite3VdbeAddOp4(ptr noundef %2174, i32 noundef 97, i32 noundef 0, i32 noundef 3, i32 noundef 0, ptr noundef %2175, i32 noundef -1)
  %2177 = load ptr, ptr %20, align 8, !tbaa !5
  %2178 = call i32 @integrityCheckResultRow(ptr noundef %2177, i32 noundef 3)
  %2179 = load ptr, ptr %20, align 8, !tbaa !5
  %2180 = load i32, ptr %116, align 4, !tbaa !9
  call void @sqlite3VdbeJumpHere(ptr noundef %2179, i32 noundef %2180)
  store i32 0, ptr %22, align 4
  br label %2181

2181:                                             ; preds = %2153, %2152, %2140
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #4
  %2182 = load i32, ptr %22, align 4
  switch i32 %2182, label %2950 [
    i32 0, label %2183
    i32 76, label %2184
  ]

2183:                                             ; preds = %2181
  br label %2184

2184:                                             ; preds = %2183, %2181
  %2185 = load i32, ptr %93, align 4, !tbaa !9
  %2186 = add nsw i32 %2185, 1
  store i32 %2186, ptr %93, align 4, !tbaa !9
  br label %2126, !llvm.loop !128

2187:                                             ; preds = %2126
  %2188 = load ptr, ptr %107, align 8, !tbaa !5
  %2189 = getelementptr inbounds %struct.Table, ptr %2188, i32 0, i32 6
  %2190 = load ptr, ptr %2189, align 8, !tbaa !126
  %2191 = icmp ne ptr %2190, null
  br i1 %2191, label %2192, label %2255

2192:                                             ; preds = %2187
  %2193 = load ptr, ptr %18, align 8, !tbaa !5
  %2194 = getelementptr inbounds %struct.sqlite3, ptr %2193, i32 0, i32 6
  %2195 = load i32, ptr %2194, align 4, !tbaa !51
  %2196 = and i32 %2195, 8192
  %2197 = icmp eq i32 %2196, 0
  br i1 %2197, label %2198, label %2255

2198:                                             ; preds = %2192
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #4
  %2199 = load ptr, ptr %20, align 8, !tbaa !5
  %2200 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %2199)
  store i32 %2200, ptr %117, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #4
  %2201 = load ptr, ptr %20, align 8, !tbaa !5
  %2202 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %2201)
  store i32 %2202, ptr %118, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #4
  %2203 = load ptr, ptr %107, align 8, !tbaa !5
  %2204 = getelementptr inbounds %struct.Table, ptr %2203, i32 0, i32 6
  %2205 = load ptr, ptr %2204, align 8, !tbaa !126
  store ptr %2205, ptr %119, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #4
  %2206 = load i32, ptr %112, align 4, !tbaa !9
  %2207 = load ptr, ptr %6, align 8, !tbaa !5
  %2208 = getelementptr inbounds %struct.Parse, ptr %2207, i32 0, i32 22
  store i32 %2206, ptr %2208, align 8, !tbaa !129
  %2209 = load ptr, ptr %6, align 8, !tbaa !5
  call void @sqlite3ExprCachePush(ptr noundef %2209)
  %2210 = load ptr, ptr %119, align 8, !tbaa !5
  %2211 = getelementptr inbounds %struct.ExprList, ptr %2210, i32 0, i32 0
  %2212 = load i32, ptr %2211, align 8, !tbaa !130
  %2213 = sub nsw i32 %2212, 1
  store i32 %2213, ptr %121, align 4, !tbaa !9
  br label %2214

2214:                                             ; preds = %2228, %2198
  %2215 = load i32, ptr %121, align 4, !tbaa !9
  %2216 = icmp sgt i32 %2215, 0
  br i1 %2216, label %2217, label %2231

2217:                                             ; preds = %2214
  %2218 = load ptr, ptr %6, align 8, !tbaa !5
  %2219 = load ptr, ptr %119, align 8, !tbaa !5
  %2220 = getelementptr inbounds %struct.ExprList, ptr %2219, i32 0, i32 1
  %2221 = load ptr, ptr %2220, align 8, !tbaa !132
  %2222 = load i32, ptr %121, align 4, !tbaa !9
  %2223 = sext i32 %2222 to i64
  %2224 = getelementptr inbounds %struct.ExprList_item, ptr %2221, i64 %2223
  %2225 = getelementptr inbounds %struct.ExprList_item, ptr %2224, i32 0, i32 0
  %2226 = load ptr, ptr %2225, align 8, !tbaa !133
  %2227 = load i32, ptr %117, align 4, !tbaa !9
  call void @sqlite3ExprIfFalse(ptr noundef %2218, ptr noundef %2226, i32 noundef %2227, i32 noundef 0)
  br label %2228

2228:                                             ; preds = %2217
  %2229 = load i32, ptr %121, align 4, !tbaa !9
  %2230 = add nsw i32 %2229, -1
  store i32 %2230, ptr %121, align 4, !tbaa !9
  br label %2214, !llvm.loop !135

2231:                                             ; preds = %2214
  %2232 = load ptr, ptr %6, align 8, !tbaa !5
  %2233 = load ptr, ptr %119, align 8, !tbaa !5
  %2234 = getelementptr inbounds %struct.ExprList, ptr %2233, i32 0, i32 1
  %2235 = load ptr, ptr %2234, align 8, !tbaa !132
  %2236 = getelementptr inbounds %struct.ExprList_item, ptr %2235, i64 0
  %2237 = getelementptr inbounds %struct.ExprList_item, ptr %2236, i32 0, i32 0
  %2238 = load ptr, ptr %2237, align 8, !tbaa !133
  %2239 = load i32, ptr %118, align 4, !tbaa !9
  call void @sqlite3ExprIfTrue(ptr noundef %2232, ptr noundef %2238, i32 noundef %2239, i32 noundef 16)
  %2240 = load ptr, ptr %20, align 8, !tbaa !5
  %2241 = load i32, ptr %117, align 4, !tbaa !9
  call void @sqlite3VdbeResolveLabel(ptr noundef %2240, i32 noundef %2241)
  %2242 = load ptr, ptr %18, align 8, !tbaa !5
  %2243 = load ptr, ptr %107, align 8, !tbaa !5
  %2244 = getelementptr inbounds %struct.Table, ptr %2243, i32 0, i32 0
  %2245 = load ptr, ptr %2244, align 8, !tbaa !112
  %2246 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %2242, ptr noundef @.str.28, ptr noundef %2245)
  store ptr %2246, ptr %120, align 8, !tbaa !5
  %2247 = load ptr, ptr %20, align 8, !tbaa !5
  %2248 = load ptr, ptr %120, align 8, !tbaa !5
  %2249 = call i32 @sqlite3VdbeAddOp4(ptr noundef %2247, i32 noundef 97, i32 noundef 0, i32 noundef 3, i32 noundef 0, ptr noundef %2248, i32 noundef -1)
  %2250 = load ptr, ptr %20, align 8, !tbaa !5
  %2251 = call i32 @integrityCheckResultRow(ptr noundef %2250, i32 noundef 3)
  %2252 = load ptr, ptr %20, align 8, !tbaa !5
  %2253 = load i32, ptr %118, align 4, !tbaa !9
  call void @sqlite3VdbeResolveLabel(ptr noundef %2252, i32 noundef %2253)
  %2254 = load ptr, ptr %6, align 8, !tbaa !5
  call void @sqlite3ExprCachePop(ptr noundef %2254)
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #4
  br label %2255

2255:                                             ; preds = %2231, %2192, %2187
  store i32 0, ptr %93, align 4, !tbaa !9
  %2256 = load ptr, ptr %107, align 8, !tbaa !5
  %2257 = getelementptr inbounds %struct.Table, ptr %2256, i32 0, i32 2
  %2258 = load ptr, ptr %2257, align 8, !tbaa !85
  store ptr %2258, ptr %108, align 8, !tbaa !5
  br label %2259

2259:                                             ; preds = %2405, %2255
  %2260 = load ptr, ptr %108, align 8, !tbaa !5
  %2261 = icmp ne ptr %2260, null
  br i1 %2261, label %2262, label %2266

2262:                                             ; preds = %2259
  %2263 = load i32, ptr %96, align 4, !tbaa !9
  %2264 = icmp ne i32 %2263, 0
  %2265 = xor i1 %2264, true
  br label %2266

2266:                                             ; preds = %2262, %2259
  %2267 = phi i1 [ false, %2259 ], [ %2265, %2262 ]
  br i1 %2267, label %2268, label %2411

2268:                                             ; preds = %2266
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #4
  %2269 = load ptr, ptr %20, align 8, !tbaa !5
  %2270 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %2269)
  store i32 %2270, ptr %126, align 4, !tbaa !9
  %2271 = load ptr, ptr %109, align 8, !tbaa !5
  %2272 = load ptr, ptr %108, align 8, !tbaa !5
  %2273 = icmp eq ptr %2271, %2272
  br i1 %2273, label %2274, label %2275

2274:                                             ; preds = %2268
  store i32 82, ptr %22, align 4
  br label %2402

2275:                                             ; preds = %2268
  %2276 = load ptr, ptr %6, align 8, !tbaa !5
  %2277 = load ptr, ptr %108, align 8, !tbaa !5
  %2278 = load i32, ptr %112, align 4, !tbaa !9
  %2279 = load ptr, ptr %110, align 8, !tbaa !5
  %2280 = load i32, ptr %114, align 4, !tbaa !9
  %2281 = call i32 @sqlite3GenerateIndexKey(ptr noundef %2276, ptr noundef %2277, i32 noundef %2278, i32 noundef 0, i32 noundef 0, ptr noundef %123, ptr noundef %2279, i32 noundef %2280)
  store i32 %2281, ptr %114, align 4, !tbaa !9
  %2282 = load ptr, ptr %108, align 8, !tbaa !5
  store ptr %2282, ptr %110, align 8, !tbaa !5
  %2283 = load ptr, ptr %20, align 8, !tbaa !5
  %2284 = load i32, ptr %93, align 4, !tbaa !9
  %2285 = add nsw i32 8, %2284
  %2286 = call i32 @sqlite3VdbeAddOp2(ptr noundef %2283, i32 noundef 92, i32 noundef %2285, i32 noundef 1)
  %2287 = load ptr, ptr %20, align 8, !tbaa !5
  %2288 = load i32, ptr %113, align 4, !tbaa !9
  %2289 = load i32, ptr %93, align 4, !tbaa !9
  %2290 = add nsw i32 %2288, %2289
  %2291 = load i32, ptr %126, align 4, !tbaa !9
  %2292 = load i32, ptr %114, align 4, !tbaa !9
  %2293 = load ptr, ptr %108, align 8, !tbaa !5
  %2294 = getelementptr inbounds %struct.Index, ptr %2293, i32 0, i32 14
  %2295 = load i16, ptr %2294, align 8, !tbaa !79
  %2296 = zext i16 %2295 to i32
  %2297 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %2287, i32 noundef 31, i32 noundef %2290, i32 noundef %2291, i32 noundef %2292, i32 noundef %2296)
  store i32 %2297, ptr %122, align 4, !tbaa !9
  %2298 = load ptr, ptr %20, align 8, !tbaa !5
  %2299 = call i32 @sqlite3VdbeLoadString(ptr noundef %2298, i32 noundef 3, ptr noundef @.str.29)
  %2300 = load ptr, ptr %20, align 8, !tbaa !5
  %2301 = call i32 @sqlite3VdbeAddOp3(ptr noundef %2300, i32 noundef 52, i32 noundef 7, i32 noundef 3, i32 noundef 3)
  %2302 = load ptr, ptr %20, align 8, !tbaa !5
  %2303 = call i32 @sqlite3VdbeLoadString(ptr noundef %2302, i32 noundef 4, ptr noundef @.str.30)
  %2304 = load ptr, ptr %20, align 8, !tbaa !5
  %2305 = call i32 @sqlite3VdbeAddOp3(ptr noundef %2304, i32 noundef 52, i32 noundef 4, i32 noundef 3, i32 noundef 3)
  %2306 = load ptr, ptr %20, align 8, !tbaa !5
  %2307 = load ptr, ptr %108, align 8, !tbaa !5
  %2308 = getelementptr inbounds %struct.Index, ptr %2307, i32 0, i32 0
  %2309 = load ptr, ptr %2308, align 8, !tbaa !86
  %2310 = call i32 @sqlite3VdbeLoadString(ptr noundef %2306, i32 noundef 4, ptr noundef %2309)
  store i32 %2310, ptr %125, align 4, !tbaa !9
  %2311 = load ptr, ptr %20, align 8, !tbaa !5
  %2312 = call i32 @sqlite3VdbeAddOp3(ptr noundef %2311, i32 noundef 52, i32 noundef 4, i32 noundef 3, i32 noundef 3)
  %2313 = load ptr, ptr %20, align 8, !tbaa !5
  %2314 = call i32 @integrityCheckResultRow(ptr noundef %2313, i32 noundef 3)
  store i32 %2314, ptr %124, align 4, !tbaa !9
  %2315 = load ptr, ptr %20, align 8, !tbaa !5
  %2316 = load i32, ptr %122, align 4, !tbaa !9
  call void @sqlite3VdbeJumpHere(ptr noundef %2315, i32 noundef %2316)
  %2317 = load ptr, ptr %108, align 8, !tbaa !5
  %2318 = getelementptr inbounds %struct.Index, ptr %2317, i32 0, i32 15
  %2319 = load i8, ptr %2318, align 2, !tbaa !87
  %2320 = zext i8 %2319 to i32
  %2321 = icmp ne i32 %2320, 0
  br i1 %2321, label %2322, label %2397

2322:                                             ; preds = %2275
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #4
  %2323 = load ptr, ptr %20, align 8, !tbaa !5
  %2324 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %2323)
  store i32 %2324, ptr %127, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #4
  store i32 0, ptr %129, align 4, !tbaa !9
  br label %2325

2325:                                             ; preds = %2365, %2322
  %2326 = load i32, ptr %129, align 4, !tbaa !9
  %2327 = load ptr, ptr %108, align 8, !tbaa !5
  %2328 = getelementptr inbounds %struct.Index, ptr %2327, i32 0, i32 13
  %2329 = load i16, ptr %2328, align 2, !tbaa !80
  %2330 = zext i16 %2329 to i32
  %2331 = icmp slt i32 %2326, %2330
  br i1 %2331, label %2332, label %2368

2332:                                             ; preds = %2325
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #4
  %2333 = load ptr, ptr %108, align 8, !tbaa !5
  %2334 = getelementptr inbounds %struct.Index, ptr %2333, i32 0, i32 1
  %2335 = load ptr, ptr %2334, align 8, !tbaa !71
  %2336 = load i32, ptr %129, align 4, !tbaa !9
  %2337 = sext i32 %2336 to i64
  %2338 = getelementptr inbounds i16, ptr %2335, i64 %2337
  %2339 = load i16, ptr %2338, align 2, !tbaa !73
  %2340 = sext i16 %2339 to i32
  store i32 %2340, ptr %130, align 4, !tbaa !9
  %2341 = load i32, ptr %130, align 4, !tbaa !9
  %2342 = icmp sge i32 %2341, 0
  br i1 %2342, label %2343, label %2355

2343:                                             ; preds = %2332
  %2344 = load ptr, ptr %107, align 8, !tbaa !5
  %2345 = getelementptr inbounds %struct.Table, ptr %2344, i32 0, i32 1
  %2346 = load ptr, ptr %2345, align 8, !tbaa !66
  %2347 = load i32, ptr %130, align 4, !tbaa !9
  %2348 = sext i32 %2347 to i64
  %2349 = getelementptr inbounds %struct.Column, ptr %2346, i64 %2348
  %2350 = getelementptr inbounds %struct.Column, ptr %2349, i32 0, i32 3
  %2351 = load i8, ptr %2350, align 8, !tbaa !76
  %2352 = zext i8 %2351 to i32
  %2353 = icmp ne i32 %2352, 0
  br i1 %2353, label %2354, label %2355

2354:                                             ; preds = %2343
  store i32 85, ptr %22, align 4
  br label %2362

2355:                                             ; preds = %2343, %2332
  %2356 = load ptr, ptr %20, align 8, !tbaa !5
  %2357 = load i32, ptr %114, align 4, !tbaa !9
  %2358 = load i32, ptr %129, align 4, !tbaa !9
  %2359 = add nsw i32 %2357, %2358
  %2360 = load i32, ptr %127, align 4, !tbaa !9
  %2361 = call i32 @sqlite3VdbeAddOp2(ptr noundef %2356, i32 noundef 34, i32 noundef %2359, i32 noundef %2360)
  store i32 0, ptr %22, align 4
  br label %2362

2362:                                             ; preds = %2355, %2354
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #4
  %2363 = load i32, ptr %22, align 4
  switch i32 %2363, label %2950 [
    i32 0, label %2364
    i32 85, label %2365
  ]

2364:                                             ; preds = %2362
  br label %2365

2365:                                             ; preds = %2364, %2362
  %2366 = load i32, ptr %129, align 4, !tbaa !9
  %2367 = add nsw i32 %2366, 1
  store i32 %2367, ptr %129, align 4, !tbaa !9
  br label %2325, !llvm.loop !136

2368:                                             ; preds = %2325
  %2369 = load ptr, ptr %20, align 8, !tbaa !5
  %2370 = load i32, ptr %113, align 4, !tbaa !9
  %2371 = load i32, ptr %93, align 4, !tbaa !9
  %2372 = add nsw i32 %2370, %2371
  %2373 = call i32 @sqlite3VdbeAddOp1(ptr noundef %2369, i32 noundef 7, i32 noundef %2372)
  store i32 %2373, ptr %128, align 4, !tbaa !9
  %2374 = load ptr, ptr %20, align 8, !tbaa !5
  %2375 = load i32, ptr %127, align 4, !tbaa !9
  %2376 = call i32 @sqlite3VdbeGoto(ptr noundef %2374, i32 noundef %2375)
  %2377 = load ptr, ptr %20, align 8, !tbaa !5
  %2378 = load i32, ptr %128, align 4, !tbaa !9
  call void @sqlite3VdbeJumpHere(ptr noundef %2377, i32 noundef %2378)
  %2379 = load ptr, ptr %20, align 8, !tbaa !5
  %2380 = load i32, ptr %113, align 4, !tbaa !9
  %2381 = load i32, ptr %93, align 4, !tbaa !9
  %2382 = add nsw i32 %2380, %2381
  %2383 = load i32, ptr %127, align 4, !tbaa !9
  %2384 = load i32, ptr %114, align 4, !tbaa !9
  %2385 = load ptr, ptr %108, align 8, !tbaa !5
  %2386 = getelementptr inbounds %struct.Index, ptr %2385, i32 0, i32 13
  %2387 = load i16, ptr %2386, align 2, !tbaa !80
  %2388 = zext i16 %2387 to i32
  %2389 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %2379, i32 noundef 60, i32 noundef %2382, i32 noundef %2383, i32 noundef %2384, i32 noundef %2388)
  %2390 = load ptr, ptr %20, align 8, !tbaa !5
  %2391 = call i32 @sqlite3VdbeLoadString(ptr noundef %2390, i32 noundef 3, ptr noundef @.str.31)
  %2392 = load ptr, ptr %20, align 8, !tbaa !5
  %2393 = load i32, ptr %125, align 4, !tbaa !9
  %2394 = call i32 @sqlite3VdbeGoto(ptr noundef %2392, i32 noundef %2393)
  %2395 = load ptr, ptr %20, align 8, !tbaa !5
  %2396 = load i32, ptr %127, align 4, !tbaa !9
  call void @sqlite3VdbeResolveLabel(ptr noundef %2395, i32 noundef %2396)
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #4
  br label %2397

2397:                                             ; preds = %2368, %2275
  %2398 = load ptr, ptr %20, align 8, !tbaa !5
  %2399 = load i32, ptr %124, align 4, !tbaa !9
  call void @sqlite3VdbeJumpHere(ptr noundef %2398, i32 noundef %2399)
  %2400 = load ptr, ptr %6, align 8, !tbaa !5
  %2401 = load i32, ptr %123, align 4, !tbaa !9
  call void @sqlite3ResolvePartIdxLabel(ptr noundef %2400, i32 noundef %2401)
  store i32 0, ptr %22, align 4
  br label %2402

2402:                                             ; preds = %2397, %2274
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #4
  %2403 = load i32, ptr %22, align 4
  switch i32 %2403, label %2950 [
    i32 0, label %2404
    i32 82, label %2405
  ]

2404:                                             ; preds = %2402
  br label %2405

2405:                                             ; preds = %2404, %2402
  %2406 = load ptr, ptr %108, align 8, !tbaa !5
  %2407 = getelementptr inbounds %struct.Index, ptr %2406, i32 0, i32 5
  %2408 = load ptr, ptr %2407, align 8, !tbaa !89
  store ptr %2408, ptr %108, align 8, !tbaa !5
  %2409 = load i32, ptr %93, align 4, !tbaa !9
  %2410 = add nsw i32 %2409, 1
  store i32 %2410, ptr %93, align 4, !tbaa !9
  br label %2259, !llvm.loop !137

2411:                                             ; preds = %2266
  %2412 = load ptr, ptr %20, align 8, !tbaa !5
  %2413 = load i32, ptr %112, align 4, !tbaa !9
  %2414 = load i32, ptr %111, align 4, !tbaa !9
  %2415 = call i32 @sqlite3VdbeAddOp2(ptr noundef %2412, i32 noundef 7, i32 noundef %2413, i32 noundef %2414)
  %2416 = load ptr, ptr %20, align 8, !tbaa !5
  %2417 = load i32, ptr %111, align 4, !tbaa !9
  %2418 = sub nsw i32 %2417, 1
  call void @sqlite3VdbeJumpHere(ptr noundef %2416, i32 noundef %2418)
  %2419 = load i32, ptr %96, align 4, !tbaa !9
  %2420 = icmp ne i32 %2419, 0
  br i1 %2420, label %2464, label %2421

2421:                                             ; preds = %2411
  %2422 = load ptr, ptr %20, align 8, !tbaa !5
  %2423 = call i32 @sqlite3VdbeLoadString(ptr noundef %2422, i32 noundef 2, ptr noundef @.str.32)
  store i32 0, ptr %93, align 4, !tbaa !9
  %2424 = load ptr, ptr %107, align 8, !tbaa !5
  %2425 = getelementptr inbounds %struct.Table, ptr %2424, i32 0, i32 2
  %2426 = load ptr, ptr %2425, align 8, !tbaa !85
  store ptr %2426, ptr %108, align 8, !tbaa !5
  br label %2427

2427:                                             ; preds = %2457, %2421
  %2428 = load ptr, ptr %108, align 8, !tbaa !5
  %2429 = icmp ne ptr %2428, null
  br i1 %2429, label %2430, label %2463

2430:                                             ; preds = %2427
  %2431 = load ptr, ptr %109, align 8, !tbaa !5
  %2432 = load ptr, ptr %108, align 8, !tbaa !5
  %2433 = icmp eq ptr %2431, %2432
  br i1 %2433, label %2434, label %2435

2434:                                             ; preds = %2430
  br label %2457

2435:                                             ; preds = %2430
  %2436 = load ptr, ptr %20, align 8, !tbaa !5
  %2437 = load i32, ptr %113, align 4, !tbaa !9
  %2438 = load i32, ptr %93, align 4, !tbaa !9
  %2439 = add nsw i32 %2437, %2438
  %2440 = call i32 @sqlite3VdbeAddOp2(ptr noundef %2436, i32 noundef 101, i32 noundef %2439, i32 noundef 3)
  %2441 = load ptr, ptr %20, align 8, !tbaa !5
  %2442 = load i32, ptr %93, align 4, !tbaa !9
  %2443 = add nsw i32 8, %2442
  %2444 = call i32 @sqlite3VdbeAddOp3(ptr noundef %2441, i32 noundef 37, i32 noundef %2443, i32 noundef 0, i32 noundef 3)
  store i32 %2444, ptr %94, align 4, !tbaa !9
  %2445 = load ptr, ptr %20, align 8, !tbaa !5
  call void @sqlite3VdbeChangeP5(ptr noundef %2445, i16 noundef zeroext 144)
  %2446 = load ptr, ptr %20, align 8, !tbaa !5
  %2447 = load ptr, ptr %108, align 8, !tbaa !5
  %2448 = getelementptr inbounds %struct.Index, ptr %2447, i32 0, i32 0
  %2449 = load ptr, ptr %2448, align 8, !tbaa !86
  %2450 = call i32 @sqlite3VdbeLoadString(ptr noundef %2446, i32 noundef 3, ptr noundef %2449)
  %2451 = load ptr, ptr %20, align 8, !tbaa !5
  %2452 = call i32 @sqlite3VdbeAddOp3(ptr noundef %2451, i32 noundef 52, i32 noundef 3, i32 noundef 2, i32 noundef 7)
  %2453 = load ptr, ptr %20, align 8, !tbaa !5
  %2454 = call i32 @integrityCheckResultRow(ptr noundef %2453, i32 noundef 7)
  %2455 = load ptr, ptr %20, align 8, !tbaa !5
  %2456 = load i32, ptr %94, align 4, !tbaa !9
  call void @sqlite3VdbeJumpHere(ptr noundef %2455, i32 noundef %2456)
  br label %2457

2457:                                             ; preds = %2435, %2434
  %2458 = load ptr, ptr %108, align 8, !tbaa !5
  %2459 = getelementptr inbounds %struct.Index, ptr %2458, i32 0, i32 5
  %2460 = load ptr, ptr %2459, align 8, !tbaa !89
  store ptr %2460, ptr %108, align 8, !tbaa !5
  %2461 = load i32, ptr %93, align 4, !tbaa !9
  %2462 = add nsw i32 %2461, 1
  store i32 %2462, ptr %93, align 4, !tbaa !9
  br label %2427, !llvm.loop !138

2463:                                             ; preds = %2427
  br label %2464

2464:                                             ; preds = %2463, %2411
  store i32 0, ptr %22, align 4
  br label %2465

2465:                                             ; preds = %2464, %2084, %2064
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #4
  %2466 = load i32, ptr %22, align 4
  switch i32 %2466, label %2950 [
    i32 0, label %2467
    i32 70, label %2468
  ]

2467:                                             ; preds = %2465
  br label %2468

2468:                                             ; preds = %2467, %2465
  %2469 = load ptr, ptr %97, align 8, !tbaa !5
  %2470 = getelementptr inbounds %struct.HashElem, ptr %2469, i32 0, i32 0
  %2471 = load ptr, ptr %2470, align 8, !tbaa !97
  store ptr %2471, ptr %97, align 8, !tbaa !5
  br label %2053, !llvm.loop !139

2472:                                             ; preds = %2053
  store i32 0, ptr %22, align 4
  br label %2473

2473:                                             ; preds = %2472, %1947, %1880
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  %2474 = load i32, ptr %22, align 4
  switch i32 %2474, label %2950 [
    i32 0, label %2475
    i32 55, label %2476
    i32 53, label %2479
  ]

2475:                                             ; preds = %2473
  br label %2476

2476:                                             ; preds = %2475, %2473
  %2477 = load i32, ptr %92, align 4, !tbaa !9
  %2478 = add nsw i32 %2477, 1
  store i32 %2478, ptr %92, align 4, !tbaa !9
  br label %1867, !llvm.loop !140

2479:                                             ; preds = %2473, %1867
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #4
  %2480 = load ptr, ptr %20, align 8, !tbaa !5
  %2481 = call ptr @sqlite3VdbeAddOpList(ptr noundef %2480, i32 noundef 4, ptr noundef @sqlite3Pragma.endCode, i32 noundef 0)
  store ptr %2481, ptr %131, align 8, !tbaa !5
  %2482 = load ptr, ptr %131, align 8, !tbaa !5
  %2483 = icmp ne ptr %2482, null
  br i1 %2483, label %2484, label %2496

2484:                                             ; preds = %2479
  %2485 = load i32, ptr %95, align 4, !tbaa !9
  %2486 = sub nsw i32 1, %2485
  %2487 = load ptr, ptr %131, align 8, !tbaa !5
  %2488 = getelementptr inbounds %struct.VdbeOp, ptr %2487, i64 0
  %2489 = getelementptr inbounds %struct.VdbeOp, ptr %2488, i32 0, i32 4
  store i32 %2486, ptr %2489, align 8, !tbaa !49
  %2490 = load ptr, ptr %131, align 8, !tbaa !5
  %2491 = getelementptr inbounds %struct.VdbeOp, ptr %2490, i64 2
  %2492 = getelementptr inbounds %struct.VdbeOp, ptr %2491, i32 0, i32 1
  store i8 -2, ptr %2492, align 1, !tbaa !141
  %2493 = load ptr, ptr %131, align 8, !tbaa !5
  %2494 = getelementptr inbounds %struct.VdbeOp, ptr %2493, i64 2
  %2495 = getelementptr inbounds %struct.VdbeOp, ptr %2494, i32 0, i32 6
  store ptr @.str.34, ptr %2495, align 8, !tbaa !42
  br label %2496

2496:                                             ; preds = %2484, %2479
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #4
  br label %2930

2497:                                             ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #4
  %2498 = load ptr, ptr %12, align 8, !tbaa !5
  %2499 = icmp ne ptr %2498, null
  br i1 %2499, label %2516, label %2500

2500:                                             ; preds = %2497
  %2501 = load ptr, ptr %6, align 8, !tbaa !5
  %2502 = call i32 @sqlite3ReadSchema(ptr noundef %2501)
  %2503 = icmp ne i32 %2502, 0
  br i1 %2503, label %2504, label %2505

2504:                                             ; preds = %2500
  store i32 2, ptr %22, align 4
  br label %2592

2505:                                             ; preds = %2500
  %2506 = load ptr, ptr %20, align 8, !tbaa !5
  %2507 = load ptr, ptr %6, align 8, !tbaa !5
  %2508 = getelementptr inbounds %struct.Parse, ptr %2507, i32 0, i32 0
  %2509 = load ptr, ptr %2508, align 8, !tbaa !11
  %2510 = getelementptr inbounds %struct.sqlite3, ptr %2509, i32 0, i32 14
  %2511 = load i8, ptr %2510, align 2, !tbaa !142
  %2512 = zext i8 %2511 to i64
  %2513 = getelementptr inbounds [9 x %struct.EncName], ptr @sqlite3Pragma.encnames, i64 0, i64 %2512
  %2514 = getelementptr inbounds %struct.EncName, ptr %2513, i32 0, i32 0
  %2515 = load ptr, ptr %2514, align 16, !tbaa !143
  call void @returnSingleText(ptr noundef %2506, ptr noundef %2515)
  br label %2591

2516:                                             ; preds = %2497
  %2517 = load ptr, ptr %18, align 8, !tbaa !5
  %2518 = getelementptr inbounds %struct.sqlite3, ptr %2517, i32 0, i32 4
  %2519 = load ptr, ptr %2518, align 8, !tbaa !16
  %2520 = getelementptr inbounds %struct.Db, ptr %2519, i64 0
  %2521 = getelementptr inbounds %struct.Db, ptr %2520, i32 0, i32 4
  %2522 = load ptr, ptr %2521, align 8, !tbaa !34
  %2523 = getelementptr inbounds %struct.Schema, ptr %2522, i32 0, i32 9
  %2524 = load i16, ptr %2523, align 2, !tbaa !145
  %2525 = zext i16 %2524 to i32
  %2526 = and i32 %2525, 1
  %2527 = icmp eq i32 %2526, 1
  br i1 %2527, label %2528, label %2540

2528:                                             ; preds = %2516
  %2529 = load ptr, ptr %18, align 8, !tbaa !5
  %2530 = getelementptr inbounds %struct.sqlite3, ptr %2529, i32 0, i32 4
  %2531 = load ptr, ptr %2530, align 8, !tbaa !16
  %2532 = getelementptr inbounds %struct.Db, ptr %2531, i64 0
  %2533 = getelementptr inbounds %struct.Db, ptr %2532, i32 0, i32 4
  %2534 = load ptr, ptr %2533, align 8, !tbaa !34
  %2535 = getelementptr inbounds %struct.Schema, ptr %2534, i32 0, i32 9
  %2536 = load i16, ptr %2535, align 2, !tbaa !145
  %2537 = zext i16 %2536 to i32
  %2538 = and i32 %2537, 4
  %2539 = icmp eq i32 %2538, 4
  br i1 %2539, label %2540, label %2590

2540:                                             ; preds = %2528, %2516
  store ptr @sqlite3Pragma.encnames, ptr %132, align 8, !tbaa !5
  br label %2541

2541:                                             ; preds = %2578, %2540
  %2542 = load ptr, ptr %132, align 8, !tbaa !5
  %2543 = getelementptr inbounds %struct.EncName, ptr %2542, i32 0, i32 0
  %2544 = load ptr, ptr %2543, align 8, !tbaa !143
  %2545 = icmp ne ptr %2544, null
  br i1 %2545, label %2546, label %2581

2546:                                             ; preds = %2541
  %2547 = load ptr, ptr %12, align 8, !tbaa !5
  %2548 = load ptr, ptr %132, align 8, !tbaa !5
  %2549 = getelementptr inbounds %struct.EncName, ptr %2548, i32 0, i32 0
  %2550 = load ptr, ptr %2549, align 8, !tbaa !143
  %2551 = call i32 @sqlite3StrICmp(ptr noundef %2547, ptr noundef %2550)
  %2552 = icmp eq i32 0, %2551
  br i1 %2552, label %2553, label %2577

2553:                                             ; preds = %2546
  %2554 = load ptr, ptr %132, align 8, !tbaa !5
  %2555 = getelementptr inbounds %struct.EncName, ptr %2554, i32 0, i32 1
  %2556 = load i8, ptr %2555, align 8, !tbaa !146
  %2557 = zext i8 %2556 to i32
  %2558 = icmp ne i32 %2557, 0
  br i1 %2558, label %2559, label %2564

2559:                                             ; preds = %2553
  %2560 = load ptr, ptr %132, align 8, !tbaa !5
  %2561 = getelementptr inbounds %struct.EncName, ptr %2560, i32 0, i32 1
  %2562 = load i8, ptr %2561, align 8, !tbaa !146
  %2563 = zext i8 %2562 to i32
  br label %2565

2564:                                             ; preds = %2553
  br label %2565

2565:                                             ; preds = %2564, %2559
  %2566 = phi i32 [ %2563, %2559 ], [ 2, %2564 ]
  %2567 = trunc i32 %2566 to i8
  %2568 = load ptr, ptr %18, align 8, !tbaa !5
  %2569 = getelementptr inbounds %struct.sqlite3, ptr %2568, i32 0, i32 14
  store i8 %2567, ptr %2569, align 2, !tbaa !142
  %2570 = load ptr, ptr %18, align 8, !tbaa !5
  %2571 = getelementptr inbounds %struct.sqlite3, ptr %2570, i32 0, i32 4
  %2572 = load ptr, ptr %2571, align 8, !tbaa !16
  %2573 = getelementptr inbounds %struct.Db, ptr %2572, i64 0
  %2574 = getelementptr inbounds %struct.Db, ptr %2573, i32 0, i32 4
  %2575 = load ptr, ptr %2574, align 8, !tbaa !34
  %2576 = getelementptr inbounds %struct.Schema, ptr %2575, i32 0, i32 8
  store i8 %2567, ptr %2576, align 1, !tbaa !147
  br label %2581

2577:                                             ; preds = %2546
  br label %2578

2578:                                             ; preds = %2577
  %2579 = load ptr, ptr %132, align 8, !tbaa !5
  %2580 = getelementptr inbounds %struct.EncName, ptr %2579, i32 1
  store ptr %2580, ptr %132, align 8, !tbaa !5
  br label %2541, !llvm.loop !148

2581:                                             ; preds = %2565, %2541
  %2582 = load ptr, ptr %132, align 8, !tbaa !5
  %2583 = getelementptr inbounds %struct.EncName, ptr %2582, i32 0, i32 0
  %2584 = load ptr, ptr %2583, align 8, !tbaa !143
  %2585 = icmp ne ptr %2584, null
  br i1 %2585, label %2589, label %2586

2586:                                             ; preds = %2581
  %2587 = load ptr, ptr %6, align 8, !tbaa !5
  %2588 = load ptr, ptr %12, align 8, !tbaa !5
  call void (ptr, ptr, ...) @sqlite3ErrorMsg(ptr noundef %2587, ptr noundef @.str.43, ptr noundef %2588)
  br label %2589

2589:                                             ; preds = %2586, %2581
  br label %2590

2590:                                             ; preds = %2589, %2528
  br label %2591

2591:                                             ; preds = %2590, %2505
  store i32 0, ptr %22, align 4
  br label %2592

2592:                                             ; preds = %2591, %2504
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #4
  %2593 = load i32, ptr %22, align 4
  switch i32 %2593, label %2947 [
    i32 0, label %2594
    i32 2, label %2942
  ]

2594:                                             ; preds = %2592
  br label %2930

2595:                                             ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #4
  %2596 = load ptr, ptr %21, align 8, !tbaa !5
  %2597 = getelementptr inbounds %struct.PragmaName, ptr %2596, i32 0, i32 5
  %2598 = load i32, ptr %2597, align 4, !tbaa !64
  store i32 %2598, ptr %133, align 4, !tbaa !9
  %2599 = load ptr, ptr %20, align 8, !tbaa !5
  %2600 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3VdbeUsesBtree(ptr noundef %2599, i32 noundef %2600)
  %2601 = load ptr, ptr %12, align 8, !tbaa !5
  %2602 = icmp ne ptr %2601, null
  br i1 %2602, label %2603, label %2630

2603:                                             ; preds = %2595
  %2604 = load ptr, ptr %21, align 8, !tbaa !5
  %2605 = getelementptr inbounds %struct.PragmaName, ptr %2604, i32 0, i32 2
  %2606 = load i8, ptr %2605, align 1, !tbaa !29
  %2607 = zext i8 %2606 to i32
  %2608 = and i32 %2607, 8
  %2609 = icmp eq i32 %2608, 0
  br i1 %2609, label %2610, label %2630

2610:                                             ; preds = %2603
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #4
  %2611 = load ptr, ptr %20, align 8, !tbaa !5
  %2612 = call ptr @sqlite3VdbeAddOpList(ptr noundef %2611, i32 noundef 2, ptr noundef @sqlite3Pragma.setCookie, i32 noundef 0)
  store ptr %2612, ptr %134, align 8, !tbaa !5
  %2613 = load i32, ptr %16, align 4, !tbaa !9
  %2614 = load ptr, ptr %134, align 8, !tbaa !5
  %2615 = getelementptr inbounds %struct.VdbeOp, ptr %2614, i64 0
  %2616 = getelementptr inbounds %struct.VdbeOp, ptr %2615, i32 0, i32 3
  store i32 %2613, ptr %2616, align 4, !tbaa !32
  %2617 = load i32, ptr %16, align 4, !tbaa !9
  %2618 = load ptr, ptr %134, align 8, !tbaa !5
  %2619 = getelementptr inbounds %struct.VdbeOp, ptr %2618, i64 1
  %2620 = getelementptr inbounds %struct.VdbeOp, ptr %2619, i32 0, i32 3
  store i32 %2617, ptr %2620, align 4, !tbaa !32
  %2621 = load i32, ptr %133, align 4, !tbaa !9
  %2622 = load ptr, ptr %134, align 8, !tbaa !5
  %2623 = getelementptr inbounds %struct.VdbeOp, ptr %2622, i64 1
  %2624 = getelementptr inbounds %struct.VdbeOp, ptr %2623, i32 0, i32 4
  store i32 %2621, ptr %2624, align 8, !tbaa !49
  %2625 = load ptr, ptr %12, align 8, !tbaa !5
  %2626 = call i32 @sqlite3Atoi(ptr noundef %2625)
  %2627 = load ptr, ptr %134, align 8, !tbaa !5
  %2628 = getelementptr inbounds %struct.VdbeOp, ptr %2627, i64 1
  %2629 = getelementptr inbounds %struct.VdbeOp, ptr %2628, i32 0, i32 5
  store i32 %2626, ptr %2629, align 4, !tbaa !50
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #4
  br label %2646

2630:                                             ; preds = %2603, %2595
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #4
  %2631 = load ptr, ptr %20, align 8, !tbaa !5
  %2632 = call ptr @sqlite3VdbeAddOpList(ptr noundef %2631, i32 noundef 3, ptr noundef @sqlite3Pragma.readCookie, i32 noundef 0)
  store ptr %2632, ptr %135, align 8, !tbaa !5
  %2633 = load i32, ptr %16, align 4, !tbaa !9
  %2634 = load ptr, ptr %135, align 8, !tbaa !5
  %2635 = getelementptr inbounds %struct.VdbeOp, ptr %2634, i64 0
  %2636 = getelementptr inbounds %struct.VdbeOp, ptr %2635, i32 0, i32 3
  store i32 %2633, ptr %2636, align 4, !tbaa !32
  %2637 = load i32, ptr %16, align 4, !tbaa !9
  %2638 = load ptr, ptr %135, align 8, !tbaa !5
  %2639 = getelementptr inbounds %struct.VdbeOp, ptr %2638, i64 1
  %2640 = getelementptr inbounds %struct.VdbeOp, ptr %2639, i32 0, i32 3
  store i32 %2637, ptr %2640, align 4, !tbaa !32
  %2641 = load i32, ptr %133, align 4, !tbaa !9
  %2642 = load ptr, ptr %135, align 8, !tbaa !5
  %2643 = getelementptr inbounds %struct.VdbeOp, ptr %2642, i64 1
  %2644 = getelementptr inbounds %struct.VdbeOp, ptr %2643, i32 0, i32 5
  store i32 %2641, ptr %2644, align 4, !tbaa !50
  %2645 = load ptr, ptr %20, align 8, !tbaa !5
  call void @sqlite3VdbeReusable(ptr noundef %2645)
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #4
  br label %2646

2646:                                             ; preds = %2630, %2610
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #4
  br label %2930

2647:                                             ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #4
  store i32 0, ptr %136, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #4
  %2648 = load ptr, ptr %6, align 8, !tbaa !5
  %2649 = getelementptr inbounds %struct.Parse, ptr %2648, i32 0, i32 18
  store i32 1, ptr %2649, align 8, !tbaa !15
  br label %2650

2650:                                             ; preds = %2655, %2647
  %2651 = load i32, ptr %136, align 4, !tbaa !9
  %2652 = add nsw i32 %2651, 1
  store i32 %2652, ptr %136, align 4, !tbaa !9
  %2653 = call ptr @sqlite3_compileoption_get(i32 noundef %2651)
  store ptr %2653, ptr %137, align 8, !tbaa !5
  %2654 = icmp ne ptr %2653, null
  br i1 %2654, label %2655, label %2661

2655:                                             ; preds = %2650
  %2656 = load ptr, ptr %20, align 8, !tbaa !5
  %2657 = load ptr, ptr %137, align 8, !tbaa !5
  %2658 = call i32 @sqlite3VdbeLoadString(ptr noundef %2656, i32 noundef 1, ptr noundef %2657)
  %2659 = load ptr, ptr %20, align 8, !tbaa !5
  %2660 = call i32 @sqlite3VdbeAddOp2(ptr noundef %2659, i32 noundef 88, i32 noundef 1, i32 noundef 1)
  br label %2650, !llvm.loop !149

2661:                                             ; preds = %2650
  %2662 = load ptr, ptr %20, align 8, !tbaa !5
  call void @sqlite3VdbeReusable(ptr noundef %2662)
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #4
  br label %2930

2663:                                             ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #4
  %2664 = load ptr, ptr %8, align 8, !tbaa !5
  %2665 = getelementptr inbounds %struct.Token, ptr %2664, i32 0, i32 0
  %2666 = load ptr, ptr %2665, align 8, !tbaa !119
  %2667 = icmp ne ptr %2666, null
  br i1 %2667, label %2668, label %2670

2668:                                             ; preds = %2663
  %2669 = load i32, ptr %16, align 4, !tbaa !9
  br label %2671

2670:                                             ; preds = %2663
  br label %2671

2671:                                             ; preds = %2670, %2668
  %2672 = phi i32 [ %2669, %2668 ], [ 10, %2670 ]
  store i32 %2672, ptr %138, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #4
  store i32 0, ptr %139, align 4, !tbaa !9
  %2673 = load ptr, ptr %12, align 8, !tbaa !5
  %2674 = icmp ne ptr %2673, null
  br i1 %2674, label %2675, label %2693

2675:                                             ; preds = %2671
  %2676 = load ptr, ptr %12, align 8, !tbaa !5
  %2677 = call i32 @sqlite3StrICmp(ptr noundef %2676, ptr noundef @.str.44)
  %2678 = icmp eq i32 %2677, 0
  br i1 %2678, label %2679, label %2680

2679:                                             ; preds = %2675
  store i32 1, ptr %139, align 4, !tbaa !9
  br label %2692

2680:                                             ; preds = %2675
  %2681 = load ptr, ptr %12, align 8, !tbaa !5
  %2682 = call i32 @sqlite3StrICmp(ptr noundef %2681, ptr noundef @.str.45)
  %2683 = icmp eq i32 %2682, 0
  br i1 %2683, label %2684, label %2685

2684:                                             ; preds = %2680
  store i32 2, ptr %139, align 4, !tbaa !9
  br label %2691

2685:                                             ; preds = %2680
  %2686 = load ptr, ptr %12, align 8, !tbaa !5
  %2687 = call i32 @sqlite3StrICmp(ptr noundef %2686, ptr noundef @.str.3)
  %2688 = icmp eq i32 %2687, 0
  br i1 %2688, label %2689, label %2690

2689:                                             ; preds = %2685
  store i32 3, ptr %139, align 4, !tbaa !9
  br label %2690

2690:                                             ; preds = %2689, %2685
  br label %2691

2691:                                             ; preds = %2690, %2684
  br label %2692

2692:                                             ; preds = %2691, %2679
  br label %2693

2693:                                             ; preds = %2692, %2671
  %2694 = load ptr, ptr %6, align 8, !tbaa !5
  %2695 = getelementptr inbounds %struct.Parse, ptr %2694, i32 0, i32 18
  store i32 3, ptr %2695, align 8, !tbaa !15
  %2696 = load ptr, ptr %20, align 8, !tbaa !5
  %2697 = load i32, ptr %138, align 4, !tbaa !9
  %2698 = load i32, ptr %139, align 4, !tbaa !9
  %2699 = call i32 @sqlite3VdbeAddOp3(ptr noundef %2696, i32 noundef 8, i32 noundef %2697, i32 noundef %2698, i32 noundef 1)
  %2700 = load ptr, ptr %20, align 8, !tbaa !5
  %2701 = call i32 @sqlite3VdbeAddOp2(ptr noundef %2700, i32 noundef 88, i32 noundef 1, i32 noundef 3)
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #4
  br label %2930

2702:                                             ; preds = %309
  %2703 = load ptr, ptr %12, align 8, !tbaa !5
  %2704 = icmp ne ptr %2703, null
  br i1 %2704, label %2705, label %2710

2705:                                             ; preds = %2702
  %2706 = load ptr, ptr %18, align 8, !tbaa !5
  %2707 = load ptr, ptr %12, align 8, !tbaa !5
  %2708 = call i32 @sqlite3Atoi(ptr noundef %2707)
  %2709 = call i32 @sqlite3_wal_autocheckpoint(ptr noundef %2706, i32 noundef %2708)
  br label %2710

2710:                                             ; preds = %2705, %2702
  %2711 = load ptr, ptr %20, align 8, !tbaa !5
  %2712 = load ptr, ptr %18, align 8, !tbaa !5
  %2713 = getelementptr inbounds %struct.sqlite3, ptr %2712, i32 0, i32 51
  %2714 = load ptr, ptr %2713, align 8, !tbaa !150
  %2715 = icmp eq ptr %2714, @sqlite3WalDefaultHook
  br i1 %2715, label %2716, label %2722

2716:                                             ; preds = %2710
  %2717 = load ptr, ptr %18, align 8, !tbaa !5
  %2718 = getelementptr inbounds %struct.sqlite3, ptr %2717, i32 0, i32 52
  %2719 = load ptr, ptr %2718, align 8, !tbaa !151
  %2720 = ptrtoint ptr %2719 to i64
  %2721 = trunc i64 %2720 to i32
  br label %2723

2722:                                             ; preds = %2710
  br label %2723

2723:                                             ; preds = %2722, %2716
  %2724 = phi i32 [ %2721, %2716 ], [ 0, %2722 ]
  %2725 = sext i32 %2724 to i64
  call void @returnSingleInt(ptr noundef %2711, i64 noundef %2725)
  br label %2930

2726:                                             ; preds = %309
  %2727 = load ptr, ptr %18, align 8, !tbaa !5
  %2728 = call i32 @sqlite3_db_release_memory(ptr noundef %2727)
  br label %2930

2729:                                             ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #4
  call void @llvm.lifetime.start.p0(i64 2, ptr %146) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #4
  %2730 = load ptr, ptr %12, align 8, !tbaa !5
  %2731 = icmp ne ptr %2730, null
  br i1 %2731, label %2732, label %2740

2732:                                             ; preds = %2729
  %2733 = load ptr, ptr %12, align 8, !tbaa !5
  %2734 = call i32 @sqlite3Atoi(ptr noundef %2733)
  store i32 %2734, ptr %148, align 4, !tbaa !9
  %2735 = load i32, ptr %148, align 4, !tbaa !9
  %2736 = and i32 %2735, 2
  %2737 = icmp eq i32 %2736, 0
  br i1 %2737, label %2738, label %2739

2738:                                             ; preds = %2732
  store i32 3, ptr %22, align 4
  br label %2881

2739:                                             ; preds = %2732
  br label %2741

2740:                                             ; preds = %2729
  store i32 65534, ptr %148, align 4, !tbaa !9
  br label %2741

2741:                                             ; preds = %2740, %2739
  %2742 = load ptr, ptr %6, align 8, !tbaa !5
  %2743 = getelementptr inbounds %struct.Parse, ptr %2742, i32 0, i32 17
  %2744 = load i32, ptr %2743, align 4, !tbaa !115
  %2745 = add nsw i32 %2744, 1
  store i32 %2745, ptr %2743, align 4, !tbaa !115
  store i32 %2744, ptr %141, align 4, !tbaa !9
  %2746 = load ptr, ptr %13, align 8, !tbaa !5
  %2747 = icmp ne ptr %2746, null
  br i1 %2747, label %2748, label %2750

2748:                                             ; preds = %2741
  %2749 = load i32, ptr %16, align 4, !tbaa !9
  br label %2755

2750:                                             ; preds = %2741
  %2751 = load ptr, ptr %18, align 8, !tbaa !5
  %2752 = getelementptr inbounds %struct.sqlite3, ptr %2751, i32 0, i32 5
  %2753 = load i32, ptr %2752, align 8, !tbaa !39
  %2754 = sub nsw i32 %2753, 1
  br label %2755

2755:                                             ; preds = %2750, %2748
  %2756 = phi i32 [ %2749, %2748 ], [ %2754, %2750 ]
  store i32 %2756, ptr %140, align 4, !tbaa !9
  br label %2757

2757:                                             ; preds = %2875, %2755
  %2758 = load i32, ptr %16, align 4, !tbaa !9
  %2759 = load i32, ptr %140, align 4, !tbaa !9
  %2760 = icmp sle i32 %2758, %2759
  br i1 %2760, label %2761, label %2878

2761:                                             ; preds = %2757
  %2762 = load i32, ptr %16, align 4, !tbaa !9
  %2763 = icmp eq i32 %2762, 1
  br i1 %2763, label %2764, label %2765

2764:                                             ; preds = %2761
  br label %2875

2765:                                             ; preds = %2761
  %2766 = load ptr, ptr %6, align 8, !tbaa !5
  %2767 = load i32, ptr %16, align 4, !tbaa !9
  call void @sqlite3CodeVerifySchema(ptr noundef %2766, i32 noundef %2767)
  %2768 = load ptr, ptr %18, align 8, !tbaa !5
  %2769 = getelementptr inbounds %struct.sqlite3, ptr %2768, i32 0, i32 4
  %2770 = load ptr, ptr %2769, align 8, !tbaa !16
  %2771 = load i32, ptr %16, align 4, !tbaa !9
  %2772 = sext i32 %2771 to i64
  %2773 = getelementptr inbounds %struct.Db, ptr %2770, i64 %2772
  %2774 = getelementptr inbounds %struct.Db, ptr %2773, i32 0, i32 4
  %2775 = load ptr, ptr %2774, align 8, !tbaa !34
  store ptr %2775, ptr %143, align 8, !tbaa !5
  %2776 = load ptr, ptr %143, align 8, !tbaa !5
  %2777 = getelementptr inbounds %struct.Schema, ptr %2776, i32 0, i32 2
  %2778 = getelementptr inbounds %struct.Hash, ptr %2777, i32 0, i32 2
  %2779 = load ptr, ptr %2778, align 8, !tbaa !109
  store ptr %2779, ptr %142, align 8, !tbaa !5
  br label %2780

2780:                                             ; preds = %2870, %2765
  %2781 = load ptr, ptr %142, align 8, !tbaa !5
  %2782 = icmp ne ptr %2781, null
  br i1 %2782, label %2783, label %2874

2783:                                             ; preds = %2780
  %2784 = load ptr, ptr %142, align 8, !tbaa !5
  %2785 = getelementptr inbounds %struct.HashElem, ptr %2784, i32 0, i32 2
  %2786 = load ptr, ptr %2785, align 8, !tbaa !93
  store ptr %2786, ptr %144, align 8, !tbaa !5
  %2787 = load ptr, ptr %144, align 8, !tbaa !5
  %2788 = getelementptr inbounds %struct.Table, ptr %2787, i32 0, i32 9
  %2789 = load i32, ptr %2788, align 8, !tbaa !121
  %2790 = and i32 %2789, 256
  %2791 = icmp eq i32 %2790, 0
  br i1 %2791, label %2792, label %2793

2792:                                             ; preds = %2783
  br label %2870

2793:                                             ; preds = %2783
  %2794 = load ptr, ptr %144, align 8, !tbaa !5
  %2795 = getelementptr inbounds %struct.Table, ptr %2794, i32 0, i32 12
  %2796 = load i16, ptr %2795, align 8, !tbaa !152
  %2797 = sext i16 %2796 to i32
  %2798 = add nsw i32 %2797, 46
  %2799 = trunc i32 %2798 to i16
  store i16 %2799, ptr %146, align 2, !tbaa !73
  %2800 = load ptr, ptr %144, align 8, !tbaa !5
  %2801 = getelementptr inbounds %struct.Table, ptr %2800, i32 0, i32 2
  %2802 = load ptr, ptr %2801, align 8, !tbaa !85
  store ptr %2802, ptr %145, align 8, !tbaa !5
  br label %2803

2803:                                             ; preds = %2815, %2793
  %2804 = load ptr, ptr %145, align 8, !tbaa !5
  %2805 = icmp ne ptr %2804, null
  br i1 %2805, label %2806, label %2819

2806:                                             ; preds = %2803
  %2807 = load ptr, ptr %145, align 8, !tbaa !5
  %2808 = getelementptr inbounds %struct.Index, ptr %2807, i32 0, i32 16
  %2809 = load i8, ptr %2808, align 1
  %2810 = lshr i8 %2809, 7
  %2811 = zext i8 %2810 to i32
  %2812 = icmp ne i32 %2811, 0
  br i1 %2812, label %2814, label %2813

2813:                                             ; preds = %2806
  store i16 0, ptr %146, align 2, !tbaa !73
  br label %2819

2814:                                             ; preds = %2806
  br label %2815

2815:                                             ; preds = %2814
  %2816 = load ptr, ptr %145, align 8, !tbaa !5
  %2817 = getelementptr inbounds %struct.Index, ptr %2816, i32 0, i32 5
  %2818 = load ptr, ptr %2817, align 8, !tbaa !89
  store ptr %2818, ptr %145, align 8, !tbaa !5
  br label %2803, !llvm.loop !153

2819:                                             ; preds = %2813, %2803
  %2820 = load i16, ptr %146, align 2, !tbaa !73
  %2821 = icmp ne i16 %2820, 0
  br i1 %2821, label %2822, label %2838

2822:                                             ; preds = %2819
  %2823 = load ptr, ptr %6, align 8, !tbaa !5
  %2824 = load i32, ptr %141, align 4, !tbaa !9
  %2825 = load i32, ptr %16, align 4, !tbaa !9
  %2826 = load ptr, ptr %144, align 8, !tbaa !5
  call void @sqlite3OpenTable(ptr noundef %2823, i32 noundef %2824, i32 noundef %2825, ptr noundef %2826, i32 noundef 105)
  %2827 = load ptr, ptr %20, align 8, !tbaa !5
  %2828 = load i32, ptr %141, align 4, !tbaa !9
  %2829 = load ptr, ptr %20, align 8, !tbaa !5
  %2830 = call i32 @sqlite3VdbeCurrentAddr(ptr noundef %2829)
  %2831 = add nsw i32 %2830, 2
  %2832 = load i32, ptr %148, align 4, !tbaa !9
  %2833 = and i32 %2832, 1
  %2834 = add i32 %2831, %2833
  %2835 = load i16, ptr %146, align 2, !tbaa !73
  %2836 = sext i16 %2835 to i32
  %2837 = call i32 @sqlite3VdbeAddOp3(ptr noundef %2827, i32 noundef 55, i32 noundef %2828, i32 noundef %2834, i32 noundef %2836)
  br label %2838

2838:                                             ; preds = %2822, %2819
  %2839 = load ptr, ptr %18, align 8, !tbaa !5
  %2840 = load ptr, ptr %18, align 8, !tbaa !5
  %2841 = getelementptr inbounds %struct.sqlite3, ptr %2840, i32 0, i32 4
  %2842 = load ptr, ptr %2841, align 8, !tbaa !16
  %2843 = load i32, ptr %16, align 4, !tbaa !9
  %2844 = sext i32 %2843 to i64
  %2845 = getelementptr inbounds %struct.Db, ptr %2842, i64 %2844
  %2846 = getelementptr inbounds %struct.Db, ptr %2845, i32 0, i32 0
  %2847 = load ptr, ptr %2846, align 8, !tbaa !24
  %2848 = load ptr, ptr %144, align 8, !tbaa !5
  %2849 = getelementptr inbounds %struct.Table, ptr %2848, i32 0, i32 0
  %2850 = load ptr, ptr %2849, align 8, !tbaa !112
  %2851 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %2839, ptr noundef @.str.46, ptr noundef %2847, ptr noundef %2850)
  store ptr %2851, ptr %147, align 8, !tbaa !5
  %2852 = load i32, ptr %148, align 4, !tbaa !9
  %2853 = and i32 %2852, 1
  %2854 = icmp ne i32 %2853, 0
  br i1 %2854, label %2855, label %2865

2855:                                             ; preds = %2838
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #4
  %2856 = load ptr, ptr %6, align 8, !tbaa !5
  %2857 = call i32 @sqlite3GetTempReg(ptr noundef %2856)
  store i32 %2857, ptr %149, align 4, !tbaa !9
  %2858 = load ptr, ptr %20, align 8, !tbaa !5
  %2859 = load i32, ptr %149, align 4, !tbaa !9
  %2860 = load ptr, ptr %147, align 8, !tbaa !5
  %2861 = call i32 @sqlite3VdbeAddOp4(ptr noundef %2858, i32 noundef 97, i32 noundef 0, i32 noundef %2859, i32 noundef 0, ptr noundef %2860, i32 noundef -1)
  %2862 = load ptr, ptr %20, align 8, !tbaa !5
  %2863 = load i32, ptr %149, align 4, !tbaa !9
  %2864 = call i32 @sqlite3VdbeAddOp2(ptr noundef %2862, i32 noundef 88, i32 noundef %2863, i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #4
  br label %2869

2865:                                             ; preds = %2838
  %2866 = load ptr, ptr %20, align 8, !tbaa !5
  %2867 = load ptr, ptr %147, align 8, !tbaa !5
  %2868 = call i32 @sqlite3VdbeAddOp4(ptr noundef %2866, i32 noundef 136, i32 noundef 0, i32 noundef 0, i32 noundef 0, ptr noundef %2867, i32 noundef -1)
  br label %2869

2869:                                             ; preds = %2865, %2855
  br label %2870

2870:                                             ; preds = %2869, %2792
  %2871 = load ptr, ptr %142, align 8, !tbaa !5
  %2872 = getelementptr inbounds %struct.HashElem, ptr %2871, i32 0, i32 0
  %2873 = load ptr, ptr %2872, align 8, !tbaa !97
  store ptr %2873, ptr %142, align 8, !tbaa !5
  br label %2780, !llvm.loop !154

2874:                                             ; preds = %2780
  br label %2875

2875:                                             ; preds = %2874, %2764
  %2876 = load i32, ptr %16, align 4, !tbaa !9
  %2877 = add nsw i32 %2876, 1
  store i32 %2877, ptr %16, align 4, !tbaa !9
  br label %2757, !llvm.loop !155

2878:                                             ; preds = %2757
  %2879 = load ptr, ptr %20, align 8, !tbaa !5
  %2880 = call i32 @sqlite3VdbeAddOp0(ptr noundef %2879, i32 noundef 151)
  store i32 3, ptr %22, align 4
  br label %2881

2881:                                             ; preds = %2878, %2738
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #4
  call void @llvm.lifetime.end.p0(i64 2, ptr %146) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #4
  br label %2930

2882:                                             ; preds = %309
  %2883 = load ptr, ptr %12, align 8, !tbaa !5
  %2884 = icmp ne ptr %2883, null
  br i1 %2884, label %2885, label %2890

2885:                                             ; preds = %2882
  %2886 = load ptr, ptr %18, align 8, !tbaa !5
  %2887 = load ptr, ptr %12, align 8, !tbaa !5
  %2888 = call i32 @sqlite3Atoi(ptr noundef %2887)
  %2889 = call i32 @sqlite3_busy_timeout(ptr noundef %2886, i32 noundef %2888)
  br label %2890

2890:                                             ; preds = %2885, %2882
  %2891 = load ptr, ptr %20, align 8, !tbaa !5
  %2892 = load ptr, ptr %18, align 8, !tbaa !5
  %2893 = getelementptr inbounds %struct.sqlite3, ptr %2892, i32 0, i32 74
  %2894 = load i32, ptr %2893, align 8, !tbaa !156
  %2895 = sext i32 %2894 to i64
  call void @returnSingleInt(ptr noundef %2891, i64 noundef %2895)
  br label %2930

2896:                                             ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #4
  %2897 = load ptr, ptr %12, align 8, !tbaa !5
  %2898 = icmp ne ptr %2897, null
  br i1 %2898, label %2899, label %2906

2899:                                             ; preds = %2896
  %2900 = load ptr, ptr %12, align 8, !tbaa !5
  %2901 = call i32 @sqlite3DecOrHexToI64(ptr noundef %2900, ptr noundef %150)
  %2902 = icmp eq i32 %2901, 0
  br i1 %2902, label %2903, label %2906

2903:                                             ; preds = %2899
  %2904 = load i64, ptr %150, align 8, !tbaa !47
  %2905 = call i64 @sqlite3_soft_heap_limit64(i64 noundef %2904)
  br label %2906

2906:                                             ; preds = %2903, %2899, %2896
  %2907 = load ptr, ptr %20, align 8, !tbaa !5
  %2908 = call i64 @sqlite3_soft_heap_limit64(i64 noundef -1)
  call void @returnSingleInt(ptr noundef %2907, i64 noundef %2908)
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #4
  br label %2930

2909:                                             ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #4
  %2910 = load ptr, ptr %12, align 8, !tbaa !5
  %2911 = icmp ne ptr %2910, null
  br i1 %2911, label %2912, label %2925

2912:                                             ; preds = %2909
  %2913 = load ptr, ptr %12, align 8, !tbaa !5
  %2914 = call i32 @sqlite3DecOrHexToI64(ptr noundef %2913, ptr noundef %151)
  %2915 = icmp eq i32 %2914, 0
  br i1 %2915, label %2916, label %2925

2916:                                             ; preds = %2912
  %2917 = load i64, ptr %151, align 8, !tbaa !47
  %2918 = icmp sge i64 %2917, 0
  br i1 %2918, label %2919, label %2925

2919:                                             ; preds = %2916
  %2920 = load ptr, ptr %18, align 8, !tbaa !5
  %2921 = load i64, ptr %151, align 8, !tbaa !47
  %2922 = and i64 %2921, 2147483647
  %2923 = trunc i64 %2922 to i32
  %2924 = call i32 @sqlite3_limit(ptr noundef %2920, i32 noundef 11, i32 noundef %2923)
  br label %2925

2925:                                             ; preds = %2919, %2916, %2912, %2909
  %2926 = load ptr, ptr %20, align 8, !tbaa !5
  %2927 = load ptr, ptr %18, align 8, !tbaa !5
  %2928 = call i32 @sqlite3_limit(ptr noundef %2927, i32 noundef 11, i32 noundef -1)
  %2929 = sext i32 %2928 to i64
  call void @returnSingleInt(ptr noundef %2926, i64 noundef %2929)
  store i32 3, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #4
  br label %2930

2930:                                             ; preds = %2925, %2906, %2890, %2881, %2726, %2723, %2693, %2661, %2646, %2594, %2496, %1834, %1825, %1489, %1405, %1378, %1332, %1275, %1169, %1048, %991, %950, %901, %887, %803, %753, %707, %695, %630, %613, %534, %470, %435, %394, %361
  %2931 = load ptr, ptr %21, align 8, !tbaa !5
  %2932 = getelementptr inbounds %struct.PragmaName, ptr %2931, i32 0, i32 2
  %2933 = load i8, ptr %2932, align 1, !tbaa !29
  %2934 = zext i8 %2933 to i32
  %2935 = and i32 %2934, 4
  %2936 = icmp ne i32 %2935, 0
  br i1 %2936, label %2937, label %2941

2937:                                             ; preds = %2930
  %2938 = load ptr, ptr %12, align 8, !tbaa !5
  %2939 = icmp ne ptr %2938, null
  br i1 %2939, label %2940, label %2941

2940:                                             ; preds = %2937
  br label %2941

2941:                                             ; preds = %2940, %2937, %2930
  br label %2942

2942:                                             ; preds = %2941, %2592, %927, %287, %275, %262, %238, %221
  %2943 = load ptr, ptr %18, align 8, !tbaa !5
  %2944 = load ptr, ptr %11, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %2943, ptr noundef %2944)
  %2945 = load ptr, ptr %18, align 8, !tbaa !5
  %2946 = load ptr, ptr %12, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %2945, ptr noundef %2946)
  store i32 0, ptr %22, align 4
  br label %2947

2947:                                             ; preds = %2942, %2592, %927, %191, %184, %170, %159
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #4
  %2948 = load i32, ptr %22, align 4
  switch i32 %2948, label %2950 [
    i32 0, label %2949
    i32 1, label %2949
  ]

2949:                                             ; preds = %2947, %2947
  ret void

2950:                                             ; preds = %2947, %2473, %2465, %2402, %2362, %2181
  unreachable
}

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

declare ptr @sqlite3GetVdbe(ptr noundef) #2

declare void @sqlite3VdbeRunOnlyOnce(ptr noundef) #2

declare i32 @sqlite3TwoPartName(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @sqlite3OpenTempDatabase(ptr noundef) #2

declare ptr @sqlite3NameFromToken(ptr noundef, ptr noundef) #2

declare ptr @sqlite3MPrintf(ptr noundef, ptr noundef, ...) #2

declare i32 @sqlite3AuthCheck(ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @sqlite3_file_control(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #2

declare void @sqlite3VdbeSetNumCols(ptr noundef, i32 noundef) #2

declare i32 @sqlite3VdbeSetColName(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden void @returnSingleText(ptr noundef, ptr noundef) #0

declare void @sqlite3_free(ptr noundef) #2

declare void @sqlite3ErrorMsg(ptr noundef, ptr noundef, ...) #2

; Function Attrs: nounwind uwtable
declare hidden ptr @pragmaLocate(ptr noundef) #0

declare i32 @sqlite3ReadSchema(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden void @setPragmaResultColumnNames(ptr noundef, ptr noundef) #0

declare void @sqlite3VdbeUsesBtree(ptr noundef, i32 noundef) #2

declare ptr @sqlite3VdbeAddOpList(ptr noundef, i32 noundef, ptr noundef, i32 noundef) #2

declare i32 @sqlite3AbsInt32(i32 noundef) #2

declare i32 @sqlite3Atoi(ptr noundef) #2

declare void @sqlite3BeginWriteOperation(ptr noundef, i32 noundef, i32 noundef) #2

declare i32 @sqlite3VdbeAddOp3(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare i32 @sqlite3BtreeSetCacheSize(ptr noundef, i32 noundef) #2

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

declare i32 @sqlite3BtreeGetPageSize(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden void @returnSingleInt(ptr noundef, i64 noundef) #0

declare i32 @sqlite3BtreeSetPageSize(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @sqlite3OomFault(ptr noundef) #2

declare i32 @sqlite3BtreeSecureDelete(ptr noundef, i32 noundef) #2

declare void @sqlite3CodeVerifySchema(ptr noundef, i32 noundef) #2

declare i32 @sqlite3VdbeAddOp2(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @getLockingMode(ptr noundef) #0

declare ptr @sqlite3BtreePager(ptr noundef) #2

declare i32 @sqlite3PagerLockingMode(ptr noundef, i32 noundef) #2

declare i32 @sqlite3Strlen30(ptr noundef) #2

declare i32 @sqlite3_strnicmp(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @sqlite3DecOrHexToI64(ptr noundef, ptr noundef) #2

declare i64 @sqlite3PagerJournalSizeLimit(ptr noundef, i64 noundef) #2

declare i32 @sqlite3BtreeGetAutoVacuum(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @getAutoVacuum(ptr noundef) #0

declare i32 @sqlite3BtreeSetAutoVacuum(ptr noundef, i32 noundef) #2

declare i32 @sqlite3VdbeCurrentAddr(ptr noundef) #2

declare i32 @sqlite3GetInt32(ptr noundef, ptr noundef) #2

declare i32 @sqlite3VdbeAddOp1(ptr noundef, i32 noundef, i32 noundef) #2

declare void @sqlite3VdbeJumpHere(ptr noundef, i32 noundef) #2

declare i32 @sqlite3BtreeSetSpillSize(ptr noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden void @setAllPagerFlags(ptr noundef) #0

declare i32 @sqlite3BtreeSetMmapLimit(ptr noundef, i64 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @changeTempStorage(ptr noundef, ptr noundef) #0

declare i32 @sqlite3OsAccess(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @invalidateTempStorage(ptr noundef) #0

declare ptr @sqlite3_mprintf(ptr noundef, ...) #2

declare i32 @sqlite3VdbeAddOp0(ptr noundef, i32 noundef) #2

declare ptr @sqlite3LocateTable(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #2

declare ptr @sqlite3PrimaryKeyIndex(ptr noundef) #2

declare i32 @sqlite3ViewGetColumnNames(ptr noundef, ptr noundef) #2

declare void @sqlite3VdbeMultiLoad(ptr noundef, i32 noundef, ptr noundef, ...) #2

declare ptr @sqlite3ColumnType(ptr noundef, ptr noundef) #2

declare ptr @sqlite3FindIndex(ptr noundef, ptr noundef, ptr noundef) #2

declare ptr @sqlite3FindTable(ptr noundef, ptr noundef, ptr 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

declare ptr @sqlite3BtreeGetFilename(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden ptr @actionName(i8 noundef zeroext) #0

declare void @sqlite3TableLock(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext, ptr noundef) #2

declare void @sqlite3OpenTable(ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) #2

declare i32 @sqlite3VdbeLoadString(ptr noundef, i32 noundef, ptr noundef) #2

declare i32 @sqlite3FkLocateIndex(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @sqlite3VdbeSetP4KeyInfo(ptr noundef, ptr noundef) #2

declare i32 @sqlite3VdbeMakeLabel(ptr noundef) #2

declare void @sqlite3ColumnDefault(ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

declare i32 @sqlite3VdbeGoto(ptr noundef, i32 noundef) #2

declare void @sqlite3ExprCodeGetColumnOfTable(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare i32 @sqlite3VdbeAddOp4(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) #2

declare ptr @sqlite3IndexAffinityStr(ptr noundef, ptr noundef) #2

declare i32 @sqlite3VdbeAddOp4Int(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @sqlite3VdbeResolveLabel(ptr noundef, i32 noundef) #2

declare void @sqlite3DbFree(ptr noundef, ptr noundef) #2

declare void @sqlite3RegisterLikeFunctions(ptr noundef, i32 noundef) #2

declare ptr @sqlite3DbMallocRawNN(ptr noundef, i64 noundef) #2

declare void @sqlite3VdbeChangeP5(ptr noundef, i16 noundef zeroext) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @integrityCheckResultRow(ptr noundef, i32 noundef) #0

declare void @sqlite3ExprCacheClear(ptr noundef) #2

declare i32 @sqlite3OpenTableAndIndices(ptr noundef, ptr noundef, i32 noundef, i8 noundef zeroext, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @sqlite3ExprCachePush(ptr noundef) #2

declare void @sqlite3ExprIfFalse(ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

declare void @sqlite3ExprIfTrue(ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

declare void @sqlite3ExprCachePop(ptr noundef) #2

declare i32 @sqlite3GenerateIndexKey(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, i32 noundef) #2

declare void @sqlite3ResolvePartIdxLabel(ptr noundef, i32 noundef) #2

declare i32 @sqlite3StrICmp(ptr noundef, ptr noundef) #2

declare void @sqlite3VdbeReusable(ptr noundef) #2

declare ptr @sqlite3_compileoption_get(i32 noundef) #2

declare i32 @sqlite3_wal_autocheckpoint(ptr noundef, i32 noundef) #2

declare i32 @sqlite3WalDefaultHook(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @sqlite3_db_release_memory(ptr noundef) #2

declare i32 @sqlite3GetTempReg(ptr noundef) #2

declare i32 @sqlite3_busy_timeout(ptr noundef, i32 noundef) #2

declare i64 @sqlite3_soft_heap_limit64(i64 noundef) #2

declare i32 @sqlite3_limit(ptr noundef, i32 noundef, i32 noundef) #2

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 = { 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, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"Parse", !6, i64 0, !6, i64 8, !6, i64 16, !10, i64 24, !7, i64 28, !7, i64 29, !7, i64 30, !7, i64 31, !7, i64 32, !7, i64 33, !7, i64 34, !7, i64 35, !7, i64 36, !7, i64 37, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !6, i64 88, !6, i64 96, !13, i64 104, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !7, i64 192, !7, i64 193, !7, i64 194, !7, i64 196, !7, i64 396, !13, i64 432, !13, i64 448, !14, i64 464, !7, i64 466, !7, i64 467, !7, i64 468, !10, i64 472, !10, i64 476, !10, i64 480, !10, i64 484, !6, i64 488, !6, i64 496, !6, i64 504, !6, i64 512, !6, i64 520, !6, i64 528, !13, i64 536, !6, i64 552, !6, i64 560, !6, i64 568, !6, i64 576, !6, i64 584}
!13 = !{!"Token", !6, i64 0, !10, i64 8}
!14 = !{!"short", !7, i64 0}
!15 = !{!12, !10, i64 56}
!16 = !{!17, !6, i64 32}
!17 = !{!"sqlite3", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !10, i64 40, !10, i64 44, !18, i64 48, !18, i64 56, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !14, 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, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !7, i64 112, !10, i64 160, !19, i64 164, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !10, 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, !10, i64 432, !10, 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, !10, i64 632, !10, i64 636, !10, i64 640, !18, i64 648, !18, i64 656, !6, i64 664}
!18 = !{!"long long", !7, i64 0}
!19 = !{!"sqlite3InitInfo", !10, i64 0, !7, i64 4, !7, i64 5, !7, i64 6, !7, i64 7}
!20 = !{!"Lookaside", !10, i64 0, !14, i64 4, !7, i64 6, !10, i64 8, !10, i64 12, !7, i64 16, !6, i64 32, !6, i64 40, !6, i64 48}
!21 = !{!"Hash", !10, i64 0, !10, i64 4, !6, i64 8, !6, i64 16}
!22 = !{!"BusyHandler", !6, i64 0, !6, i64 8, !10, i64 16}
!23 = !{!13, !10, i64 8}
!24 = !{!25, !6, i64 0}
!25 = !{!"Db", !6, i64 0, !6, i64 8, !7, i64 16, !7, i64 17, !6, i64 24}
!26 = !{!17, !10, i64 552}
!27 = !{!12, !10, i64 48}
!28 = !{!12, !10, i64 24}
!29 = !{!30, !7, i64 9}
!30 = !{!"PragmaName", !6, i64 0, !7, i64 8, !7, i64 9, !7, i64 10, !7, i64 11, !10, i64 12}
!31 = !{!30, !7, i64 8}
!32 = !{!33, !10, i64 4}
!33 = !{!"VdbeOp", !7, i64 0, !7, i64 1, !14, i64 2, !10, i64 4, !10, i64 8, !10, i64 12, !7, i64 16}
!34 = !{!25, !6, i64 24}
!35 = !{!36, !10, i64 116}
!36 = !{!"Schema", !10, i64 0, !10, i64 4, !21, i64 8, !21, i64 32, !21, i64 56, !21, i64 80, !6, i64 104, !7, i64 112, !7, i64 113, !14, i64 114, !10, i64 116}
!37 = !{!25, !6, i64 8}
!38 = !{!17, !10, i64 96}
!39 = !{!17, !10, i64 40}
!40 = distinct !{!40, !41}
!41 = !{!"llvm.loop.mustprogress"}
!42 = !{!7, !7, i64 0}
!43 = !{!17, !7, i64 87}
!44 = distinct !{!44, !41}
!45 = distinct !{!45, !41}
!46 = distinct !{!46, !41}
!47 = !{!18, !18, i64 0}
!48 = !{!17, !7, i64 88}
!49 = !{!33, !10, i64 8}
!50 = !{!33, !10, i64 12}
!51 = !{!17, !10, i64 44}
!52 = !{!53, !18, i64 304}
!53 = !{!"Sqlite3Config", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !54, i64 40, !55, i64 104, !56, i64 176, !6, i64 280, !10, i64 288, !10, i64 292, !10, i64 296, !18, i64 304, !18, i64 312, !6, i64 320, !10, i64 328, !10, i64 332, !6, i64 336, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !6, i64 392, !6, i64 400, !6, i64 408, !6, i64 416, !10, i64 424, !10, i64 428}
!54 = !{!"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}
!55 = !{!"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}
!56 = !{!"sqlite3_pcache_methods2", !10, 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}
!57 = !{!17, !18, i64 56}
!58 = distinct !{!58, !41}
!59 = !{!17, !7, i64 84}
!60 = !{!17, !6, i64 0}
!61 = !{!25, !7, i64 16}
!62 = !{!17, !7, i64 83}
!63 = !{!25, !7, i64 17}
!64 = !{!30, !10, i64 12}
!65 = !{!17, !18, i64 656}
!66 = !{!67, !6, i64 8}
!67 = !{!"Table", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !10, i64 56, !10, i64 60, !10, i64 64, !14, i64 68, !14, i64 70, !14, i64 72, !14, i64 74, !7, i64 76, !10, i64 80, !10, i64 84, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120}
!68 = !{!67, !14, i64 70}
!69 = !{!70, !7, i64 27}
!70 = !{!"Column", !6, i64 0, !6, i64 8, !6, i64 16, !7, i64 24, !7, i64 25, !7, i64 26, !7, i64 27}
!71 = !{!72, !6, i64 8}
!72 = !{!"Index", !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, !6, i64 72, !6, i64 80, !10, i64 88, !14, i64 92, !14, i64 94, !14, i64 96, !7, i64 98, !10, i64 99, !10, i64 99, !10, i64 99, !10, i64 99, !10, i64 99, !10, i64 99, !10, i64 99}
!73 = !{!14, !14, i64 0}
!74 = distinct !{!74, !41}
!75 = !{!70, !6, i64 0}
!76 = !{!70, !7, i64 24}
!77 = !{!70, !6, i64 8}
!78 = distinct !{!78, !41}
!79 = !{!72, !14, i64 96}
!80 = !{!72, !14, i64 94}
!81 = !{!72, !6, i64 24}
!82 = !{!72, !6, i64 56}
!83 = !{!72, !6, i64 64}
!84 = distinct !{!84, !41}
!85 = !{!67, !6, i64 16}
!86 = !{!72, !6, i64 0}
!87 = !{!72, !7, i64 98}
!88 = !{!72, !6, i64 72}
!89 = !{!72, !6, i64 40}
!90 = distinct !{!90, !41}
!91 = distinct !{!91, !41}
!92 = !{!17, !6, i64 520}
!93 = !{!94, !6, i64 16}
!94 = !{!"HashElem", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!95 = !{!96, !6, i64 0}
!96 = !{!"CollSeq", !6, i64 0, !7, i64 8, !6, i64 16, !6, i64 24, !6, i64 32}
!97 = !{!94, !6, i64 0}
!98 = distinct !{!98, !41}
!99 = !{!67, !6, i64 32}
!100 = !{!101, !10, i64 40}
!101 = !{!"FKey", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !10, i64 40, !7, i64 44, !7, i64 45, !7, i64 48, !7, i64 64}
!102 = !{!101, !6, i64 16}
!103 = !{!104, !10, i64 0}
!104 = !{!"sColMap", !10, i64 0, !6, i64 8}
!105 = !{!104, !6, i64 8}
!106 = distinct !{!106, !41}
!107 = !{!101, !6, i64 8}
!108 = distinct !{!108, !41}
!109 = !{!36, !6, i64 16}
!110 = distinct !{!110, !41}
!111 = !{!67, !10, i64 56}
!112 = !{!67, !6, i64 0}
!113 = !{!72, !10, i64 88}
!114 = distinct !{!114, !41}
!115 = !{!12, !10, i64 52}
!116 = !{!67, !14, i64 68}
!117 = distinct !{!117, !41}
!118 = distinct !{!118, !41}
!119 = !{!13, !6, i64 0}
!120 = !{!21, !6, i64 8}
!121 = !{!67, !10, i64 64}
!122 = distinct !{!122, !41}
!123 = distinct !{!123, !41}
!124 = distinct !{!124, !41}
!125 = distinct !{!125, !41}
!126 = !{!67, !6, i64 48}
!127 = distinct !{!127, !41}
!128 = distinct !{!128, !41}
!129 = !{!12, !10, i64 72}
!130 = !{!131, !10, i64 0}
!131 = !{!"ExprList", !10, i64 0, !6, i64 8}
!132 = !{!131, !6, i64 8}
!133 = !{!134, !6, i64 0}
!134 = !{!"ExprList_item", !6, i64 0, !6, i64 8, !6, i64 16, !7, i64 24, !10, i64 25, !10, i64 25, !10, i64 25, !7, i64 28}
!135 = distinct !{!135, !41}
!136 = distinct !{!136, !41}
!137 = distinct !{!137, !41}
!138 = distinct !{!138, !41}
!139 = distinct !{!139, !41}
!140 = distinct !{!140, !41}
!141 = !{!33, !7, i64 1}
!142 = !{!17, !7, i64 82}
!143 = !{!144, !6, i64 0}
!144 = !{!"EncName", !6, i64 0, !7, i64 8}
!145 = !{!36, !14, i64 114}
!146 = !{!144, !7, i64 8}
!147 = !{!36, !7, i64 113}
!148 = distinct !{!148, !41}
!149 = distinct !{!149, !41}
!150 = !{!17, !6, i64 288}
!151 = !{!17, !6, i64 296}
!152 = !{!67, !14, i64 72}
!153 = distinct !{!153, !41}
!154 = distinct !{!154, !41}
!155 = distinct !{!155, !41}
!156 = !{!17, !10, i64 632}


; 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.VdbeOpList = type { i8, i8, i8, i8 }
%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.EncName = type { ptr, i8 }
%struct.Db = type { ptr, ptr, i8, i8, ptr }
%struct.Column = type { ptr, ptr, ptr, i8, i8, i8, i8 }
%struct.sColMap = type { i32, ptr }
%struct.ExprList_item = type { ptr, ptr, ptr, i8, i8, %union.anon.2 }
%union.anon.2 = type { i32 }

@.str.3 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@sqlite3Pragma.getCacheSize = external hidden constant [9 x %struct.VdbeOpList], align 16
@sqlite3UpperToLower = external local_unnamed_addr constant [0 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [10 x i8], align 1
@sqlite3Pragma.setMeta6 = external hidden constant [5 x %struct.VdbeOpList], align 16
@sqlite3Config = external local_unnamed_addr global %struct.Sqlite3Config, align 8
@sqlite3_temp_directory = external local_unnamed_addr global ptr, align 8
@.str.11 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [4 x i8], align 1
@__const.sqlite3Pragma.azOrigin = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.20 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [29 x i8], align 1
@sqlite3Pragma.endCode = external hidden constant [4 x %struct.VdbeOpList], align 16
@.str.34 = external hidden unnamed_addr constant [3 x i8], align 1
@sqlite3Pragma.encnames = external hidden local_unnamed_addr constant [9 x %struct.EncName], align 16
@.str.43 = external hidden unnamed_addr constant [25 x i8], align 1
@sqlite3Pragma.setCookie = external hidden constant [2 x %struct.VdbeOpList], align 1
@sqlite3Pragma.readCookie = external hidden constant [3 x %struct.VdbeOpList], align 1
@.str.44 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [18 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @sqlite3GetBoolean(ptr noundef, i8 noundef zeroext) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden zeroext i8 @getSafetyLevel(ptr noundef, i32 noundef, i8 noundef zeroext) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @sqlite3JournalModename(i32 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local void @sqlite3Pragma(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4) local_unnamed_addr #0 {
  %6 = alloca ptr, align 8
  %7 = alloca [4 x ptr], align 16
  %8 = alloca i64, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i64, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #4
  %21 = load ptr, ptr %0, align 8, !tbaa !5
  %22 = tail call ptr @sqlite3GetVdbe(ptr noundef nonnull %0) #4
  %23 = icmp eq ptr %22, null
  br i1 %23, label %1220, label %24

24:                                               ; preds = %5
  tail call void @sqlite3VdbeRunOnlyOnce(ptr noundef nonnull %22) #4
  %25 = getelementptr inbounds i8, ptr %0, i64 56
  store i32 2, ptr %25, align 8, !tbaa !13
  %26 = call i32 @sqlite3TwoPartName(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %6) #4
  %27 = icmp slt i32 %26, 0
  br i1 %27, label %1220, label %28

28:                                               ; preds = %24
  %29 = getelementptr inbounds i8, ptr %21, i64 32
  %30 = load ptr, ptr %29, align 8, !tbaa !14
  %31 = zext nneg i32 %26 to i64
  %32 = getelementptr inbounds %struct.Db, ptr %30, i64 %31
  %33 = icmp eq i32 %26, 1
  br i1 %33, label %34, label %36

34:                                               ; preds = %28
  %35 = call i32 @sqlite3OpenTempDatabase(ptr noundef nonnull %0) #4
  %.not = icmp eq i32 %35, 0
  br i1 %.not, label %36, label %1220

36:                                               ; preds = %34, %28
  %37 = load ptr, ptr %6, align 8, !tbaa !21
  %38 = call ptr @sqlite3NameFromToken(ptr noundef nonnull %21, ptr noundef %37) #4
  %.not1052 = icmp eq ptr %38, null
  br i1 %.not1052, label %1220, label %39

39:                                               ; preds = %36
  %.not1053 = icmp eq i32 %4, 0
  br i1 %.not1053, label %42, label %40

40:                                               ; preds = %39
  %41 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef nonnull %21, ptr noundef nonnull @.str.6, ptr noundef %3) #4
  br label %44

42:                                               ; preds = %39
  %43 = call ptr @sqlite3NameFromToken(ptr noundef nonnull %21, ptr noundef %3) #4
  br label %44

44:                                               ; preds = %42, %40
  %.0947 = phi ptr [ %41, %40 ], [ %43, %42 ]
  %45 = getelementptr inbounds i8, ptr %2, i64 8
  %46 = load i32, ptr %45, align 8, !tbaa !22
  %.not1054 = icmp eq i32 %46, 0
  br i1 %.not1054, label %49, label %47

47:                                               ; preds = %44
  %48 = load ptr, ptr %32, align 8, !tbaa !23
  br label %49

49:                                               ; preds = %44, %47
  %50 = phi ptr [ %48, %47 ], [ null, %44 ]
  %51 = call i32 @sqlite3AuthCheck(ptr noundef nonnull %0, i32 noundef 19, ptr noundef nonnull %38, ptr noundef %.0947, ptr noundef %50) #4
  %.not1055 = icmp eq i32 %51, 0
  br i1 %.not1055, label %52, label %.loopexit1190

52:                                               ; preds = %49
  store ptr null, ptr %7, align 16, !tbaa !21
  %53 = getelementptr inbounds i8, ptr %7, i64 8
  store ptr %38, ptr %53, align 8, !tbaa !21
  %54 = getelementptr inbounds i8, ptr %7, i64 16
  store ptr %.0947, ptr %54, align 16, !tbaa !21
  %55 = getelementptr inbounds i8, ptr %7, i64 24
  store ptr null, ptr %55, align 8, !tbaa !21
  %56 = getelementptr inbounds i8, ptr %21, i64 552
  store i32 0, ptr %56, align 8, !tbaa !25
  %57 = call i32 @sqlite3_file_control(ptr noundef nonnull %21, ptr noundef %50, i32 noundef 14, ptr noundef nonnull %7) #4
  switch i32 %57, label %63 [
    i32 0, label %58
    i32 12, label %72
  ]

58:                                               ; preds = %52
  call void @sqlite3VdbeSetNumCols(ptr noundef nonnull %22, i32 noundef 1) #4
  %59 = load ptr, ptr %7, align 16, !tbaa !21
  %60 = call i32 @sqlite3VdbeSetColName(ptr noundef nonnull %22, i32 noundef 0, i32 noundef 0, ptr noundef %59, ptr noundef nonnull inttoptr (i64 -1 to ptr)) #4
  %61 = load ptr, ptr %7, align 16, !tbaa !21
  call void @returnSingleText(ptr noundef nonnull %22, ptr noundef %61)
  %62 = load ptr, ptr %7, align 16, !tbaa !21
  call void @sqlite3_free(ptr noundef %62) #4
  br label %.loopexit1190

63:                                               ; preds = %52
  %64 = load ptr, ptr %7, align 16, !tbaa !21
  %.not1146 = icmp eq ptr %64, null
  br i1 %.not1146, label %67, label %65

65:                                               ; preds = %63
  call void (ptr, ptr, ...) @sqlite3ErrorMsg(ptr noundef nonnull %0, ptr noundef nonnull @.str.7, ptr noundef nonnull %64) #4
  %66 = load ptr, ptr %7, align 16, !tbaa !21
  call void @sqlite3_free(ptr noundef %66) #4
  br label %67

67:                                               ; preds = %65, %63
  %68 = getelementptr inbounds i8, ptr %0, i64 48
  %69 = load i32, ptr %68, align 8, !tbaa !26
  %70 = add nsw i32 %69, 1
  store i32 %70, ptr %68, align 8, !tbaa !26
  %71 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %57, ptr %71, align 8, !tbaa !27
  br label %.loopexit1190

72:                                               ; preds = %52
  %73 = call ptr @pragmaLocate(ptr noundef nonnull %38)
  %74 = icmp eq ptr %73, null
  br i1 %74, label %.loopexit1190, label %75

75:                                               ; preds = %72
  %76 = getelementptr inbounds i8, ptr %73, i64 9
  %77 = load i8, ptr %76, align 1, !tbaa !28
  %78 = and i8 %77, 1
  %.not1057 = icmp eq i8 %78, 0
  br i1 %.not1057, label %81, label %79

79:                                               ; preds = %75
  %80 = call i32 @sqlite3ReadSchema(ptr noundef nonnull %0) #4
  %.not1058 = icmp eq i32 %80, 0
  br i1 %.not1058, label %._crit_edge1449, label %.loopexit1190

._crit_edge1449:                                  ; preds = %79
  %.pre = load i8, ptr %76, align 1, !tbaa !28
  br label %81

81:                                               ; preds = %._crit_edge1449, %75
  %82 = phi i8 [ %.pre, %._crit_edge1449 ], [ %77, %75 ]
  %83 = zext i8 %82 to i32
  %84 = and i32 %83, 2
  %85 = icmp eq i32 %84, 0
  br i1 %85, label %86, label %91

86:                                               ; preds = %81
  %87 = and i32 %83, 4
  %88 = icmp eq i32 %87, 0
  %89 = icmp eq ptr %.0947, null
  %or.cond = select i1 %88, i1 true, i1 %89
  br i1 %or.cond, label %90, label %91

90:                                               ; preds = %86
  call void @setPragmaResultColumnNames(ptr noundef nonnull %22, ptr noundef nonnull %73)
  br label %91

91:                                               ; preds = %86, %90, %81
  %92 = getelementptr inbounds i8, ptr %73, i64 8
  %93 = load i8, ptr %92, align 8, !tbaa !30
  switch i8 %93, label %1190 [
    i8 11, label %94
    i8 26, label %112
    i8 27, label %127
    i8 23, label %147
    i8 22, label %163
    i8 19, label %193
    i8 20, label %226
    i8 1, label %238
    i8 15, label %260
    i8 4, label %275
    i8 5, label %290
    i8 24, label %318
    i8 32, label %358
    i8 33, label %365
    i8 30, label %389
    i8 2, label %406
    i8 31, label %438
    i8 16, label %491
    i8 17, label %535
    i8 10, label %558
    i8 7, label %577
    i8 14, label %584
    i8 13, label %621
    i8 6, label %746
    i8 18, label %750
    i8 12, label %1019
    i8 0, label %1051
    i8 8, label %1070
    i8 36, label %1077
    i8 35, label %1092
    i8 28, label %1107
    i8 25, label %1109
    i8 29, label %1198
    i8 34, label %1207
  ]

94:                                               ; preds = %91
  call void @sqlite3VdbeUsesBtree(ptr noundef nonnull %22, i32 noundef %26) #4
  %.not1144 = icmp eq ptr %.0947, null
  br i1 %.not1144, label %95, label %102

95:                                               ; preds = %94
  %96 = load i32, ptr %25, align 8, !tbaa !13
  %97 = add nsw i32 %96, 2
  store i32 %97, ptr %25, align 8, !tbaa !13
  %98 = call ptr @sqlite3VdbeAddOpList(ptr noundef nonnull %22, i32 noundef 9, ptr noundef nonnull @sqlite3Pragma.getCacheSize, i32 noundef 0) #4
  %99 = getelementptr inbounds i8, ptr %98, i64 4
  store i32 %26, ptr %99, align 4, !tbaa !31
  %100 = getelementptr inbounds i8, ptr %98, i64 28
  store i32 %26, ptr %100, align 4, !tbaa !31
  %101 = getelementptr inbounds i8, ptr %98, i64 148
  store i32 -2000, ptr %101, align 4, !tbaa !31
  br label %.loopexit1190

102:                                              ; preds = %94
  %103 = call i32 @sqlite3Atoi(ptr noundef nonnull %.0947) #4
  %104 = call i32 @sqlite3AbsInt32(i32 noundef %103) #4
  call void @sqlite3BeginWriteOperation(ptr noundef nonnull %0, i32 noundef 0, i32 noundef %26) #4
  %105 = call i32 @sqlite3VdbeAddOp3(ptr noundef nonnull %22, i32 noundef 103, i32 noundef %26, i32 noundef 3, i32 noundef %104) #4
  %106 = getelementptr inbounds i8, ptr %32, i64 24
  %107 = load ptr, ptr %106, align 8, !tbaa !33
  %108 = getelementptr inbounds i8, ptr %107, i64 116
  store i32 %104, ptr %108, align 4, !tbaa !34
  %109 = getelementptr inbounds i8, ptr %32, i64 8
  %110 = load ptr, ptr %109, align 8, !tbaa !36
  %111 = call i32 @sqlite3BtreeSetCacheSize(ptr noundef %110, i32 noundef %104) #4
  br label %.loopexit1190

112:                                              ; preds = %91
  %113 = getelementptr inbounds i8, ptr %32, i64 8
  %114 = load ptr, ptr %113, align 8, !tbaa !36
  %.not1142 = icmp eq ptr %.0947, null
  br i1 %.not1142, label %115, label %121

115:                                              ; preds = %112
  %.not1143 = icmp eq ptr %114, null
  br i1 %.not1143, label %119, label %116

116:                                              ; preds = %115
  %117 = call i32 @sqlite3BtreeGetPageSize(ptr noundef nonnull %114) #4
  %118 = sext i32 %117 to i64
  br label %119

119:                                              ; preds = %115, %116
  %120 = phi i64 [ %118, %116 ], [ 0, %115 ]
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %120)
  br label %.loopexit1190

121:                                              ; preds = %112
  %122 = call i32 @sqlite3Atoi(ptr noundef nonnull %.0947) #4
  %123 = getelementptr inbounds i8, ptr %21, i64 96
  store i32 %122, ptr %123, align 8, !tbaa !37
  %124 = call i32 @sqlite3BtreeSetPageSize(ptr noundef %114, i32 noundef %122, i32 noundef -1, i32 noundef 0) #4
  %125 = icmp eq i32 %124, 7
  br i1 %125, label %126, label %.loopexit1190

126:                                              ; preds = %121
  call void @sqlite3OomFault(ptr noundef nonnull %21) #4
  br label %.loopexit1190

127:                                              ; preds = %91
  %128 = getelementptr inbounds i8, ptr %32, i64 8
  %129 = load ptr, ptr %128, align 8, !tbaa !36
  %.not1141 = icmp eq ptr %.0947, null
  br i1 %.not1141, label %.thread, label %130

130:                                              ; preds = %127
  %131 = call zeroext i8 @sqlite3GetBoolean(ptr noundef nonnull %.0947, i8 noundef zeroext 0)
  %132 = zext i8 %131 to i32
  %133 = load i32, ptr %45, align 8, !tbaa !22
  %134 = icmp eq i32 %133, 0
  br i1 %134, label %.preheader, label %.thread

.preheader:                                       ; preds = %130
  %135 = getelementptr inbounds i8, ptr %21, i64 40
  %136 = load i32, ptr %135, align 8, !tbaa !38
  %137 = icmp sgt i32 %136, 0
  br i1 %137, label %.lr.ph1387, label %.thread

.lr.ph1387:                                       ; preds = %.preheader, %.lr.ph1387
  %indvars.iv1446 = phi i64 [ %indvars.iv.next1447, %.lr.ph1387 ], [ 0, %.preheader ]
  %138 = load ptr, ptr %29, align 8, !tbaa !14
  %139 = getelementptr inbounds %struct.Db, ptr %138, i64 %indvars.iv1446, i32 1
  %140 = load ptr, ptr %139, align 8, !tbaa !36
  %141 = call i32 @sqlite3BtreeSecureDelete(ptr noundef %140, i32 noundef %132) #4
  %indvars.iv.next1447 = add nuw nsw i64 %indvars.iv1446, 1
  %142 = load i32, ptr %135, align 8, !tbaa !38
  %143 = sext i32 %142 to i64
  %144 = icmp slt i64 %indvars.iv.next1447, %143
  br i1 %144, label %.lr.ph1387, label %.thread, !llvm.loop !39

.thread:                                          ; preds = %.lr.ph1387, %.preheader, %127, %130
  %.09561165 = phi i32 [ %132, %130 ], [ -1, %127 ], [ %132, %.preheader ], [ %132, %.lr.ph1387 ]
  %145 = call i32 @sqlite3BtreeSecureDelete(ptr noundef %129, i32 noundef %.09561165) #4
  %146 = sext i32 %145 to i64
  call void @returnSingleInt(ptr noundef %22, i64 noundef %146)
  br label %.loopexit1190

147:                                              ; preds = %91
  call void @sqlite3CodeVerifySchema(ptr noundef nonnull %0, i32 noundef %26) #4
  %148 = load i32, ptr %25, align 8, !tbaa !13
  %149 = add nsw i32 %148, 1
  store i32 %149, ptr %25, align 8, !tbaa !13
  %150 = load i8, ptr %38, align 1, !tbaa !41
  %151 = zext i8 %150 to i64
  %152 = getelementptr inbounds [0 x i8], ptr @sqlite3UpperToLower, i64 0, i64 %151
  %153 = load i8, ptr %152, align 1, !tbaa !41
  %154 = icmp eq i8 %153, 112
  br i1 %154, label %155, label %157

155:                                              ; preds = %147
  %156 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %22, i32 noundef 159, i32 noundef %26, i32 noundef %149) #4
  br label %161

157:                                              ; preds = %147
  %158 = call i32 @sqlite3Atoi(ptr noundef %.0947) #4
  %159 = call i32 @sqlite3AbsInt32(i32 noundef %158) #4
  %160 = call i32 @sqlite3VdbeAddOp3(ptr noundef nonnull %22, i32 noundef 160, i32 noundef %26, i32 noundef %149, i32 noundef %159) #4
  br label %161

161:                                              ; preds = %157, %155
  %162 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %22, i32 noundef 88, i32 noundef %149, i32 noundef 1) #4
  br label %.loopexit1190

163:                                              ; preds = %91
  %164 = call i32 @getLockingMode(ptr noundef %.0947)
  %165 = load i32, ptr %45, align 8, !tbaa !22
  %166 = icmp eq i32 %165, 0
  %167 = icmp eq i32 %164, -1
  %or.cond5 = select i1 %166, i1 %167, i1 false
  br i1 %or.cond5, label %168, label %172

168:                                              ; preds = %163
  %169 = getelementptr inbounds i8, ptr %21, i64 87
  %170 = load i8, ptr %169, align 1, !tbaa !42
  %171 = zext i8 %170 to i32
  br label %191

172:                                              ; preds = %163
  br i1 %166, label %.preheader1187, label %186

.preheader1187:                                   ; preds = %172
  %173 = getelementptr inbounds i8, ptr %21, i64 40
  %174 = load i32, ptr %173, align 8, !tbaa !38
  %175 = icmp sgt i32 %174, 2
  br i1 %175, label %.lr.ph1384, label %._crit_edge1385

.lr.ph1384:                                       ; preds = %.preheader1187, %.lr.ph1384
  %indvars.iv1443 = phi i64 [ %indvars.iv.next1444, %.lr.ph1384 ], [ 2, %.preheader1187 ]
  %176 = load ptr, ptr %29, align 8, !tbaa !14
  %177 = getelementptr inbounds %struct.Db, ptr %176, i64 %indvars.iv1443, i32 1
  %178 = load ptr, ptr %177, align 8, !tbaa !36
  %179 = call ptr @sqlite3BtreePager(ptr noundef %178) #4
  %180 = call i32 @sqlite3PagerLockingMode(ptr noundef %179, i32 noundef %164) #4
  %indvars.iv.next1444 = add nuw nsw i64 %indvars.iv1443, 1
  %181 = load i32, ptr %173, align 8, !tbaa !38
  %182 = sext i32 %181 to i64
  %183 = icmp slt i64 %indvars.iv.next1444, %182
  br i1 %183, label %.lr.ph1384, label %._crit_edge1385, !llvm.loop !43

._crit_edge1385:                                  ; preds = %.lr.ph1384, %.preheader1187
  %184 = trunc i32 %164 to i8
  %185 = getelementptr inbounds i8, ptr %21, i64 87
  store i8 %184, ptr %185, align 1, !tbaa !42
  br label %186

186:                                              ; preds = %._crit_edge1385, %172
  %187 = getelementptr inbounds i8, ptr %32, i64 8
  %188 = load ptr, ptr %187, align 8, !tbaa !36
  %189 = call ptr @sqlite3BtreePager(ptr noundef %188) #4
  %190 = call i32 @sqlite3PagerLockingMode(ptr noundef %189, i32 noundef %164) #4
  br label %191

191:                                              ; preds = %186, %168
  %.0960 = phi i32 [ %171, %168 ], [ %190, %186 ]
  %192 = icmp eq i32 %.0960, 1
  %spec.select = select i1 %192, ptr @.str.9, ptr @.str.8
  call void @returnSingleText(ptr noundef %22, ptr noundef nonnull %spec.select)
  br label %.loopexit1190

193:                                              ; preds = %91
  %194 = icmp eq ptr %.0947, null
  br i1 %194, label %select.unfold, label %195

195:                                              ; preds = %193
  %196 = call i32 @sqlite3Strlen30(ptr noundef nonnull %.0947) #4
  %197 = call ptr @sqlite3JournalModename(i32 noundef 0)
  %.not11391374 = icmp eq ptr %197, null
  br i1 %.not11391374, label %select.unfold, label %.lr.ph1377

.lr.ph1377:                                       ; preds = %195, %201
  %198 = phi ptr [ %203, %201 ], [ %197, %195 ]
  %.09631375 = phi i32 [ %202, %201 ], [ 0, %195 ]
  %199 = call i32 @sqlite3_strnicmp(ptr noundef %.0947, ptr noundef nonnull %198, i32 noundef %196) #4
  %200 = icmp eq i32 %199, 0
  br i1 %200, label %.loopexit, label %201

201:                                              ; preds = %.lr.ph1377
  %202 = add nuw nsw i32 %.09631375, 1
  %203 = call ptr @sqlite3JournalModename(i32 noundef %202)
  %.not1139 = icmp eq ptr %203, null
  br i1 %.not1139, label %select.unfold, label %.lr.ph1377, !llvm.loop !44

select.unfold:                                    ; preds = %201, %195, %193
  %204 = load i32, ptr %45, align 8, !tbaa !22
  %205 = icmp eq i32 %204, 0
  br i1 %205, label %206, label %.loopexit

206:                                              ; preds = %select.unfold
  store i32 1, ptr %45, align 8, !tbaa !22
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph1377, %206, %select.unfold
  %.29651168 = phi i32 [ -1, %206 ], [ -1, %select.unfold ], [ %.09631375, %.lr.ph1377 ]
  %.0950 = phi i32 [ 0, %206 ], [ %26, %select.unfold ], [ %26, %.lr.ph1377 ]
  %207 = getelementptr inbounds i8, ptr %21, i64 40
  %208 = load i32, ptr %207, align 8, !tbaa !38
  %209 = icmp sgt i32 %208, 0
  br i1 %209, label %.lr.ph1381.preheader, label %._crit_edge1382

.lr.ph1381.preheader:                             ; preds = %.loopexit
  %210 = zext nneg i32 %208 to i64
  %211 = zext nneg i32 %.0950 to i64
  br label %.lr.ph1381

.lr.ph1381:                                       ; preds = %.lr.ph1381.preheader, %223
  %indvars.iv1440 = phi i64 [ %210, %.lr.ph1381.preheader ], [ %indvars.iv.next1441, %223 ]
  %indvars.iv.next1441 = add nsw i64 %indvars.iv1440, -1
  %212 = load ptr, ptr %29, align 8, !tbaa !14
  %213 = getelementptr inbounds %struct.Db, ptr %212, i64 %indvars.iv.next1441, i32 1
  %214 = load ptr, ptr %213, align 8, !tbaa !36
  %.not1140 = icmp eq ptr %214, null
  br i1 %.not1140, label %223, label %215

215:                                              ; preds = %.lr.ph1381
  %216 = icmp eq i64 %indvars.iv.next1441, %211
  br i1 %216, label %220, label %217

217:                                              ; preds = %215
  %218 = load i32, ptr %45, align 8, !tbaa !22
  %219 = icmp eq i32 %218, 0
  br i1 %219, label %220, label %223

220:                                              ; preds = %217, %215
  %221 = trunc nuw nsw i64 %indvars.iv.next1441 to i32
  call void @sqlite3VdbeUsesBtree(ptr noundef %22, i32 noundef %221) #4
  %222 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 9, i32 noundef %221, i32 noundef 1, i32 noundef %.29651168) #4
  br label %223

223:                                              ; preds = %.lr.ph1381, %217, %220
  %224 = icmp ugt i64 %indvars.iv1440, 1
  br i1 %224, label %.lr.ph1381, label %._crit_edge1382, !llvm.loop !45

._crit_edge1382:                                  ; preds = %223, %.loopexit
  %225 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 88, i32 noundef 1, i32 noundef 1) #4
  br label %.loopexit1190

226:                                              ; preds = %91
  %227 = getelementptr inbounds i8, ptr %32, i64 8
  %228 = load ptr, ptr %227, align 8, !tbaa !36
  %229 = call ptr @sqlite3BtreePager(ptr noundef %228) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #4
  store i64 -2, ptr %8, align 8, !tbaa !46
  %.not1138 = icmp eq ptr %.0947, null
  br i1 %.not1138, label %235, label %230

230:                                              ; preds = %226
  %231 = call i32 @sqlite3DecOrHexToI64(ptr noundef nonnull %.0947, ptr noundef nonnull %8) #4
  %232 = load i64, ptr %8, align 8, !tbaa !46
  %233 = icmp slt i64 %232, -1
  br i1 %233, label %234, label %235

234:                                              ; preds = %230
  store i64 -1, ptr %8, align 8, !tbaa !46
  br label %235

235:                                              ; preds = %230, %234, %226
  %236 = phi i64 [ %232, %230 ], [ -1, %234 ], [ -2, %226 ]
  %237 = call i64 @sqlite3PagerJournalSizeLimit(ptr noundef %229, i64 noundef %236) #4
  store i64 %237, ptr %8, align 8, !tbaa !46
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %237)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #4
  br label %.loopexit1190

238:                                              ; preds = %91
  %239 = getelementptr inbounds i8, ptr %32, i64 8
  %240 = load ptr, ptr %239, align 8, !tbaa !36
  %.not1137 = icmp eq ptr %.0947, null
  br i1 %.not1137, label %241, label %244

241:                                              ; preds = %238
  %242 = call i32 @sqlite3BtreeGetAutoVacuum(ptr noundef %240) #4
  %243 = sext i32 %242 to i64
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %243)
  br label %.loopexit1190

244:                                              ; preds = %238
  %245 = call i32 @getAutoVacuum(ptr noundef nonnull %.0947)
  %246 = trunc i32 %245 to i8
  %247 = getelementptr inbounds i8, ptr %21, i64 88
  store i8 %246, ptr %247, align 8, !tbaa !47
  %248 = call i32 @sqlite3BtreeSetAutoVacuum(ptr noundef %240, i32 noundef %245) #4
  %249 = icmp eq i32 %248, 0
  %250 = add i32 %245, -1
  %or.cond7 = icmp ult i32 %250, 2
  %or.cond1148 = and i1 %or.cond7, %249
  br i1 %or.cond1148, label %251, label %.loopexit1190

251:                                              ; preds = %244
  %252 = call i32 @sqlite3VdbeCurrentAddr(ptr noundef nonnull %22) #4
  %253 = call ptr @sqlite3VdbeAddOpList(ptr noundef nonnull %22, i32 noundef 5, ptr noundef nonnull @sqlite3Pragma.setMeta6, i32 noundef 0) #4
  %254 = getelementptr inbounds i8, ptr %253, i64 4
  store i32 %26, ptr %254, align 4, !tbaa !31
  %255 = getelementptr inbounds i8, ptr %253, i64 28
  store i32 %26, ptr %255, align 4, !tbaa !31
  %256 = add nsw i32 %252, 4
  %257 = getelementptr inbounds i8, ptr %253, i64 56
  store i32 %256, ptr %257, align 8, !tbaa !48
  %258 = getelementptr inbounds i8, ptr %253, i64 100
  store i32 %26, ptr %258, align 4, !tbaa !31
  %259 = getelementptr inbounds i8, ptr %253, i64 108
  store i32 %250, ptr %259, align 4, !tbaa !49
  call void @sqlite3VdbeUsesBtree(ptr noundef nonnull %22, i32 noundef %26) #4
  br label %.loopexit1190

260:                                              ; preds = %91
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #4
  %261 = icmp eq ptr %.0947, null
  br i1 %261, label %267, label %262

262:                                              ; preds = %260
  %263 = call i32 @sqlite3GetInt32(ptr noundef nonnull %.0947, ptr noundef nonnull %9) #4
  %264 = icmp eq i32 %263, 0
  %265 = load i32, ptr %9, align 4
  %266 = icmp slt i32 %265, 1
  %or.cond9 = select i1 %264, i1 true, i1 %266
  br i1 %or.cond9, label %267, label %268

267:                                              ; preds = %262, %260
  store i32 2147483647, ptr %9, align 4, !tbaa !50
  br label %268

268:                                              ; preds = %262, %267
  call void @sqlite3BeginWriteOperation(ptr noundef nonnull %0, i32 noundef 0, i32 noundef %26) #4
  %269 = load i32, ptr %9, align 4, !tbaa !50
  %270 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %22, i32 noundef 77, i32 noundef %269, i32 noundef 1) #4
  %271 = call i32 @sqlite3VdbeAddOp1(ptr noundef nonnull %22, i32 noundef 70, i32 noundef %26) #4
  %272 = call i32 @sqlite3VdbeAddOp1(ptr noundef nonnull %22, i32 noundef 88, i32 noundef 1) #4
  %273 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %22, i32 noundef 92, i32 noundef 1, i32 noundef -1) #4
  %274 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %22, i32 noundef 67, i32 noundef 1, i32 noundef %271) #4
  call void @sqlite3VdbeJumpHere(ptr noundef nonnull %22, i32 noundef %271) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #4
  br label %.loopexit1190

275:                                              ; preds = %91
  %.not1136 = icmp eq ptr %.0947, null
  br i1 %.not1136, label %276, label %282

276:                                              ; preds = %275
  %277 = getelementptr inbounds i8, ptr %32, i64 24
  %278 = load ptr, ptr %277, align 8, !tbaa !33
  %279 = getelementptr inbounds i8, ptr %278, i64 116
  %280 = load i32, ptr %279, align 4, !tbaa !34
  %281 = sext i32 %280 to i64
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %281)
  br label %.loopexit1190

282:                                              ; preds = %275
  %283 = call i32 @sqlite3Atoi(ptr noundef nonnull %.0947) #4
  %284 = getelementptr inbounds i8, ptr %32, i64 24
  %285 = load ptr, ptr %284, align 8, !tbaa !33
  %286 = getelementptr inbounds i8, ptr %285, i64 116
  store i32 %283, ptr %286, align 4, !tbaa !34
  %287 = getelementptr inbounds i8, ptr %32, i64 8
  %288 = load ptr, ptr %287, align 8, !tbaa !36
  %289 = call i32 @sqlite3BtreeSetCacheSize(ptr noundef %288, i32 noundef %283) #4
  br label %.loopexit1190

290:                                              ; preds = %91
  %.not1133 = icmp eq ptr %.0947, null
  br i1 %.not1133, label %291, label %303

291:                                              ; preds = %290
  %292 = getelementptr inbounds i8, ptr %21, i64 44
  %293 = load i32, ptr %292, align 4, !tbaa !51
  %294 = and i32 %293, 32
  %295 = icmp eq i32 %294, 0
  br i1 %295, label %301, label %296

296:                                              ; preds = %291
  %297 = getelementptr inbounds i8, ptr %32, i64 8
  %298 = load ptr, ptr %297, align 8, !tbaa !36
  %299 = call i32 @sqlite3BtreeSetSpillSize(ptr noundef %298, i32 noundef 0) #4
  %300 = sext i32 %299 to i64
  br label %301

301:                                              ; preds = %291, %296
  %302 = phi i64 [ %300, %296 ], [ 0, %291 ]
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %302)
  br label %.loopexit1190

303:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #4
  store i32 1, ptr %10, align 4, !tbaa !50
  %304 = call i32 @sqlite3GetInt32(ptr noundef nonnull %.0947, ptr noundef nonnull %10) #4
  %.not1134 = icmp eq i32 %304, 0
  br i1 %.not1134, label %310, label %305

305:                                              ; preds = %303
  %306 = getelementptr inbounds i8, ptr %32, i64 8
  %307 = load ptr, ptr %306, align 8, !tbaa !36
  %308 = load i32, ptr %10, align 4, !tbaa !50
  %309 = call i32 @sqlite3BtreeSetSpillSize(ptr noundef %307, i32 noundef %308) #4
  br label %310

310:                                              ; preds = %305, %303
  %311 = load i32, ptr %10, align 4, !tbaa !50
  %312 = icmp ne i32 %311, 0
  %313 = zext i1 %312 to i8
  %314 = call zeroext i8 @sqlite3GetBoolean(ptr noundef nonnull %.0947, i8 noundef zeroext %313)
  %.not1135 = icmp eq i8 %314, 0
  %315 = getelementptr inbounds i8, ptr %21, i64 44
  %316 = load i32, ptr %315, align 4, !tbaa !51
  %317 = and i32 %316, -33
  %masksel = select i1 %.not1135, i32 0, i32 32
  %.sink = or disjoint i32 %317, %masksel
  store i32 %.sink, ptr %315, align 4, !tbaa !51
  call void @setAllPagerFlags(ptr noundef nonnull %21)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #4
  br label %.loopexit1190

318:                                              ; preds = %91
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #4
  %.not1130 = icmp eq ptr %.0947, null
  br i1 %.not1130, label %.loopexit1188, label %319

319:                                              ; preds = %318
  %320 = call i32 @sqlite3DecOrHexToI64(ptr noundef nonnull %.0947, ptr noundef nonnull %11) #4
  %321 = load i64, ptr %11, align 8, !tbaa !46
  %322 = icmp slt i64 %321, 0
  br i1 %322, label %323, label %325

323:                                              ; preds = %319
  %324 = load i64, ptr getelementptr inbounds (i8, ptr @sqlite3Config, i64 304), align 8, !tbaa !52
  store i64 %324, ptr %11, align 8, !tbaa !46
  br label %325

325:                                              ; preds = %323, %319
  %326 = phi i64 [ %324, %323 ], [ %321, %319 ]
  %327 = load i32, ptr %45, align 8, !tbaa !22
  %328 = icmp eq i32 %327, 0
  br i1 %328, label %329, label %331

329:                                              ; preds = %325
  %330 = getelementptr inbounds i8, ptr %21, i64 56
  store i64 %326, ptr %330, align 8, !tbaa !57
  br label %331

331:                                              ; preds = %329, %325
  %332 = getelementptr inbounds i8, ptr %21, i64 40
  %333 = load i32, ptr %332, align 8, !tbaa !38
  %334 = icmp sgt i32 %333, 0
  br i1 %334, label %.lr.ph1373.preheader, label %.loopexit1188

.lr.ph1373.preheader:                             ; preds = %331
  %335 = zext nneg i32 %333 to i64
  br label %.lr.ph1373

.lr.ph1373:                                       ; preds = %.lr.ph1373.preheader, %347
  %indvars.iv1437 = phi i64 [ %335, %.lr.ph1373.preheader ], [ %indvars.iv.next1438, %347 ]
  %indvars.iv.next1438 = add nsw i64 %indvars.iv1437, -1
  %336 = load ptr, ptr %29, align 8, !tbaa !14
  %337 = getelementptr inbounds %struct.Db, ptr %336, i64 %indvars.iv.next1438, i32 1
  %338 = load ptr, ptr %337, align 8, !tbaa !36
  %.not1132 = icmp eq ptr %338, null
  br i1 %.not1132, label %347, label %339

339:                                              ; preds = %.lr.ph1373
  %340 = icmp eq i64 %indvars.iv.next1438, %31
  br i1 %340, label %344, label %341

341:                                              ; preds = %339
  %342 = load i32, ptr %45, align 8, !tbaa !22
  %343 = icmp eq i32 %342, 0
  br i1 %343, label %344, label %347

344:                                              ; preds = %341, %339
  %345 = load i64, ptr %11, align 8, !tbaa !46
  %346 = call i32 @sqlite3BtreeSetMmapLimit(ptr noundef nonnull %338, i64 noundef %345) #4
  br label %347

347:                                              ; preds = %.lr.ph1373, %341, %344
  %348 = icmp ugt i64 %indvars.iv1437, 1
  br i1 %348, label %.lr.ph1373, label %.loopexit1188, !llvm.loop !58

.loopexit1188:                                    ; preds = %347, %331, %318
  store i64 -1, ptr %11, align 8, !tbaa !46
  %349 = call i32 @sqlite3_file_control(ptr noundef nonnull %21, ptr noundef %50, i32 noundef 18, ptr noundef nonnull %11) #4
  switch i32 %349, label %352 [
    i32 0, label %350
    i32 12, label %357
  ]

350:                                              ; preds = %.loopexit1188
  %351 = load i64, ptr %11, align 8, !tbaa !46
  call void @returnSingleInt(ptr noundef %22, i64 noundef %351)
  br label %357

352:                                              ; preds = %.loopexit1188
  %353 = getelementptr inbounds i8, ptr %0, i64 48
  %354 = load i32, ptr %353, align 8, !tbaa !26
  %355 = add nsw i32 %354, 1
  store i32 %355, ptr %353, align 8, !tbaa !26
  %356 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %349, ptr %356, align 8, !tbaa !27
  br label %357

357:                                              ; preds = %.loopexit1188, %352, %350
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #4
  br label %.loopexit1190

358:                                              ; preds = %91
  %.not1129 = icmp eq ptr %.0947, null
  br i1 %.not1129, label %359, label %363

359:                                              ; preds = %358
  %360 = getelementptr inbounds i8, ptr %21, i64 84
  %361 = load i8, ptr %360, align 4, !tbaa !59
  %362 = zext i8 %361 to i64
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %362)
  br label %.loopexit1190

363:                                              ; preds = %358
  %364 = call i32 @changeTempStorage(ptr noundef nonnull %0, ptr noundef nonnull %.0947)
  br label %.loopexit1190

365:                                              ; preds = %91
  %.not1126 = icmp eq ptr %.0947, null
  br i1 %.not1126, label %366, label %368

366:                                              ; preds = %365
  %367 = load ptr, ptr @sqlite3_temp_directory, align 8, !tbaa !21
  call void @returnSingleText(ptr noundef nonnull %22, ptr noundef %367)
  br label %.loopexit1190

368:                                              ; preds = %365
  %369 = load i8, ptr %.0947, align 1, !tbaa !41
  %.not1127 = icmp eq i8 %369, 0
  br i1 %.not1127, label %377, label %370

370:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #4
  %371 = load ptr, ptr %21, align 8, !tbaa !60
  %372 = call i32 @sqlite3OsAccess(ptr noundef %371, ptr noundef nonnull %.0947, i32 noundef 1, ptr noundef nonnull %12) #4
  %373 = icmp ne i32 %372, 0
  %374 = load i32, ptr %12, align 4
  %375 = icmp eq i32 %374, 0
  %or.cond11 = select i1 %373, i1 true, i1 %375
  br i1 %or.cond11, label %376, label %.thread1170

.thread1170:                                      ; preds = %370
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  br label %377

376:                                              ; preds = %370
  call void (ptr, ptr, ...) @sqlite3ErrorMsg(ptr noundef nonnull %0, ptr noundef nonnull @.str.11) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  br label %.loopexit1190

377:                                              ; preds = %.thread1170, %368
  %378 = getelementptr inbounds i8, ptr %21, i64 84
  %379 = load i8, ptr %378, align 4, !tbaa !59
  %380 = icmp ult i8 %379, 2
  br i1 %380, label %381, label %383

381:                                              ; preds = %377
  %382 = call i32 @invalidateTempStorage(ptr noundef nonnull %0)
  br label %383

383:                                              ; preds = %381, %377
  %384 = load ptr, ptr @sqlite3_temp_directory, align 8, !tbaa !21
  call void @sqlite3_free(ptr noundef %384) #4
  %385 = load i8, ptr %.0947, align 1, !tbaa !41
  %.not1128 = icmp eq i8 %385, 0
  br i1 %.not1128, label %388, label %386

386:                                              ; preds = %383
  %387 = call ptr (ptr, ...) @sqlite3_mprintf(ptr noundef nonnull @.str.7, ptr noundef nonnull %.0947) #4
  store ptr %387, ptr @sqlite3_temp_directory, align 8, !tbaa !21
  br label %.loopexit1190

388:                                              ; preds = %383
  store ptr null, ptr @sqlite3_temp_directory, align 8, !tbaa !21
  br label %.loopexit1190

389:                                              ; preds = %91
  %.not1123 = icmp eq ptr %.0947, null
  br i1 %.not1123, label %390, label %395

390:                                              ; preds = %389
  %391 = getelementptr inbounds i8, ptr %32, i64 16
  %392 = load i8, ptr %391, align 8, !tbaa !61
  %393 = zext i8 %392 to i64
  %394 = add nsw i64 %393, -1
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %394)
  br label %.loopexit1190

395:                                              ; preds = %389
  %396 = getelementptr inbounds i8, ptr %21, i64 83
  %397 = load i8, ptr %396, align 1, !tbaa !62
  %.not1124 = icmp eq i8 %397, 0
  br i1 %.not1124, label %398, label %399

398:                                              ; preds = %395
  call void (ptr, ptr, ...) @sqlite3ErrorMsg(ptr noundef nonnull %0, ptr noundef nonnull @.str.12) #4
  br label %.loopexit1190

399:                                              ; preds = %395
  br i1 %33, label %.loopexit1190, label %400

400:                                              ; preds = %399
  %401 = call zeroext i8 @getSafetyLevel(ptr noundef nonnull %.0947, i32 noundef 0, i8 noundef zeroext 1)
  %402 = add i8 %401, 1
  %403 = and i8 %402, 7
  %narrow = call i8 @llvm.umax.i8(i8 %403, i8 1)
  %404 = getelementptr inbounds i8, ptr %32, i64 16
  store i8 %narrow, ptr %404, align 8, !tbaa !61
  %405 = getelementptr inbounds i8, ptr %32, i64 17
  store i8 1, ptr %405, align 1, !tbaa !63
  call void @setAllPagerFlags(ptr noundef nonnull %21)
  br label %.loopexit1190

406:                                              ; preds = %91
  %407 = icmp eq ptr %.0947, null
  br i1 %407, label %408, label %416

408:                                              ; preds = %406
  call void @setPragmaResultColumnNames(ptr noundef nonnull %22, ptr noundef nonnull %73)
  %409 = getelementptr inbounds i8, ptr %21, i64 44
  %410 = load i32, ptr %409, align 4, !tbaa !51
  %411 = getelementptr inbounds i8, ptr %73, i64 12
  %412 = load i32, ptr %411, align 4, !tbaa !64
  %413 = and i32 %412, %410
  %414 = icmp ne i32 %413, 0
  %415 = zext i1 %414 to i64
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %415)
  br label %.loopexit1190

416:                                              ; preds = %406
  %417 = getelementptr inbounds i8, ptr %73, i64 12
  %418 = load i32, ptr %417, align 4, !tbaa !64
  %419 = getelementptr inbounds i8, ptr %21, i64 83
  %420 = load i8, ptr %419, align 1, !tbaa !62
  %421 = icmp eq i8 %420, 0
  %422 = and i32 %418, -524289
  %spec.select1150 = select i1 %421, i32 %422, i32 %418
  %423 = call zeroext i8 @sqlite3GetBoolean(ptr noundef nonnull %.0947, i8 noundef zeroext 0)
  %.not1122 = icmp eq i8 %423, 0
  br i1 %.not1122, label %428, label %424

424:                                              ; preds = %416
  %425 = getelementptr inbounds i8, ptr %21, i64 44
  %426 = load i32, ptr %425, align 4, !tbaa !51
  %427 = or i32 %426, %spec.select1150
  store i32 %427, ptr %425, align 4, !tbaa !51
  br label %436

428:                                              ; preds = %416
  %429 = xor i32 %spec.select1150, -1
  %430 = getelementptr inbounds i8, ptr %21, i64 44
  %431 = load i32, ptr %430, align 4, !tbaa !51
  %432 = and i32 %431, %429
  store i32 %432, ptr %430, align 4, !tbaa !51
  %433 = icmp eq i32 %spec.select1150, 33554432
  br i1 %433, label %434, label %436

434:                                              ; preds = %428
  %435 = getelementptr inbounds i8, ptr %21, i64 656
  store i64 0, ptr %435, align 8, !tbaa !65
  br label %436

436:                                              ; preds = %428, %434, %424
  %437 = call i32 @sqlite3VdbeAddOp0(ptr noundef nonnull %22, i32 noundef 151) #4
  call void @setAllPagerFlags(ptr noundef nonnull %21)
  br label %.loopexit1190

438:                                              ; preds = %91
  %.not1115 = icmp eq ptr %.0947, null
  br i1 %.not1115, label %.loopexit1190, label %439

439:                                              ; preds = %438
  %440 = call ptr @sqlite3LocateTable(ptr noundef nonnull %0, i32 noundef 2, ptr noundef nonnull %.0947, ptr noundef %50) #4
  %.not1116 = icmp eq ptr %440, null
  br i1 %.not1116, label %.loopexit1190, label %441

441:                                              ; preds = %439
  %442 = call ptr @sqlite3PrimaryKeyIndex(ptr noundef nonnull %440) #4
  store i32 6, ptr %25, align 8, !tbaa !13
  call void @sqlite3CodeVerifySchema(ptr noundef nonnull %0, i32 noundef %26) #4
  %443 = call i32 @sqlite3ViewGetColumnNames(ptr noundef nonnull %0, ptr noundef nonnull %440) #4
  %444 = getelementptr inbounds i8, ptr %440, i64 70
  %445 = load i16, ptr %444, align 2, !tbaa !66
  %446 = icmp sgt i16 %445, 0
  br i1 %446, label %.lr.ph1369, label %.loopexit1190

.lr.ph1369:                                       ; preds = %441
  %447 = zext nneg i16 %445 to i32
  %448 = getelementptr inbounds i8, ptr %440, i64 8
  %449 = load ptr, ptr %448, align 8, !tbaa !68
  %450 = icmp eq ptr %442, null
  %451 = getelementptr inbounds i8, ptr %442, i64 8
  br label %452

452:                                              ; preds = %.lr.ph1369, %485
  %453 = phi i16 [ %445, %.lr.ph1369 ], [ %486, %485 ]
  %454 = phi i32 [ %447, %.lr.ph1369 ], [ %489, %485 ]
  %.09701367 = phi i32 [ 0, %.lr.ph1369 ], [ %487, %485 ]
  %.09731366 = phi i32 [ 0, %.lr.ph1369 ], [ %.1974, %485 ]
  %.09761365 = phi ptr [ %449, %.lr.ph1369 ], [ %488, %485 ]
  %455 = getelementptr inbounds i8, ptr %.09761365, i64 27
  %456 = load i8, ptr %455, align 1, !tbaa !69
  %457 = zext i8 %456 to i32
  %458 = and i32 %457, 2
  %.not1117 = icmp eq i32 %458, 0
  br i1 %.not1117, label %461, label %459

459:                                              ; preds = %452
  %460 = add nsw i32 %.09731366, 1
  br label %485

461:                                              ; preds = %452
  %462 = and i32 %457, 1
  %463 = icmp eq i32 %462, 0
  %brmerge = select i1 %463, i1 true, i1 %450
  %not. = xor i1 %463, true
  %.mux = zext i1 %not. to i32
  br i1 %brmerge, label %.critedge, label %.preheader1189

.preheader1189:                                   ; preds = %461
  %.not11181359 = icmp slt i32 %454, 1
  br i1 %.not11181359, label %.critedge, label %.lr.ph1361

.lr.ph1361:                                       ; preds = %.preheader1189
  %464 = load ptr, ptr %451, align 8, !tbaa !71
  %invariant.gep = getelementptr i8, ptr %464, i64 -2
  %465 = add nuw nsw i32 %454, 1
  %wide.trip.count1435 = zext nneg i32 %465 to i64
  br label %466

466:                                              ; preds = %.lr.ph1361, %469
  %indvars.iv1432 = phi i64 [ 1, %.lr.ph1361 ], [ %indvars.iv.next1433, %469 ]
  %gep = getelementptr i16, ptr %invariant.gep, i64 %indvars.iv1432
  %467 = load i16, ptr %gep, align 2, !tbaa !73
  %468 = sext i16 %467 to i32
  %.not1119 = icmp eq i32 %.09701367, %468
  br i1 %.not1119, label %.critedge.loopexit.split.loop.exit1472, label %469

469:                                              ; preds = %466
  %indvars.iv.next1433 = add nuw nsw i64 %indvars.iv1432, 1
  %exitcond1436.not = icmp eq i64 %indvars.iv.next1433, %wide.trip.count1435
  br i1 %exitcond1436.not, label %.critedge, label %466, !llvm.loop !74

.critedge.loopexit.split.loop.exit1472:           ; preds = %466
  %470 = trunc nuw nsw i64 %indvars.iv1432 to i32
  br label %.critedge

.critedge:                                        ; preds = %469, %.critedge.loopexit.split.loop.exit1472, %.preheader1189, %461
  %.1972 = phi i32 [ %.mux, %461 ], [ 1, %.preheader1189 ], [ %470, %.critedge.loopexit.split.loop.exit1472 ], [ %465, %469 ]
  %471 = sub nsw i32 %.09701367, %.09731366
  %472 = load ptr, ptr %.09761365, align 8, !tbaa !75
  %473 = call ptr @sqlite3ColumnType(ptr noundef nonnull %.09761365, ptr noundef nonnull @.str.14) #4
  %474 = getelementptr inbounds i8, ptr %.09761365, i64 24
  %475 = load i8, ptr %474, align 8, !tbaa !76
  %.not1120 = icmp ne i8 %475, 0
  %476 = zext i1 %.not1120 to i32
  %477 = getelementptr inbounds i8, ptr %.09761365, i64 8
  %478 = load ptr, ptr %477, align 8, !tbaa !77
  %.not1121 = icmp eq ptr %478, null
  br i1 %.not1121, label %482, label %479

479:                                              ; preds = %.critedge
  %480 = getelementptr inbounds i8, ptr %478, i64 8
  %481 = load ptr, ptr %480, align 8, !tbaa !41
  br label %482

482:                                              ; preds = %.critedge, %479
  %483 = phi ptr [ %481, %479 ], [ null, %.critedge ]
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %22, i32 noundef 1, ptr noundef nonnull @.str.13, i32 noundef %471, ptr noundef %472, ptr noundef %473, i32 noundef %476, ptr noundef %483, i32 noundef %.1972) #4
  %484 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 88, i32 noundef 1, i32 noundef 6) #4
  %.pre1455 = load i16, ptr %444, align 2, !tbaa !66
  br label %485

485:                                              ; preds = %482, %459
  %486 = phi i16 [ %453, %459 ], [ %.pre1455, %482 ]
  %.1974 = phi i32 [ %460, %459 ], [ %.09731366, %482 ]
  %487 = add nuw nsw i32 %.09701367, 1
  %488 = getelementptr inbounds i8, ptr %.09761365, i64 32
  %489 = sext i16 %486 to i32
  %490 = icmp slt i32 %487, %489
  br i1 %490, label %452, label %.loopexit1190, !llvm.loop !78

491:                                              ; preds = %91
  %.not1111 = icmp eq ptr %.0947, null
  br i1 %.not1111, label %.loopexit1190, label %492

492:                                              ; preds = %491
  %493 = call ptr @sqlite3FindIndex(ptr noundef nonnull %21, ptr noundef nonnull %.0947, ptr noundef %50) #4
  %.not1112 = icmp eq ptr %493, null
  br i1 %.not1112, label %.loopexit1190, label %494

494:                                              ; preds = %492
  %495 = getelementptr inbounds i8, ptr %73, i64 12
  %496 = load i32, ptr %495, align 4, !tbaa !64
  %.not1113 = icmp eq i32 %496, 0
  %497 = getelementptr inbounds i8, ptr %493, i64 94
  %498 = getelementptr inbounds i8, ptr %493, i64 96
  %storemerge = select i1 %.not1113, i32 3, i32 6
  %.0978.in.in = select i1 %.not1113, ptr %497, ptr %498
  %.0978.in = load i16, ptr %.0978.in.in, align 2, !tbaa !73
  store i32 %storemerge, ptr %25, align 8, !tbaa !13
  %499 = getelementptr inbounds i8, ptr %493, i64 24
  %500 = load ptr, ptr %499, align 8, !tbaa !79
  call void @sqlite3CodeVerifySchema(ptr noundef nonnull %0, i32 noundef %26) #4
  %.not1389 = icmp eq i16 %.0978.in, 0
  br i1 %.not1389, label %.loopexit1190, label %.lr.ph1358

.lr.ph1358:                                       ; preds = %494
  %501 = getelementptr inbounds i8, ptr %493, i64 8
  %502 = getelementptr inbounds i8, ptr %500, i64 8
  %503 = getelementptr inbounds i8, ptr %493, i64 56
  %504 = getelementptr inbounds i8, ptr %493, i64 64
  %wide.trip.count = zext i16 %.0978.in to i64
  br label %505

505:                                              ; preds = %.lr.ph1358, %532
  %indvars.iv1429 = phi i64 [ 0, %.lr.ph1358 ], [ %indvars.iv.next1430, %532 ]
  %506 = load ptr, ptr %501, align 8, !tbaa !71
  %507 = getelementptr inbounds i16, ptr %506, i64 %indvars.iv1429
  %508 = load i16, ptr %507, align 2, !tbaa !73
  %509 = sext i16 %508 to i32
  %510 = icmp slt i16 %508, 0
  br i1 %510, label %516, label %511

511:                                              ; preds = %505
  %512 = load ptr, ptr %502, align 8, !tbaa !68
  %513 = zext nneg i16 %508 to i64
  %514 = getelementptr inbounds %struct.Column, ptr %512, i64 %513
  %515 = load ptr, ptr %514, align 8, !tbaa !75
  br label %516

516:                                              ; preds = %505, %511
  %517 = phi ptr [ %515, %511 ], [ null, %505 ]
  %518 = trunc nuw nsw i64 %indvars.iv1429 to i32
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %22, i32 noundef 1, ptr noundef nonnull @.str.15, i32 noundef %518, i32 noundef %509, ptr noundef %517) #4
  %519 = load i32, ptr %495, align 4, !tbaa !64
  %.not1114 = icmp eq i32 %519, 0
  br i1 %.not1114, label %532, label %520

520:                                              ; preds = %516
  %521 = load ptr, ptr %503, align 8, !tbaa !80
  %522 = getelementptr inbounds i8, ptr %521, i64 %indvars.iv1429
  %523 = load i8, ptr %522, align 1, !tbaa !41
  %524 = zext i8 %523 to i32
  %525 = load ptr, ptr %504, align 8, !tbaa !81
  %526 = getelementptr inbounds ptr, ptr %525, i64 %indvars.iv1429
  %527 = load ptr, ptr %526, align 8, !tbaa !21
  %528 = load i16, ptr %497, align 2, !tbaa !82
  %529 = zext i16 %528 to i64
  %530 = icmp ult i64 %indvars.iv1429, %529
  %531 = zext i1 %530 to i32
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %22, i32 noundef 4, ptr noundef nonnull @.str.16, i32 noundef %524, ptr noundef %527, i32 noundef %531) #4
  br label %532

532:                                              ; preds = %520, %516
  %533 = load i32, ptr %25, align 8, !tbaa !13
  %534 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 88, i32 noundef 1, i32 noundef %533) #4
  %indvars.iv.next1430 = add nuw nsw i64 %indvars.iv1429, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next1430, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit1190, label %505, !llvm.loop !83

535:                                              ; preds = %91
  %.not1108 = icmp eq ptr %.0947, null
  br i1 %.not1108, label %.loopexit1190, label %536

536:                                              ; preds = %535
  %537 = call ptr @sqlite3FindTable(ptr noundef nonnull %21, ptr noundef nonnull %.0947, ptr noundef %50) #4
  %.not1109 = icmp eq ptr %537, null
  br i1 %.not1109, label %.loopexit1190, label %538

538:                                              ; preds = %536
  store i32 5, ptr %25, align 8, !tbaa !13
  call void @sqlite3CodeVerifySchema(ptr noundef nonnull %0, i32 noundef %26) #4
  %539 = getelementptr inbounds i8, ptr %537, i64 16
  %.09791350 = load ptr, ptr %539, align 8, !tbaa !21
  %.not11101351 = icmp eq ptr %.09791350, null
  br i1 %.not11101351, label %.loopexit1190, label %.lr.ph1355

.lr.ph1355:                                       ; preds = %538, %.lr.ph1355
  %.09791353 = phi ptr [ %.0979, %.lr.ph1355 ], [ %.09791350, %538 ]
  %.09801352 = phi i32 [ %557, %.lr.ph1355 ], [ 0, %538 ]
  %540 = load ptr, ptr %.09791353, align 8, !tbaa !84
  %541 = getelementptr inbounds i8, ptr %.09791353, i64 98
  %542 = load i8, ptr %541, align 2, !tbaa !85
  %543 = icmp ne i8 %542, 0
  %544 = zext i1 %543 to i32
  %545 = getelementptr inbounds i8, ptr %.09791353, i64 99
  %546 = load i8, ptr %545, align 1
  %547 = and i8 %546, 3
  %548 = zext nneg i8 %547 to i64
  %549 = getelementptr inbounds [3 x ptr], ptr @__const.sqlite3Pragma.azOrigin, i64 0, i64 %548
  %550 = load ptr, ptr %549, align 8, !tbaa !21
  %551 = getelementptr inbounds i8, ptr %.09791353, i64 72
  %552 = load ptr, ptr %551, align 8, !tbaa !86
  %553 = icmp ne ptr %552, null
  %554 = zext i1 %553 to i32
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %22, i32 noundef 1, ptr noundef nonnull @.str.20, i32 noundef %.09801352, ptr noundef %540, i32 noundef %544, ptr noundef %550, i32 noundef %554) #4
  %555 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 88, i32 noundef 1, i32 noundef 5) #4
  %556 = getelementptr inbounds i8, ptr %.09791353, i64 40
  %557 = add nuw nsw i32 %.09801352, 1
  %.0979 = load ptr, ptr %556, align 8, !tbaa !21
  %.not1110 = icmp eq ptr %.0979, null
  br i1 %.not1110, label %.loopexit1190, label %.lr.ph1355, !llvm.loop !87

558:                                              ; preds = %91
  store i32 3, ptr %25, align 8, !tbaa !13
  %559 = getelementptr inbounds i8, ptr %21, i64 40
  %560 = load i32, ptr %559, align 8, !tbaa !38
  %561 = icmp sgt i32 %560, 0
  br i1 %561, label %.lr.ph1349, label %.loopexit1190

.lr.ph1349:                                       ; preds = %558, %573
  %562 = phi i32 [ %574, %573 ], [ %560, %558 ]
  %indvars.iv1426 = phi i64 [ %indvars.iv.next1427, %573 ], [ 0, %558 ]
  %563 = load ptr, ptr %29, align 8, !tbaa !14
  %564 = getelementptr inbounds %struct.Db, ptr %563, i64 %indvars.iv1426
  %565 = getelementptr inbounds i8, ptr %564, i64 8
  %566 = load ptr, ptr %565, align 8, !tbaa !36
  %567 = icmp eq ptr %566, null
  br i1 %567, label %573, label %568

568:                                              ; preds = %.lr.ph1349
  %569 = load ptr, ptr %564, align 8, !tbaa !23
  %570 = call ptr @sqlite3BtreeGetFilename(ptr noundef nonnull %566) #4
  %571 = trunc nuw nsw i64 %indvars.iv1426 to i32
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %22, i32 noundef 1, ptr noundef nonnull @.str.21, i32 noundef %571, ptr noundef %569, ptr noundef %570) #4
  %572 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 88, i32 noundef 1, i32 noundef 3) #4
  %.pre1454 = load i32, ptr %559, align 8, !tbaa !38
  br label %573

573:                                              ; preds = %.lr.ph1349, %568
  %574 = phi i32 [ %562, %.lr.ph1349 ], [ %.pre1454, %568 ]
  %indvars.iv.next1427 = add nuw nsw i64 %indvars.iv1426, 1
  %575 = sext i32 %574 to i64
  %576 = icmp slt i64 %indvars.iv.next1427, %575
  br i1 %576, label %.lr.ph1349, label %.loopexit1190, !llvm.loop !88

577:                                              ; preds = %91
  store i32 2, ptr %25, align 8, !tbaa !13
  %578 = getelementptr inbounds i8, ptr %21, i64 520
  %.09871341 = load ptr, ptr %578, align 8, !tbaa !21
  %.not11071342 = icmp eq ptr %.09871341, null
  br i1 %.not11071342, label %.loopexit1190, label %.lr.ph1346

.lr.ph1346:                                       ; preds = %577, %.lr.ph1346
  %.09871344 = phi ptr [ %.0987, %.lr.ph1346 ], [ %.09871341, %577 ]
  %.09841343 = phi i32 [ %581, %.lr.ph1346 ], [ 0, %577 ]
  %579 = getelementptr inbounds i8, ptr %.09871344, i64 16
  %580 = load ptr, ptr %579, align 8, !tbaa !89
  %581 = add nuw nsw i32 %.09841343, 1
  %582 = load ptr, ptr %580, align 8, !tbaa !91
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %22, i32 noundef 1, ptr noundef nonnull @.str.22, i32 noundef %.09841343, ptr noundef %582) #4
  %583 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 88, i32 noundef 1, i32 noundef 2) #4
  %.0987 = load ptr, ptr %.09871344, align 8, !tbaa !21
  %.not1107 = icmp eq ptr %.0987, null
  br i1 %.not1107, label %.loopexit1190, label %.lr.ph1346, !llvm.loop !93

584:                                              ; preds = %91
  %.not1103 = icmp eq ptr %.0947, null
  br i1 %.not1103, label %.loopexit1190, label %585

585:                                              ; preds = %584
  %586 = call ptr @sqlite3FindTable(ptr noundef nonnull %21, ptr noundef nonnull %.0947, ptr noundef %50) #4
  %.not1104 = icmp eq ptr %586, null
  br i1 %.not1104, label %.loopexit1190, label %587

587:                                              ; preds = %585
  %588 = getelementptr inbounds i8, ptr %586, i64 32
  %589 = load ptr, ptr %588, align 8, !tbaa !94
  %.not1105 = icmp eq ptr %589, null
  br i1 %.not1105, label %.loopexit1190, label %590

590:                                              ; preds = %587
  store i32 8, ptr %25, align 8, !tbaa !13
  call void @sqlite3CodeVerifySchema(ptr noundef nonnull %0, i32 noundef %26) #4
  %591 = getelementptr inbounds i8, ptr %586, i64 8
  br label %.preheader1195

.preheader1195:                                   ; preds = %590, %._crit_edge1338
  %.09911340 = phi ptr [ %589, %590 ], [ %620, %._crit_edge1338 ]
  %.09931339 = phi i32 [ 0, %590 ], [ %618, %._crit_edge1338 ]
  %592 = getelementptr inbounds i8, ptr %.09911340, i64 40
  %593 = load i32, ptr %592, align 8, !tbaa !95
  %594 = icmp sgt i32 %593, 0
  br i1 %594, label %.lr.ph1337, label %._crit_edge1338

.lr.ph1337:                                       ; preds = %.preheader1195
  %595 = getelementptr inbounds i8, ptr %.09911340, i64 16
  %596 = getelementptr inbounds i8, ptr %.09911340, i64 64
  %597 = getelementptr inbounds i8, ptr %.09911340, i64 45
  %598 = getelementptr inbounds i8, ptr %.09911340, i64 46
  br label %599

599:                                              ; preds = %.lr.ph1337, %599
  %indvars.iv1423 = phi i64 [ 0, %.lr.ph1337 ], [ %indvars.iv.next1424, %599 ]
  %600 = load ptr, ptr %595, align 8, !tbaa !97
  %601 = load ptr, ptr %591, align 8, !tbaa !68
  %602 = getelementptr inbounds [1 x %struct.sColMap], ptr %596, i64 0, i64 %indvars.iv1423
  %603 = load i32, ptr %602, align 8, !tbaa !98
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds %struct.Column, ptr %601, i64 %604
  %606 = load ptr, ptr %605, align 8, !tbaa !75
  %607 = getelementptr inbounds i8, ptr %602, i64 8
  %608 = load ptr, ptr %607, align 8, !tbaa !100
  %609 = load i8, ptr %598, align 1, !tbaa !41
  %610 = call ptr @actionName(i8 noundef zeroext %609)
  %611 = load i8, ptr %597, align 1, !tbaa !41
  %612 = call ptr @actionName(i8 noundef zeroext %611)
  %613 = trunc nuw nsw i64 %indvars.iv1423 to i32
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %22, i32 noundef 1, ptr noundef nonnull @.str.23, i32 noundef %.09931339, i32 noundef %613, ptr noundef %600, ptr noundef %606, ptr noundef %608, ptr noundef %610, ptr noundef %612, ptr noundef nonnull @.str.24) #4
  %614 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 88, i32 noundef 1, i32 noundef 8) #4
  %indvars.iv.next1424 = add nuw nsw i64 %indvars.iv1423, 1
  %615 = load i32, ptr %592, align 8, !tbaa !95
  %616 = sext i32 %615 to i64
  %617 = icmp slt i64 %indvars.iv.next1424, %616
  br i1 %617, label %599, label %._crit_edge1338, !llvm.loop !101

._crit_edge1338:                                  ; preds = %599, %.preheader1195
  %618 = add nuw nsw i32 %.09931339, 1
  %619 = getelementptr inbounds i8, ptr %.09911340, i64 8
  %620 = load ptr, ptr %619, align 8, !tbaa !102
  %.not1106 = icmp eq ptr %620, null
  br i1 %.not1106, label %.loopexit1190, label %.preheader1195, !llvm.loop !103

621:                                              ; preds = %91
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #4
  %622 = load i32, ptr %25, align 8, !tbaa !13
  %623 = add nsw i32 %622, 1
  %624 = add nsw i32 %622, 5
  %625 = add nsw i32 %622, 6
  store i32 %625, ptr %25, align 8, !tbaa !13
  call void @sqlite3CodeVerifySchema(ptr noundef nonnull %0, i32 noundef %26) #4
  %626 = load ptr, ptr %29, align 8, !tbaa !14
  %627 = getelementptr inbounds %struct.Db, ptr %626, i64 %31, i32 4
  %628 = load ptr, ptr %627, align 8, !tbaa !33
  %629 = getelementptr inbounds i8, ptr %628, i64 16
  %630 = load ptr, ptr %629, align 8, !tbaa !104
  %.not10971332 = icmp eq ptr %630, null
  br i1 %.not10971332, label %.loopexit1198, label %.lr.ph1335

.lr.ph1335:                                       ; preds = %621
  %.not1098 = icmp eq ptr %.0947, null
  %631 = getelementptr inbounds i8, ptr %0, i64 52
  %632 = add nsw i32 %622, 2
  %633 = add nsw i32 %622, 3
  br label %634

634:                                              ; preds = %.lr.ph1335, %.backedge
  %.010161333 = phi ptr [ %630, %.lr.ph1335 ], [ %.11017, %.backedge ]
  br i1 %.not1098, label %637, label %635

635:                                              ; preds = %634
  %636 = call ptr @sqlite3LocateTable(ptr noundef nonnull %0, i32 noundef 0, ptr noundef nonnull %.0947, ptr noundef %50) #4
  br label %641

637:                                              ; preds = %634
  %638 = getelementptr inbounds i8, ptr %.010161333, i64 16
  %639 = load ptr, ptr %638, align 8, !tbaa !89
  %640 = load ptr, ptr %.010161333, align 8, !tbaa !105
  br label %641

641:                                              ; preds = %637, %635
  %.11017 = phi ptr [ null, %635 ], [ %640, %637 ]
  %.01004 = phi ptr [ %636, %635 ], [ %639, %637 ]
  %642 = icmp eq ptr %.01004, null
  br i1 %642, label %.backedge, label %643

643:                                              ; preds = %641
  %644 = getelementptr inbounds i8, ptr %.01004, i64 32
  %645 = load ptr, ptr %644, align 8, !tbaa !94
  %646 = icmp eq ptr %645, null
  br i1 %646, label %.backedge, label %647

.backedge:                                        ; preds = %641, %643, %._crit_edge1331
  %.not1097 = icmp eq ptr %.11017, null
  br i1 %.not1097, label %.loopexit1198, label %634, !llvm.loop !106

647:                                              ; preds = %643
  %648 = getelementptr inbounds i8, ptr %.01004, i64 56
  %649 = load i32, ptr %648, align 8, !tbaa !107
  %650 = load ptr, ptr %.01004, align 8, !tbaa !108
  call void @sqlite3TableLock(ptr noundef nonnull %0, i32 noundef %26, i32 noundef %649, i8 noundef zeroext 0, ptr noundef %650) #4
  %651 = getelementptr inbounds i8, ptr %.01004, i64 70
  %652 = load i16, ptr %651, align 2, !tbaa !66
  %653 = sext i16 %652 to i32
  %654 = add nsw i32 %625, %653
  %655 = load i32, ptr %25, align 8, !tbaa !13
  %656 = icmp sgt i32 %654, %655
  br i1 %656, label %657, label %658

657:                                              ; preds = %647
  store i32 %654, ptr %25, align 8, !tbaa !13
  br label %658

658:                                              ; preds = %657, %647
  call void @sqlite3OpenTable(ptr noundef nonnull %0, i32 noundef 0, i32 noundef %26, ptr noundef nonnull %.01004, i32 noundef 105) #4
  %659 = load ptr, ptr %.01004, align 8, !tbaa !108
  %660 = call i32 @sqlite3VdbeLoadString(ptr noundef %22, i32 noundef %623, ptr noundef %659) #4
  %.010021313 = load ptr, ptr %644, align 8, !tbaa !21
  %.not10991314 = icmp eq ptr %.010021313, null
  br i1 %.not10991314, label %._crit_edge1319, label %.lr.ph1318

.lr.ph1318:                                       ; preds = %658, %680
  %.010021316 = phi ptr [ %.01002, %680 ], [ %.010021313, %658 ]
  %.010131315 = phi i32 [ %681, %680 ], [ 1, %658 ]
  %661 = getelementptr inbounds i8, ptr %.010021316, i64 16
  %662 = load ptr, ptr %661, align 8, !tbaa !97
  %663 = call ptr @sqlite3FindTable(ptr noundef %21, ptr noundef %662, ptr noundef %50) #4
  %664 = icmp eq ptr %663, null
  br i1 %664, label %680, label %665

665:                                              ; preds = %.lr.ph1318
  store ptr null, ptr %13, align 8, !tbaa !21
  %666 = getelementptr inbounds i8, ptr %663, i64 56
  %667 = load i32, ptr %666, align 8, !tbaa !107
  %668 = load ptr, ptr %663, align 8, !tbaa !108
  call void @sqlite3TableLock(ptr noundef nonnull %0, i32 noundef %26, i32 noundef %667, i8 noundef zeroext 0, ptr noundef %668) #4
  %669 = call i32 @sqlite3FkLocateIndex(ptr noundef nonnull %0, ptr noundef nonnull %663, ptr noundef nonnull %.010021316, ptr noundef nonnull %13, ptr noundef null) #4
  %670 = icmp eq i32 %669, 0
  br i1 %670, label %671, label %.loopexit1198

671:                                              ; preds = %665
  %672 = load ptr, ptr %13, align 8, !tbaa !21
  %673 = icmp eq ptr %672, null
  br i1 %673, label %674, label %675

674:                                              ; preds = %671
  call void @sqlite3OpenTable(ptr noundef nonnull %0, i32 noundef %.010131315, i32 noundef %26, ptr noundef nonnull %663, i32 noundef 105) #4
  br label %680

675:                                              ; preds = %671
  %676 = getelementptr inbounds i8, ptr %672, i64 88
  %677 = load i32, ptr %676, align 8, !tbaa !109
  %678 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 105, i32 noundef %.010131315, i32 noundef %677, i32 noundef %26) #4
  %679 = load ptr, ptr %13, align 8, !tbaa !21
  call void @sqlite3VdbeSetP4KeyInfo(ptr noundef nonnull %0, ptr noundef %679) #4
  br label %680

680:                                              ; preds = %675, %674, %.lr.ph1318
  %681 = add nuw nsw i32 %.010131315, 1
  %682 = getelementptr inbounds i8, ptr %.010021316, i64 8
  %.01002 = load ptr, ptr %682, align 8, !tbaa !21
  %.not1099 = icmp eq ptr %.01002, null
  br i1 %.not1099, label %._crit_edge1319, label %.lr.ph1318, !llvm.loop !110

._crit_edge1319:                                  ; preds = %680, %658
  %.01013.lcssa = phi i32 [ 1, %658 ], [ %681, %680 ]
  %683 = load i32, ptr %631, align 4, !tbaa !111
  %684 = icmp slt i32 %683, %.01013.lcssa
  br i1 %684, label %685, label %686

685:                                              ; preds = %._crit_edge1319
  store i32 %.01013.lcssa, ptr %631, align 4, !tbaa !111
  br label %686

686:                                              ; preds = %685, %._crit_edge1319
  %687 = call i32 @sqlite3VdbeAddOp1(ptr noundef %22, i32 noundef 58, i32 noundef 0) #4
  %.110031325 = load ptr, ptr %644, align 8, !tbaa !21
  %.not11001326 = icmp eq ptr %.110031325, null
  br i1 %.not11001326, label %._crit_edge1331, label %.lr.ph1330

.lr.ph1330:                                       ; preds = %686
  %688 = getelementptr inbounds i8, ptr %.01004, i64 68
  br label %689

689:                                              ; preds = %.lr.ph1330, %736
  %.110031328 = phi ptr [ %.110031325, %.lr.ph1330 ], [ %.11003, %736 ]
  %.110141327 = phi i32 [ 1, %.lr.ph1330 ], [ %742, %736 ]
  %690 = getelementptr inbounds i8, ptr %.110031328, i64 16
  %691 = load ptr, ptr %690, align 8, !tbaa !97
  %692 = call ptr @sqlite3FindTable(ptr noundef %21, ptr noundef %691, ptr noundef %50) #4
  store ptr null, ptr %13, align 8, !tbaa !21
  store ptr null, ptr %14, align 8, !tbaa !21
  %693 = icmp ne ptr %692, null
  br i1 %693, label %694, label %696

694:                                              ; preds = %689
  %695 = call i32 @sqlite3FkLocateIndex(ptr noundef nonnull %0, ptr noundef nonnull %692, ptr noundef nonnull %.110031328, ptr noundef nonnull %13, ptr noundef nonnull %14) #4
  br label %696

696:                                              ; preds = %694, %689
  %697 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %22) #4
  %698 = load ptr, ptr %13, align 8
  %699 = icmp eq ptr %698, null
  %or.cond13 = select i1 %693, i1 %699, i1 false
  br i1 %or.cond13, label %704, label %.preheader1197

.preheader1197:                                   ; preds = %696
  %700 = getelementptr inbounds i8, ptr %.110031328, i64 40
  %701 = load i32, ptr %700, align 8, !tbaa !95
  %702 = icmp sgt i32 %701, 0
  br i1 %702, label %.lr.ph1322, label %._crit_edge1323

.lr.ph1322:                                       ; preds = %.preheader1197
  %703 = getelementptr inbounds i8, ptr %.110031328, i64 64
  br label %719

704:                                              ; preds = %696
  %705 = getelementptr inbounds i8, ptr %.110031328, i64 64
  %706 = load i32, ptr %705, align 8, !tbaa !98
  %707 = load i16, ptr %688, align 4, !tbaa !112
  %708 = sext i16 %707 to i32
  %.not1102 = icmp eq i32 %706, %708
  br i1 %.not1102, label %712, label %709

709:                                              ; preds = %704
  %710 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 98, i32 noundef 0, i32 noundef %706, i32 noundef %625) #4
  call void @sqlite3ColumnDefault(ptr noundef %22, ptr noundef nonnull %.01004, i32 noundef %706, i32 noundef %625) #4
  %711 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 34, i32 noundef %625, i32 noundef %697) #4
  br label %714

712:                                              ; preds = %704
  %713 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 123, i32 noundef 0, i32 noundef %625) #4
  br label %714

714:                                              ; preds = %712, %709
  %715 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 32, i32 noundef %.110141327, i32 noundef 0, i32 noundef %625) #4
  %716 = call i32 @sqlite3VdbeGoto(ptr noundef %22, i32 noundef %697) #4
  %717 = call i32 @sqlite3VdbeCurrentAddr(ptr noundef %22) #4
  %718 = add nsw i32 %717, -2
  call void @sqlite3VdbeJumpHere(ptr noundef %22, i32 noundef %718) #4
  br label %736

719:                                              ; preds = %.lr.ph1322, %719
  %indvars.iv1420 = phi i64 [ 0, %.lr.ph1322 ], [ %indvars.iv.next1421, %719 ]
  %720 = load ptr, ptr %14, align 8, !tbaa !21
  %.not1101 = icmp eq ptr %720, null
  %721 = getelementptr inbounds i32, ptr %720, i64 %indvars.iv1420
  %722 = getelementptr inbounds [1 x %struct.sColMap], ptr %703, i64 0, i64 %indvars.iv1420
  %.in = select i1 %.not1101, ptr %722, ptr %721
  %723 = load i32, ptr %.in, align 4, !tbaa !50
  %724 = trunc i64 %indvars.iv1420 to i32
  %725 = add i32 %625, %724
  call void @sqlite3ExprCodeGetColumnOfTable(ptr noundef %22, ptr noundef nonnull %.01004, i32 noundef 0, i32 noundef %723, i32 noundef %725) #4
  %726 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 34, i32 noundef %725, i32 noundef %697) #4
  %indvars.iv.next1421 = add nuw nsw i64 %indvars.iv1420, 1
  %727 = load i32, ptr %700, align 8, !tbaa !95
  %728 = sext i32 %727 to i64
  %729 = icmp slt i64 %indvars.iv.next1421, %728
  br i1 %729, label %719, label %._crit_edge1323, !llvm.loop !113

._crit_edge1323:                                  ; preds = %719, %.preheader1197
  %.lcssa = phi i32 [ %701, %.preheader1197 ], [ %727, %719 ]
  br i1 %693, label %730, label %736

730:                                              ; preds = %._crit_edge1323
  %731 = load ptr, ptr %13, align 8, !tbaa !21
  %732 = call ptr @sqlite3IndexAffinityStr(ptr noundef %21, ptr noundef %731) #4
  %733 = load i32, ptr %700, align 8, !tbaa !95
  %734 = call i32 @sqlite3VdbeAddOp4(ptr noundef %22, i32 noundef 100, i32 noundef %625, i32 noundef %.lcssa, i32 noundef %624, ptr noundef %732, i32 noundef %733) #4
  %735 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %22, i32 noundef 31, i32 noundef %.110141327, i32 noundef %697, i32 noundef %624, i32 noundef 0) #4
  br label %736

736:                                              ; preds = %._crit_edge1323, %730, %714
  %737 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 123, i32 noundef 0, i32 noundef %632) #4
  %738 = load ptr, ptr %690, align 8, !tbaa !97
  %739 = add nsw i32 %.110141327, -1
  call void (ptr, i32, ptr, ...) @sqlite3VdbeMultiLoad(ptr noundef %22, i32 noundef %633, ptr noundef nonnull @.str.25, ptr noundef %738, i32 noundef %739) #4
  %740 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 88, i32 noundef %623, i32 noundef 4) #4
  call void @sqlite3VdbeResolveLabel(ptr noundef %22, i32 noundef %697) #4
  %741 = load ptr, ptr %14, align 8, !tbaa !21
  call void @sqlite3DbFree(ptr noundef %21, ptr noundef %741) #4
  %742 = add nuw nsw i32 %.110141327, 1
  %743 = getelementptr inbounds i8, ptr %.110031328, i64 8
  %.11003 = load ptr, ptr %743, align 8, !tbaa !21
  %.not1100 = icmp eq ptr %.11003, null
  br i1 %.not1100, label %._crit_edge1331, label %689, !llvm.loop !114

._crit_edge1331:                                  ; preds = %736, %686
  %744 = add nsw i32 %687, 1
  %745 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 7, i32 noundef 0, i32 noundef %744) #4
  call void @sqlite3VdbeJumpHere(ptr noundef %22, i32 noundef %687) #4
  br label %.backedge

.loopexit1198:                                    ; preds = %.backedge, %665, %621
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #4
  br label %.loopexit1190

746:                                              ; preds = %91
  %.not1096 = icmp eq ptr %.0947, null
  br i1 %.not1096, label %.loopexit1190, label %747

747:                                              ; preds = %746
  %748 = call zeroext i8 @sqlite3GetBoolean(ptr noundef nonnull %.0947, i8 noundef zeroext 0)
  %749 = zext i8 %748 to i32
  call void @sqlite3RegisterLikeFunctions(ptr noundef nonnull %21, i32 noundef %749) #4
  br label %.loopexit1190

750:                                              ; preds = %91
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #4
  %751 = load i8, ptr %38, align 1, !tbaa !41
  %752 = zext i8 %751 to i64
  %753 = getelementptr inbounds [0 x i8], ptr @sqlite3UpperToLower, i64 0, i64 %752
  %754 = load i8, ptr %753, align 1, !tbaa !41
  %755 = icmp eq i8 %754, 113
  %756 = load ptr, ptr %2, align 8, !tbaa !115
  %757 = icmp eq ptr %756, null
  store i32 6, ptr %25, align 8, !tbaa !13
  store i32 100, ptr %15, align 4, !tbaa !50
  %.not1081 = icmp eq ptr %.0947, null
  br i1 %.not1081, label %763, label %758

758:                                              ; preds = %750
  %759 = call i32 @sqlite3GetInt32(ptr noundef nonnull %.0947, ptr noundef nonnull %15) #4
  %760 = load i32, ptr %15, align 4, !tbaa !50
  %761 = icmp slt i32 %760, 1
  br i1 %761, label %762, label %763

762:                                              ; preds = %758
  store i32 100, ptr %15, align 4, !tbaa !50
  br label %763

763:                                              ; preds = %758, %762, %750
  %764 = phi i32 [ %760, %758 ], [ 100, %762 ], [ 100, %750 ]
  %765 = add nsw i32 %764, -1
  %766 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %22, i32 noundef 77, i32 noundef %765, i32 noundef 1) #4
  %767 = getelementptr inbounds i8, ptr %21, i64 40
  %768 = load i32, ptr %767, align 8, !tbaa !38
  %769 = icmp sgt i32 %768, 0
  br i1 %769, label %.lr.ph1310, label %._crit_edge1311

.lr.ph1310:                                       ; preds = %763
  %770 = getelementptr inbounds i8, ptr %21, i64 44
  %771 = getelementptr inbounds i8, ptr %0, i64 72
  br label %772

772:                                              ; preds = %.lr.ph1310, %.loopexit1202
  %indvars.iv1417 = phi i64 [ 0, %.lr.ph1310 ], [ %indvars.iv.next1418, %.loopexit1202 ]
  %.not10821186 = icmp eq i64 %indvars.iv1417, %31
  %or.cond1152 = or i1 %757, %.not10821186
  br i1 %or.cond1152, label %773, label %.loopexit1202

773:                                              ; preds = %772
  %774 = trunc nuw nsw i64 %indvars.iv1417 to i32
  call void @sqlite3CodeVerifySchema(ptr noundef nonnull %0, i32 noundef %774) #4
  %775 = load ptr, ptr %29, align 8, !tbaa !14
  %776 = getelementptr inbounds %struct.Db, ptr %775, i64 %indvars.iv1417, i32 4
  %777 = load ptr, ptr %776, align 8, !tbaa !33
  %778 = getelementptr inbounds i8, ptr %777, i64 16
  %.010051244 = load ptr, ptr %778, align 8, !tbaa !21
  %.not10831245 = icmp eq ptr %.010051244, null
  br i1 %.not10831245, label %._crit_edge1251, label %.lr.ph1250

.lr.ph1250:                                       ; preds = %773, %._crit_edge1242
  %.010051248 = phi ptr [ %.01005, %._crit_edge1242 ], [ %.010051244, %773 ]
  %.09971247 = phi i32 [ %spec.select1154, %._crit_edge1242 ], [ 0, %773 ]
  %.09991246 = phi i32 [ %.21001.lcssa, %._crit_edge1242 ], [ 0, %773 ]
  %779 = getelementptr inbounds i8, ptr %.010051248, i64 16
  %780 = load ptr, ptr %779, align 8, !tbaa !89
  %781 = getelementptr inbounds i8, ptr %780, i64 64
  %782 = load i32, ptr %781, align 8, !tbaa !116
  %783 = lshr i32 %782, 5
  %784 = and i32 %783, 1
  %785 = xor i32 %784, 1
  %spec.select1153 = add i32 %785, %.09991246
  %786 = getelementptr inbounds i8, ptr %780, i64 16
  %.09941235 = load ptr, ptr %786, align 8, !tbaa !21
  %.not10941236 = icmp eq ptr %.09941235, null
  br i1 %.not10941236, label %._crit_edge1242, label %.lr.ph1241

.lr.ph1241:                                       ; preds = %.lr.ph1250, %.lr.ph1241
  %.09941239 = phi ptr [ %.0994, %.lr.ph1241 ], [ %.09941235, %.lr.ph1250 ]
  %.09961238 = phi i32 [ %789, %.lr.ph1241 ], [ 0, %.lr.ph1250 ]
  %.210011237 = phi i32 [ %787, %.lr.ph1241 ], [ %spec.select1153, %.lr.ph1250 ]
  %787 = add nsw i32 %.210011237, 1
  %788 = getelementptr inbounds i8, ptr %.09941239, i64 40
  %789 = add nuw nsw i32 %.09961238, 1
  %.0994 = load ptr, ptr %788, align 8, !tbaa !21
  %.not1094 = icmp eq ptr %.0994, null
  br i1 %.not1094, label %._crit_edge1242, label %.lr.ph1241, !llvm.loop !117

._crit_edge1242:                                  ; preds = %.lr.ph1241, %.lr.ph1250
  %.21001.lcssa = phi i32 [ %spec.select1153, %.lr.ph1250 ], [ %787, %.lr.ph1241 ]
  %.0996.lcssa = phi i32 [ 0, %.lr.ph1250 ], [ %789, %.lr.ph1241 ]
  %spec.select1154 = call i32 @llvm.smax.i32(i32 %.0996.lcssa, i32 %.09971247)
  %.01005 = load ptr, ptr %.010051248, align 8, !tbaa !21
  %.not1083 = icmp eq ptr %.01005, null
  br i1 %.not1083, label %._crit_edge1251, label %.lr.ph1250, !llvm.loop !118

._crit_edge1251:                                  ; preds = %._crit_edge1242, %773
  %.0999.lcssa = phi i32 [ 0, %773 ], [ %.21001.lcssa, %._crit_edge1242 ]
  %.0997.lcssa = phi i32 [ 0, %773 ], [ %spec.select1154, %._crit_edge1242 ]
  %790 = add nsw i32 %.0999.lcssa, 1
  %791 = sext i32 %790 to i64
  %792 = shl nsw i64 %791, 2
  %793 = call ptr @sqlite3DbMallocRawNN(ptr noundef %21, i64 noundef %792) #4
  %794 = icmp eq ptr %793, null
  br i1 %794, label %._crit_edge1311, label %.preheader1203

.preheader1203:                                   ; preds = %._crit_edge1251
  %.110061261 = load ptr, ptr %778, align 8, !tbaa !21
  %.not10841262 = icmp eq ptr %.110061261, null
  br i1 %.not10841262, label %._crit_edge1266, label %.lr.ph1265

.loopexit1201.loopexit:                           ; preds = %.lr.ph1259
  %795 = trunc nsw i64 %indvars.iv.next1406 to i32
  br label %.loopexit1201

.loopexit1201:                                    ; preds = %.loopexit1201.loopexit, %808
  %.5.lcssa = phi i32 [ %.4, %808 ], [ %795, %.loopexit1201.loopexit ]
  %.11006 = load ptr, ptr %.110061264, align 8, !tbaa !21
  %.not1084 = icmp eq ptr %.11006, null
  br i1 %.not1084, label %._crit_edge1266, label %.lr.ph1265, !llvm.loop !119

.lr.ph1265:                                       ; preds = %.preheader1203, %.loopexit1201
  %.110061264 = phi ptr [ %.11006, %.loopexit1201 ], [ %.110061261, %.preheader1203 ]
  %.31263 = phi i32 [ %.5.lcssa, %.loopexit1201 ], [ 0, %.preheader1203 ]
  %796 = getelementptr inbounds i8, ptr %.110061264, i64 16
  %797 = load ptr, ptr %796, align 8, !tbaa !89
  %798 = getelementptr inbounds i8, ptr %797, i64 64
  %799 = load i32, ptr %798, align 8, !tbaa !116
  %800 = and i32 %799, 32
  %801 = icmp eq i32 %800, 0
  br i1 %801, label %802, label %808

802:                                              ; preds = %.lr.ph1265
  %803 = getelementptr inbounds i8, ptr %797, i64 56
  %804 = load i32, ptr %803, align 8, !tbaa !107
  %805 = add nsw i32 %.31263, 1
  %806 = sext i32 %.31263 to i64
  %807 = getelementptr inbounds i32, ptr %793, i64 %806
  store i32 %804, ptr %807, align 4, !tbaa !50
  br label %808

808:                                              ; preds = %802, %.lr.ph1265
  %.4 = phi i32 [ %805, %802 ], [ %.31263, %.lr.ph1265 ]
  %809 = getelementptr inbounds i8, ptr %797, i64 16
  %.09921254 = load ptr, ptr %809, align 8, !tbaa !21
  %.not10931255 = icmp eq ptr %.09921254, null
  br i1 %.not10931255, label %.loopexit1201, label %.lr.ph1259.preheader

.lr.ph1259.preheader:                             ; preds = %808
  %810 = sext i32 %.4 to i64
  br label %.lr.ph1259

.lr.ph1259:                                       ; preds = %.lr.ph1259.preheader, %.lr.ph1259
  %indvars.iv1405 = phi i64 [ %810, %.lr.ph1259.preheader ], [ %indvars.iv.next1406, %.lr.ph1259 ]
  %.09921257 = phi ptr [ %.09921254, %.lr.ph1259.preheader ], [ %.0992, %.lr.ph1259 ]
  %811 = getelementptr inbounds i8, ptr %.09921257, i64 88
  %812 = load i32, ptr %811, align 8, !tbaa !109
  %indvars.iv.next1406 = add nsw i64 %indvars.iv1405, 1
  %813 = getelementptr inbounds i32, ptr %793, i64 %indvars.iv1405
  store i32 %812, ptr %813, align 4, !tbaa !50
  %814 = getelementptr inbounds i8, ptr %.09921257, i64 40
  %.0992 = load ptr, ptr %814, align 8, !tbaa !21
  %.not1093 = icmp eq ptr %.0992, null
  br i1 %.not1093, label %.loopexit1201.loopexit, label %.lr.ph1259, !llvm.loop !120

._crit_edge1266:                                  ; preds = %.loopexit1201, %.preheader1203
  %.3.lcssa = phi i32 [ 0, %.preheader1203 ], [ %.5.lcssa, %.loopexit1201 ]
  %815 = sext i32 %.3.lcssa to i64
  %816 = getelementptr inbounds i32, ptr %793, i64 %815
  store i32 0, ptr %816, align 4, !tbaa !50
  %817 = load i32, ptr %25, align 8, !tbaa !13
  %818 = add nuw nsw i32 %.0997.lcssa, 8
  %. = call i32 @llvm.smax.i32(i32 %817, i32 %818)
  store i32 %., ptr %25, align 8, !tbaa !13
  %819 = call i32 @sqlite3VdbeAddOp4(ptr noundef %22, i32 noundef 142, i32 noundef 2, i32 noundef %.3.lcssa, i32 noundef 1, ptr noundef nonnull %793, i32 noundef -12) #4
  %820 = trunc i64 %indvars.iv1417 to i16
  %821 = and i16 %820, 255
  call void @sqlite3VdbeChangeP5(ptr noundef %22, i16 noundef zeroext %821) #4
  %822 = call i32 @sqlite3VdbeAddOp1(ptr noundef %22, i32 noundef 34, i32 noundef 2) #4
  %823 = load ptr, ptr %29, align 8, !tbaa !14
  %824 = getelementptr inbounds %struct.Db, ptr %823, i64 %indvars.iv1417
  %825 = load ptr, ptr %824, align 8, !tbaa !23
  %826 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %21, ptr noundef nonnull @.str.26, ptr noundef %825) #4
  %827 = call i32 @sqlite3VdbeAddOp4(ptr noundef %22, i32 noundef 97, i32 noundef 0, i32 noundef 3, i32 noundef 0, ptr noundef %826, i32 noundef -1) #4
  %828 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 84, i32 noundef 2, i32 noundef 4, i32 noundef 1) #4
  %829 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 52, i32 noundef 4, i32 noundef 3, i32 noundef 2) #4
  %830 = call i32 @integrityCheckResultRow(ptr noundef %22, i32 noundef 2)
  call void @sqlite3VdbeJumpHere(ptr noundef %22, i32 noundef %822) #4
  %.210071303 = load ptr, ptr %778, align 8, !tbaa !21
  %.not10851304 = icmp eq ptr %.210071303, null
  br i1 %.not10851304, label %.loopexit1202, label %.lr.ph1307

.lr.ph1307:                                       ; preds = %._crit_edge1266, %.loopexit1200
  %.210071305 = phi ptr [ %.21007, %.loopexit1200 ], [ %.210071303, %._crit_edge1266 ]
  %831 = getelementptr inbounds i8, ptr %.210071305, i64 16
  %832 = load ptr, ptr %831, align 8, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #4
  %833 = getelementptr inbounds i8, ptr %832, i64 56
  %834 = load i32, ptr %833, align 8, !tbaa !107
  %835 = icmp slt i32 %834, 1
  br i1 %835, label %.loopexit1200, label %836

836:                                              ; preds = %.lr.ph1307
  %837 = getelementptr inbounds i8, ptr %832, i64 48
  %838 = load ptr, ptr %837, align 8, !tbaa !121
  %839 = icmp eq ptr %838, null
  %840 = getelementptr inbounds i8, ptr %832, i64 64
  %841 = load i32, ptr %840, align 8, !tbaa !116
  %842 = and i32 %841, 512
  %843 = icmp eq i32 %842, 0
  %or.cond1475 = select i1 %839, i1 %843, i1 false
  br i1 %or.cond1475, label %844, label %._crit_edge1450

844:                                              ; preds = %836
  %845 = getelementptr inbounds i8, ptr %832, i64 16
  %846 = load ptr, ptr %845, align 8, !tbaa !122
  %847 = icmp eq ptr %846, null
  %or.cond15 = select i1 %847, i1 true, i1 %755
  br i1 %or.cond15, label %.loopexit1200, label %._crit_edge1450

._crit_edge1450:                                  ; preds = %836, %844
  %848 = and i32 %841, 32
  %849 = icmp eq i32 %848, 0
  br i1 %849, label %852, label %850

850:                                              ; preds = %._crit_edge1450
  %851 = call ptr @sqlite3PrimaryKeyIndex(ptr noundef nonnull %832) #4
  br label %852

852:                                              ; preds = %._crit_edge1450, %850
  %853 = phi ptr [ %851, %850 ], [ null, %._crit_edge1450 ]
  call void @sqlite3ExprCacheClear(ptr noundef nonnull %0) #4
  %854 = call i32 @sqlite3OpenTableAndIndices(ptr noundef nonnull %0, ptr noundef nonnull %832, i32 noundef 105, i8 noundef zeroext 0, i32 noundef 1, ptr noundef null, ptr noundef nonnull %16, ptr noundef nonnull %17) #4
  %855 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 77, i32 noundef 0, i32 noundef 7) #4
  %856 = getelementptr inbounds i8, ptr %832, i64 16
  %.09881268 = load ptr, ptr %856, align 8, !tbaa !21
  %.not10861269 = icmp eq ptr %.09881268, null
  br i1 %.not10861269, label %._crit_edge1274, label %.lr.ph1273

.lr.ph1273:                                       ; preds = %852, %.lr.ph1273
  %.09881271 = phi ptr [ %.0988, %.lr.ph1273 ], [ %.09881268, %852 ]
  %.010081270 = phi i32 [ %860, %.lr.ph1273 ], [ 0, %852 ]
  %857 = add nuw nsw i32 %.010081270, 8
  %858 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 77, i32 noundef 0, i32 noundef %857) #4
  %859 = getelementptr inbounds i8, ptr %.09881271, i64 40
  %860 = add nuw nsw i32 %.010081270, 1
  %.0988 = load ptr, ptr %859, align 8, !tbaa !21
  %.not1086 = icmp eq ptr %.0988, null
  br i1 %.not1086, label %._crit_edge1274, label %.lr.ph1273, !llvm.loop !123

._crit_edge1274:                                  ; preds = %.lr.ph1273, %852
  %861 = load i32, ptr %16, align 4, !tbaa !50
  %862 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 58, i32 noundef %861, i32 noundef 0) #4
  %863 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 92, i32 noundef 7, i32 noundef 1) #4
  %864 = getelementptr inbounds i8, ptr %832, i64 70
  %865 = load i16, ptr %864, align 2, !tbaa !66
  %866 = icmp sgt i16 %865, 0
  br i1 %866, label %.lr.ph1277, label %._crit_edge1278

.lr.ph1277:                                       ; preds = %._crit_edge1274
  %867 = getelementptr inbounds i8, ptr %832, i64 68
  %868 = getelementptr inbounds i8, ptr %832, i64 8
  br label %869

869:                                              ; preds = %.lr.ph1277, %891
  %870 = phi i16 [ %865, %.lr.ph1277 ], [ %892, %891 ]
  %indvars.iv1408 = phi i64 [ 0, %.lr.ph1277 ], [ %indvars.iv.next1409, %891 ]
  %871 = load i16, ptr %867, align 4, !tbaa !112
  %872 = sext i16 %871 to i64
  %873 = and i64 %872, 4294967295
  %874 = icmp eq i64 %indvars.iv1408, %873
  br i1 %874, label %891, label %875

875:                                              ; preds = %869
  %876 = load ptr, ptr %868, align 8, !tbaa !68
  %877 = getelementptr inbounds %struct.Column, ptr %876, i64 %indvars.iv1408, i32 3
  %878 = load i8, ptr %877, align 8, !tbaa !76
  %879 = icmp eq i8 %878, 0
  br i1 %879, label %891, label %880

880:                                              ; preds = %875
  %881 = load i32, ptr %16, align 4, !tbaa !50
  %882 = trunc nuw nsw i64 %indvars.iv1408 to i32
  call void @sqlite3ExprCodeGetColumnOfTable(ptr noundef %22, ptr noundef nonnull %832, i32 noundef %881, i32 noundef %882, i32 noundef 3) #4
  call void @sqlite3VdbeChangeP5(ptr noundef %22, i16 noundef zeroext 128) #4
  %883 = call i32 @sqlite3VdbeAddOp1(ptr noundef %22, i32 noundef 35, i32 noundef 3) #4
  %884 = load ptr, ptr %832, align 8, !tbaa !108
  %885 = load ptr, ptr %868, align 8, !tbaa !68
  %886 = getelementptr inbounds %struct.Column, ptr %885, i64 %indvars.iv1408
  %887 = load ptr, ptr %886, align 8, !tbaa !75
  %888 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %21, ptr noundef nonnull @.str.27, ptr noundef %884, ptr noundef %887) #4
  %889 = call i32 @sqlite3VdbeAddOp4(ptr noundef %22, i32 noundef 97, i32 noundef 0, i32 noundef 3, i32 noundef 0, ptr noundef %888, i32 noundef -1) #4
  %890 = call i32 @integrityCheckResultRow(ptr noundef %22, i32 noundef 3)
  call void @sqlite3VdbeJumpHere(ptr noundef %22, i32 noundef %883) #4
  %.pre1452 = load i16, ptr %864, align 2, !tbaa !66
  br label %891

891:                                              ; preds = %875, %869, %880
  %892 = phi i16 [ %870, %875 ], [ %870, %869 ], [ %.pre1452, %880 ]
  %indvars.iv.next1409 = add nuw nsw i64 %indvars.iv1408, 1
  %893 = sext i16 %892 to i64
  %894 = icmp slt i64 %indvars.iv.next1409, %893
  br i1 %894, label %869, label %._crit_edge1278, !llvm.loop !124

._crit_edge1278:                                  ; preds = %891, %._crit_edge1274
  %895 = load ptr, ptr %837, align 8, !tbaa !121
  %.not1087 = icmp eq ptr %895, null
  br i1 %.not1087, label %921, label %896

896:                                              ; preds = %._crit_edge1278
  %897 = load i32, ptr %770, align 4, !tbaa !51
  %898 = and i32 %897, 8192
  %899 = icmp eq i32 %898, 0
  br i1 %899, label %900, label %921

900:                                              ; preds = %896
  %901 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %22) #4
  %902 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %22) #4
  %903 = load ptr, ptr %837, align 8, !tbaa !121
  %904 = load i32, ptr %16, align 4, !tbaa !50
  store i32 %904, ptr %771, align 8, !tbaa !125
  call void @sqlite3ExprCachePush(ptr noundef nonnull %0) #4
  %905 = load i32, ptr %903, align 8, !tbaa !126
  %906 = icmp sgt i32 %905, 1
  br i1 %906, label %.lr.ph1281, label %._crit_edge1282

.lr.ph1281:                                       ; preds = %900
  %907 = getelementptr inbounds i8, ptr %903, i64 8
  %908 = zext nneg i32 %905 to i64
  br label %909

909:                                              ; preds = %.lr.ph1281, %909
  %indvars.iv1411 = phi i64 [ %908, %.lr.ph1281 ], [ %indvars.iv.next1412, %909 ]
  %indvars.iv.next1412 = add nsw i64 %indvars.iv1411, -1
  %910 = load ptr, ptr %907, align 8, !tbaa !128
  %911 = getelementptr inbounds %struct.ExprList_item, ptr %910, i64 %indvars.iv.next1412
  %912 = load ptr, ptr %911, align 8, !tbaa !129
  call void @sqlite3ExprIfFalse(ptr noundef nonnull %0, ptr noundef %912, i32 noundef %901, i32 noundef 0) #4
  %913 = icmp ugt i64 %indvars.iv1411, 2
  br i1 %913, label %909, label %._crit_edge1282, !llvm.loop !131

._crit_edge1282:                                  ; preds = %909, %900
  %914 = getelementptr inbounds i8, ptr %903, i64 8
  %915 = load ptr, ptr %914, align 8, !tbaa !128
  %916 = load ptr, ptr %915, align 8, !tbaa !129
  call void @sqlite3ExprIfTrue(ptr noundef nonnull %0, ptr noundef %916, i32 noundef %902, i32 noundef 16) #4
  call void @sqlite3VdbeResolveLabel(ptr noundef %22, i32 noundef %901) #4
  %917 = load ptr, ptr %832, align 8, !tbaa !108
  %918 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %21, ptr noundef nonnull @.str.28, ptr noundef %917) #4
  %919 = call i32 @sqlite3VdbeAddOp4(ptr noundef %22, i32 noundef 97, i32 noundef 0, i32 noundef 3, i32 noundef 0, ptr noundef %918, i32 noundef -1) #4
  %920 = call i32 @integrityCheckResultRow(ptr noundef %22, i32 noundef 3)
  call void @sqlite3VdbeResolveLabel(ptr noundef %22, i32 noundef %902) #4
  call void @sqlite3ExprCachePop(ptr noundef nonnull %0) #4
  br label %921

921:                                              ; preds = %._crit_edge1282, %896, %._crit_edge1278
  %.19891287 = load ptr, ptr %856, align 8, !tbaa !21
  %922 = icmp eq ptr %.19891287, null
  %.not10891288 = select i1 %922, i1 true, i1 %755
  br i1 %.not10891288, label %._crit_edge1296, label %.lr.ph1295

.lr.ph1295:                                       ; preds = %921
  %923 = getelementptr inbounds i8, ptr %832, i64 8
  br label %924

924:                                              ; preds = %.lr.ph1295, %985
  %.19891293 = phi ptr [ %.19891287, %.lr.ph1295 ], [ %.1989, %985 ]
  %.09821292 = phi i32 [ -1, %.lr.ph1295 ], [ %.1983, %985 ]
  %.09851291 = phi ptr [ null, %.lr.ph1295 ], [ %.1986, %985 ]
  %.210101289 = phi i32 [ 0, %.lr.ph1295 ], [ %987, %985 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #4
  %925 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %22) #4
  %926 = icmp eq ptr %853, %.19891293
  br i1 %926, label %985, label %927

927:                                              ; preds = %924
  %928 = load i32, ptr %16, align 4, !tbaa !50
  %929 = call i32 @sqlite3GenerateIndexKey(ptr noundef nonnull %0, ptr noundef nonnull %.19891293, i32 noundef %928, i32 noundef 0, i32 noundef 0, ptr noundef nonnull %18, ptr noundef %.09851291, i32 noundef %.09821292) #4
  %930 = add nuw nsw i32 %.210101289, 8
  %931 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 92, i32 noundef %930, i32 noundef 1) #4
  %932 = load i32, ptr %17, align 4, !tbaa !50
  %933 = add nsw i32 %932, %.210101289
  %934 = getelementptr inbounds i8, ptr %.19891293, i64 96
  %935 = load i16, ptr %934, align 8, !tbaa !132
  %936 = zext i16 %935 to i32
  %937 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %22, i32 noundef 31, i32 noundef %933, i32 noundef %925, i32 noundef %929, i32 noundef %936) #4
  %938 = call i32 @sqlite3VdbeLoadString(ptr noundef %22, i32 noundef 3, ptr noundef nonnull @.str.29) #4
  %939 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 52, i32 noundef 7, i32 noundef 3, i32 noundef 3) #4
  %940 = call i32 @sqlite3VdbeLoadString(ptr noundef %22, i32 noundef 4, ptr noundef nonnull @.str.30) #4
  %941 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 52, i32 noundef 4, i32 noundef 3, i32 noundef 3) #4
  %942 = load ptr, ptr %.19891293, align 8, !tbaa !84
  %943 = call i32 @sqlite3VdbeLoadString(ptr noundef %22, i32 noundef 4, ptr noundef %942) #4
  %944 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 52, i32 noundef 4, i32 noundef 3, i32 noundef 3) #4
  %945 = call i32 @integrityCheckResultRow(ptr noundef %22, i32 noundef 3)
  call void @sqlite3VdbeJumpHere(ptr noundef %22, i32 noundef %937) #4
  %946 = getelementptr inbounds i8, ptr %.19891293, i64 98
  %947 = load i8, ptr %946, align 2, !tbaa !85
  %.not1091 = icmp eq i8 %947, 0
  br i1 %.not1091, label %983, label %948

948:                                              ; preds = %927
  %949 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %22) #4
  %950 = getelementptr inbounds i8, ptr %.19891293, i64 94
  %951 = load i16, ptr %950, align 2, !tbaa !82
  %.not1388 = icmp eq i16 %951, 0
  br i1 %.not1388, label %._crit_edge1286, label %.lr.ph1285

.lr.ph1285:                                       ; preds = %948
  %952 = getelementptr inbounds i8, ptr %.19891293, i64 8
  br label %953

953:                                              ; preds = %.lr.ph1285, %968
  %954 = phi i16 [ %951, %.lr.ph1285 ], [ %969, %968 ]
  %indvars.iv1414 = phi i64 [ 0, %.lr.ph1285 ], [ %indvars.iv.next1415, %968 ]
  %955 = load ptr, ptr %952, align 8, !tbaa !71
  %956 = getelementptr inbounds i16, ptr %955, i64 %indvars.iv1414
  %957 = load i16, ptr %956, align 2, !tbaa !73
  %958 = icmp sgt i16 %957, -1
  br i1 %958, label %959, label %964

959:                                              ; preds = %953
  %960 = zext nneg i16 %957 to i64
  %961 = load ptr, ptr %923, align 8, !tbaa !68
  %962 = getelementptr inbounds %struct.Column, ptr %961, i64 %960, i32 3
  %963 = load i8, ptr %962, align 8, !tbaa !76
  %.not1092 = icmp eq i8 %963, 0
  br i1 %.not1092, label %964, label %968

964:                                              ; preds = %959, %953
  %965 = trunc i64 %indvars.iv1414 to i32
  %966 = add i32 %929, %965
  %967 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 34, i32 noundef %966, i32 noundef %949) #4
  %.pre1453 = load i16, ptr %950, align 2, !tbaa !82
  br label %968

968:                                              ; preds = %959, %964
  %969 = phi i16 [ %954, %959 ], [ %.pre1453, %964 ]
  %indvars.iv.next1415 = add nuw nsw i64 %indvars.iv1414, 1
  %970 = zext i16 %969 to i64
  %971 = icmp ult i64 %indvars.iv.next1415, %970
  br i1 %971, label %953, label %._crit_edge1286, !llvm.loop !133

._crit_edge1286:                                  ; preds = %968, %948
  %972 = load i32, ptr %17, align 4, !tbaa !50
  %973 = add nsw i32 %972, %.210101289
  %974 = call i32 @sqlite3VdbeAddOp1(ptr noundef %22, i32 noundef 7, i32 noundef %973) #4
  %975 = call i32 @sqlite3VdbeGoto(ptr noundef %22, i32 noundef %949) #4
  call void @sqlite3VdbeJumpHere(ptr noundef %22, i32 noundef %974) #4
  %976 = load i32, ptr %17, align 4, !tbaa !50
  %977 = add nsw i32 %976, %.210101289
  %978 = load i16, ptr %950, align 2, !tbaa !82
  %979 = zext i16 %978 to i32
  %980 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %22, i32 noundef 60, i32 noundef %977, i32 noundef %949, i32 noundef %929, i32 noundef %979) #4
  %981 = call i32 @sqlite3VdbeLoadString(ptr noundef %22, i32 noundef 3, ptr noundef nonnull @.str.31) #4
  %982 = call i32 @sqlite3VdbeGoto(ptr noundef %22, i32 noundef %943) #4
  call void @sqlite3VdbeResolveLabel(ptr noundef %22, i32 noundef %949) #4
  br label %983

983:                                              ; preds = %._crit_edge1286, %927
  call void @sqlite3VdbeJumpHere(ptr noundef %22, i32 noundef %945) #4
  %984 = load i32, ptr %18, align 4, !tbaa !50
  call void @sqlite3ResolvePartIdxLabel(ptr noundef nonnull %0, i32 noundef %984) #4
  br label %985

985:                                              ; preds = %924, %983
  %.1986 = phi ptr [ %.19891293, %983 ], [ %.09851291, %924 ]
  %.1983 = phi i32 [ %929, %983 ], [ %.09821292, %924 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #4
  %986 = getelementptr inbounds i8, ptr %.19891293, i64 40
  %987 = add nuw nsw i32 %.210101289, 1
  %.1989 = load ptr, ptr %986, align 8, !tbaa !21
  %988 = icmp eq ptr %.1989, null
  br i1 %988, label %._crit_edge1296, label %924, !llvm.loop !134

._crit_edge1296:                                  ; preds = %985, %921
  %989 = load i32, ptr %16, align 4, !tbaa !50
  %990 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 7, i32 noundef %989, i32 noundef %863) #4
  %991 = add nsw i32 %863, -1
  call void @sqlite3VdbeJumpHere(ptr noundef %22, i32 noundef %991) #4
  br i1 %755, label %.loopexit1200, label %992

992:                                              ; preds = %._crit_edge1296
  %993 = call i32 @sqlite3VdbeLoadString(ptr noundef %22, i32 noundef 2, ptr noundef nonnull @.str.32) #4
  %.29901297 = load ptr, ptr %856, align 8, !tbaa !21
  %.not10901298 = icmp eq ptr %.29901297, null
  br i1 %.not10901298, label %.loopexit1200, label %.lr.ph1302

.lr.ph1302:                                       ; preds = %992, %1005
  %.29901300 = phi ptr [ %.2990, %1005 ], [ %.29901297, %992 ]
  %.310111299 = phi i32 [ %1007, %1005 ], [ 0, %992 ]
  %994 = icmp eq ptr %853, %.29901300
  br i1 %994, label %1005, label %995

995:                                              ; preds = %.lr.ph1302
  %996 = load i32, ptr %17, align 4, !tbaa !50
  %997 = add nsw i32 %996, %.310111299
  %998 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 101, i32 noundef %997, i32 noundef 3) #4
  %999 = add nuw nsw i32 %.310111299, 8
  %1000 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 37, i32 noundef %999, i32 noundef 0, i32 noundef 3) #4
  call void @sqlite3VdbeChangeP5(ptr noundef %22, i16 noundef zeroext 144) #4
  %1001 = load ptr, ptr %.29901300, align 8, !tbaa !84
  %1002 = call i32 @sqlite3VdbeLoadString(ptr noundef %22, i32 noundef 3, ptr noundef %1001) #4
  %1003 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 52, i32 noundef 3, i32 noundef 2, i32 noundef 7) #4
  %1004 = call i32 @integrityCheckResultRow(ptr noundef %22, i32 noundef 7)
  call void @sqlite3VdbeJumpHere(ptr noundef %22, i32 noundef %1000) #4
  br label %1005

1005:                                             ; preds = %.lr.ph1302, %995
  %1006 = getelementptr inbounds i8, ptr %.29901300, i64 40
  %1007 = add nuw nsw i32 %.310111299, 1
  %.2990 = load ptr, ptr %1006, align 8, !tbaa !21
  %.not1090 = icmp eq ptr %.2990, null
  br i1 %.not1090, label %.loopexit1200, label %.lr.ph1302, !llvm.loop !135

.loopexit1200:                                    ; preds = %1005, %992, %._crit_edge1296, %844, %.lr.ph1307
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #4
  %.21007 = load ptr, ptr %.210071305, align 8, !tbaa !21
  %.not1085 = icmp eq ptr %.21007, null
  br i1 %.not1085, label %.loopexit1202, label %.lr.ph1307, !llvm.loop !136

.loopexit1202:                                    ; preds = %.loopexit1200, %._crit_edge1266, %772
  %indvars.iv.next1418 = add nuw nsw i64 %indvars.iv1417, 1
  %1008 = load i32, ptr %767, align 8, !tbaa !38
  %1009 = sext i32 %1008 to i64
  %1010 = icmp slt i64 %indvars.iv.next1418, %1009
  br i1 %1010, label %772, label %._crit_edge1311, !llvm.loop !137

._crit_edge1311:                                  ; preds = %.loopexit1202, %._crit_edge1251, %763
  %1011 = call ptr @sqlite3VdbeAddOpList(ptr noundef %22, i32 noundef 4, ptr noundef nonnull @sqlite3Pragma.endCode, i32 noundef 0) #4
  %.not1095 = icmp eq ptr %1011, null
  br i1 %.not1095, label %1018, label %1012

1012:                                             ; preds = %._crit_edge1311
  %1013 = load i32, ptr %15, align 4, !tbaa !50
  %1014 = sub nsw i32 1, %1013
  %1015 = getelementptr inbounds i8, ptr %1011, i64 8
  store i32 %1014, ptr %1015, align 8, !tbaa !48
  %1016 = getelementptr inbounds i8, ptr %1011, i64 49
  store i8 -2, ptr %1016, align 1, !tbaa !138
  %1017 = getelementptr inbounds i8, ptr %1011, i64 64
  store ptr @.str.34, ptr %1017, align 8, !tbaa !41
  br label %1018

1018:                                             ; preds = %1012, %._crit_edge1311
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #4
  br label %.loopexit1190

1019:                                             ; preds = %91
  %.not1074 = icmp eq ptr %.0947, null
  br i1 %.not1074, label %1020, label %1029

1020:                                             ; preds = %1019
  %1021 = call i32 @sqlite3ReadSchema(ptr noundef nonnull %0) #4
  %.not1075 = icmp eq i32 %1021, 0
  br i1 %.not1075, label %1022, label %.loopexit1190

1022:                                             ; preds = %1020
  %1023 = load ptr, ptr %0, align 8, !tbaa !5
  %1024 = getelementptr inbounds i8, ptr %1023, i64 82
  %1025 = load i8, ptr %1024, align 2, !tbaa !139
  %1026 = zext i8 %1025 to i64
  %1027 = getelementptr inbounds [9 x %struct.EncName], ptr @sqlite3Pragma.encnames, i64 0, i64 %1026
  %1028 = load ptr, ptr %1027, align 16, !tbaa !140
  call void @returnSingleText(ptr noundef nonnull %22, ptr noundef %1028)
  br label %.loopexit1190

1029:                                             ; preds = %1019
  %1030 = load ptr, ptr %29, align 8, !tbaa !14
  %1031 = getelementptr inbounds i8, ptr %1030, i64 24
  %1032 = load ptr, ptr %1031, align 8, !tbaa !33
  %1033 = getelementptr inbounds i8, ptr %1032, i64 114
  %1034 = load i16, ptr %1033, align 2, !tbaa !142
  %1035 = and i16 %1034, 5
  %or.cond1157 = icmp eq i16 %1035, 1
  br i1 %or.cond1157, label %.loopexit1190, label %.preheader1204

.preheader1204:                                   ; preds = %1029
  %1036 = load ptr, ptr @sqlite3Pragma.encnames, align 16, !tbaa !140
  %.not10781231 = icmp eq ptr %1036, null
  br i1 %.not10781231, label %._crit_edge1234, label %.lr.ph1233

.lr.ph1233:                                       ; preds = %.preheader1204, %1040
  %1037 = phi ptr [ %1042, %1040 ], [ %1036, %.preheader1204 ]
  %.09611232 = phi ptr [ %1041, %1040 ], [ @sqlite3Pragma.encnames, %.preheader1204 ]
  %1038 = call i32 @sqlite3StrICmp(ptr noundef %.0947, ptr noundef nonnull %1037) #4
  %1039 = icmp eq i32 %1038, 0
  br i1 %1039, label %1043, label %1040

1040:                                             ; preds = %.lr.ph1233
  %1041 = getelementptr inbounds i8, ptr %.09611232, i64 16
  %1042 = load ptr, ptr %1041, align 8, !tbaa !140
  %.not1078 = icmp eq ptr %1042, null
  br i1 %.not1078, label %._crit_edge1234, label %.lr.ph1233, !llvm.loop !143

1043:                                             ; preds = %.lr.ph1233
  %1044 = getelementptr inbounds i8, ptr %.09611232, i64 8
  %1045 = load i8, ptr %1044, align 8, !tbaa !144
  %.not1079 = icmp eq i8 %1045, 0
  %spec.select1158 = select i1 %.not1079, i8 2, i8 %1045
  %1046 = getelementptr inbounds i8, ptr %21, i64 82
  store i8 %spec.select1158, ptr %1046, align 2, !tbaa !139
  %1047 = load ptr, ptr %29, align 8, !tbaa !14
  %1048 = getelementptr inbounds i8, ptr %1047, i64 24
  %1049 = load ptr, ptr %1048, align 8, !tbaa !33
  %1050 = getelementptr inbounds i8, ptr %1049, i64 113
  store i8 %spec.select1158, ptr %1050, align 1, !tbaa !145
  br label %.loopexit1190

._crit_edge1234:                                  ; preds = %1040, %.preheader1204
  call void (ptr, ptr, ...) @sqlite3ErrorMsg(ptr noundef nonnull %0, ptr noundef nonnull @.str.43, ptr noundef %.0947) #4
  br label %.loopexit1190

1051:                                             ; preds = %91
  %1052 = getelementptr inbounds i8, ptr %73, i64 12
  %1053 = load i32, ptr %1052, align 4, !tbaa !64
  call void @sqlite3VdbeUsesBtree(ptr noundef nonnull %22, i32 noundef %26) #4
  %.not1073 = icmp eq ptr %.0947, null
  br i1 %.not1073, label %1065, label %1054

1054:                                             ; preds = %1051
  %1055 = load i8, ptr %76, align 1, !tbaa !28
  %1056 = and i8 %1055, 8
  %1057 = icmp eq i8 %1056, 0
  br i1 %1057, label %1058, label %1065

1058:                                             ; preds = %1054
  %1059 = call ptr @sqlite3VdbeAddOpList(ptr noundef nonnull %22, i32 noundef 2, ptr noundef nonnull @sqlite3Pragma.setCookie, i32 noundef 0) #4
  %1060 = getelementptr inbounds i8, ptr %1059, i64 4
  store i32 %26, ptr %1060, align 4, !tbaa !31
  %1061 = getelementptr inbounds i8, ptr %1059, i64 28
  store i32 %26, ptr %1061, align 4, !tbaa !31
  %1062 = getelementptr inbounds i8, ptr %1059, i64 32
  store i32 %1053, ptr %1062, align 8, !tbaa !48
  %1063 = call i32 @sqlite3Atoi(ptr noundef nonnull %.0947) #4
  %1064 = getelementptr inbounds i8, ptr %1059, i64 36
  store i32 %1063, ptr %1064, align 4, !tbaa !49
  br label %.loopexit1190

1065:                                             ; preds = %1054, %1051
  %1066 = call ptr @sqlite3VdbeAddOpList(ptr noundef nonnull %22, i32 noundef 3, ptr noundef nonnull @sqlite3Pragma.readCookie, i32 noundef 0) #4
  %1067 = getelementptr inbounds i8, ptr %1066, i64 4
  store i32 %26, ptr %1067, align 4, !tbaa !31
  %1068 = getelementptr inbounds i8, ptr %1066, i64 28
  store i32 %26, ptr %1068, align 4, !tbaa !31
  %1069 = getelementptr inbounds i8, ptr %1066, i64 36
  store i32 %1053, ptr %1069, align 4, !tbaa !49
  call void @sqlite3VdbeReusable(ptr noundef nonnull %22) #4
  br label %.loopexit1190

1070:                                             ; preds = %91
  store i32 1, ptr %25, align 8, !tbaa !13
  %1071 = call ptr @sqlite3_compileoption_get(i32 noundef 0) #4
  %.not10721226 = icmp eq ptr %1071, null
  br i1 %.not10721226, label %._crit_edge1230, label %.lr.ph1229

.lr.ph1229:                                       ; preds = %1070, %.lr.ph1229
  %1072 = phi ptr [ %1076, %.lr.ph1229 ], [ %1071, %1070 ]
  %.09581227 = phi i32 [ %1073, %.lr.ph1229 ], [ 0, %1070 ]
  %1073 = add nuw nsw i32 %.09581227, 1
  %1074 = call i32 @sqlite3VdbeLoadString(ptr noundef %22, i32 noundef 1, ptr noundef nonnull %1072) #4
  %1075 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 88, i32 noundef 1, i32 noundef 1) #4
  %1076 = call ptr @sqlite3_compileoption_get(i32 noundef %1073) #4
  %.not1072 = icmp eq ptr %1076, null
  br i1 %.not1072, label %._crit_edge1230, label %.lr.ph1229, !llvm.loop !146

._crit_edge1230:                                  ; preds = %.lr.ph1229, %1070
  call void @sqlite3VdbeReusable(ptr noundef %22) #4
  br label %.loopexit1190

1077:                                             ; preds = %91
  %1078 = load ptr, ptr %2, align 8, !tbaa !115
  %.not1070 = icmp eq ptr %1078, null
  %1079 = select i1 %.not1070, i32 10, i32 %26
  %.not1071 = icmp eq ptr %.0947, null
  br i1 %.not1071, label %1089, label %1080

1080:                                             ; preds = %1077
  %1081 = call i32 @sqlite3StrICmp(ptr noundef nonnull %.0947, ptr noundef nonnull @.str.44) #4
  %1082 = icmp eq i32 %1081, 0
  br i1 %1082, label %1089, label %1083

1083:                                             ; preds = %1080
  %1084 = call i32 @sqlite3StrICmp(ptr noundef nonnull %.0947, ptr noundef nonnull @.str.45) #4
  %1085 = icmp eq i32 %1084, 0
  br i1 %1085, label %1089, label %1086

1086:                                             ; preds = %1083
  %1087 = call i32 @sqlite3StrICmp(ptr noundef nonnull %.0947, ptr noundef nonnull @.str.3) #4
  %1088 = icmp eq i32 %1087, 0
  %spec.select1162 = select i1 %1088, i32 3, i32 0
  br label %1089

1089:                                             ; preds = %1086, %1083, %1080, %1077
  %.0955 = phi i32 [ 0, %1077 ], [ 1, %1080 ], [ 2, %1083 ], [ %spec.select1162, %1086 ]
  store i32 3, ptr %25, align 8, !tbaa !13
  %1090 = call i32 @sqlite3VdbeAddOp3(ptr noundef nonnull %22, i32 noundef 8, i32 noundef %1079, i32 noundef %.0955, i32 noundef 1) #4
  %1091 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %22, i32 noundef 88, i32 noundef 1, i32 noundef 3) #4
  br label %.loopexit1190

1092:                                             ; preds = %91
  %.not1069 = icmp eq ptr %.0947, null
  br i1 %.not1069, label %1096, label %1093

1093:                                             ; preds = %1092
  %1094 = call i32 @sqlite3Atoi(ptr noundef nonnull %.0947) #4
  %1095 = call i32 @sqlite3_wal_autocheckpoint(ptr noundef nonnull %21, i32 noundef %1094) #4
  br label %1096

1096:                                             ; preds = %1093, %1092
  %1097 = getelementptr inbounds i8, ptr %21, i64 288
  %1098 = load ptr, ptr %1097, align 8, !tbaa !147
  %1099 = icmp eq ptr %1098, @sqlite3WalDefaultHook
  br i1 %1099, label %1100, label %1105

1100:                                             ; preds = %1096
  %1101 = getelementptr inbounds i8, ptr %21, i64 296
  %1102 = load ptr, ptr %1101, align 8, !tbaa !148
  %1103 = ptrtoint ptr %1102 to i64
  %sext = shl i64 %1103, 32
  %1104 = ashr exact i64 %sext, 32
  br label %1105

1105:                                             ; preds = %1096, %1100
  %1106 = phi i64 [ %1104, %1100 ], [ 0, %1096 ]
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %1106)
  br label %.loopexit1190

1107:                                             ; preds = %91
  %1108 = call i32 @sqlite3_db_release_memory(ptr noundef nonnull %21) #4
  br label %.loopexit1190

1109:                                             ; preds = %91
  %.not1061 = icmp eq ptr %.0947, null
  br i1 %.not1061, label %1114, label %1110

1110:                                             ; preds = %1109
  %1111 = call i32 @sqlite3Atoi(ptr noundef nonnull %.0947) #4
  %1112 = and i32 %1111, 2
  %1113 = icmp eq i32 %1112, 0
  br i1 %1113, label %.loopexit1190, label %1114

1114:                                             ; preds = %1109, %1110
  %.0 = phi i32 [ %1111, %1110 ], [ 65534, %1109 ]
  %.0.fr = freeze i32 %.0
  %1115 = getelementptr inbounds i8, ptr %0, i64 52
  %1116 = load i32, ptr %1115, align 4, !tbaa !111
  %1117 = add nsw i32 %1116, 1
  store i32 %1117, ptr %1115, align 4, !tbaa !111
  %.not1062 = icmp eq ptr %50, null
  br i1 %.not1062, label %1118, label %.lr.ph1224

1118:                                             ; preds = %1114
  %1119 = getelementptr inbounds i8, ptr %21, i64 40
  %1120 = load i32, ptr %1119, align 8, !tbaa !38
  %1121 = add nsw i32 %1120, -1
  %.not10631219.not = icmp slt i32 %26, %1120
  br i1 %.not10631219.not, label %.lr.ph1224, label %._crit_edge1225

.lr.ph1224:                                       ; preds = %1114, %1118
  %1122 = phi i32 [ %1121, %1118 ], [ %26, %1114 ]
  %1123 = and i32 %.0.fr, 1
  %1124 = or disjoint i32 %1123, 2
  %.not1068 = icmp eq i32 %1123, 0
  br label %1125

1125:                                             ; preds = %.lr.ph1224, %.loopexit1205
  %indvars.iv = phi i64 [ %31, %.lr.ph1224 ], [ %indvars.iv.next, %.loopexit1205 ]
  %1126 = icmp eq i64 %indvars.iv, 1
  br i1 %1126, label %.loopexit1205, label %1127

1127:                                             ; preds = %1125
  %1128 = trunc nuw i64 %indvars.iv to i32
  call void @sqlite3CodeVerifySchema(ptr noundef nonnull %0, i32 noundef %1128) #4
  %1129 = load ptr, ptr %29, align 8, !tbaa !14
  %1130 = getelementptr inbounds %struct.Db, ptr %1129, i64 %indvars.iv, i32 4
  %1131 = load ptr, ptr %1130, align 8, !tbaa !33
  %1132 = getelementptr inbounds i8, ptr %1131, i64 16
  %.09511214 = load ptr, ptr %1132, align 8, !tbaa !21
  %.not10641215 = icmp eq ptr %.09511214, null
  br i1 %.not10641215, label %.loopexit1205, label %.lr.ph1218

.lr.ph1218:                                       ; preds = %1127
  br i1 %.not1068, label %.lr.ph1218.split.us, label %.lr.ph1218.split

.lr.ph1218.split.us:                              ; preds = %.lr.ph1218, %1159
  %.09511216.us = phi ptr [ %.0951.us, %1159 ], [ %.09511214, %.lr.ph1218 ]
  %1133 = getelementptr inbounds i8, ptr %.09511216.us, i64 16
  %1134 = load ptr, ptr %1133, align 8, !tbaa !89
  %1135 = getelementptr inbounds i8, ptr %1134, i64 64
  %1136 = load i32, ptr %1135, align 8, !tbaa !116
  %1137 = and i32 %1136, 256
  %1138 = icmp eq i32 %1137, 0
  br i1 %1138, label %1159, label %1139

1139:                                             ; preds = %.lr.ph1218.split.us
  %1140 = getelementptr inbounds i8, ptr %1134, i64 72
  %1141 = load i16, ptr %1140, align 8, !tbaa !149
  %1142 = add i16 %1141, 46
  %1143 = getelementptr inbounds i8, ptr %1134, i64 16
  %.09491211.us = load ptr, ptr %1143, align 8, !tbaa !21
  %.not10651212.us = icmp eq ptr %.09491211.us, null
  br i1 %.not10651212.us, label %._crit_edge.us, label %.lr.ph.us

1144:                                             ; preds = %.lr.ph.us
  %1145 = getelementptr inbounds i8, ptr %.09491213.us, i64 40
  %.0949.us = load ptr, ptr %1145, align 8, !tbaa !21
  %.not1065.us = icmp eq ptr %.0949.us, null
  br i1 %.not1065.us, label %._crit_edge.us, label %.lr.ph.us, !llvm.loop !150

.lr.ph.us:                                        ; preds = %1139, %1144
  %.09491213.us = phi ptr [ %.0949.us, %1144 ], [ %.09491211.us, %1139 ]
  %1146 = getelementptr inbounds i8, ptr %.09491213.us, i64 99
  %1147 = load i8, ptr %1146, align 1
  %.not1066.us = icmp sgt i8 %1147, -1
  br i1 %.not1066.us, label %.thread1182.us, label %1144

._crit_edge.us:                                   ; preds = %1144, %1139
  %.not1067.us = icmp eq i16 %1142, 0
  br i1 %.not1067.us, label %.thread1182.us, label %1148

1148:                                             ; preds = %._crit_edge.us
  call void @sqlite3OpenTable(ptr noundef nonnull %0, i32 noundef %1116, i32 noundef %1128, ptr noundef %1134, i32 noundef 105) #4
  %1149 = call i32 @sqlite3VdbeCurrentAddr(ptr noundef %22) #4
  %1150 = add i32 %1124, %1149
  %1151 = sext i16 %1142 to i32
  %1152 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 55, i32 noundef %1116, i32 noundef %1150, i32 noundef %1151) #4
  br label %.thread1182.us

.thread1182.us:                                   ; preds = %.lr.ph.us, %1148, %._crit_edge.us
  %1153 = load ptr, ptr %29, align 8, !tbaa !14
  %1154 = getelementptr inbounds %struct.Db, ptr %1153, i64 %indvars.iv
  %1155 = load ptr, ptr %1154, align 8, !tbaa !23
  %1156 = load ptr, ptr %1134, align 8, !tbaa !108
  %1157 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %21, ptr noundef nonnull @.str.46, ptr noundef %1155, ptr noundef %1156) #4
  %1158 = call i32 @sqlite3VdbeAddOp4(ptr noundef %22, i32 noundef 136, i32 noundef 0, i32 noundef 0, i32 noundef 0, ptr noundef %1157, i32 noundef -1) #4
  br label %1159

1159:                                             ; preds = %.thread1182.us, %.lr.ph1218.split.us
  %.0951.us = load ptr, ptr %.09511216.us, align 8, !tbaa !21
  %.not1064.us = icmp eq ptr %.0951.us, null
  br i1 %.not1064.us, label %.loopexit1205, label %.lr.ph1218.split.us, !llvm.loop !151

.lr.ph1218.split:                                 ; preds = %.lr.ph1218, %1188
  %.09511216 = phi ptr [ %.0951, %1188 ], [ %.09511214, %.lr.ph1218 ]
  %1160 = getelementptr inbounds i8, ptr %.09511216, i64 16
  %1161 = load ptr, ptr %1160, align 8, !tbaa !89
  %1162 = getelementptr inbounds i8, ptr %1161, i64 64
  %1163 = load i32, ptr %1162, align 8, !tbaa !116
  %1164 = and i32 %1163, 256
  %1165 = icmp eq i32 %1164, 0
  br i1 %1165, label %1188, label %1166

1166:                                             ; preds = %.lr.ph1218.split
  %1167 = getelementptr inbounds i8, ptr %1161, i64 72
  %1168 = load i16, ptr %1167, align 8, !tbaa !149
  %1169 = add i16 %1168, 46
  %1170 = getelementptr inbounds i8, ptr %1161, i64 16
  %.09491211 = load ptr, ptr %1170, align 8, !tbaa !21
  %.not10651212 = icmp eq ptr %.09491211, null
  br i1 %.not10651212, label %._crit_edge, label %.lr.ph

1171:                                             ; preds = %.lr.ph
  %1172 = getelementptr inbounds i8, ptr %.09491213, i64 40
  %.0949 = load ptr, ptr %1172, align 8, !tbaa !21
  %.not1065 = icmp eq ptr %.0949, null
  br i1 %.not1065, label %._crit_edge, label %.lr.ph, !llvm.loop !150

.lr.ph:                                           ; preds = %1166, %1171
  %.09491213 = phi ptr [ %.0949, %1171 ], [ %.09491211, %1166 ]
  %1173 = getelementptr inbounds i8, ptr %.09491213, i64 99
  %1174 = load i8, ptr %1173, align 1
  %.not1066 = icmp sgt i8 %1174, -1
  br i1 %.not1066, label %.thread1182, label %1171

._crit_edge:                                      ; preds = %1171, %1166
  %.not1067 = icmp eq i16 %1169, 0
  br i1 %.not1067, label %.thread1182, label %1175

1175:                                             ; preds = %._crit_edge
  call void @sqlite3OpenTable(ptr noundef nonnull %0, i32 noundef %1116, i32 noundef %1128, ptr noundef %1161, i32 noundef 105) #4
  %1176 = call i32 @sqlite3VdbeCurrentAddr(ptr noundef %22) #4
  %1177 = add i32 %1124, %1176
  %1178 = sext i16 %1169 to i32
  %1179 = call i32 @sqlite3VdbeAddOp3(ptr noundef %22, i32 noundef 55, i32 noundef %1116, i32 noundef %1177, i32 noundef %1178) #4
  br label %.thread1182

.thread1182:                                      ; preds = %.lr.ph, %1175, %._crit_edge
  %1180 = load ptr, ptr %29, align 8, !tbaa !14
  %1181 = getelementptr inbounds %struct.Db, ptr %1180, i64 %indvars.iv
  %1182 = load ptr, ptr %1181, align 8, !tbaa !23
  %1183 = load ptr, ptr %1161, align 8, !tbaa !108
  %1184 = call ptr (ptr, ptr, ...) @sqlite3MPrintf(ptr noundef %21, ptr noundef nonnull @.str.46, ptr noundef %1182, ptr noundef %1183) #4
  %1185 = call i32 @sqlite3GetTempReg(ptr noundef nonnull %0) #4
  %1186 = call i32 @sqlite3VdbeAddOp4(ptr noundef %22, i32 noundef 97, i32 noundef 0, i32 noundef %1185, i32 noundef 0, ptr noundef %1184, i32 noundef -1) #4
  %1187 = call i32 @sqlite3VdbeAddOp2(ptr noundef %22, i32 noundef 88, i32 noundef %1185, i32 noundef 1) #4
  br label %1188

1188:                                             ; preds = %.thread1182, %.lr.ph1218.split
  %.0951 = load ptr, ptr %.09511216, align 8, !tbaa !21
  %.not1064 = icmp eq ptr %.0951, null
  br i1 %.not1064, label %.loopexit1205, label %.lr.ph1218.split, !llvm.loop !151

.loopexit1205:                                    ; preds = %1188, %1159, %1125, %1127
  %.pre-phi = phi i32 [ %1128, %1127 ], [ 1, %1125 ], [ %1128, %1159 ], [ %1128, %1188 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %.not1063.not = icmp slt i32 %.pre-phi, %1122
  br i1 %.not1063.not, label %1125, label %._crit_edge1225, !llvm.loop !152

._crit_edge1225:                                  ; preds = %.loopexit1205, %1118
  %1189 = call i32 @sqlite3VdbeAddOp0(ptr noundef %22, i32 noundef 151) #4
  br label %.loopexit1190

1190:                                             ; preds = %91
  %.not1145 = icmp eq ptr %.0947, null
  br i1 %.not1145, label %1194, label %1191

1191:                                             ; preds = %1190
  %1192 = call i32 @sqlite3Atoi(ptr noundef nonnull %.0947) #4
  %1193 = call i32 @sqlite3_busy_timeout(ptr noundef nonnull %21, i32 noundef %1192) #4
  br label %1194

1194:                                             ; preds = %1191, %1190
  %1195 = getelementptr inbounds i8, ptr %21, i64 632
  %1196 = load i32, ptr %1195, align 8, !tbaa !153
  %1197 = sext i32 %1196 to i64
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %1197)
  br label %.loopexit1190

1198:                                             ; preds = %91
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #4
  %.not1060 = icmp eq ptr %.0947, null
  br i1 %.not1060, label %1205, label %1199

1199:                                             ; preds = %1198
  %1200 = call i32 @sqlite3DecOrHexToI64(ptr noundef nonnull %.0947, ptr noundef nonnull %19) #4
  %1201 = icmp eq i32 %1200, 0
  br i1 %1201, label %1202, label %1205

1202:                                             ; preds = %1199
  %1203 = load i64, ptr %19, align 8, !tbaa !46
  %1204 = call i64 @sqlite3_soft_heap_limit64(i64 noundef %1203) #4
  br label %1205

1205:                                             ; preds = %1202, %1199, %1198
  %1206 = call i64 @sqlite3_soft_heap_limit64(i64 noundef -1) #4
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %1206)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  br label %.loopexit1190

1207:                                             ; preds = %91
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #4
  %.not1059 = icmp eq ptr %.0947, null
  br i1 %.not1059, label %1217, label %1208

1208:                                             ; preds = %1207
  %1209 = call i32 @sqlite3DecOrHexToI64(ptr noundef nonnull %.0947, ptr noundef nonnull %20) #4
  %1210 = icmp eq i32 %1209, 0
  %1211 = load i64, ptr %20, align 8
  %1212 = icmp sgt i64 %1211, -1
  %or.cond17 = select i1 %1210, i1 %1212, i1 false
  br i1 %or.cond17, label %1213, label %1217

1213:                                             ; preds = %1208
  %1214 = trunc i64 %1211 to i32
  %1215 = and i32 %1214, 2147483647
  %1216 = call i32 @sqlite3_limit(ptr noundef nonnull %21, i32 noundef 11, i32 noundef %1215) #4
  br label %1217

1217:                                             ; preds = %1213, %1208, %1207
  %1218 = call i32 @sqlite3_limit(ptr noundef nonnull %21, i32 noundef 11, i32 noundef -1) #4
  %1219 = sext i32 %1218 to i64
  call void @returnSingleInt(ptr noundef nonnull %22, i64 noundef %1219)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  br label %.loopexit1190

.loopexit1190:                                    ; preds = %._crit_edge1338, %.lr.ph1346, %573, %.lr.ph1355, %532, %485, %577, %558, %538, %494, %441, %1043, %376, %1020, %1029, %._crit_edge1234, %1022, %.thread, %161, %191, %._crit_edge1382, %235, %268, %357, %.loopexit1198, %1018, %._crit_edge1230, %1089, %1105, %1107, %1194, %1205, %1217, %282, %276, %310, %301, %363, %359, %386, %388, %366, %398, %400, %399, %390, %436, %408, %438, %491, %535, %584, %747, %746, %102, %95, %121, %126, %119, %244, %251, %241, %439, %492, %536, %587, %585, %1065, %1058, %1110, %._crit_edge1225, %79, %72, %49, %67, %58
  call void @sqlite3DbFree(ptr noundef %21, ptr noundef nonnull %38) #4
  call void @sqlite3DbFree(ptr noundef %21, ptr noundef %.0947) #4
  br label %1220

1220:                                             ; preds = %36, %34, %24, %5, %.loopexit1190
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #4
  ret void
}

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

declare ptr @sqlite3GetVdbe(ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeRunOnlyOnce(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3TwoPartName(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3OpenTempDatabase(ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3NameFromToken(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3MPrintf(ptr noundef, ptr noundef, ...) local_unnamed_addr #2

declare i32 @sqlite3AuthCheck(ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3_file_control(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeSetNumCols(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeSetColName(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden void @returnSingleText(ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @sqlite3_free(ptr noundef) local_unnamed_addr #2

declare void @sqlite3ErrorMsg(ptr noundef, ptr noundef, ...) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden ptr @pragmaLocate(ptr noundef) local_unnamed_addr #0

declare i32 @sqlite3ReadSchema(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden void @setPragmaResultColumnNames(ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @sqlite3VdbeUsesBtree(ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @sqlite3VdbeAddOpList(ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3AbsInt32(i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3Atoi(ptr noundef) local_unnamed_addr #2

declare void @sqlite3BeginWriteOperation(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeAddOp3(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeSetCacheSize(ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @sqlite3BtreeGetPageSize(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden void @returnSingleInt(ptr noundef, i64 noundef) local_unnamed_addr #0

declare i32 @sqlite3BtreeSetPageSize(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3OomFault(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeSecureDelete(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3CodeVerifySchema(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeAddOp2(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @getLockingMode(ptr noundef) local_unnamed_addr #0

declare ptr @sqlite3BtreePager(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3PagerLockingMode(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3Strlen30(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3_strnicmp(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3DecOrHexToI64(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i64 @sqlite3PagerJournalSizeLimit(ptr noundef, i64 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeGetAutoVacuum(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @getAutoVacuum(ptr noundef) local_unnamed_addr #0

declare i32 @sqlite3BtreeSetAutoVacuum(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeCurrentAddr(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3GetInt32(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeAddOp1(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3VdbeJumpHere(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3BtreeSetSpillSize(ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden void @setAllPagerFlags(ptr noundef) local_unnamed_addr #0

declare i32 @sqlite3BtreeSetMmapLimit(ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @changeTempStorage(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @sqlite3OsAccess(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @invalidateTempStorage(ptr noundef) local_unnamed_addr #0

declare ptr @sqlite3_mprintf(ptr noundef, ...) local_unnamed_addr #2

declare i32 @sqlite3VdbeAddOp0(ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @sqlite3LocateTable(ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3PrimaryKeyIndex(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3ViewGetColumnNames(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeMultiLoad(ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #2

declare ptr @sqlite3ColumnType(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3FindIndex(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3FindTable(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3BtreeGetFilename(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden ptr @actionName(i8 noundef zeroext) local_unnamed_addr #0

declare void @sqlite3TableLock(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare void @sqlite3OpenTable(ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeLoadString(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3FkLocateIndex(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeSetP4KeyInfo(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeMakeLabel(ptr noundef) local_unnamed_addr #2

declare void @sqlite3ColumnDefault(ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeGoto(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3ExprCodeGetColumnOfTable(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeAddOp4(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @sqlite3IndexAffinityStr(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeAddOp4Int(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3VdbeResolveLabel(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3DbFree(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3RegisterLikeFunctions(ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @sqlite3DbMallocRawNN(ptr noundef, i64 noundef) local_unnamed_addr #2

declare void @sqlite3VdbeChangeP5(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @integrityCheckResultRow(ptr noundef, i32 noundef) local_unnamed_addr #0

declare void @sqlite3ExprCacheClear(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3OpenTableAndIndices(ptr noundef, ptr noundef, i32 noundef, i8 noundef zeroext, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3ExprCachePush(ptr noundef) local_unnamed_addr #2

declare void @sqlite3ExprIfFalse(ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3ExprIfTrue(ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3ExprCachePop(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3GenerateIndexKey(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @sqlite3ResolvePartIdxLabel(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3StrICmp(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sqlite3VdbeReusable(ptr noundef) local_unnamed_addr #2

declare ptr @sqlite3_compileoption_get(i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3_wal_autocheckpoint(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3WalDefaultHook(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @sqlite3_db_release_memory(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3GetTempReg(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3_busy_timeout(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i64 @sqlite3_soft_heap_limit64(i64 noundef) local_unnamed_addr #2

declare i32 @sqlite3_limit(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i8 @llvm.umax.i8(i8, i8) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #3

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { 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 0}
!6 = !{!"Parse", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !8, i64 28, !8, i64 29, !8, i64 30, !8, i64 31, !8, i64 32, !8, i64 33, !8, i64 34, !8, i64 35, !8, i64 36, !8, i64 37, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !7, i64 88, !7, i64 96, !11, i64 104, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !8, i64 192, !8, i64 193, !8, i64 194, !8, i64 196, !8, i64 396, !11, i64 432, !11, i64 448, !12, i64 464, !8, i64 466, !8, i64 467, !8, i64 468, !10, i64 472, !10, i64 476, !10, i64 480, !10, i64 484, !7, i64 488, !7, i64 496, !7, i64 504, !7, i64 512, !7, i64 520, !7, i64 528, !11, i64 536, !7, i64 552, !7, i64 560, !7, i64 568, !7, i64 576, !7, i64 584}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"Token", !7, i64 0, !10, i64 8}
!12 = !{!"short", !8, i64 0}
!13 = !{!6, !10, i64 56}
!14 = !{!15, !7, i64 32}
!15 = !{!"sqlite3", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !10, i64 40, !10, i64 44, !16, i64 48, !16, i64 56, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !12, 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, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !8, i64 112, !10, i64 160, !17, i64 164, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !10, 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, !18, i64 344, !7, i64 400, !7, i64 408, !7, i64 416, !7, i64 424, !10, i64 432, !10, i64 436, !19, i64 440, !7, i64 464, !7, i64 472, !7, i64 480, !19, i64 488, !19, i64 512, !20, i64 536, !8, i64 560, !7, i64 624, !10, i64 632, !10, i64 636, !10, i64 640, !16, i64 648, !16, i64 656, !7, i64 664}
!16 = !{!"long long", !8, i64 0}
!17 = !{!"sqlite3InitInfo", !10, i64 0, !8, i64 4, !8, i64 5, !8, i64 6, !8, i64 7}
!18 = !{!"Lookaside", !10, i64 0, !12, i64 4, !8, i64 6, !10, i64 8, !10, i64 12, !8, i64 16, !7, i64 32, !7, i64 40, !7, i64 48}
!19 = !{!"Hash", !10, i64 0, !10, i64 4, !7, i64 8, !7, i64 16}
!20 = !{!"BusyHandler", !7, i64 0, !7, i64 8, !10, i64 16}
!21 = !{!7, !7, i64 0}
!22 = !{!11, !10, i64 8}
!23 = !{!24, !7, i64 0}
!24 = !{!"Db", !7, i64 0, !7, i64 8, !8, i64 16, !8, i64 17, !7, i64 24}
!25 = !{!15, !10, i64 552}
!26 = !{!6, !10, i64 48}
!27 = !{!6, !10, i64 24}
!28 = !{!29, !8, i64 9}
!29 = !{!"PragmaName", !7, i64 0, !8, i64 8, !8, i64 9, !8, i64 10, !8, i64 11, !10, i64 12}
!30 = !{!29, !8, i64 8}
!31 = !{!32, !10, i64 4}
!32 = !{!"VdbeOp", !8, i64 0, !8, i64 1, !12, i64 2, !10, i64 4, !10, i64 8, !10, i64 12, !8, i64 16}
!33 = !{!24, !7, i64 24}
!34 = !{!35, !10, i64 116}
!35 = !{!"Schema", !10, i64 0, !10, i64 4, !19, i64 8, !19, i64 32, !19, i64 56, !19, i64 80, !7, i64 104, !8, i64 112, !8, i64 113, !12, i64 114, !10, i64 116}
!36 = !{!24, !7, i64 8}
!37 = !{!15, !10, i64 96}
!38 = !{!15, !10, i64 40}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.mustprogress"}
!41 = !{!8, !8, i64 0}
!42 = !{!15, !8, i64 87}
!43 = distinct !{!43, !40}
!44 = distinct !{!44, !40}
!45 = distinct !{!45, !40}
!46 = !{!16, !16, i64 0}
!47 = !{!15, !8, i64 88}
!48 = !{!32, !10, i64 8}
!49 = !{!32, !10, i64 12}
!50 = !{!10, !10, i64 0}
!51 = !{!15, !10, i64 44}
!52 = !{!53, !16, i64 304}
!53 = !{!"Sqlite3Config", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !54, i64 40, !55, i64 104, !56, i64 176, !7, i64 280, !10, i64 288, !10, i64 292, !10, i64 296, !16, i64 304, !16, i64 312, !7, i64 320, !10, i64 328, !10, i64 332, !7, i64 336, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !7, i64 392, !7, i64 400, !7, i64 408, !7, i64 416, !10, i64 424, !10, i64 428}
!54 = !{!"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}
!55 = !{!"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}
!56 = !{!"sqlite3_pcache_methods2", !10, 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}
!57 = !{!15, !16, i64 56}
!58 = distinct !{!58, !40}
!59 = !{!15, !8, i64 84}
!60 = !{!15, !7, i64 0}
!61 = !{!24, !8, i64 16}
!62 = !{!15, !8, i64 83}
!63 = !{!24, !8, i64 17}
!64 = !{!29, !10, i64 12}
!65 = !{!15, !16, i64 656}
!66 = !{!67, !12, i64 70}
!67 = !{!"Table", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !10, i64 56, !10, i64 60, !10, i64 64, !12, i64 68, !12, i64 70, !12, i64 72, !12, i64 74, !8, i64 76, !10, i64 80, !10, i64 84, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120}
!68 = !{!67, !7, i64 8}
!69 = !{!70, !8, i64 27}
!70 = !{!"Column", !7, i64 0, !7, i64 8, !7, i64 16, !8, i64 24, !8, i64 25, !8, i64 26, !8, i64 27}
!71 = !{!72, !7, i64 8}
!72 = !{!"Index", !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, !7, i64 72, !7, i64 80, !10, i64 88, !12, i64 92, !12, i64 94, !12, i64 96, !8, i64 98, !10, i64 99, !10, i64 99, !10, i64 99, !10, i64 99, !10, i64 99, !10, i64 99, !10, i64 99}
!73 = !{!12, !12, i64 0}
!74 = distinct !{!74, !40}
!75 = !{!70, !7, i64 0}
!76 = !{!70, !8, i64 24}
!77 = !{!70, !7, i64 8}
!78 = distinct !{!78, !40}
!79 = !{!72, !7, i64 24}
!80 = !{!72, !7, i64 56}
!81 = !{!72, !7, i64 64}
!82 = !{!72, !12, i64 94}
!83 = distinct !{!83, !40}
!84 = !{!72, !7, i64 0}
!85 = !{!72, !8, i64 98}
!86 = !{!72, !7, i64 72}
!87 = distinct !{!87, !40}
!88 = distinct !{!88, !40}
!89 = !{!90, !7, i64 16}
!90 = !{!"HashElem", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!91 = !{!92, !7, i64 0}
!92 = !{!"CollSeq", !7, i64 0, !8, i64 8, !7, i64 16, !7, i64 24, !7, i64 32}
!93 = distinct !{!93, !40}
!94 = !{!67, !7, i64 32}
!95 = !{!96, !10, i64 40}
!96 = !{!"FKey", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !10, i64 40, !8, i64 44, !8, i64 45, !8, i64 48, !8, i64 64}
!97 = !{!96, !7, i64 16}
!98 = !{!99, !10, i64 0}
!99 = !{!"sColMap", !10, i64 0, !7, i64 8}
!100 = !{!99, !7, i64 8}
!101 = distinct !{!101, !40}
!102 = !{!96, !7, i64 8}
!103 = distinct !{!103, !40}
!104 = !{!35, !7, i64 16}
!105 = !{!90, !7, i64 0}
!106 = distinct !{!106, !40}
!107 = !{!67, !10, i64 56}
!108 = !{!67, !7, i64 0}
!109 = !{!72, !10, i64 88}
!110 = distinct !{!110, !40}
!111 = !{!6, !10, i64 52}
!112 = !{!67, !12, i64 68}
!113 = distinct !{!113, !40}
!114 = distinct !{!114, !40}
!115 = !{!11, !7, i64 0}
!116 = !{!67, !10, i64 64}
!117 = distinct !{!117, !40}
!118 = distinct !{!118, !40}
!119 = distinct !{!119, !40}
!120 = distinct !{!120, !40}
!121 = !{!67, !7, i64 48}
!122 = !{!67, !7, i64 16}
!123 = distinct !{!123, !40}
!124 = distinct !{!124, !40}
!125 = !{!6, !10, i64 72}
!126 = !{!127, !10, i64 0}
!127 = !{!"ExprList", !10, i64 0, !7, i64 8}
!128 = !{!127, !7, i64 8}
!129 = !{!130, !7, i64 0}
!130 = !{!"ExprList_item", !7, i64 0, !7, i64 8, !7, i64 16, !8, i64 24, !10, i64 25, !10, i64 25, !10, i64 25, !8, i64 28}
!131 = distinct !{!131, !40}
!132 = !{!72, !12, i64 96}
!133 = distinct !{!133, !40}
!134 = distinct !{!134, !40}
!135 = distinct !{!135, !40}
!136 = distinct !{!136, !40}
!137 = distinct !{!137, !40}
!138 = !{!32, !8, i64 1}
!139 = !{!15, !8, i64 82}
!140 = !{!141, !7, i64 0}
!141 = !{!"EncName", !7, i64 0, !8, i64 8}
!142 = !{!35, !12, i64 114}
!143 = distinct !{!143, !40}
!144 = !{!141, !8, i64 8}
!145 = !{!35, !8, i64 113}
!146 = distinct !{!146, !40}
!147 = !{!15, !7, i64 288}
!148 = !{!15, !7, i64 296}
!149 = !{!67, !12, i64 72}
!150 = distinct !{!150, !40}
!151 = distinct !{!151, !40}
!152 = distinct !{!152, !40}
!153 = !{!15, !10, i64 632}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass