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

; 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.AuthContext = type { ptr, ptr }
%struct.NameContext = type { ptr, ptr, ptr, ptr, ptr, i32, i32, i16 }
%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.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.SrcList = type { i32, i32, [1 x %struct.SrcList_item] }
%struct.SrcList_item = type { ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, %struct.anon, i8, i32, ptr, ptr, i64, %union.anon.0, ptr }
%struct.anon = type { i8, i8, [2 x i8] }
%union.anon.0 = type { ptr }
%struct.Index = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i16, i16, i16, i8, i8 }
%struct.ExprList = type { i32, ptr }
%struct.ExprList_item = type { ptr, ptr, ptr, i8, i8, %union.anon.1 }
%union.anon.1 = type { i32 }
%struct.Column = type { ptr, ptr, ptr, i8, i8, i8, i8 }

@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1

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

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

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

; Function Attrs: nounwind uwtable
define dso_local void @sqlite3Update(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4) #2 {
  %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 i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i8, align 1
  %28 = alloca i8, align 1
  %29 = alloca i8, align 1
  %30 = alloca ptr, align 8
  %31 = alloca %struct.AuthContext, align 8
  %32 = alloca %struct.NameContext, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca [2 x i32], align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i16, align 2
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i16, align 2
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  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 4, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  store i32 0, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #4
  store ptr null, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  store ptr null, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #4
  store ptr null, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 56, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #4
  store i32 0, ptr %43, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #4
  store i32 0, ptr %44, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #4
  store i32 0, ptr %46, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #4
  store i32 0, ptr %47, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 2, ptr %48) #4
  store i16 0, ptr %48, align 2, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #4
  store i32 0, ptr %49, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  store i32 0, ptr %50, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #4
  store i32 0, ptr %51, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  store i32 0, ptr %52, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  store i32 0, ptr %53, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  store i32 0, ptr %54, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  store i32 0, ptr %55, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  store i32 0, ptr %56, align 4, !tbaa !9
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 16, i1 false)
  %65 = load ptr, ptr %6, align 8, !tbaa !5
  %66 = getelementptr inbounds %struct.Parse, ptr %65, i32 0, i32 0
  %67 = load ptr, ptr %66, align 8, !tbaa !13
  store ptr %67, ptr %23, align 8, !tbaa !5
  %68 = load ptr, ptr %6, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.Parse, ptr %68, i32 0, i32 16
  %70 = load i32, ptr %69, align 8, !tbaa !16
  %71 = icmp ne i32 %70, 0
  br i1 %71, label %78, label %72

72:                                               ; preds = %5
  %73 = load ptr, ptr %23, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.sqlite3, ptr %73, i32 0, i32 17
  %75 = load i8, ptr %74, align 1, !tbaa !17
  %76 = zext i8 %75 to i32
  %77 = icmp ne i32 %76, 0
  br i1 %77, label %78, label %79

78:                                               ; preds = %72, %5
  br label %1443

79:                                               ; preds = %72
  %80 = load ptr, ptr %6, align 8, !tbaa !5
  %81 = load ptr, ptr %7, align 8, !tbaa !5
  %82 = call ptr @sqlite3SrcListLookup(ptr noundef %80, ptr noundef %81)
  store ptr %82, ptr %13, align 8, !tbaa !5
  %83 = load ptr, ptr %13, align 8, !tbaa !5
  %84 = icmp eq ptr %83, null
  br i1 %84, label %85, label %86

85:                                               ; preds = %79
  br label %1443

86:                                               ; preds = %79
  %87 = load ptr, ptr %6, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.Parse, ptr %87, i32 0, i32 0
  %89 = load ptr, ptr %88, align 8, !tbaa !13
  %90 = load ptr, ptr %13, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.Table, ptr %90, i32 0, i32 20
  %92 = load ptr, ptr %91, align 8, !tbaa !24
  %93 = call i32 @sqlite3SchemaToIndex(ptr noundef %89, ptr noundef %92)
  store i32 %93, ptr %33, align 4, !tbaa !9
  %94 = load ptr, ptr %6, align 8, !tbaa !5
  %95 = load ptr, ptr %13, align 8, !tbaa !5
  %96 = load ptr, ptr %8, align 8, !tbaa !5
  %97 = call ptr @sqlite3TriggersExist(ptr noundef %94, ptr noundef %95, i32 noundef 110, ptr noundef %96, ptr noundef %41)
  store ptr %97, ptr %40, align 8, !tbaa !5
  %98 = load ptr, ptr %13, align 8, !tbaa !5
  %99 = getelementptr inbounds %struct.Table, ptr %98, i32 0, i32 3
  %100 = load ptr, ptr %99, align 8, !tbaa !26
  %101 = icmp ne ptr %100, null
  %102 = zext i1 %101 to i32
  store i32 %102, ptr %39, align 4, !tbaa !9
  %103 = load ptr, ptr %6, align 8, !tbaa !5
  %104 = load ptr, ptr %13, align 8, !tbaa !5
  %105 = call i32 @sqlite3ViewGetColumnNames(ptr noundef %103, ptr noundef %104)
  %106 = icmp ne i32 %105, 0
  br i1 %106, label %107, label %108

107:                                              ; preds = %86
  br label %1443

108:                                              ; preds = %86
  %109 = load ptr, ptr %6, align 8, !tbaa !5
  %110 = load ptr, ptr %13, align 8, !tbaa !5
  %111 = load i32, ptr %41, align 4, !tbaa !9
  %112 = call i32 @sqlite3IsReadOnly(ptr noundef %109, ptr noundef %110, i32 noundef %111)
  %113 = icmp ne i32 %112, 0
  br i1 %113, label %114, label %115

114:                                              ; preds = %108
  br label %1443

115:                                              ; preds = %108
  %116 = load ptr, ptr %6, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.Parse, ptr %116, i32 0, i32 17
  %118 = load i32, ptr %117, align 4, !tbaa !27
  %119 = add nsw i32 %118, 1
  store i32 %119, ptr %117, align 4, !tbaa !27
  store i32 %118, ptr %21, align 4, !tbaa !9
  store i32 %118, ptr %20, align 4, !tbaa !9
  %120 = load ptr, ptr %7, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.SrcList, ptr %120, i32 0, i32 2
  %122 = getelementptr inbounds [1 x %struct.SrcList_item], ptr %121, i64 0, i64 0
  %123 = getelementptr inbounds %struct.SrcList_item, ptr %122, i32 0, i32 11
  store i32 %118, ptr %123, align 4, !tbaa !28
  %124 = load i32, ptr %21, align 4, !tbaa !9
  %125 = add nsw i32 %124, 1
  store i32 %125, ptr %22, align 4, !tbaa !9
  %126 = load ptr, ptr %13, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.Table, ptr %126, i32 0, i32 9
  %128 = load i32, ptr %127, align 8, !tbaa !31
  %129 = and i32 %128, 32
  %130 = icmp eq i32 %129, 0
  br i1 %130, label %131, label %132

131:                                              ; preds = %115
  br label %135

132:                                              ; preds = %115
  %133 = load ptr, ptr %13, align 8, !tbaa !5
  %134 = call ptr @sqlite3PrimaryKeyIndex(ptr noundef %133)
  br label %135

135:                                              ; preds = %132, %131
  %136 = phi ptr [ null, %131 ], [ %134, %132 ]
  store ptr %136, ptr %18, align 8, !tbaa !5
  store i32 0, ptr %19, align 4, !tbaa !9
  %137 = load ptr, ptr %13, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.Table, ptr %137, i32 0, i32 2
  %139 = load ptr, ptr %138, align 8, !tbaa !32
  store ptr %139, ptr %17, align 8, !tbaa !5
  br label %140

140:                                              ; preds = %167, %135
  %141 = load ptr, ptr %17, align 8, !tbaa !5
  %142 = icmp ne ptr %141, null
  br i1 %142, label %143, label %173

143:                                              ; preds = %140
  %144 = load ptr, ptr %17, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.Index, ptr %144, i32 0, i32 16
  %146 = load i8, ptr %145, align 1
  %147 = and i8 %146, 3
  %148 = zext i8 %147 to i32
  %149 = icmp eq i32 %148, 2
  br i1 %149, label %150, label %162

150:                                              ; preds = %143
  %151 = load ptr, ptr %18, align 8, !tbaa !5
  %152 = icmp ne ptr %151, null
  br i1 %152, label %153, label %162

153:                                              ; preds = %150
  %154 = load ptr, ptr %6, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.Parse, ptr %154, i32 0, i32 17
  %156 = load i32, ptr %155, align 4, !tbaa !27
  store i32 %156, ptr %21, align 4, !tbaa !9
  %157 = load i32, ptr %21, align 4, !tbaa !9
  %158 = load ptr, ptr %7, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.SrcList, ptr %158, i32 0, i32 2
  %160 = getelementptr inbounds [1 x %struct.SrcList_item], ptr %159, i64 0, i64 0
  %161 = getelementptr inbounds %struct.SrcList_item, ptr %160, i32 0, i32 11
  store i32 %157, ptr %161, align 4, !tbaa !28
  br label %162

162:                                              ; preds = %153, %150, %143
  %163 = load ptr, ptr %6, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.Parse, ptr %163, i32 0, i32 17
  %165 = load i32, ptr %164, align 4, !tbaa !27
  %166 = add nsw i32 %165, 1
  store i32 %166, ptr %164, align 4, !tbaa !27
  br label %167

167:                                              ; preds = %162
  %168 = load ptr, ptr %17, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.Index, ptr %168, i32 0, i32 5
  %170 = load ptr, ptr %169, align 8, !tbaa !33
  store ptr %170, ptr %17, align 8, !tbaa !5
  %171 = load i32, ptr %19, align 4, !tbaa !9
  %172 = add nsw i32 %171, 1
  store i32 %172, ptr %19, align 4, !tbaa !9
  br label %140, !llvm.loop !35

173:                                              ; preds = %140
  %174 = load ptr, ptr %23, align 8, !tbaa !5
  %175 = load ptr, ptr %13, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.Table, ptr %175, i32 0, i32 11
  %177 = load i16, ptr %176, align 2, !tbaa !37
  %178 = sext i16 %177 to i32
  %179 = load i32, ptr %19, align 4, !tbaa !9
  %180 = add nsw i32 %178, %179
  %181 = sext i32 %180 to i64
  %182 = mul i64 4, %181
  %183 = load i32, ptr %19, align 4, !tbaa !9
  %184 = sext i32 %183 to i64
  %185 = add i64 %182, %184
  %186 = add i64 %185, 2
  %187 = call ptr @sqlite3DbMallocRawNN(ptr noundef %174, i64 noundef %186)
  store ptr %187, ptr %25, align 8, !tbaa !5
  %188 = load ptr, ptr %25, align 8, !tbaa !5
  %189 = icmp eq ptr %188, null
  br i1 %189, label %190, label %191

190:                                              ; preds = %173
  br label %1443

191:                                              ; preds = %173
  %192 = load ptr, ptr %25, align 8, !tbaa !5
  %193 = load ptr, ptr %13, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.Table, ptr %193, i32 0, i32 11
  %195 = load i16, ptr %194, align 2, !tbaa !37
  %196 = sext i16 %195 to i32
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds i32, ptr %192, i64 %197
  store ptr %198, ptr %24, align 8, !tbaa !5
  %199 = load ptr, ptr %24, align 8, !tbaa !5
  %200 = load i32, ptr %19, align 4, !tbaa !9
  %201 = sext i32 %200 to i64
  %202 = getelementptr inbounds i32, ptr %199, i64 %201
  store ptr %202, ptr %26, align 8, !tbaa !5
  %203 = load ptr, ptr %26, align 8, !tbaa !5
  %204 = load i32, ptr %19, align 4, !tbaa !9
  %205 = add nsw i32 %204, 1
  %206 = sext i32 %205 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %203, i8 1, i64 %206, i1 false)
  %207 = load ptr, ptr %26, align 8, !tbaa !5
  %208 = load i32, ptr %19, align 4, !tbaa !9
  %209 = add nsw i32 %208, 1
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds i8, ptr %207, i64 %210
  store i8 0, ptr %211, align 1, !tbaa !38
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %212

212:                                              ; preds = %224, %191
  %213 = load i32, ptr %11, align 4, !tbaa !9
  %214 = load ptr, ptr %13, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.Table, ptr %214, i32 0, i32 11
  %216 = load i16, ptr %215, align 2, !tbaa !37
  %217 = sext i16 %216 to i32
  %218 = icmp slt i32 %213, %217
  br i1 %218, label %219, label %227

219:                                              ; preds = %212
  %220 = load ptr, ptr %25, align 8, !tbaa !5
  %221 = load i32, ptr %11, align 4, !tbaa !9
  %222 = sext i32 %221 to i64
  %223 = getelementptr inbounds i32, ptr %220, i64 %222
  store i32 -1, ptr %223, align 4, !tbaa !9
  br label %224

224:                                              ; preds = %219
  %225 = load i32, ptr %11, align 4, !tbaa !9
  %226 = add nsw i32 %225, 1
  store i32 %226, ptr %11, align 4, !tbaa !9
  br label %212, !llvm.loop !39

227:                                              ; preds = %212
  call void @llvm.memset.p0.i64(ptr align 8 %32, i8 0, i64 56, i1 false)
  %228 = load ptr, ptr %6, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.NameContext, ptr %32, i32 0, i32 0
  store ptr %228, ptr %229, align 8, !tbaa !40
  %230 = load ptr, ptr %7, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.NameContext, ptr %32, i32 0, i32 1
  store ptr %230, ptr %231, align 8, !tbaa !42
  store i8 0, ptr %27, align 1, !tbaa !38
  store i8 0, ptr %28, align 1, !tbaa !38
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %232

232:                                              ; preds = %407, %227
  %233 = load i32, ptr %11, align 4, !tbaa !9
  %234 = load ptr, ptr %8, align 8, !tbaa !5
  %235 = getelementptr inbounds %struct.ExprList, ptr %234, i32 0, i32 0
  %236 = load i32, ptr %235, align 8, !tbaa !43
  %237 = icmp slt i32 %233, %236
  br i1 %237, label %238, label %410

238:                                              ; preds = %232
  %239 = load ptr, ptr %8, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.ExprList, ptr %239, i32 0, i32 1
  %241 = load ptr, ptr %240, align 8, !tbaa !45
  %242 = load i32, ptr %11, align 4, !tbaa !9
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds %struct.ExprList_item, ptr %241, i64 %243
  %245 = getelementptr inbounds %struct.ExprList_item, ptr %244, i32 0, i32 0
  %246 = load ptr, ptr %245, align 8, !tbaa !46
  %247 = call i32 @sqlite3ResolveExprNames(ptr noundef %32, ptr noundef %246)
  %248 = icmp ne i32 %247, 0
  br i1 %248, label %249, label %250

249:                                              ; preds = %238
  br label %1443

250:                                              ; preds = %238
  store i32 0, ptr %12, align 4, !tbaa !9
  br label %251

251:                                              ; preds = %317, %250
  %252 = load i32, ptr %12, align 4, !tbaa !9
  %253 = load ptr, ptr %13, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.Table, ptr %253, i32 0, i32 11
  %255 = load i16, ptr %254, align 2, !tbaa !37
  %256 = sext i16 %255 to i32
  %257 = icmp slt i32 %252, %256
  br i1 %257, label %258, label %320

258:                                              ; preds = %251
  %259 = load ptr, ptr %13, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.Table, ptr %259, i32 0, i32 1
  %261 = load ptr, ptr %260, align 8, !tbaa !48
  %262 = load i32, ptr %12, align 4, !tbaa !9
  %263 = sext i32 %262 to i64
  %264 = getelementptr inbounds %struct.Column, ptr %261, i64 %263
  %265 = getelementptr inbounds %struct.Column, ptr %264, i32 0, i32 0
  %266 = load ptr, ptr %265, align 8, !tbaa !49
  %267 = load ptr, ptr %8, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.ExprList, ptr %267, i32 0, i32 1
  %269 = load ptr, ptr %268, align 8, !tbaa !45
  %270 = load i32, ptr %11, align 4, !tbaa !9
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds %struct.ExprList_item, ptr %269, i64 %271
  %273 = getelementptr inbounds %struct.ExprList_item, ptr %272, i32 0, i32 1
  %274 = load ptr, ptr %273, align 8, !tbaa !51
  %275 = call i32 @sqlite3StrICmp(ptr noundef %266, ptr noundef %274)
  %276 = icmp eq i32 %275, 0
  br i1 %276, label %277, label %316

277:                                              ; preds = %258
  %278 = load i32, ptr %12, align 4, !tbaa !9
  %279 = load ptr, ptr %13, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.Table, ptr %279, i32 0, i32 10
  %281 = load i16, ptr %280, align 4, !tbaa !52
  %282 = sext i16 %281 to i32
  %283 = icmp eq i32 %278, %282
  br i1 %283, label %284, label %293

284:                                              ; preds = %277
  store i8 1, ptr %28, align 1, !tbaa !38
  %285 = load ptr, ptr %8, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.ExprList, ptr %285, i32 0, i32 1
  %287 = load ptr, ptr %286, align 8, !tbaa !45
  %288 = load i32, ptr %11, align 4, !tbaa !9
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds %struct.ExprList_item, ptr %287, i64 %289
  %291 = getelementptr inbounds %struct.ExprList_item, ptr %290, i32 0, i32 0
  %292 = load ptr, ptr %291, align 8, !tbaa !46
  store ptr %292, ptr %30, align 8, !tbaa !5
  br label %310

293:                                              ; preds = %277
  %294 = load ptr, ptr %18, align 8, !tbaa !5
  %295 = icmp ne ptr %294, null
  br i1 %295, label %296, label %309

296:                                              ; preds = %293
  %297 = load ptr, ptr %13, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.Table, ptr %297, i32 0, i32 1
  %299 = load ptr, ptr %298, align 8, !tbaa !48
  %300 = load i32, ptr %12, align 4, !tbaa !9
  %301 = sext i32 %300 to i64
  %302 = getelementptr inbounds %struct.Column, ptr %299, i64 %301
  %303 = getelementptr inbounds %struct.Column, ptr %302, i32 0, i32 6
  %304 = load i8, ptr %303, align 1, !tbaa !53
  %305 = zext i8 %304 to i32
  %306 = and i32 %305, 1
  %307 = icmp ne i32 %306, 0
  br i1 %307, label %308, label %309

308:                                              ; preds = %296
  store i8 1, ptr %27, align 1, !tbaa !38
  br label %309

309:                                              ; preds = %308, %296, %293
  br label %310

310:                                              ; preds = %309, %284
  %311 = load i32, ptr %11, align 4, !tbaa !9
  %312 = load ptr, ptr %25, align 8, !tbaa !5
  %313 = load i32, ptr %12, align 4, !tbaa !9
  %314 = sext i32 %313 to i64
  %315 = getelementptr inbounds i32, ptr %312, i64 %314
  store i32 %311, ptr %315, align 4, !tbaa !9
  br label %320

316:                                              ; preds = %258
  br label %317

317:                                              ; preds = %316
  %318 = load i32, ptr %12, align 4, !tbaa !9
  %319 = add nsw i32 %318, 1
  store i32 %319, ptr %12, align 4, !tbaa !9
  br label %251, !llvm.loop !54

320:                                              ; preds = %310, %251
  %321 = load i32, ptr %12, align 4, !tbaa !9
  %322 = load ptr, ptr %13, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.Table, ptr %322, i32 0, i32 11
  %324 = load i16, ptr %323, align 2, !tbaa !37
  %325 = sext i16 %324 to i32
  %326 = icmp sge i32 %321, %325
  br i1 %326, label %327, label %363

327:                                              ; preds = %320
  %328 = load ptr, ptr %18, align 8, !tbaa !5
  %329 = icmp eq ptr %328, null
  br i1 %329, label %330, label %350

330:                                              ; preds = %327
  %331 = load ptr, ptr %8, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.ExprList, ptr %331, i32 0, i32 1
  %333 = load ptr, ptr %332, align 8, !tbaa !45
  %334 = load i32, ptr %11, align 4, !tbaa !9
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds %struct.ExprList_item, ptr %333, i64 %335
  %337 = getelementptr inbounds %struct.ExprList_item, ptr %336, i32 0, i32 1
  %338 = load ptr, ptr %337, align 8, !tbaa !51
  %339 = call i32 @sqlite3IsRowid(ptr noundef %338)
  %340 = icmp ne i32 %339, 0
  br i1 %340, label %341, label %350

341:                                              ; preds = %330
  store i32 -1, ptr %12, align 4, !tbaa !9
  store i8 1, ptr %28, align 1, !tbaa !38
  %342 = load ptr, ptr %8, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.ExprList, ptr %342, i32 0, i32 1
  %344 = load ptr, ptr %343, align 8, !tbaa !45
  %345 = load i32, ptr %11, align 4, !tbaa !9
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds %struct.ExprList_item, ptr %344, i64 %346
  %348 = getelementptr inbounds %struct.ExprList_item, ptr %347, i32 0, i32 0
  %349 = load ptr, ptr %348, align 8, !tbaa !46
  store ptr %349, ptr %30, align 8, !tbaa !5
  br label %362

350:                                              ; preds = %330, %327
  %351 = load ptr, ptr %6, align 8, !tbaa !5
  %352 = load ptr, ptr %8, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.ExprList, ptr %352, i32 0, i32 1
  %354 = load ptr, ptr %353, align 8, !tbaa !45
  %355 = load i32, ptr %11, align 4, !tbaa !9
  %356 = sext i32 %355 to i64
  %357 = getelementptr inbounds %struct.ExprList_item, ptr %354, i64 %356
  %358 = getelementptr inbounds %struct.ExprList_item, ptr %357, i32 0, i32 1
  %359 = load ptr, ptr %358, align 8, !tbaa !51
  call void (ptr, ptr, ...) @sqlite3ErrorMsg(ptr noundef %351, ptr noundef @.str, ptr noundef %359)
  %360 = load ptr, ptr %6, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.Parse, ptr %360, i32 0, i32 5
  store i8 1, ptr %361, align 1, !tbaa !55
  br label %1443

362:                                              ; preds = %341
  br label %363

363:                                              ; preds = %362, %320
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  %364 = load ptr, ptr %6, align 8, !tbaa !5
  %365 = load ptr, ptr %13, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.Table, ptr %365, i32 0, i32 0
  %367 = load ptr, ptr %366, align 8, !tbaa !56
  %368 = load i32, ptr %12, align 4, !tbaa !9
  %369 = icmp slt i32 %368, 0
  br i1 %369, label %370, label %371

370:                                              ; preds = %363
  br label %380

371:                                              ; preds = %363
  %372 = load ptr, ptr %13, align 8, !tbaa !5
  %373 = getelementptr inbounds %struct.Table, ptr %372, i32 0, i32 1
  %374 = load ptr, ptr %373, align 8, !tbaa !48
  %375 = load i32, ptr %12, align 4, !tbaa !9
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds %struct.Column, ptr %374, i64 %376
  %378 = getelementptr inbounds %struct.Column, ptr %377, i32 0, i32 0
  %379 = load ptr, ptr %378, align 8, !tbaa !49
  br label %380

380:                                              ; preds = %371, %370
  %381 = phi ptr [ @.str.1, %370 ], [ %379, %371 ]
  %382 = load ptr, ptr %23, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.sqlite3, ptr %382, i32 0, i32 4
  %384 = load ptr, ptr %383, align 8, !tbaa !57
  %385 = load i32, ptr %33, align 4, !tbaa !9
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds %struct.Db, ptr %384, i64 %386
  %388 = getelementptr inbounds %struct.Db, ptr %387, i32 0, i32 0
  %389 = load ptr, ptr %388, align 8, !tbaa !58
  %390 = call i32 @sqlite3AuthCheck(ptr noundef %364, i32 noundef 23, ptr noundef %367, ptr noundef %381, ptr noundef %389)
  store i32 %390, ptr %57, align 4, !tbaa !9
  %391 = load i32, ptr %57, align 4, !tbaa !9
  %392 = icmp eq i32 %391, 1
  br i1 %392, label %393, label %394

393:                                              ; preds = %380
  store i32 2, ptr %58, align 4
  br label %404

394:                                              ; preds = %380
  %395 = load i32, ptr %57, align 4, !tbaa !9
  %396 = icmp eq i32 %395, 2
  br i1 %396, label %397, label %402

397:                                              ; preds = %394
  %398 = load ptr, ptr %25, align 8, !tbaa !5
  %399 = load i32, ptr %12, align 4, !tbaa !9
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds i32, ptr %398, i64 %400
  store i32 -1, ptr %401, align 4, !tbaa !9
  br label %402

402:                                              ; preds = %397, %394
  br label %403

403:                                              ; preds = %402
  store i32 0, ptr %58, align 4
  br label %404

404:                                              ; preds = %403, %393
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  %405 = load i32, ptr %58, align 4
  switch i32 %405, label %1452 [
    i32 0, label %406
    i32 2, label %1443
  ]

406:                                              ; preds = %404
  br label %407

407:                                              ; preds = %406
  %408 = load i32, ptr %11, align 4, !tbaa !9
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr %11, align 4, !tbaa !9
  br label %232, !llvm.loop !60

410:                                              ; preds = %232
  %411 = load i8, ptr %28, align 1, !tbaa !38
  %412 = zext i8 %411 to i32
  %413 = load i8, ptr %27, align 1, !tbaa !38
  %414 = zext i8 %413 to i32
  %415 = add nsw i32 %412, %414
  %416 = trunc i32 %415 to i8
  store i8 %416, ptr %29, align 1, !tbaa !38
  %417 = load ptr, ptr %13, align 8, !tbaa !5
  %418 = getelementptr inbounds %struct.Table, ptr %417, i32 0, i32 16
  %419 = load i32, ptr %418, align 4, !tbaa !61
  %420 = icmp ne i32 %419, 0
  %421 = zext i1 %420 to i64
  %422 = select i1 %420, i64 -1, i64 0
  %423 = load ptr, ptr %7, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.SrcList, ptr %423, i32 0, i32 2
  %425 = getelementptr inbounds [1 x %struct.SrcList_item], ptr %424, i64 0, i64 0
  %426 = getelementptr inbounds %struct.SrcList_item, ptr %425, i32 0, i32 14
  store i64 %422, ptr %426, align 8, !tbaa !62
  %427 = load ptr, ptr %6, align 8, !tbaa !5
  %428 = load ptr, ptr %13, align 8, !tbaa !5
  %429 = load ptr, ptr %25, align 8, !tbaa !5
  %430 = load i8, ptr %29, align 1, !tbaa !38
  %431 = zext i8 %430 to i32
  %432 = call i32 @sqlite3FkRequired(ptr noundef %427, ptr noundef %428, ptr noundef %429, i32 noundef %431)
  store i32 %432, ptr %35, align 4, !tbaa !9
  store i32 0, ptr %12, align 4, !tbaa !9
  %433 = load ptr, ptr %13, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct.Table, ptr %433, i32 0, i32 2
  %435 = load ptr, ptr %434, align 8, !tbaa !32
  store ptr %435, ptr %17, align 8, !tbaa !5
  br label %436

436:                                              ; preds = %543, %410
  %437 = load ptr, ptr %17, align 8, !tbaa !5
  %438 = icmp ne ptr %437, null
  br i1 %438, label %439, label %549

439:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #4
  %440 = load i8, ptr %29, align 1, !tbaa !38
  %441 = zext i8 %440 to i32
  %442 = icmp ne i32 %441, 0
  br i1 %442, label %455, label %443

443:                                              ; preds = %439
  %444 = load i32, ptr %35, align 4, !tbaa !9
  %445 = icmp ne i32 %444, 0
  br i1 %445, label %455, label %446

446:                                              ; preds = %443
  %447 = load ptr, ptr %17, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct.Index, ptr %447, i32 0, i32 9
  %449 = load ptr, ptr %448, align 8, !tbaa !63
  %450 = icmp ne ptr %449, null
  br i1 %450, label %455, label %451

451:                                              ; preds = %446
  %452 = load ptr, ptr %17, align 8, !tbaa !5
  %453 = load ptr, ptr %18, align 8, !tbaa !5
  %454 = icmp eq ptr %452, %453
  br i1 %454, label %455, label %468

455:                                              ; preds = %451, %446, %443, %439
  %456 = load ptr, ptr %6, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.Parse, ptr %456, i32 0, i32 18
  %458 = load i32, ptr %457, align 8, !tbaa !64
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr %457, align 8, !tbaa !64
  store i32 %459, ptr %59, align 4, !tbaa !9
  %460 = load ptr, ptr %17, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.Index, ptr %460, i32 0, i32 14
  %462 = load i16, ptr %461, align 8, !tbaa !65
  %463 = zext i16 %462 to i32
  %464 = load ptr, ptr %6, align 8, !tbaa !5
  %465 = getelementptr inbounds %struct.Parse, ptr %464, i32 0, i32 18
  %466 = load i32, ptr %465, align 8, !tbaa !64
  %467 = add nsw i32 %466, %463
  store i32 %467, ptr %465, align 8, !tbaa !64
  br label %528

468:                                              ; preds = %451
  store i32 0, ptr %59, align 4, !tbaa !9
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %469

469:                                              ; preds = %524, %468
  %470 = load i32, ptr %11, align 4, !tbaa !9
  %471 = load ptr, ptr %17, align 8, !tbaa !5
  %472 = getelementptr inbounds %struct.Index, ptr %471, i32 0, i32 13
  %473 = load i16, ptr %472, align 2, !tbaa !66
  %474 = zext i16 %473 to i32
  %475 = icmp slt i32 %470, %474
  br i1 %475, label %476, label %527

476:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 2, ptr %60) #4
  %477 = load ptr, ptr %17, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.Index, ptr %477, i32 0, i32 1
  %479 = load ptr, ptr %478, align 8, !tbaa !67
  %480 = load i32, ptr %11, align 4, !tbaa !9
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds i16, ptr %479, i64 %481
  %483 = load i16, ptr %482, align 2, !tbaa !11
  store i16 %483, ptr %60, align 2, !tbaa !11
  %484 = load i16, ptr %60, align 2, !tbaa !11
  %485 = sext i16 %484 to i32
  %486 = icmp slt i32 %485, 0
  br i1 %486, label %494, label %487

487:                                              ; preds = %476
  %488 = load ptr, ptr %25, align 8, !tbaa !5
  %489 = load i16, ptr %60, align 2, !tbaa !11
  %490 = sext i16 %489 to i64
  %491 = getelementptr inbounds i32, ptr %488, i64 %490
  %492 = load i32, ptr %491, align 4, !tbaa !9
  %493 = icmp sge i32 %492, 0
  br i1 %493, label %494, label %520

494:                                              ; preds = %487, %476
  %495 = load ptr, ptr %6, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.Parse, ptr %495, i32 0, i32 18
  %497 = load i32, ptr %496, align 8, !tbaa !64
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr %496, align 8, !tbaa !64
  store i32 %498, ptr %59, align 4, !tbaa !9
  %499 = load ptr, ptr %17, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.Index, ptr %499, i32 0, i32 14
  %501 = load i16, ptr %500, align 8, !tbaa !65
  %502 = zext i16 %501 to i32
  %503 = load ptr, ptr %6, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.Parse, ptr %503, i32 0, i32 18
  %505 = load i32, ptr %504, align 8, !tbaa !64
  %506 = add nsw i32 %505, %502
  store i32 %506, ptr %504, align 8, !tbaa !64
  %507 = load i32, ptr %10, align 4, !tbaa !9
  %508 = icmp eq i32 %507, 5
  br i1 %508, label %518, label %509

509:                                              ; preds = %494
  %510 = load i32, ptr %10, align 4, !tbaa !9
  %511 = icmp eq i32 %510, 10
  br i1 %511, label %512, label %519

512:                                              ; preds = %509
  %513 = load ptr, ptr %17, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.Index, ptr %513, i32 0, i32 15
  %515 = load i8, ptr %514, align 2, !tbaa !68
  %516 = zext i8 %515 to i32
  %517 = icmp eq i32 %516, 5
  br i1 %517, label %518, label %519

518:                                              ; preds = %512, %494
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %519

519:                                              ; preds = %518, %512, %509
  store i32 18, ptr %58, align 4
  br label %521

520:                                              ; preds = %487
  store i32 0, ptr %58, align 4
  br label %521

521:                                              ; preds = %520, %519
  call void @llvm.lifetime.end.p0(i64 2, ptr %60) #4
  %522 = load i32, ptr %58, align 4
  switch i32 %522, label %1453 [
    i32 0, label %523
    i32 18, label %527
  ]

523:                                              ; preds = %521
  br label %524

524:                                              ; preds = %523
  %525 = load i32, ptr %11, align 4, !tbaa !9
  %526 = add nsw i32 %525, 1
  store i32 %526, ptr %11, align 4, !tbaa !9
  br label %469, !llvm.loop !69

527:                                              ; preds = %521, %469
  br label %528

528:                                              ; preds = %527, %455
  %529 = load i32, ptr %59, align 4, !tbaa !9
  %530 = icmp eq i32 %529, 0
  br i1 %530, label %531, label %537

531:                                              ; preds = %528
  %532 = load ptr, ptr %26, align 8, !tbaa !5
  %533 = load i32, ptr %12, align 4, !tbaa !9
  %534 = add nsw i32 %533, 1
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds i8, ptr %532, i64 %535
  store i8 0, ptr %536, align 1, !tbaa !38
  br label %537

537:                                              ; preds = %531, %528
  %538 = load i32, ptr %59, align 4, !tbaa !9
  %539 = load ptr, ptr %24, align 8, !tbaa !5
  %540 = load i32, ptr %12, align 4, !tbaa !9
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds i32, ptr %539, i64 %541
  store i32 %538, ptr %542, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  br label %543

543:                                              ; preds = %537
  %544 = load ptr, ptr %17, align 8, !tbaa !5
  %545 = getelementptr inbounds %struct.Index, ptr %544, i32 0, i32 5
  %546 = load ptr, ptr %545, align 8, !tbaa !33
  store ptr %546, ptr %17, align 8, !tbaa !5
  %547 = load i32, ptr %12, align 4, !tbaa !9
  %548 = add nsw i32 %547, 1
  store i32 %548, ptr %12, align 4, !tbaa !9
  br label %436, !llvm.loop !70

549:                                              ; preds = %436
  %550 = load i32, ptr %49, align 4, !tbaa !9
  %551 = icmp ne i32 %550, 0
  br i1 %551, label %552, label %557

552:                                              ; preds = %549
  %553 = load ptr, ptr %26, align 8, !tbaa !5
  %554 = load i32, ptr %19, align 4, !tbaa !9
  %555 = add nsw i32 %554, 1
  %556 = sext i32 %555 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %553, i8 1, i64 %556, i1 false)
  br label %557

557:                                              ; preds = %552, %549
  %558 = load ptr, ptr %6, align 8, !tbaa !5
  %559 = call ptr @sqlite3GetVdbe(ptr noundef %558)
  store ptr %559, ptr %16, align 8, !tbaa !5
  %560 = load ptr, ptr %16, align 8, !tbaa !5
  %561 = icmp eq ptr %560, null
  br i1 %561, label %562, label %563

562:                                              ; preds = %557
  br label %1443

563:                                              ; preds = %557
  %564 = load ptr, ptr %6, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.Parse, ptr %564, i32 0, i32 6
  %566 = load i8, ptr %565, align 2, !tbaa !71
  %567 = zext i8 %566 to i32
  %568 = icmp eq i32 %567, 0
  br i1 %568, label %569, label %571

569:                                              ; preds = %563
  %570 = load ptr, ptr %16, align 8, !tbaa !5
  call void @sqlite3VdbeCountChanges(ptr noundef %570)
  br label %571

571:                                              ; preds = %569, %563
  %572 = load ptr, ptr %6, align 8, !tbaa !5
  %573 = load i32, ptr %33, align 4, !tbaa !9
  call void @sqlite3BeginWriteOperation(ptr noundef %572, i32 noundef 1, i32 noundef %573)
  %574 = load ptr, ptr %13, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.Table, ptr %574, i32 0, i32 16
  %576 = load i32, ptr %575, align 4, !tbaa !61
  %577 = icmp ne i32 %576, 0
  br i1 %577, label %637, label %578

578:                                              ; preds = %571
  %579 = load ptr, ptr %6, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.Parse, ptr %579, i32 0, i32 18
  %581 = load i32, ptr %580, align 8, !tbaa !64
  %582 = add nsw i32 %581, 1
  store i32 %582, ptr %580, align 8, !tbaa !64
  store i32 %582, ptr %55, align 4, !tbaa !9
  %583 = load ptr, ptr %6, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.Parse, ptr %583, i32 0, i32 18
  %585 = load i32, ptr %584, align 8, !tbaa !64
  %586 = add nsw i32 %585, 1
  store i32 %586, ptr %584, align 8, !tbaa !64
  store i32 %586, ptr %52, align 4, !tbaa !9
  store i32 %586, ptr %51, align 4, !tbaa !9
  %587 = load i8, ptr %27, align 1, !tbaa !38
  %588 = zext i8 %587 to i32
  %589 = icmp ne i32 %588, 0
  br i1 %589, label %596, label %590

590:                                              ; preds = %578
  %591 = load ptr, ptr %40, align 8, !tbaa !5
  %592 = icmp ne ptr %591, null
  br i1 %592, label %596, label %593

593:                                              ; preds = %590
  %594 = load i32, ptr %35, align 4, !tbaa !9
  %595 = icmp ne i32 %594, 0
  br i1 %595, label %596, label %609

596:                                              ; preds = %593, %590, %578
  %597 = load ptr, ptr %6, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.Parse, ptr %597, i32 0, i32 18
  %599 = load i32, ptr %598, align 8, !tbaa !64
  %600 = add nsw i32 %599, 1
  store i32 %600, ptr %54, align 4, !tbaa !9
  %601 = load ptr, ptr %13, align 8, !tbaa !5
  %602 = getelementptr inbounds %struct.Table, ptr %601, i32 0, i32 11
  %603 = load i16, ptr %602, align 2, !tbaa !37
  %604 = sext i16 %603 to i32
  %605 = load ptr, ptr %6, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.Parse, ptr %605, i32 0, i32 18
  %607 = load i32, ptr %606, align 8, !tbaa !64
  %608 = add nsw i32 %607, %604
  store i32 %608, ptr %606, align 8, !tbaa !64
  br label %609

609:                                              ; preds = %596, %593
  %610 = load i8, ptr %29, align 1, !tbaa !38
  %611 = zext i8 %610 to i32
  %612 = icmp ne i32 %611, 0
  br i1 %612, label %619, label %613

613:                                              ; preds = %609
  %614 = load ptr, ptr %40, align 8, !tbaa !5
  %615 = icmp ne ptr %614, null
  br i1 %615, label %619, label %616

616:                                              ; preds = %613
  %617 = load i32, ptr %35, align 4, !tbaa !9
  %618 = icmp ne i32 %617, 0
  br i1 %618, label %619, label %624

619:                                              ; preds = %616, %613, %609
  %620 = load ptr, ptr %6, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.Parse, ptr %620, i32 0, i32 18
  %622 = load i32, ptr %621, align 8, !tbaa !64
  %623 = add nsw i32 %622, 1
  store i32 %623, ptr %621, align 8, !tbaa !64
  store i32 %623, ptr %52, align 4, !tbaa !9
  br label %624

624:                                              ; preds = %619, %616
  %625 = load ptr, ptr %6, align 8, !tbaa !5
  %626 = getelementptr inbounds %struct.Parse, ptr %625, i32 0, i32 18
  %627 = load i32, ptr %626, align 8, !tbaa !64
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr %53, align 4, !tbaa !9
  %629 = load ptr, ptr %13, align 8, !tbaa !5
  %630 = getelementptr inbounds %struct.Table, ptr %629, i32 0, i32 11
  %631 = load i16, ptr %630, align 2, !tbaa !37
  %632 = sext i16 %631 to i32
  %633 = load ptr, ptr %6, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.Parse, ptr %633, i32 0, i32 18
  %635 = load i32, ptr %634, align 8, !tbaa !64
  %636 = add nsw i32 %635, %632
  store i32 %636, ptr %634, align 8, !tbaa !64
  br label %637

637:                                              ; preds = %624, %571
  %638 = load i32, ptr %39, align 4, !tbaa !9
  %639 = icmp ne i32 %638, 0
  br i1 %639, label %640, label %645

640:                                              ; preds = %637
  %641 = load ptr, ptr %6, align 8, !tbaa !5
  %642 = load ptr, ptr %13, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.Table, ptr %642, i32 0, i32 0
  %644 = load ptr, ptr %643, align 8, !tbaa !56
  call void @sqlite3AuthContextPush(ptr noundef %641, ptr noundef %31, ptr noundef %644)
  br label %645

645:                                              ; preds = %640, %637
  %646 = load i32, ptr %39, align 4, !tbaa !9
  %647 = icmp ne i32 %646, 0
  br i1 %647, label %648, label %653

648:                                              ; preds = %645
  %649 = load ptr, ptr %6, align 8, !tbaa !5
  %650 = load ptr, ptr %13, align 8, !tbaa !5
  %651 = load ptr, ptr %9, align 8, !tbaa !5
  %652 = load i32, ptr %21, align 4, !tbaa !9
  call void @sqlite3MaterializeView(ptr noundef %649, ptr noundef %650, ptr noundef %651, i32 noundef %652)
  br label %653

653:                                              ; preds = %648, %645
  %654 = load ptr, ptr %9, align 8, !tbaa !5
  %655 = call i32 @sqlite3ResolveExprNames(ptr noundef %32, ptr noundef %654)
  %656 = icmp ne i32 %655, 0
  br i1 %656, label %657, label %658

657:                                              ; preds = %653
  br label %1443

658:                                              ; preds = %653
  %659 = load ptr, ptr %13, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.Table, ptr %659, i32 0, i32 16
  %661 = load i32, ptr %660, align 4, !tbaa !61
  %662 = icmp ne i32 %661, 0
  br i1 %662, label %663, label %672

663:                                              ; preds = %658
  %664 = load ptr, ptr %6, align 8, !tbaa !5
  %665 = load ptr, ptr %7, align 8, !tbaa !5
  %666 = load ptr, ptr %13, align 8, !tbaa !5
  %667 = load ptr, ptr %8, align 8, !tbaa !5
  %668 = load ptr, ptr %30, align 8, !tbaa !5
  %669 = load ptr, ptr %25, align 8, !tbaa !5
  %670 = load ptr, ptr %9, align 8, !tbaa !5
  %671 = load i32, ptr %10, align 4, !tbaa !9
  call void @updateVirtualTable(ptr noundef %664, ptr noundef %665, ptr noundef %666, ptr noundef %667, ptr noundef %668, ptr noundef %669, ptr noundef %670, i32 noundef %671)
  br label %1443

672:                                              ; preds = %658
  %673 = load ptr, ptr %23, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.sqlite3, ptr %673, i32 0, i32 6
  %675 = load i32, ptr %674, align 4, !tbaa !72
  %676 = and i32 %675, 128
  %677 = icmp ne i32 %676, 0
  br i1 %677, label %678, label %691

678:                                              ; preds = %672
  %679 = load ptr, ptr %6, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.Parse, ptr %679, i32 0, i32 38
  %681 = load ptr, ptr %680, align 8, !tbaa !73
  %682 = icmp ne ptr %681, null
  br i1 %682, label %691, label %683

683:                                              ; preds = %678
  %684 = load ptr, ptr %6, align 8, !tbaa !5
  %685 = getelementptr inbounds %struct.Parse, ptr %684, i32 0, i32 18
  %686 = load i32, ptr %685, align 8, !tbaa !64
  %687 = add nsw i32 %686, 1
  store i32 %687, ptr %685, align 8, !tbaa !64
  store i32 %687, ptr %50, align 4, !tbaa !9
  %688 = load ptr, ptr %16, align 8, !tbaa !5
  %689 = load i32, ptr %50, align 4, !tbaa !9
  %690 = call i32 @sqlite3VdbeAddOp2(ptr noundef %688, i32 noundef 77, i32 noundef 0, i32 noundef %689)
  br label %691

691:                                              ; preds = %683, %678, %672
  %692 = load ptr, ptr %13, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.Table, ptr %692, i32 0, i32 9
  %694 = load i32, ptr %693, align 8, !tbaa !31
  %695 = and i32 %694, 32
  %696 = icmp eq i32 %695, 0
  br i1 %696, label %697, label %702

697:                                              ; preds = %691
  %698 = load ptr, ptr %16, align 8, !tbaa !5
  %699 = load i32, ptr %55, align 4, !tbaa !9
  %700 = load i32, ptr %51, align 4, !tbaa !9
  %701 = call i32 @sqlite3VdbeAddOp3(ptr noundef %698, i32 noundef 80, i32 noundef 0, i32 noundef %699, i32 noundef %700)
  br label %734

702:                                              ; preds = %691
  %703 = load ptr, ptr %18, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.Index, ptr %703, i32 0, i32 13
  %705 = load i16, ptr %704, align 2, !tbaa !66
  store i16 %705, ptr %48, align 2, !tbaa !11
  %706 = load ptr, ptr %6, align 8, !tbaa !5
  %707 = getelementptr inbounds %struct.Parse, ptr %706, i32 0, i32 18
  %708 = load i32, ptr %707, align 8, !tbaa !64
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr %47, align 4, !tbaa !9
  %710 = load i16, ptr %48, align 2, !tbaa !11
  %711 = sext i16 %710 to i32
  %712 = load ptr, ptr %6, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.Parse, ptr %712, i32 0, i32 18
  %714 = load i32, ptr %713, align 8, !tbaa !64
  %715 = add nsw i32 %714, %711
  store i32 %715, ptr %713, align 8, !tbaa !64
  %716 = load ptr, ptr %6, align 8, !tbaa !5
  %717 = getelementptr inbounds %struct.Parse, ptr %716, i32 0, i32 18
  %718 = load i32, ptr %717, align 8, !tbaa !64
  %719 = add nsw i32 %718, 1
  store i32 %719, ptr %717, align 8, !tbaa !64
  store i32 %719, ptr %56, align 4, !tbaa !9
  %720 = load ptr, ptr %6, align 8, !tbaa !5
  %721 = getelementptr inbounds %struct.Parse, ptr %720, i32 0, i32 17
  %722 = load i32, ptr %721, align 4, !tbaa !27
  %723 = add nsw i32 %722, 1
  store i32 %723, ptr %721, align 4, !tbaa !27
  store i32 %722, ptr %43, align 4, !tbaa !9
  %724 = load ptr, ptr %16, align 8, !tbaa !5
  %725 = load i32, ptr %47, align 4, !tbaa !9
  %726 = call i32 @sqlite3VdbeAddOp2(ptr noundef %724, i32 noundef 80, i32 noundef 0, i32 noundef %725)
  %727 = load ptr, ptr %16, align 8, !tbaa !5
  %728 = load i32, ptr %43, align 4, !tbaa !9
  %729 = load i16, ptr %48, align 2, !tbaa !11
  %730 = sext i16 %729 to i32
  %731 = call i32 @sqlite3VdbeAddOp2(ptr noundef %727, i32 noundef 108, i32 noundef %728, i32 noundef %730)
  store i32 %731, ptr %46, align 4, !tbaa !9
  %732 = load ptr, ptr %6, align 8, !tbaa !5
  %733 = load ptr, ptr %18, align 8, !tbaa !5
  call void @sqlite3VdbeSetP4KeyInfo(ptr noundef %732, ptr noundef %733)
  br label %734

734:                                              ; preds = %702, %697
  store i32 4100, ptr %38, align 4, !tbaa !9
  %735 = load ptr, ptr %6, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.Parse, ptr %735, i32 0, i32 6
  %737 = load i8, ptr %736, align 2, !tbaa !71
  %738 = icmp ne i8 %737, 0
  br i1 %738, label %754, label %739

739:                                              ; preds = %734
  %740 = load ptr, ptr %40, align 8, !tbaa !5
  %741 = icmp ne ptr %740, null
  br i1 %741, label %754, label %742

742:                                              ; preds = %739
  %743 = load i32, ptr %35, align 4, !tbaa !9
  %744 = icmp ne i32 %743, 0
  br i1 %744, label %754, label %745

745:                                              ; preds = %742
  %746 = load i8, ptr %29, align 1, !tbaa !38
  %747 = icmp ne i8 %746, 0
  br i1 %747, label %754, label %748

748:                                              ; preds = %745
  %749 = load i32, ptr %49, align 4, !tbaa !9
  %750 = icmp ne i32 %749, 0
  br i1 %750, label %754, label %751

751:                                              ; preds = %748
  %752 = load i32, ptr %38, align 4, !tbaa !9
  %753 = or i32 %752, 8
  store i32 %753, ptr %38, align 4, !tbaa !9
  br label %754

754:                                              ; preds = %751, %748, %745, %742, %739, %734
  %755 = load ptr, ptr %6, align 8, !tbaa !5
  %756 = load ptr, ptr %7, align 8, !tbaa !5
  %757 = load ptr, ptr %9, align 8, !tbaa !5
  %758 = load i32, ptr %38, align 4, !tbaa !9
  %759 = trunc i32 %758 to i16
  %760 = load i32, ptr %22, align 4, !tbaa !9
  %761 = call ptr @sqlite3WhereBegin(ptr noundef %755, ptr noundef %756, ptr noundef %757, ptr noundef null, ptr noundef null, i16 noundef zeroext %759, i32 noundef %760)
  store ptr %761, ptr %15, align 8, !tbaa !5
  %762 = load ptr, ptr %15, align 8, !tbaa !5
  %763 = icmp eq ptr %762, null
  br i1 %763, label %764, label %765

764:                                              ; preds = %754
  br label %1443

765:                                              ; preds = %754
  %766 = load ptr, ptr %15, align 8, !tbaa !5
  %767 = getelementptr inbounds [2 x i32], ptr %45, i64 0, i64 0
  %768 = call i32 @sqlite3WhereOkOnePass(ptr noundef %766, ptr noundef %767)
  store i32 %768, ptr %34, align 4, !tbaa !9
  %769 = load i32, ptr %34, align 4, !tbaa !9
  %770 = icmp eq i32 %769, 2
  br i1 %770, label %771, label %792

771:                                              ; preds = %765
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #4
  %772 = getelementptr inbounds [2 x i32], ptr %45, i64 0, i64 1
  %773 = load i32, ptr %772, align 4, !tbaa !9
  store i32 %773, ptr %61, align 4, !tbaa !9
  %774 = load i32, ptr %61, align 4, !tbaa !9
  %775 = icmp sge i32 %774, 0
  br i1 %775, label %776, label %791

776:                                              ; preds = %771
  %777 = load i32, ptr %61, align 4, !tbaa !9
  %778 = load i32, ptr %21, align 4, !tbaa !9
  %779 = icmp ne i32 %777, %778
  br i1 %779, label %780, label %791

780:                                              ; preds = %776
  %781 = load ptr, ptr %26, align 8, !tbaa !5
  %782 = load i32, ptr %61, align 4, !tbaa !9
  %783 = load i32, ptr %20, align 4, !tbaa !9
  %784 = sub nsw i32 %782, %783
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds i8, ptr %781, i64 %785
  %787 = load i8, ptr %786, align 1, !tbaa !38
  %788 = zext i8 %787 to i32
  %789 = icmp ne i32 %788, 0
  br i1 %789, label %790, label %791

790:                                              ; preds = %780
  store i32 0, ptr %34, align 4, !tbaa !9
  br label %791

791:                                              ; preds = %790, %780, %776, %771
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  br label %792

792:                                              ; preds = %791, %765
  %793 = load ptr, ptr %13, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.Table, ptr %793, i32 0, i32 9
  %795 = load i32, ptr %794, align 8, !tbaa !31
  %796 = and i32 %795, 32
  %797 = icmp eq i32 %796, 0
  br i1 %797, label %798, label %811

798:                                              ; preds = %792
  %799 = load ptr, ptr %16, align 8, !tbaa !5
  %800 = load i32, ptr %21, align 4, !tbaa !9
  %801 = load i32, ptr %51, align 4, !tbaa !9
  %802 = call i32 @sqlite3VdbeAddOp2(ptr noundef %799, i32 noundef 123, i32 noundef %800, i32 noundef %801)
  %803 = load i32, ptr %34, align 4, !tbaa !9
  %804 = icmp eq i32 %803, 0
  br i1 %804, label %805, label %810

805:                                              ; preds = %798
  %806 = load ptr, ptr %16, align 8, !tbaa !5
  %807 = load i32, ptr %55, align 4, !tbaa !9
  %808 = load i32, ptr %51, align 4, !tbaa !9
  %809 = call i32 @sqlite3VdbeAddOp2(ptr noundef %806, i32 noundef 143, i32 noundef %807, i32 noundef %808)
  br label %810

810:                                              ; preds = %805, %798
  br label %865

811:                                              ; preds = %792
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %812

812:                                              ; preds = %832, %811
  %813 = load i32, ptr %11, align 4, !tbaa !9
  %814 = load i16, ptr %48, align 2, !tbaa !11
  %815 = sext i16 %814 to i32
  %816 = icmp slt i32 %813, %815
  br i1 %816, label %817, label %835

817:                                              ; preds = %812
  %818 = load ptr, ptr %16, align 8, !tbaa !5
  %819 = load ptr, ptr %13, align 8, !tbaa !5
  %820 = load i32, ptr %21, align 4, !tbaa !9
  %821 = load ptr, ptr %18, align 8, !tbaa !5
  %822 = getelementptr inbounds %struct.Index, ptr %821, i32 0, i32 1
  %823 = load ptr, ptr %822, align 8, !tbaa !67
  %824 = load i32, ptr %11, align 4, !tbaa !9
  %825 = sext i32 %824 to i64
  %826 = getelementptr inbounds i16, ptr %823, i64 %825
  %827 = load i16, ptr %826, align 2, !tbaa !11
  %828 = sext i16 %827 to i32
  %829 = load i32, ptr %47, align 4, !tbaa !9
  %830 = load i32, ptr %11, align 4, !tbaa !9
  %831 = add nsw i32 %829, %830
  call void @sqlite3ExprCodeGetColumnOfTable(ptr noundef %818, ptr noundef %819, i32 noundef %820, i32 noundef %828, i32 noundef %831)
  br label %832

832:                                              ; preds = %817
  %833 = load i32, ptr %11, align 4, !tbaa !9
  %834 = add nsw i32 %833, 1
  store i32 %834, ptr %11, align 4, !tbaa !9
  br label %812, !llvm.loop !74

835:                                              ; preds = %812
  %836 = load i32, ptr %34, align 4, !tbaa !9
  %837 = icmp ne i32 %836, 0
  br i1 %837, label %838, label %845

838:                                              ; preds = %835
  %839 = load ptr, ptr %16, align 8, !tbaa !5
  %840 = load i32, ptr %46, align 4, !tbaa !9
  %841 = call i32 @sqlite3VdbeChangeToNoop(ptr noundef %839, i32 noundef %840)
  %842 = load i16, ptr %48, align 2, !tbaa !11
  %843 = sext i16 %842 to i32
  store i32 %843, ptr %44, align 4, !tbaa !9
  %844 = load i32, ptr %47, align 4, !tbaa !9
  store i32 %844, ptr %56, align 4, !tbaa !9
  br label %864

845:                                              ; preds = %835
  %846 = load ptr, ptr %16, align 8, !tbaa !5
  %847 = load i32, ptr %47, align 4, !tbaa !9
  %848 = load i16, ptr %48, align 2, !tbaa !11
  %849 = sext i16 %848 to i32
  %850 = load i32, ptr %56, align 4, !tbaa !9
  %851 = load ptr, ptr %23, align 8, !tbaa !5
  %852 = load ptr, ptr %18, align 8, !tbaa !5
  %853 = call ptr @sqlite3IndexAffinityStr(ptr noundef %851, ptr noundef %852)
  %854 = load i16, ptr %48, align 2, !tbaa !11
  %855 = sext i16 %854 to i32
  %856 = call i32 @sqlite3VdbeAddOp4(ptr noundef %846, i32 noundef 100, i32 noundef %847, i32 noundef %849, i32 noundef %850, ptr noundef %853, i32 noundef %855)
  %857 = load ptr, ptr %16, align 8, !tbaa !5
  %858 = load i32, ptr %43, align 4, !tbaa !9
  %859 = load i32, ptr %56, align 4, !tbaa !9
  %860 = load i32, ptr %47, align 4, !tbaa !9
  %861 = load i16, ptr %48, align 2, !tbaa !11
  %862 = sext i16 %861 to i32
  %863 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %857, i32 noundef 126, i32 noundef %858, i32 noundef %859, i32 noundef %860, i32 noundef %862)
  br label %864

864:                                              ; preds = %845, %838
  br label %865

865:                                              ; preds = %864, %810
  %866 = load i32, ptr %34, align 4, !tbaa !9
  %867 = icmp ne i32 %866, 2
  br i1 %867, label %868, label %870

868:                                              ; preds = %865
  %869 = load ptr, ptr %15, align 8, !tbaa !5
  call void @sqlite3WhereEnd(ptr noundef %869)
  br label %870

870:                                              ; preds = %868, %865
  %871 = load ptr, ptr %16, align 8, !tbaa !5
  %872 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %871)
  store i32 %872, ptr %36, align 4, !tbaa !9
  %873 = load i32, ptr %39, align 4, !tbaa !9
  %874 = icmp ne i32 %873, 0
  br i1 %874, label %929, label %875

875:                                              ; preds = %870
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #4
  store i32 0, ptr %62, align 4, !tbaa !9
  %876 = load i32, ptr %34, align 4, !tbaa !9
  %877 = icmp ne i32 %876, 0
  br i1 %877, label %878, label %903

878:                                              ; preds = %875
  %879 = getelementptr inbounds [2 x i32], ptr %45, i64 0, i64 0
  %880 = load i32, ptr %879, align 4, !tbaa !9
  %881 = icmp sge i32 %880, 0
  br i1 %881, label %882, label %890

882:                                              ; preds = %878
  %883 = load ptr, ptr %26, align 8, !tbaa !5
  %884 = getelementptr inbounds [2 x i32], ptr %45, i64 0, i64 0
  %885 = load i32, ptr %884, align 4, !tbaa !9
  %886 = load i32, ptr %20, align 4, !tbaa !9
  %887 = sub nsw i32 %885, %886
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds i8, ptr %883, i64 %888
  store i8 0, ptr %889, align 1, !tbaa !38
  br label %890

890:                                              ; preds = %882, %878
  %891 = getelementptr inbounds [2 x i32], ptr %45, i64 0, i64 1
  %892 = load i32, ptr %891, align 4, !tbaa !9
  %893 = icmp sge i32 %892, 0
  br i1 %893, label %894, label %902

894:                                              ; preds = %890
  %895 = load ptr, ptr %26, align 8, !tbaa !5
  %896 = getelementptr inbounds [2 x i32], ptr %45, i64 0, i64 1
  %897 = load i32, ptr %896, align 4, !tbaa !9
  %898 = load i32, ptr %20, align 4, !tbaa !9
  %899 = sub nsw i32 %897, %898
  %900 = sext i32 %899 to i64
  %901 = getelementptr inbounds i8, ptr %895, i64 %900
  store i8 0, ptr %901, align 1, !tbaa !38
  br label %902

902:                                              ; preds = %894, %890
  br label %903

903:                                              ; preds = %902, %875
  %904 = load i32, ptr %34, align 4, !tbaa !9
  %905 = icmp eq i32 %904, 2
  br i1 %905, label %906, label %917

906:                                              ; preds = %903
  %907 = load i32, ptr %19, align 4, !tbaa !9
  %908 = getelementptr inbounds [2 x i32], ptr %45, i64 0, i64 1
  %909 = load i32, ptr %908, align 4, !tbaa !9
  %910 = icmp sge i32 %909, 0
  %911 = zext i1 %910 to i32
  %912 = sub nsw i32 %907, %911
  %913 = icmp sgt i32 %912, 0
  br i1 %913, label %914, label %917

914:                                              ; preds = %906
  %915 = load ptr, ptr %16, align 8, !tbaa !5
  %916 = call i32 @sqlite3VdbeAddOp0(ptr noundef %915, i32 noundef 20)
  store i32 %916, ptr %62, align 4, !tbaa !9
  br label %917

917:                                              ; preds = %914, %906, %903
  %918 = load ptr, ptr %6, align 8, !tbaa !5
  %919 = load ptr, ptr %13, align 8, !tbaa !5
  %920 = load i32, ptr %20, align 4, !tbaa !9
  %921 = load ptr, ptr %26, align 8, !tbaa !5
  %922 = call i32 @sqlite3OpenTableAndIndices(ptr noundef %918, ptr noundef %919, i32 noundef 106, i8 noundef zeroext 0, i32 noundef %920, ptr noundef %921, ptr noundef null, ptr noundef null)
  %923 = load i32, ptr %62, align 4, !tbaa !9
  %924 = icmp ne i32 %923, 0
  br i1 %924, label %925, label %928

925:                                              ; preds = %917
  %926 = load ptr, ptr %16, align 8, !tbaa !5
  %927 = load i32, ptr %62, align 4, !tbaa !9
  call void @sqlite3VdbeJumpHere(ptr noundef %926, i32 noundef %927)
  br label %928

928:                                              ; preds = %925, %917
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  br label %929

929:                                              ; preds = %928, %870
  %930 = load i32, ptr %34, align 4, !tbaa !9
  %931 = icmp ne i32 %930, 0
  br i1 %931, label %932, label %972

932:                                              ; preds = %929
  %933 = load i32, ptr %39, align 4, !tbaa !9
  %934 = icmp ne i32 %933, 0
  br i1 %934, label %952, label %935

935:                                              ; preds = %932
  %936 = getelementptr inbounds [2 x i32], ptr %45, i64 0, i64 0
  %937 = load i32, ptr %936, align 4, !tbaa !9
  %938 = load i32, ptr %21, align 4, !tbaa !9
  %939 = icmp ne i32 %937, %938
  br i1 %939, label %940, label %952

940:                                              ; preds = %935
  %941 = getelementptr inbounds [2 x i32], ptr %45, i64 0, i64 1
  %942 = load i32, ptr %941, align 4, !tbaa !9
  %943 = load i32, ptr %21, align 4, !tbaa !9
  %944 = icmp ne i32 %942, %943
  br i1 %944, label %945, label %952

945:                                              ; preds = %940
  %946 = load ptr, ptr %16, align 8, !tbaa !5
  %947 = load i32, ptr %21, align 4, !tbaa !9
  %948 = load i32, ptr %36, align 4, !tbaa !9
  %949 = load i32, ptr %56, align 4, !tbaa !9
  %950 = load i32, ptr %44, align 4, !tbaa !9
  %951 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %946, i32 noundef 30, i32 noundef %947, i32 noundef %948, i32 noundef %949, i32 noundef %950)
  br label %952

952:                                              ; preds = %945, %940, %935, %932
  %953 = load i32, ptr %34, align 4, !tbaa !9
  %954 = icmp eq i32 %953, 1
  br i1 %954, label %955, label %957

955:                                              ; preds = %952
  %956 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %956, ptr %37, align 4, !tbaa !9
  br label %960

957:                                              ; preds = %952
  %958 = load ptr, ptr %16, align 8, !tbaa !5
  %959 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %958)
  store i32 %959, ptr %37, align 4, !tbaa !9
  br label %960

960:                                              ; preds = %957, %955
  %961 = load ptr, ptr %16, align 8, !tbaa !5
  %962 = load ptr, ptr %18, align 8, !tbaa !5
  %963 = icmp ne ptr %962, null
  br i1 %963, label %964, label %966

964:                                              ; preds = %960
  %965 = load i32, ptr %56, align 4, !tbaa !9
  br label %968

966:                                              ; preds = %960
  %967 = load i32, ptr %51, align 4, !tbaa !9
  br label %968

968:                                              ; preds = %966, %964
  %969 = phi i32 [ %965, %964 ], [ %967, %966 ]
  %970 = load i32, ptr %36, align 4, !tbaa !9
  %971 = call i32 @sqlite3VdbeAddOp2(ptr noundef %961, i32 noundef 34, i32 noundef %969, i32 noundef %970)
  br label %1003

972:                                              ; preds = %929
  %973 = load ptr, ptr %18, align 8, !tbaa !5
  %974 = icmp ne ptr %973, null
  br i1 %974, label %975, label %991

975:                                              ; preds = %972
  %976 = load ptr, ptr %16, align 8, !tbaa !5
  %977 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %976)
  store i32 %977, ptr %37, align 4, !tbaa !9
  %978 = load ptr, ptr %16, align 8, !tbaa !5
  %979 = load i32, ptr %43, align 4, !tbaa !9
  %980 = load i32, ptr %36, align 4, !tbaa !9
  %981 = call i32 @sqlite3VdbeAddOp2(ptr noundef %978, i32 noundef 58, i32 noundef %979, i32 noundef %980)
  %982 = load ptr, ptr %16, align 8, !tbaa !5
  %983 = load i32, ptr %43, align 4, !tbaa !9
  %984 = load i32, ptr %56, align 4, !tbaa !9
  %985 = call i32 @sqlite3VdbeAddOp2(ptr noundef %982, i32 noundef 122, i32 noundef %983, i32 noundef %984)
  store i32 %985, ptr %14, align 4, !tbaa !9
  %986 = load ptr, ptr %16, align 8, !tbaa !5
  %987 = load i32, ptr %21, align 4, !tbaa !9
  %988 = load i32, ptr %37, align 4, !tbaa !9
  %989 = load i32, ptr %56, align 4, !tbaa !9
  %990 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %986, i32 noundef 30, i32 noundef %987, i32 noundef %988, i32 noundef %989, i32 noundef 0)
  br label %1002

991:                                              ; preds = %972
  %992 = load ptr, ptr %16, align 8, !tbaa !5
  %993 = load i32, ptr %55, align 4, !tbaa !9
  %994 = load i32, ptr %36, align 4, !tbaa !9
  %995 = load i32, ptr %51, align 4, !tbaa !9
  %996 = call i32 @sqlite3VdbeAddOp3(ptr noundef %992, i32 noundef 63, i32 noundef %993, i32 noundef %994, i32 noundef %995)
  store i32 %996, ptr %37, align 4, !tbaa !9
  %997 = load ptr, ptr %16, align 8, !tbaa !5
  %998 = load i32, ptr %21, align 4, !tbaa !9
  %999 = load i32, ptr %37, align 4, !tbaa !9
  %1000 = load i32, ptr %51, align 4, !tbaa !9
  %1001 = call i32 @sqlite3VdbeAddOp3(ptr noundef %997, i32 noundef 33, i32 noundef %998, i32 noundef %999, i32 noundef %1000)
  br label %1002

1002:                                             ; preds = %991, %975
  br label %1003

1003:                                             ; preds = %1002, %968
  %1004 = load i8, ptr %28, align 1, !tbaa !38
  %1005 = icmp ne i8 %1004, 0
  br i1 %1005, label %1006, label %1013

1006:                                             ; preds = %1003
  %1007 = load ptr, ptr %6, align 8, !tbaa !5
  %1008 = load ptr, ptr %30, align 8, !tbaa !5
  %1009 = load i32, ptr %52, align 4, !tbaa !9
  call void @sqlite3ExprCode(ptr noundef %1007, ptr noundef %1008, i32 noundef %1009)
  %1010 = load ptr, ptr %16, align 8, !tbaa !5
  %1011 = load i32, ptr %52, align 4, !tbaa !9
  %1012 = call i32 @sqlite3VdbeAddOp1(ptr noundef %1010, i32 noundef 17, i32 noundef %1011)
  br label %1013

1013:                                             ; preds = %1006, %1003
  %1014 = load i8, ptr %27, align 1, !tbaa !38
  %1015 = zext i8 %1014 to i32
  %1016 = icmp ne i32 %1015, 0
  br i1 %1016, label %1023, label %1017

1017:                                             ; preds = %1013
  %1018 = load i32, ptr %35, align 4, !tbaa !9
  %1019 = icmp ne i32 %1018, 0
  br i1 %1019, label %1023, label %1020

1020:                                             ; preds = %1017
  %1021 = load ptr, ptr %40, align 8, !tbaa !5
  %1022 = icmp ne ptr %1021, null
  br i1 %1022, label %1023, label %1103

1023:                                             ; preds = %1020, %1017, %1013
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #4
  %1024 = load i32, ptr %35, align 4, !tbaa !9
  %1025 = icmp ne i32 %1024, 0
  br i1 %1025, label %1026, label %1030

1026:                                             ; preds = %1023
  %1027 = load ptr, ptr %6, align 8, !tbaa !5
  %1028 = load ptr, ptr %13, align 8, !tbaa !5
  %1029 = call i32 @sqlite3FkOldmask(ptr noundef %1027, ptr noundef %1028)
  br label %1031

1030:                                             ; preds = %1023
  br label %1031

1031:                                             ; preds = %1030, %1026
  %1032 = phi i32 [ %1029, %1026 ], [ 0, %1030 ]
  store i32 %1032, ptr %63, align 4, !tbaa !9
  %1033 = load ptr, ptr %6, align 8, !tbaa !5
  %1034 = load ptr, ptr %40, align 8, !tbaa !5
  %1035 = load ptr, ptr %8, align 8, !tbaa !5
  %1036 = load ptr, ptr %13, align 8, !tbaa !5
  %1037 = load i32, ptr %10, align 4, !tbaa !9
  %1038 = call i32 @sqlite3TriggerColmask(ptr noundef %1033, ptr noundef %1034, ptr noundef %1035, i32 noundef 0, i32 noundef 3, ptr noundef %1036, i32 noundef %1037)
  %1039 = load i32, ptr %63, align 4, !tbaa !9
  %1040 = or i32 %1039, %1038
  store i32 %1040, ptr %63, align 4, !tbaa !9
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %1041

1041:                                             ; preds = %1087, %1031
  %1042 = load i32, ptr %11, align 4, !tbaa !9
  %1043 = load ptr, ptr %13, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.Table, ptr %1043, i32 0, i32 11
  %1045 = load i16, ptr %1044, align 2, !tbaa !37
  %1046 = sext i16 %1045 to i32
  %1047 = icmp slt i32 %1042, %1046
  br i1 %1047, label %1048, label %1090

1048:                                             ; preds = %1041
  %1049 = load i32, ptr %63, align 4, !tbaa !9
  %1050 = icmp eq i32 %1049, -1
  br i1 %1050, label %1072, label %1051

1051:                                             ; preds = %1048
  %1052 = load i32, ptr %11, align 4, !tbaa !9
  %1053 = icmp slt i32 %1052, 32
  br i1 %1053, label %1054, label %1060

1054:                                             ; preds = %1051
  %1055 = load i32, ptr %63, align 4, !tbaa !9
  %1056 = load i32, ptr %11, align 4, !tbaa !9
  %1057 = shl i32 1, %1056
  %1058 = and i32 %1055, %1057
  %1059 = icmp ne i32 %1058, 0
  br i1 %1059, label %1072, label %1060

1060:                                             ; preds = %1054, %1051
  %1061 = load ptr, ptr %13, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.Table, ptr %1061, i32 0, i32 1
  %1063 = load ptr, ptr %1062, align 8, !tbaa !48
  %1064 = load i32, ptr %11, align 4, !tbaa !9
  %1065 = sext i32 %1064 to i64
  %1066 = getelementptr inbounds %struct.Column, ptr %1063, i64 %1065
  %1067 = getelementptr inbounds %struct.Column, ptr %1066, i32 0, i32 6
  %1068 = load i8, ptr %1067, align 1, !tbaa !53
  %1069 = zext i8 %1068 to i32
  %1070 = and i32 %1069, 1
  %1071 = icmp ne i32 %1070, 0
  br i1 %1071, label %1072, label %1080

1072:                                             ; preds = %1060, %1054, %1048
  %1073 = load ptr, ptr %16, align 8, !tbaa !5
  %1074 = load ptr, ptr %13, align 8, !tbaa !5
  %1075 = load i32, ptr %21, align 4, !tbaa !9
  %1076 = load i32, ptr %11, align 4, !tbaa !9
  %1077 = load i32, ptr %54, align 4, !tbaa !9
  %1078 = load i32, ptr %11, align 4, !tbaa !9
  %1079 = add nsw i32 %1077, %1078
  call void @sqlite3ExprCodeGetColumnOfTable(ptr noundef %1073, ptr noundef %1074, i32 noundef %1075, i32 noundef %1076, i32 noundef %1079)
  br label %1086

1080:                                             ; preds = %1060
  %1081 = load ptr, ptr %16, align 8, !tbaa !5
  %1082 = load i32, ptr %54, align 4, !tbaa !9
  %1083 = load i32, ptr %11, align 4, !tbaa !9
  %1084 = add nsw i32 %1082, %1083
  %1085 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1081, i32 noundef 80, i32 noundef 0, i32 noundef %1084)
  br label %1086

1086:                                             ; preds = %1080, %1072
  br label %1087

1087:                                             ; preds = %1086
  %1088 = load i32, ptr %11, align 4, !tbaa !9
  %1089 = add nsw i32 %1088, 1
  store i32 %1089, ptr %11, align 4, !tbaa !9
  br label %1041, !llvm.loop !75

1090:                                             ; preds = %1041
  %1091 = load i8, ptr %28, align 1, !tbaa !38
  %1092 = zext i8 %1091 to i32
  %1093 = icmp eq i32 %1092, 0
  br i1 %1093, label %1094, label %1102

1094:                                             ; preds = %1090
  %1095 = load ptr, ptr %18, align 8, !tbaa !5
  %1096 = icmp eq ptr %1095, null
  br i1 %1096, label %1097, label %1102

1097:                                             ; preds = %1094
  %1098 = load ptr, ptr %16, align 8, !tbaa !5
  %1099 = load i32, ptr %51, align 4, !tbaa !9
  %1100 = load i32, ptr %52, align 4, !tbaa !9
  %1101 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1098, i32 noundef 85, i32 noundef %1099, i32 noundef %1100)
  br label %1102

1102:                                             ; preds = %1097, %1094, %1090
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  br label %1103

1103:                                             ; preds = %1102, %1020
  %1104 = load ptr, ptr %6, align 8, !tbaa !5
  %1105 = load ptr, ptr %40, align 8, !tbaa !5
  %1106 = load ptr, ptr %8, align 8, !tbaa !5
  %1107 = load ptr, ptr %13, align 8, !tbaa !5
  %1108 = load i32, ptr %10, align 4, !tbaa !9
  %1109 = call i32 @sqlite3TriggerColmask(ptr noundef %1104, ptr noundef %1105, ptr noundef %1106, i32 noundef 1, i32 noundef 1, ptr noundef %1107, i32 noundef %1108)
  store i32 %1109, ptr %42, align 4, !tbaa !9
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %1110

1110:                                             ; preds = %1181, %1103
  %1111 = load i32, ptr %11, align 4, !tbaa !9
  %1112 = load ptr, ptr %13, align 8, !tbaa !5
  %1113 = getelementptr inbounds %struct.Table, ptr %1112, i32 0, i32 11
  %1114 = load i16, ptr %1113, align 2, !tbaa !37
  %1115 = sext i16 %1114 to i32
  %1116 = icmp slt i32 %1111, %1115
  br i1 %1116, label %1117, label %1184

1117:                                             ; preds = %1110
  %1118 = load i32, ptr %11, align 4, !tbaa !9
  %1119 = load ptr, ptr %13, align 8, !tbaa !5
  %1120 = getelementptr inbounds %struct.Table, ptr %1119, i32 0, i32 10
  %1121 = load i16, ptr %1120, align 4, !tbaa !52
  %1122 = sext i16 %1121 to i32
  %1123 = icmp eq i32 %1118, %1122
  br i1 %1123, label %1124, label %1130

1124:                                             ; preds = %1117
  %1125 = load ptr, ptr %16, align 8, !tbaa !5
  %1126 = load i32, ptr %53, align 4, !tbaa !9
  %1127 = load i32, ptr %11, align 4, !tbaa !9
  %1128 = add nsw i32 %1126, %1127
  %1129 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1125, i32 noundef 80, i32 noundef 0, i32 noundef %1128)
  br label %1180

1130:                                             ; preds = %1117
  %1131 = load ptr, ptr %25, align 8, !tbaa !5
  %1132 = load i32, ptr %11, align 4, !tbaa !9
  %1133 = sext i32 %1132 to i64
  %1134 = getelementptr inbounds i32, ptr %1131, i64 %1133
  %1135 = load i32, ptr %1134, align 4, !tbaa !9
  store i32 %1135, ptr %12, align 4, !tbaa !9
  %1136 = load i32, ptr %12, align 4, !tbaa !9
  %1137 = icmp sge i32 %1136, 0
  br i1 %1137, label %1138, label %1151

1138:                                             ; preds = %1130
  %1139 = load ptr, ptr %6, align 8, !tbaa !5
  %1140 = load ptr, ptr %8, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.ExprList, ptr %1140, i32 0, i32 1
  %1142 = load ptr, ptr %1141, align 8, !tbaa !45
  %1143 = load i32, ptr %12, align 4, !tbaa !9
  %1144 = sext i32 %1143 to i64
  %1145 = getelementptr inbounds %struct.ExprList_item, ptr %1142, i64 %1144
  %1146 = getelementptr inbounds %struct.ExprList_item, ptr %1145, i32 0, i32 0
  %1147 = load ptr, ptr %1146, align 8, !tbaa !46
  %1148 = load i32, ptr %53, align 4, !tbaa !9
  %1149 = load i32, ptr %11, align 4, !tbaa !9
  %1150 = add nsw i32 %1148, %1149
  call void @sqlite3ExprCode(ptr noundef %1139, ptr noundef %1147, i32 noundef %1150)
  br label %1179

1151:                                             ; preds = %1130
  %1152 = load i32, ptr %41, align 4, !tbaa !9
  %1153 = and i32 %1152, 1
  %1154 = icmp eq i32 0, %1153
  br i1 %1154, label %1164, label %1155

1155:                                             ; preds = %1151
  %1156 = load i32, ptr %11, align 4, !tbaa !9
  %1157 = icmp sgt i32 %1156, 31
  br i1 %1157, label %1164, label %1158

1158:                                             ; preds = %1155
  %1159 = load i32, ptr %42, align 4, !tbaa !9
  %1160 = load i32, ptr %11, align 4, !tbaa !9
  %1161 = shl i32 1, %1160
  %1162 = and i32 %1159, %1161
  %1163 = icmp ne i32 %1162, 0
  br i1 %1163, label %1164, label %1172

1164:                                             ; preds = %1158, %1155, %1151
  %1165 = load ptr, ptr %6, align 8, !tbaa !5
  %1166 = load ptr, ptr %13, align 8, !tbaa !5
  %1167 = load i32, ptr %11, align 4, !tbaa !9
  %1168 = load i32, ptr %21, align 4, !tbaa !9
  %1169 = load i32, ptr %53, align 4, !tbaa !9
  %1170 = load i32, ptr %11, align 4, !tbaa !9
  %1171 = add nsw i32 %1169, %1170
  call void @sqlite3ExprCodeGetColumnToReg(ptr noundef %1165, ptr noundef %1166, i32 noundef %1167, i32 noundef %1168, i32 noundef %1171)
  br label %1178

1172:                                             ; preds = %1158
  %1173 = load ptr, ptr %16, align 8, !tbaa !5
  %1174 = load i32, ptr %53, align 4, !tbaa !9
  %1175 = load i32, ptr %11, align 4, !tbaa !9
  %1176 = add nsw i32 %1174, %1175
  %1177 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1173, i32 noundef 80, i32 noundef 0, i32 noundef %1176)
  br label %1178

1178:                                             ; preds = %1172, %1164
  br label %1179

1179:                                             ; preds = %1178, %1138
  br label %1180

1180:                                             ; preds = %1179, %1124
  br label %1181

1181:                                             ; preds = %1180
  %1182 = load i32, ptr %11, align 4, !tbaa !9
  %1183 = add nsw i32 %1182, 1
  store i32 %1183, ptr %11, align 4, !tbaa !9
  br label %1110, !llvm.loop !76

1184:                                             ; preds = %1110
  %1185 = load i32, ptr %41, align 4, !tbaa !9
  %1186 = and i32 %1185, 1
  %1187 = icmp ne i32 %1186, 0
  br i1 %1187, label %1188, label %1249

1188:                                             ; preds = %1184
  %1189 = load ptr, ptr %16, align 8, !tbaa !5
  %1190 = load ptr, ptr %13, align 8, !tbaa !5
  %1191 = load i32, ptr %53, align 4, !tbaa !9
  call void @sqlite3TableAffinity(ptr noundef %1189, ptr noundef %1190, i32 noundef %1191)
  %1192 = load ptr, ptr %6, align 8, !tbaa !5
  %1193 = load ptr, ptr %40, align 8, !tbaa !5
  %1194 = load ptr, ptr %8, align 8, !tbaa !5
  %1195 = load ptr, ptr %13, align 8, !tbaa !5
  %1196 = load i32, ptr %51, align 4, !tbaa !9
  %1197 = load i32, ptr %10, align 4, !tbaa !9
  %1198 = load i32, ptr %37, align 4, !tbaa !9
  call void @sqlite3CodeRowTrigger(ptr noundef %1192, ptr noundef %1193, i32 noundef 110, ptr noundef %1194, i32 noundef 1, ptr noundef %1195, i32 noundef %1196, i32 noundef %1197, i32 noundef %1198)
  %1199 = load ptr, ptr %18, align 8, !tbaa !5
  %1200 = icmp ne ptr %1199, null
  br i1 %1200, label %1201, label %1208

1201:                                             ; preds = %1188
  %1202 = load ptr, ptr %16, align 8, !tbaa !5
  %1203 = load i32, ptr %21, align 4, !tbaa !9
  %1204 = load i32, ptr %37, align 4, !tbaa !9
  %1205 = load i32, ptr %56, align 4, !tbaa !9
  %1206 = load i32, ptr %44, align 4, !tbaa !9
  %1207 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %1202, i32 noundef 30, i32 noundef %1203, i32 noundef %1204, i32 noundef %1205, i32 noundef %1206)
  br label %1214

1208:                                             ; preds = %1188
  %1209 = load ptr, ptr %16, align 8, !tbaa !5
  %1210 = load i32, ptr %21, align 4, !tbaa !9
  %1211 = load i32, ptr %37, align 4, !tbaa !9
  %1212 = load i32, ptr %51, align 4, !tbaa !9
  %1213 = call i32 @sqlite3VdbeAddOp3(ptr noundef %1209, i32 noundef 33, i32 noundef %1210, i32 noundef %1211, i32 noundef %1212)
  br label %1214

1214:                                             ; preds = %1208, %1201
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %1215

1215:                                             ; preds = %1245, %1214
  %1216 = load i32, ptr %11, align 4, !tbaa !9
  %1217 = load ptr, ptr %13, align 8, !tbaa !5
  %1218 = getelementptr inbounds %struct.Table, ptr %1217, i32 0, i32 11
  %1219 = load i16, ptr %1218, align 2, !tbaa !37
  %1220 = sext i16 %1219 to i32
  %1221 = icmp slt i32 %1216, %1220
  br i1 %1221, label %1222, label %1248

1222:                                             ; preds = %1215
  %1223 = load ptr, ptr %25, align 8, !tbaa !5
  %1224 = load i32, ptr %11, align 4, !tbaa !9
  %1225 = sext i32 %1224 to i64
  %1226 = getelementptr inbounds i32, ptr %1223, i64 %1225
  %1227 = load i32, ptr %1226, align 4, !tbaa !9
  %1228 = icmp slt i32 %1227, 0
  br i1 %1228, label %1229, label %1244

1229:                                             ; preds = %1222
  %1230 = load i32, ptr %11, align 4, !tbaa !9
  %1231 = load ptr, ptr %13, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.Table, ptr %1231, i32 0, i32 10
  %1233 = load i16, ptr %1232, align 4, !tbaa !52
  %1234 = sext i16 %1233 to i32
  %1235 = icmp ne i32 %1230, %1234
  br i1 %1235, label %1236, label %1244

1236:                                             ; preds = %1229
  %1237 = load ptr, ptr %16, align 8, !tbaa !5
  %1238 = load ptr, ptr %13, align 8, !tbaa !5
  %1239 = load i32, ptr %21, align 4, !tbaa !9
  %1240 = load i32, ptr %11, align 4, !tbaa !9
  %1241 = load i32, ptr %53, align 4, !tbaa !9
  %1242 = load i32, ptr %11, align 4, !tbaa !9
  %1243 = add nsw i32 %1241, %1242
  call void @sqlite3ExprCodeGetColumnOfTable(ptr noundef %1237, ptr noundef %1238, i32 noundef %1239, i32 noundef %1240, i32 noundef %1243)
  br label %1244

1244:                                             ; preds = %1236, %1229, %1222
  br label %1245

1245:                                             ; preds = %1244
  %1246 = load i32, ptr %11, align 4, !tbaa !9
  %1247 = add nsw i32 %1246, 1
  store i32 %1247, ptr %11, align 4, !tbaa !9
  br label %1215, !llvm.loop !77

1248:                                             ; preds = %1215
  br label %1249

1249:                                             ; preds = %1248, %1184
  %1250 = load i32, ptr %39, align 4, !tbaa !9
  %1251 = icmp ne i32 %1250, 0
  br i1 %1251, label %1355, label %1252

1252:                                             ; preds = %1249
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #4
  store i32 0, ptr %64, align 4, !tbaa !9
  %1253 = load ptr, ptr %6, align 8, !tbaa !5
  %1254 = load ptr, ptr %13, align 8, !tbaa !5
  %1255 = load ptr, ptr %24, align 8, !tbaa !5
  %1256 = load i32, ptr %21, align 4, !tbaa !9
  %1257 = load i32, ptr %22, align 4, !tbaa !9
  %1258 = load i32, ptr %52, align 4, !tbaa !9
  %1259 = load i32, ptr %51, align 4, !tbaa !9
  %1260 = load i8, ptr %29, align 1, !tbaa !38
  %1261 = load i32, ptr %10, align 4, !tbaa !9
  %1262 = trunc i32 %1261 to i8
  %1263 = load i32, ptr %37, align 4, !tbaa !9
  %1264 = load ptr, ptr %25, align 8, !tbaa !5
  call void @sqlite3GenerateConstraintChecks(ptr noundef %1253, ptr noundef %1254, ptr noundef %1255, i32 noundef %1256, i32 noundef %1257, i32 noundef %1258, i32 noundef %1259, i8 noundef zeroext %1260, i8 noundef zeroext %1262, i32 noundef %1263, ptr noundef %49, ptr noundef %1264)
  %1265 = load i32, ptr %35, align 4, !tbaa !9
  %1266 = icmp ne i32 %1265, 0
  br i1 %1266, label %1267, label %1274

1267:                                             ; preds = %1252
  %1268 = load ptr, ptr %6, align 8, !tbaa !5
  %1269 = load ptr, ptr %13, align 8, !tbaa !5
  %1270 = load i32, ptr %51, align 4, !tbaa !9
  %1271 = load ptr, ptr %25, align 8, !tbaa !5
  %1272 = load i8, ptr %29, align 1, !tbaa !38
  %1273 = zext i8 %1272 to i32
  call void @sqlite3FkCheck(ptr noundef %1268, ptr noundef %1269, i32 noundef %1270, i32 noundef 0, ptr noundef %1271, i32 noundef %1273)
  br label %1274

1274:                                             ; preds = %1267, %1252
  %1275 = load i32, ptr %49, align 4, !tbaa !9
  %1276 = icmp ne i32 %1275, 0
  br i1 %1276, label %1281, label %1277

1277:                                             ; preds = %1274
  %1278 = load i8, ptr %29, align 1, !tbaa !38
  %1279 = zext i8 %1278 to i32
  %1280 = icmp ne i32 %1279, 0
  br i1 %1280, label %1281, label %1296

1281:                                             ; preds = %1277, %1274
  %1282 = load ptr, ptr %18, align 8, !tbaa !5
  %1283 = icmp ne ptr %1282, null
  br i1 %1283, label %1284, label %1290

1284:                                             ; preds = %1281
  %1285 = load ptr, ptr %16, align 8, !tbaa !5
  %1286 = load i32, ptr %21, align 4, !tbaa !9
  %1287 = load i32, ptr %56, align 4, !tbaa !9
  %1288 = load i32, ptr %44, align 4, !tbaa !9
  %1289 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %1285, i32 noundef 30, i32 noundef %1286, i32 noundef 0, i32 noundef %1287, i32 noundef %1288)
  store i32 %1289, ptr %64, align 4, !tbaa !9
  br label %1295

1290:                                             ; preds = %1281
  %1291 = load ptr, ptr %16, align 8, !tbaa !5
  %1292 = load i32, ptr %21, align 4, !tbaa !9
  %1293 = load i32, ptr %51, align 4, !tbaa !9
  %1294 = call i32 @sqlite3VdbeAddOp3(ptr noundef %1291, i32 noundef 33, i32 noundef %1292, i32 noundef 0, i32 noundef %1293)
  store i32 %1294, ptr %64, align 4, !tbaa !9
  br label %1295

1295:                                             ; preds = %1290, %1284
  br label %1296

1296:                                             ; preds = %1295, %1277
  %1297 = load ptr, ptr %6, align 8, !tbaa !5
  %1298 = load ptr, ptr %13, align 8, !tbaa !5
  %1299 = load i32, ptr %21, align 4, !tbaa !9
  %1300 = load i32, ptr %22, align 4, !tbaa !9
  %1301 = load ptr, ptr %24, align 8, !tbaa !5
  call void @sqlite3GenerateRowIndexDelete(ptr noundef %1297, ptr noundef %1298, i32 noundef %1299, i32 noundef %1300, ptr noundef %1301, i32 noundef -1)
  %1302 = load i32, ptr %35, align 4, !tbaa !9
  %1303 = icmp ne i32 %1302, 0
  br i1 %1303, label %1308, label %1304

1304:                                             ; preds = %1296
  %1305 = load i8, ptr %29, align 1, !tbaa !38
  %1306 = zext i8 %1305 to i32
  %1307 = icmp ne i32 %1306, 0
  br i1 %1307, label %1308, label %1312

1308:                                             ; preds = %1304, %1296
  %1309 = load ptr, ptr %16, align 8, !tbaa !5
  %1310 = load i32, ptr %21, align 4, !tbaa !9
  %1311 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1309, i32 noundef 118, i32 noundef %1310, i32 noundef 0)
  br label %1312

1312:                                             ; preds = %1308, %1304
  %1313 = load i32, ptr %49, align 4, !tbaa !9
  %1314 = icmp ne i32 %1313, 0
  br i1 %1314, label %1319, label %1315

1315:                                             ; preds = %1312
  %1316 = load i8, ptr %29, align 1, !tbaa !38
  %1317 = zext i8 %1316 to i32
  %1318 = icmp ne i32 %1317, 0
  br i1 %1318, label %1319, label %1322

1319:                                             ; preds = %1315, %1312
  %1320 = load ptr, ptr %16, align 8, !tbaa !5
  %1321 = load i32, ptr %64, align 4, !tbaa !9
  call void @sqlite3VdbeJumpHere(ptr noundef %1320, i32 noundef %1321)
  br label %1322

1322:                                             ; preds = %1319, %1315
  %1323 = load i32, ptr %35, align 4, !tbaa !9
  %1324 = icmp ne i32 %1323, 0
  br i1 %1324, label %1325, label %1332

1325:                                             ; preds = %1322
  %1326 = load ptr, ptr %6, align 8, !tbaa !5
  %1327 = load ptr, ptr %13, align 8, !tbaa !5
  %1328 = load i32, ptr %52, align 4, !tbaa !9
  %1329 = load ptr, ptr %25, align 8, !tbaa !5
  %1330 = load i8, ptr %29, align 1, !tbaa !38
  %1331 = zext i8 %1330 to i32
  call void @sqlite3FkCheck(ptr noundef %1326, ptr noundef %1327, i32 noundef 0, i32 noundef %1328, ptr noundef %1329, i32 noundef %1331)
  br label %1332

1332:                                             ; preds = %1325, %1322
  %1333 = load ptr, ptr %6, align 8, !tbaa !5
  %1334 = load ptr, ptr %13, align 8, !tbaa !5
  %1335 = load i32, ptr %21, align 4, !tbaa !9
  %1336 = load i32, ptr %22, align 4, !tbaa !9
  %1337 = load i32, ptr %52, align 4, !tbaa !9
  %1338 = load ptr, ptr %24, align 8, !tbaa !5
  %1339 = load i32, ptr %34, align 4, !tbaa !9
  %1340 = icmp eq i32 %1339, 2
  %1341 = zext i1 %1340 to i64
  %1342 = select i1 %1340, i32 2, i32 0
  %1343 = or i32 4, %1342
  call void @sqlite3CompleteInsertion(ptr noundef %1333, ptr noundef %1334, i32 noundef %1335, i32 noundef %1336, i32 noundef %1337, ptr noundef %1338, i32 noundef %1343, i32 noundef 0, i32 noundef 0)
  %1344 = load i32, ptr %35, align 4, !tbaa !9
  %1345 = icmp ne i32 %1344, 0
  br i1 %1345, label %1346, label %1354

1346:                                             ; preds = %1332
  %1347 = load ptr, ptr %6, align 8, !tbaa !5
  %1348 = load ptr, ptr %13, align 8, !tbaa !5
  %1349 = load ptr, ptr %8, align 8, !tbaa !5
  %1350 = load i32, ptr %51, align 4, !tbaa !9
  %1351 = load ptr, ptr %25, align 8, !tbaa !5
  %1352 = load i8, ptr %29, align 1, !tbaa !38
  %1353 = zext i8 %1352 to i32
  call void @sqlite3FkActions(ptr noundef %1347, ptr noundef %1348, ptr noundef %1349, i32 noundef %1350, ptr noundef %1351, i32 noundef %1353)
  br label %1354

1354:                                             ; preds = %1346, %1332
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  br label %1355

1355:                                             ; preds = %1354, %1249
  %1356 = load ptr, ptr %23, align 8, !tbaa !5
  %1357 = getelementptr inbounds %struct.sqlite3, ptr %1356, i32 0, i32 6
  %1358 = load i32, ptr %1357, align 4, !tbaa !72
  %1359 = and i32 %1358, 128
  %1360 = icmp ne i32 %1359, 0
  br i1 %1360, label %1361, label %1370

1361:                                             ; preds = %1355
  %1362 = load ptr, ptr %6, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.Parse, ptr %1362, i32 0, i32 38
  %1364 = load ptr, ptr %1363, align 8, !tbaa !73
  %1365 = icmp ne ptr %1364, null
  br i1 %1365, label %1370, label %1366

1366:                                             ; preds = %1361
  %1367 = load ptr, ptr %16, align 8, !tbaa !5
  %1368 = load i32, ptr %50, align 4, !tbaa !9
  %1369 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1367, i32 noundef 92, i32 noundef %1368, i32 noundef 1)
  br label %1370

1370:                                             ; preds = %1366, %1361, %1355
  %1371 = load ptr, ptr %6, align 8, !tbaa !5
  %1372 = load ptr, ptr %40, align 8, !tbaa !5
  %1373 = load ptr, ptr %8, align 8, !tbaa !5
  %1374 = load ptr, ptr %13, align 8, !tbaa !5
  %1375 = load i32, ptr %51, align 4, !tbaa !9
  %1376 = load i32, ptr %10, align 4, !tbaa !9
  %1377 = load i32, ptr %37, align 4, !tbaa !9
  call void @sqlite3CodeRowTrigger(ptr noundef %1371, ptr noundef %1372, i32 noundef 110, ptr noundef %1373, i32 noundef 2, ptr noundef %1374, i32 noundef %1375, i32 noundef %1376, i32 noundef %1377)
  %1378 = load i32, ptr %34, align 4, !tbaa !9
  %1379 = icmp eq i32 %1378, 1
  br i1 %1379, label %1380, label %1381

1380:                                             ; preds = %1370
  br label %1404

1381:                                             ; preds = %1370
  %1382 = load i32, ptr %34, align 4, !tbaa !9
  %1383 = icmp eq i32 %1382, 2
  br i1 %1383, label %1384, label %1388

1384:                                             ; preds = %1381
  %1385 = load ptr, ptr %16, align 8, !tbaa !5
  %1386 = load i32, ptr %37, align 4, !tbaa !9
  call void @sqlite3VdbeResolveLabel(ptr noundef %1385, i32 noundef %1386)
  %1387 = load ptr, ptr %15, align 8, !tbaa !5
  call void @sqlite3WhereEnd(ptr noundef %1387)
  br label %1403

1388:                                             ; preds = %1381
  %1389 = load ptr, ptr %18, align 8, !tbaa !5
  %1390 = icmp ne ptr %1389, null
  br i1 %1390, label %1391, label %1398

1391:                                             ; preds = %1388
  %1392 = load ptr, ptr %16, align 8, !tbaa !5
  %1393 = load i32, ptr %37, align 4, !tbaa !9
  call void @sqlite3VdbeResolveLabel(ptr noundef %1392, i32 noundef %1393)
  %1394 = load ptr, ptr %16, align 8, !tbaa !5
  %1395 = load i32, ptr %43, align 4, !tbaa !9
  %1396 = load i32, ptr %14, align 4, !tbaa !9
  %1397 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1394, i32 noundef 7, i32 noundef %1395, i32 noundef %1396)
  br label %1402

1398:                                             ; preds = %1388
  %1399 = load ptr, ptr %16, align 8, !tbaa !5
  %1400 = load i32, ptr %37, align 4, !tbaa !9
  %1401 = call i32 @sqlite3VdbeGoto(ptr noundef %1399, i32 noundef %1400)
  br label %1402

1402:                                             ; preds = %1398, %1391
  br label %1403

1403:                                             ; preds = %1402, %1384
  br label %1404

1404:                                             ; preds = %1403, %1380
  %1405 = load ptr, ptr %16, align 8, !tbaa !5
  %1406 = load i32, ptr %36, align 4, !tbaa !9
  call void @sqlite3VdbeResolveLabel(ptr noundef %1405, i32 noundef %1406)
  %1407 = load ptr, ptr %6, align 8, !tbaa !5
  %1408 = getelementptr inbounds %struct.Parse, ptr %1407, i32 0, i32 6
  %1409 = load i8, ptr %1408, align 2, !tbaa !71
  %1410 = zext i8 %1409 to i32
  %1411 = icmp eq i32 %1410, 0
  br i1 %1411, label %1412, label %1419

1412:                                             ; preds = %1404
  %1413 = load ptr, ptr %6, align 8, !tbaa !5
  %1414 = getelementptr inbounds %struct.Parse, ptr %1413, i32 0, i32 38
  %1415 = load ptr, ptr %1414, align 8, !tbaa !73
  %1416 = icmp eq ptr %1415, null
  br i1 %1416, label %1417, label %1419

1417:                                             ; preds = %1412
  %1418 = load ptr, ptr %6, align 8, !tbaa !5
  call void @sqlite3AutoincrementEnd(ptr noundef %1418)
  br label %1419

1419:                                             ; preds = %1417, %1412, %1404
  %1420 = load ptr, ptr %23, align 8, !tbaa !5
  %1421 = getelementptr inbounds %struct.sqlite3, ptr %1420, i32 0, i32 6
  %1422 = load i32, ptr %1421, align 4, !tbaa !72
  %1423 = and i32 %1422, 128
  %1424 = icmp ne i32 %1423, 0
  br i1 %1424, label %1425, label %1442

1425:                                             ; preds = %1419
  %1426 = load ptr, ptr %6, align 8, !tbaa !5
  %1427 = getelementptr inbounds %struct.Parse, ptr %1426, i32 0, i32 38
  %1428 = load ptr, ptr %1427, align 8, !tbaa !73
  %1429 = icmp ne ptr %1428, null
  br i1 %1429, label %1442, label %1430

1430:                                             ; preds = %1425
  %1431 = load ptr, ptr %6, align 8, !tbaa !5
  %1432 = getelementptr inbounds %struct.Parse, ptr %1431, i32 0, i32 6
  %1433 = load i8, ptr %1432, align 2, !tbaa !71
  %1434 = icmp ne i8 %1433, 0
  br i1 %1434, label %1442, label %1435

1435:                                             ; preds = %1430
  %1436 = load ptr, ptr %16, align 8, !tbaa !5
  %1437 = load i32, ptr %50, align 4, !tbaa !9
  %1438 = call i32 @sqlite3VdbeAddOp2(ptr noundef %1436, i32 noundef 88, i32 noundef %1437, i32 noundef 1)
  %1439 = load ptr, ptr %16, align 8, !tbaa !5
  call void @sqlite3VdbeSetNumCols(ptr noundef %1439, i32 noundef 1)
  %1440 = load ptr, ptr %16, align 8, !tbaa !5
  %1441 = call i32 @sqlite3VdbeSetColName(ptr noundef %1440, i32 noundef 0, i32 noundef 0, ptr noundef @.str.2, ptr noundef null)
  br label %1442

1442:                                             ; preds = %1435, %1430, %1425, %1419
  br label %1443

1443:                                             ; preds = %1442, %764, %663, %657, %562, %404, %350, %249, %190, %114, %107, %85, %78
  call void @sqlite3AuthContextPop(ptr noundef %31)
  %1444 = load ptr, ptr %23, align 8, !tbaa !5
  %1445 = load ptr, ptr %25, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %1444, ptr noundef %1445)
  %1446 = load ptr, ptr %23, align 8, !tbaa !5
  %1447 = load ptr, ptr %7, align 8, !tbaa !5
  call void @sqlite3SrcListDelete(ptr noundef %1446, ptr noundef %1447)
  %1448 = load ptr, ptr %23, align 8, !tbaa !5
  %1449 = load ptr, ptr %8, align 8, !tbaa !5
  call void @sqlite3ExprListDelete(ptr noundef %1448, ptr noundef %1449)
  %1450 = load ptr, ptr %23, align 8, !tbaa !5
  %1451 = load ptr, ptr %9, align 8, !tbaa !5
  call void @sqlite3ExprDelete(ptr noundef %1450, ptr noundef %1451)
  store i32 1, ptr %58, align 4
  br label %1452

1452:                                             ; preds = %1443, %404
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 2, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 56, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #4
  ret void

1453:                                             ; preds = %521
  unreachable
}

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

declare ptr @sqlite3SrcListLookup(ptr noundef, ptr noundef) #1

declare i32 @sqlite3SchemaToIndex(ptr noundef, ptr noundef) #1

declare ptr @sqlite3TriggersExist(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef) #1

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

declare i32 @sqlite3IsReadOnly(ptr noundef, ptr noundef, i32 noundef) #1

declare ptr @sqlite3PrimaryKeyIndex(ptr noundef) #1

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

declare i32 @sqlite3ResolveExprNames(ptr noundef, ptr noundef) #1

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

declare i32 @sqlite3IsRowid(ptr noundef) #1

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

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

declare i32 @sqlite3FkRequired(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #1

declare ptr @sqlite3GetVdbe(ptr noundef) #1

declare void @sqlite3VdbeCountChanges(ptr noundef) #1

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

declare void @sqlite3AuthContextPush(ptr noundef, ptr noundef, ptr noundef) #1

declare void @sqlite3MaterializeView(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #1

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

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

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

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

declare ptr @sqlite3WhereBegin(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i16 noundef zeroext, i32 noundef) #1

declare i32 @sqlite3WhereOkOnePass(ptr noundef, ptr noundef) #1

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

declare i32 @sqlite3VdbeChangeToNoop(ptr noundef, i32 noundef) #1

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

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

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

declare void @sqlite3WhereEnd(ptr noundef) #1

declare i32 @sqlite3VdbeMakeLabel(ptr noundef) #1

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

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

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

declare void @sqlite3ExprCode(ptr noundef, ptr noundef, i32 noundef) #1

declare i32 @sqlite3FkOldmask(ptr noundef, ptr noundef) #1

declare i32 @sqlite3TriggerColmask(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) #1

declare void @sqlite3ExprCodeGetColumnToReg(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #1

declare void @sqlite3TableAffinity(ptr noundef, ptr noundef, i32 noundef) #1

declare void @sqlite3CodeRowTrigger(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #1

declare void @sqlite3GenerateConstraintChecks(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i8 noundef zeroext, i32 noundef, ptr noundef, ptr noundef) #1

declare void @sqlite3FkCheck(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) #1

declare void @sqlite3GenerateRowIndexDelete(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) #1

declare void @sqlite3CompleteInsertion(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #1

declare void @sqlite3FkActions(ptr noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) #1

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

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

declare void @sqlite3AutoincrementEnd(ptr noundef) #1

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

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

declare void @sqlite3AuthContextPop(ptr noundef) #1

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

declare void @sqlite3SrcListDelete(ptr noundef, ptr noundef) #1

declare void @sqlite3ExprListDelete(ptr noundef, ptr noundef) #1

declare void @sqlite3ExprDelete(ptr noundef, ptr noundef) #1

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #3 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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, !12, i64 0}
!12 = !{!"short", !7, i64 0}
!13 = !{!14, !6, i64 0}
!14 = !{!"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, !15, 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, !15, i64 432, !15, i64 448, !12, 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, !15, i64 536, !6, i64 552, !6, i64 560, !6, i64 568, !6, i64 576, !6, i64 584}
!15 = !{!"Token", !6, i64 0, !10, i64 8}
!16 = !{!14, !10, i64 48}
!17 = !{!18, !7, i64 85}
!18 = !{!"sqlite3", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !10, i64 40, !10, i64 44, !19, i64 48, !19, i64 56, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !12, 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, !20, 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, !21, i64 344, !6, i64 400, !6, i64 408, !6, i64 416, !6, i64 424, !10, i64 432, !10, i64 436, !22, i64 440, !6, i64 464, !6, i64 472, !6, i64 480, !22, i64 488, !22, i64 512, !23, i64 536, !7, i64 560, !6, i64 624, !10, i64 632, !10, i64 636, !10, i64 640, !19, i64 648, !19, i64 656, !6, i64 664}
!19 = !{!"long long", !7, i64 0}
!20 = !{!"sqlite3InitInfo", !10, i64 0, !7, i64 4, !7, i64 5, !7, i64 6, !7, i64 7}
!21 = !{!"Lookaside", !10, i64 0, !12, i64 4, !7, i64 6, !10, i64 8, !10, i64 12, !7, i64 16, !6, i64 32, !6, i64 40, !6, i64 48}
!22 = !{!"Hash", !10, i64 0, !10, i64 4, !6, i64 8, !6, i64 16}
!23 = !{!"BusyHandler", !6, i64 0, !6, i64 8, !10, i64 16}
!24 = !{!25, !6, i64 112}
!25 = !{!"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, !12, i64 68, !12, i64 70, !12, i64 72, !12, 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}
!26 = !{!25, !6, i64 24}
!27 = !{!14, !10, i64 52}
!28 = !{!29, !10, i64 68}
!29 = !{!"SrcList_item", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !10, i64 48, !10, i64 52, !10, i64 56, !30, i64 60, !7, i64 64, !10, i64 68, !6, i64 72, !6, i64 80, !19, i64 88, !7, i64 96, !6, i64 104}
!30 = !{!"", !7, i64 0, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1}
!31 = !{!25, !10, i64 64}
!32 = !{!25, !6, i64 16}
!33 = !{!34, !6, i64 40}
!34 = !{!"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, !12, i64 92, !12, i64 94, !12, 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}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.mustprogress"}
!37 = !{!25, !12, i64 70}
!38 = !{!7, !7, i64 0}
!39 = distinct !{!39, !36}
!40 = !{!41, !6, i64 0}
!41 = !{!"NameContext", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !10, i64 40, !10, i64 44, !12, i64 48}
!42 = !{!41, !6, i64 8}
!43 = !{!44, !10, i64 0}
!44 = !{!"ExprList", !10, i64 0, !6, i64 8}
!45 = !{!44, !6, i64 8}
!46 = !{!47, !6, i64 0}
!47 = !{!"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}
!48 = !{!25, !6, i64 8}
!49 = !{!50, !6, i64 0}
!50 = !{!"Column", !6, i64 0, !6, i64 8, !6, i64 16, !7, i64 24, !7, i64 25, !7, i64 26, !7, i64 27}
!51 = !{!47, !6, i64 8}
!52 = !{!25, !12, i64 68}
!53 = !{!50, !7, i64 27}
!54 = distinct !{!54, !36}
!55 = !{!14, !7, i64 29}
!56 = !{!25, !6, i64 0}
!57 = !{!18, !6, i64 32}
!58 = !{!59, !6, i64 0}
!59 = !{!"Db", !6, i64 0, !6, i64 8, !7, i64 16, !7, i64 17, !6, i64 24}
!60 = distinct !{!60, !36}
!61 = !{!25, !10, i64 84}
!62 = !{!29, !19, i64 88}
!63 = !{!34, !6, i64 72}
!64 = !{!14, !10, i64 56}
!65 = !{!34, !12, i64 96}
!66 = !{!34, !12, i64 94}
!67 = !{!34, !6, i64 8}
!68 = !{!34, !7, i64 98}
!69 = distinct !{!69, !36}
!70 = distinct !{!70, !36}
!71 = !{!14, !7, i64 30}
!72 = !{!18, !10, i64 44}
!73 = !{!14, !6, i64 168}
!74 = distinct !{!74, !36}
!75 = distinct !{!75, !36}
!76 = distinct !{!76, !36}
!77 = distinct !{!77, !36}


; 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.AuthContext = type { ptr, ptr }
%struct.NameContext = type { ptr, ptr, ptr, ptr, ptr, i32, i32, i16 }
%struct.ExprList_item = type { ptr, ptr, ptr, i8, i8, %union.anon.1 }
%union.anon.1 = type { i32 }
%struct.Column = type { ptr, ptr, ptr, i8, i8, i8, i8 }
%struct.Db = type { ptr, ptr, i8, i8, ptr }

@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1

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

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

declare i32 @sqlite3VdbeAddOp1(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local void @sqlite3Update(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4) local_unnamed_addr #2 {
  %6 = alloca %struct.AuthContext, align 8
  %7 = alloca %struct.NameContext, align 8
  %8 = alloca i32, align 4
  %9 = alloca [2 x i32], align 4
  %10 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #4
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %7) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #4
  store i32 0, ptr %10, align 4, !tbaa !5
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %6, i8 0, i64 16, i1 false)
  %11 = load ptr, ptr %0, align 8, !tbaa !9
  %12 = getelementptr inbounds i8, ptr %0, i64 48
  %13 = load i32, ptr %12, align 8, !tbaa !14
  %.not = icmp eq i32 %13, 0
  br i1 %.not, label %14, label %.loopexit745

14:                                               ; preds = %5
  %15 = getelementptr inbounds i8, ptr %11, i64 85
  %16 = load i8, ptr %15, align 1, !tbaa !15
  %.not619 = icmp eq i8 %16, 0
  br i1 %.not619, label %17, label %.loopexit745

17:                                               ; preds = %14
  %18 = tail call ptr @sqlite3SrcListLookup(ptr noundef nonnull %0, ptr noundef %1) #4
  %19 = icmp eq ptr %18, null
  br i1 %19, label %.loopexit745, label %20

20:                                               ; preds = %17
  %21 = load ptr, ptr %0, align 8, !tbaa !9
  %22 = getelementptr inbounds i8, ptr %18, i64 112
  %23 = load ptr, ptr %22, align 8, !tbaa !22
  %24 = tail call i32 @sqlite3SchemaToIndex(ptr noundef %21, ptr noundef %23) #4
  %25 = call ptr @sqlite3TriggersExist(ptr noundef nonnull %0, ptr noundef nonnull %18, i32 noundef 110, ptr noundef %2, ptr noundef nonnull %8) #4
  %26 = getelementptr inbounds i8, ptr %18, i64 24
  %27 = load ptr, ptr %26, align 8, !tbaa !24
  %.not620 = icmp ne ptr %27, null
  %28 = call i32 @sqlite3ViewGetColumnNames(ptr noundef nonnull %0, ptr noundef nonnull %18) #4
  %.not621 = icmp eq i32 %28, 0
  br i1 %.not621, label %29, label %.loopexit745

29:                                               ; preds = %20
  %30 = load i32, ptr %8, align 4, !tbaa !5
  %31 = call i32 @sqlite3IsReadOnly(ptr noundef nonnull %0, ptr noundef nonnull %18, i32 noundef %30) #4
  %.not622 = icmp eq i32 %31, 0
  br i1 %.not622, label %32, label %.loopexit745

32:                                               ; preds = %29
  %33 = getelementptr inbounds i8, ptr %0, i64 52
  %34 = load i32, ptr %33, align 4, !tbaa !25
  %35 = add nsw i32 %34, 1
  store i32 %35, ptr %33, align 4, !tbaa !25
  %36 = getelementptr inbounds i8, ptr %1, i64 76
  store i32 %34, ptr %36, align 4, !tbaa !26
  %37 = getelementptr inbounds i8, ptr %18, i64 64
  %38 = load i32, ptr %37, align 8, !tbaa !29
  %39 = and i32 %38, 32
  %40 = icmp eq i32 %39, 0
  br i1 %40, label %43, label %41

41:                                               ; preds = %32
  %42 = call ptr @sqlite3PrimaryKeyIndex(ptr noundef nonnull %18) #4
  br label %43

43:                                               ; preds = %32, %41
  %44 = phi ptr [ %42, %41 ], [ null, %32 ]
  %.fr811 = freeze ptr %44
  %45 = getelementptr inbounds i8, ptr %18, i64 16
  %.0582760 = load ptr, ptr %45, align 8, !tbaa !30
  %.not623761 = icmp eq ptr %.0582760, null
  br i1 %.not623761, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %43
  %.not812 = icmp eq ptr %.fr811, null
  %.promoted = load i32, ptr %33, align 4, !tbaa !25
  br i1 %.not812, label %.lr.ph.split.us, label %.lr.ph.split

.lr.ph.split.us:                                  ; preds = %.lr.ph, %.lr.ph.split.us
  %46 = phi i32 [ %47, %.lr.ph.split.us ], [ %.promoted, %.lr.ph ]
  %.0582764.us = phi ptr [ %.0582.us, %.lr.ph.split.us ], [ %.0582760, %.lr.ph ]
  %.0584763.us = phi i32 [ %49, %.lr.ph.split.us ], [ 0, %.lr.ph ]
  %47 = add nsw i32 %46, 1
  %48 = getelementptr inbounds i8, ptr %.0582764.us, i64 40
  %49 = add nuw nsw i32 %.0584763.us, 1
  %.0582.us = load ptr, ptr %48, align 8, !tbaa !30
  %.not623.us = icmp eq ptr %.0582.us, null
  br i1 %.not623.us, label %._crit_edge.split.us, label %.lr.ph.split.us, !llvm.loop !31

._crit_edge.split.us:                             ; preds = %.lr.ph.split.us
  store i32 %47, ptr %33, align 4, !tbaa !25
  br label %._crit_edge

.lr.ph.split:                                     ; preds = %.lr.ph, %56
  %50 = phi i32 [ %57, %56 ], [ %.promoted, %.lr.ph ]
  %.0582764 = phi ptr [ %.0582, %56 ], [ %.0582760, %.lr.ph ]
  %.0584763 = phi i32 [ %59, %56 ], [ 0, %.lr.ph ]
  %.0585762 = phi i32 [ %.1586, %56 ], [ %34, %.lr.ph ]
  %51 = getelementptr inbounds i8, ptr %.0582764, i64 99
  %52 = load i8, ptr %51, align 1
  %53 = and i8 %52, 3
  %54 = icmp eq i8 %53, 2
  br i1 %54, label %55, label %56

55:                                               ; preds = %.lr.ph.split
  store i32 %50, ptr %36, align 4, !tbaa !26
  br label %56

56:                                               ; preds = %55, %.lr.ph.split
  %.1586 = phi i32 [ %50, %55 ], [ %.0585762, %.lr.ph.split ]
  %57 = add nsw i32 %50, 1
  store i32 %57, ptr %33, align 4, !tbaa !25
  %58 = getelementptr inbounds i8, ptr %.0582764, i64 40
  %59 = add nuw nsw i32 %.0584763, 1
  %.0582 = load ptr, ptr %58, align 8, !tbaa !30
  %.not623 = icmp eq ptr %.0582, null
  br i1 %.not623, label %._crit_edge, label %.lr.ph.split, !llvm.loop !31

._crit_edge:                                      ; preds = %56, %._crit_edge.split.us, %43
  %.0585.lcssa = phi i32 [ %34, %43 ], [ %34, %._crit_edge.split.us ], [ %.1586, %56 ]
  %.0584.lcssa = phi i32 [ 0, %43 ], [ %49, %._crit_edge.split.us ], [ %59, %56 ]
  %60 = getelementptr inbounds i8, ptr %18, i64 70
  %61 = load i16, ptr %60, align 2, !tbaa !33
  %62 = sext i16 %61 to i32
  %63 = add nsw i32 %.0584.lcssa, %62
  %64 = sext i32 %63 to i64
  %65 = shl nsw i64 %64, 2
  %66 = zext nneg i32 %.0584.lcssa to i64
  %67 = add nuw nsw i64 %66, 2
  %68 = add nsw i64 %67, %65
  %69 = call ptr @sqlite3DbMallocRawNN(ptr noundef %11, i64 noundef %68) #4
  %70 = icmp eq ptr %69, null
  br i1 %70, label %.loopexit745, label %71

71:                                               ; preds = %._crit_edge
  %72 = load i16, ptr %60, align 2, !tbaa !33
  %73 = sext i16 %72 to i64
  %74 = getelementptr inbounds i32, ptr %69, i64 %73
  %75 = getelementptr inbounds i32, ptr %74, i64 %66
  %76 = add nuw nsw i32 %.0584.lcssa, 1
  %77 = zext nneg i32 %76 to i64
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %75, i8 1, i64 %77, i1 false)
  %78 = getelementptr inbounds i8, ptr %75, i64 %77
  store i8 0, ptr %78, align 1, !tbaa !34
  %79 = load i16, ptr %60, align 2, !tbaa !33
  %80 = icmp sgt i16 %79, 0
  br i1 %80, label %.lr.ph770.preheader, label %._crit_edge771

.lr.ph770.preheader:                              ; preds = %71
  %81 = zext nneg i16 %79 to i64
  %82 = shl nuw nsw i64 %81, 2
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %69, i8 -1, i64 %82, i1 false), !tbaa !5
  br label %._crit_edge771

._crit_edge771:                                   ; preds = %.lr.ph770.preheader, %71
  %83 = getelementptr inbounds i8, ptr %7, i64 16
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %83, i8 0, i64 40, i1 false)
  store ptr %0, ptr %7, align 8, !tbaa !35
  %84 = getelementptr inbounds i8, ptr %7, i64 8
  store ptr %1, ptr %84, align 8, !tbaa !37
  %85 = load i32, ptr %2, align 8, !tbaa !38
  %86 = icmp sgt i32 %85, 0
  br i1 %86, label %.lr.ph781, label %._crit_edge782

.lr.ph781:                                        ; preds = %._crit_edge771
  %87 = getelementptr inbounds i8, ptr %2, i64 8
  %88 = getelementptr inbounds i8, ptr %18, i64 8
  %89 = getelementptr inbounds i8, ptr %18, i64 68
  %.not659 = icmp eq ptr %.fr811, null
  %90 = getelementptr inbounds i8, ptr %11, i64 32
  %91 = sext i32 %24 to i64
  br label %92

92:                                               ; preds = %.lr.ph781, %159
  %indvars.iv826 = phi i64 [ 0, %.lr.ph781 ], [ %indvars.iv.next827, %159 ]
  %.0593777 = phi i8 [ 0, %.lr.ph781 ], [ %.2595, %159 ]
  %.0596776 = phi ptr [ null, %.lr.ph781 ], [ %.3599679, %159 ]
  %.0600775 = phi i8 [ 0, %.lr.ph781 ], [ %.3603678, %159 ]
  %93 = load ptr, ptr %87, align 8, !tbaa !40
  %94 = getelementptr inbounds %struct.ExprList_item, ptr %93, i64 %indvars.iv826
  %95 = load ptr, ptr %94, align 8, !tbaa !41
  %96 = call i32 @sqlite3ResolveExprNames(ptr noundef nonnull %7, ptr noundef %95) #4
  %.not658 = icmp eq i32 %96, 0
  br i1 %.not658, label %.preheader743, label %.loopexit745

.preheader743:                                    ; preds = %92
  %97 = load i16, ptr %60, align 2, !tbaa !33
  %98 = icmp sgt i16 %97, 0
  br i1 %98, label %.lr.ph773, label %.loopexit744

.lr.ph773:                                        ; preds = %.preheader743, %125
  %indvars.iv = phi i64 [ %indvars.iv.next, %125 ], [ 0, %.preheader743 ]
  %99 = load ptr, ptr %88, align 8, !tbaa !43
  %100 = getelementptr inbounds %struct.Column, ptr %99, i64 %indvars.iv
  %101 = load ptr, ptr %100, align 8, !tbaa !44
  %102 = load ptr, ptr %87, align 8, !tbaa !40
  %103 = getelementptr inbounds %struct.ExprList_item, ptr %102, i64 %indvars.iv826, i32 1
  %104 = load ptr, ptr %103, align 8, !tbaa !46
  %105 = call i32 @sqlite3StrICmp(ptr noundef %101, ptr noundef %104) #4
  %106 = icmp eq i32 %105, 0
  br i1 %106, label %107, label %125

107:                                              ; preds = %.lr.ph773
  %108 = trunc nuw nsw i64 %indvars.iv to i32
  %109 = load i16, ptr %89, align 4, !tbaa !47
  %110 = sext i16 %109 to i64
  %111 = icmp eq i64 %indvars.iv, %110
  br i1 %111, label %112, label %116

112:                                              ; preds = %107
  %113 = load ptr, ptr %87, align 8, !tbaa !40
  %114 = getelementptr inbounds %struct.ExprList_item, ptr %113, i64 %indvars.iv826
  %115 = load ptr, ptr %114, align 8, !tbaa !41
  br label %122

116:                                              ; preds = %107
  br i1 %.not659, label %122, label %117

117:                                              ; preds = %116
  %118 = load ptr, ptr %88, align 8, !tbaa !43
  %119 = getelementptr inbounds %struct.Column, ptr %118, i64 %indvars.iv, i32 6
  %120 = load i8, ptr %119, align 1, !tbaa !48
  %121 = and i8 %120, 1
  %.not660 = icmp eq i8 %121, 0
  %spec.select = select i1 %.not660, i8 %.0593777, i8 1
  br label %122

122:                                              ; preds = %117, %116, %112
  %.1601 = phi i8 [ 1, %112 ], [ %.0600775, %116 ], [ %.0600775, %117 ]
  %.1597 = phi ptr [ %115, %112 ], [ %.0596776, %116 ], [ %.0596776, %117 ]
  %.1594 = phi i8 [ %.0593777, %112 ], [ %.0593777, %116 ], [ %spec.select, %117 ]
  %123 = getelementptr inbounds i32, ptr %69, i64 %indvars.iv
  %124 = trunc nuw nsw i64 %indvars.iv826 to i32
  store i32 %124, ptr %123, align 4, !tbaa !5
  %.pre = load i16, ptr %60, align 2, !tbaa !33
  br label %.loopexit744

125:                                              ; preds = %.lr.ph773
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %126 = load i16, ptr %60, align 2, !tbaa !33
  %127 = sext i16 %126 to i64
  %128 = icmp slt i64 %indvars.iv.next, %127
  br i1 %128, label %.lr.ph773, label %.loopexit744.loopexit, !llvm.loop !49

.loopexit744.loopexit:                            ; preds = %125
  %129 = trunc nuw nsw i64 %indvars.iv.next to i32
  br label %.loopexit744

.loopexit744:                                     ; preds = %.loopexit744.loopexit, %.preheader743, %122
  %130 = phi i16 [ %.pre, %122 ], [ %97, %.preheader743 ], [ %126, %.loopexit744.loopexit ]
  %.0558747 = phi i32 [ %108, %122 ], [ 0, %.preheader743 ], [ %129, %.loopexit744.loopexit ]
  %.2602 = phi i8 [ %.1601, %122 ], [ %.0600775, %.preheader743 ], [ %.0600775, %.loopexit744.loopexit ]
  %.2598 = phi ptr [ %.1597, %122 ], [ %.0596776, %.preheader743 ], [ %.0596776, %.loopexit744.loopexit ]
  %.2595 = phi i8 [ %.1594, %122 ], [ %.0593777, %.preheader743 ], [ %.0593777, %.loopexit744.loopexit ]
  %131 = sext i16 %130 to i32
  %.not661 = icmp slt i32 %.0558747, %131
  br i1 %.not661, label %144, label %132

132:                                              ; preds = %.loopexit744
  %.pre849 = load ptr, ptr %87, align 8, !tbaa !40
  br i1 %.not659, label %133, label %139

133:                                              ; preds = %132
  %134 = getelementptr inbounds %struct.ExprList_item, ptr %.pre849, i64 %indvars.iv826, i32 1
  %135 = load ptr, ptr %134, align 8, !tbaa !46
  %136 = call i32 @sqlite3IsRowid(ptr noundef %135) #4
  %.not662 = icmp eq i32 %136, 0
  %.pre848 = load ptr, ptr %87, align 8, !tbaa !40
  br i1 %.not662, label %139, label %.thread

.thread:                                          ; preds = %133
  %137 = getelementptr inbounds %struct.ExprList_item, ptr %.pre848, i64 %indvars.iv826
  %138 = load ptr, ptr %137, align 8, !tbaa !41
  br label %149

139:                                              ; preds = %133, %132
  %140 = phi ptr [ %.pre848, %133 ], [ %.pre849, %132 ]
  %141 = getelementptr inbounds %struct.ExprList_item, ptr %140, i64 %indvars.iv826, i32 1
  %142 = load ptr, ptr %141, align 8, !tbaa !46
  call void (ptr, ptr, ...) @sqlite3ErrorMsg(ptr noundef nonnull %0, ptr noundef nonnull @.str, ptr noundef %142) #4
  %143 = getelementptr inbounds i8, ptr %0, i64 29
  store i8 1, ptr %143, align 1, !tbaa !50
  br label %.loopexit745

144:                                              ; preds = %.loopexit744
  %145 = load ptr, ptr %88, align 8, !tbaa !43
  %146 = zext nneg i32 %.0558747 to i64
  %147 = getelementptr inbounds %struct.Column, ptr %145, i64 %146
  %148 = load ptr, ptr %147, align 8, !tbaa !44
  br label %149

149:                                              ; preds = %.thread, %144
  %.1559680 = phi i32 [ %.0558747, %144 ], [ -1, %.thread ]
  %.3599679 = phi ptr [ %.2598, %144 ], [ %138, %.thread ]
  %.3603678 = phi i8 [ %.2602, %144 ], [ 1, %.thread ]
  %150 = phi ptr [ %148, %144 ], [ @.str.1, %.thread ]
  %151 = load ptr, ptr %18, align 8, !tbaa !51
  %152 = load ptr, ptr %90, align 8, !tbaa !52
  %153 = getelementptr inbounds %struct.Db, ptr %152, i64 %91
  %154 = load ptr, ptr %153, align 8, !tbaa !53
  %155 = call i32 @sqlite3AuthCheck(ptr noundef nonnull %0, i32 noundef 23, ptr noundef %151, ptr noundef %150, ptr noundef %154) #4
  switch i32 %155, label %159 [
    i32 1, label %.loopexit745
    i32 2, label %156
  ]

156:                                              ; preds = %149
  %157 = sext i32 %.1559680 to i64
  %158 = getelementptr inbounds i32, ptr %69, i64 %157
  store i32 -1, ptr %158, align 4, !tbaa !5
  br label %159

159:                                              ; preds = %156, %149
  %indvars.iv.next827 = add nuw nsw i64 %indvars.iv826, 1
  %160 = load i32, ptr %2, align 8, !tbaa !38
  %161 = sext i32 %160 to i64
  %162 = icmp slt i64 %indvars.iv.next827, %161
  br i1 %162, label %92, label %._crit_edge782, !llvm.loop !55

._crit_edge782:                                   ; preds = %159, %._crit_edge771
  %.0600.lcssa = phi i8 [ 0, %._crit_edge771 ], [ %.3603678, %159 ]
  %.0596.lcssa = phi ptr [ null, %._crit_edge771 ], [ %.3599679, %159 ]
  %.0593.lcssa = phi i8 [ 0, %._crit_edge771 ], [ %.2595, %159 ]
  %163 = add nuw nsw i8 %.0593.lcssa, %.0600.lcssa
  %164 = getelementptr inbounds i8, ptr %18, i64 84
  %165 = load i32, ptr %164, align 4, !tbaa !56
  %.not624 = icmp ne i32 %165, 0
  %166 = sext i1 %.not624 to i64
  %167 = getelementptr inbounds i8, ptr %1, i64 96
  store i64 %166, ptr %167, align 8, !tbaa !57
  %168 = zext nneg i8 %163 to i32
  %169 = call i32 @sqlite3FkRequired(ptr noundef nonnull %0, ptr noundef nonnull %18, ptr noundef %69, i32 noundef %168) #4
  %invariant.gep = getelementptr inbounds i8, ptr %75, i64 1
  %.1583788 = load ptr, ptr %45, align 8, !tbaa !30
  %.not625789 = icmp eq ptr %.1583788, null
  br i1 %.not625789, label %._crit_edge795.thread, label %.lr.ph794

.lr.ph794:                                        ; preds = %._crit_edge782
  %170 = icmp ne i8 %163, 0
  %171 = icmp ne i32 %169, 0
  %or.cond3 = select i1 %170, i1 true, i1 %171
  %172 = getelementptr inbounds i8, ptr %0, i64 56
  br label %173

173:                                              ; preds = %.lr.ph794, %215
  %174 = phi i32 [ 0, %.lr.ph794 ], [ %216, %215 ]
  %indvars.iv831 = phi i64 [ 0, %.lr.ph794 ], [ %indvars.iv.next832, %215 ]
  %.1583791 = phi ptr [ %.1583788, %.lr.ph794 ], [ %.1583, %215 ]
  br i1 %or.cond3, label %183, label %175

175:                                              ; preds = %173
  %176 = getelementptr inbounds i8, ptr %.1583791, i64 72
  %177 = load ptr, ptr %176, align 8, !tbaa !58
  %.not657 = icmp ne ptr %177, null
  %178 = icmp eq ptr %.1583791, %.fr811
  %or.cond664 = or i1 %.not657, %178
  br i1 %or.cond664, label %183, label %.preheader742

.preheader742:                                    ; preds = %175
  %179 = getelementptr inbounds i8, ptr %.1583791, i64 94
  %180 = load i16, ptr %179, align 2, !tbaa !60
  %.not813 = icmp eq i16 %180, 0
  br i1 %.not813, label %.thread684.thread, label %.lr.ph787

.lr.ph787:                                        ; preds = %.preheader742
  %181 = getelementptr inbounds i8, ptr %.1583791, i64 8
  %182 = load ptr, ptr %181, align 8, !tbaa !61
  %wide.trip.count = zext i16 %180 to i64
  br label %191

183:                                              ; preds = %175, %173
  %184 = load i32, ptr %172, align 8, !tbaa !62
  %185 = add nsw i32 %184, 1
  %186 = getelementptr inbounds i8, ptr %.1583791, i64 96
  %187 = load i16, ptr %186, align 8, !tbaa !63
  %188 = zext i16 %187 to i32
  %189 = add nsw i32 %185, %188
  store i32 %189, ptr %172, align 8, !tbaa !62
  br label %.thread684

190:                                              ; preds = %195
  %indvars.iv.next829 = add nuw nsw i64 %indvars.iv828, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next829, %wide.trip.count
  br i1 %exitcond.not, label %.thread684.thread, label %191, !llvm.loop !64

191:                                              ; preds = %.lr.ph787, %190
  %indvars.iv828 = phi i64 [ 0, %.lr.ph787 ], [ %indvars.iv.next829, %190 ]
  %192 = getelementptr inbounds i16, ptr %182, i64 %indvars.iv828
  %193 = load i16, ptr %192, align 2, !tbaa !65
  %194 = icmp slt i16 %193, 0
  br i1 %194, label %200, label %195

195:                                              ; preds = %191
  %196 = zext nneg i16 %193 to i64
  %197 = getelementptr inbounds i32, ptr %69, i64 %196
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = icmp sgt i32 %198, -1
  br i1 %199, label %200, label %190

200:                                              ; preds = %195, %191
  %201 = load i32, ptr %172, align 8, !tbaa !62
  %202 = add nsw i32 %201, 1
  %203 = getelementptr inbounds i8, ptr %.1583791, i64 96
  %204 = load i16, ptr %203, align 8, !tbaa !63
  %205 = zext i16 %204 to i32
  %206 = add nsw i32 %202, %205
  store i32 %206, ptr %172, align 8, !tbaa !62
  switch i32 %4, label %.thread684 [
    i32 5, label %211
    i32 10, label %207
  ]

207:                                              ; preds = %200
  %208 = getelementptr inbounds i8, ptr %.1583791, i64 98
  %209 = load i8, ptr %208, align 2, !tbaa !66
  %210 = icmp eq i8 %209, 5
  br i1 %210, label %211, label %.thread684

211:                                              ; preds = %200, %207
  store i32 1, ptr %10, align 4, !tbaa !5
  br label %.thread684

.thread684:                                       ; preds = %207, %211, %200, %183
  %212 = phi i32 [ %174, %183 ], [ %174, %200 ], [ 1, %211 ], [ %174, %207 ]
  %.2563 = phi i32 [ %185, %183 ], [ %202, %200 ], [ %202, %211 ], [ %202, %207 ]
  %213 = icmp eq i32 %.2563, 0
  br i1 %213, label %.thread684.thread, label %215

.thread684.thread:                                ; preds = %190, %.preheader742, %.thread684
  %214 = phi i32 [ %212, %.thread684 ], [ %174, %.preheader742 ], [ %174, %190 ]
  %gep = getelementptr inbounds i8, ptr %invariant.gep, i64 %indvars.iv831
  store i8 0, ptr %gep, align 1, !tbaa !34
  br label %215

215:                                              ; preds = %.thread684.thread, %.thread684
  %.2563853 = phi i32 [ 0, %.thread684.thread ], [ %.2563, %.thread684 ]
  %216 = phi i32 [ %214, %.thread684.thread ], [ %212, %.thread684 ]
  %217 = getelementptr inbounds i32, ptr %74, i64 %indvars.iv831
  store i32 %.2563853, ptr %217, align 4, !tbaa !5
  %218 = getelementptr inbounds i8, ptr %.1583791, i64 40
  %indvars.iv.next832 = add nuw nsw i64 %indvars.iv831, 1
  %.1583 = load ptr, ptr %218, align 8, !tbaa !30
  %.not625 = icmp eq ptr %.1583, null
  br i1 %.not625, label %._crit_edge795, label %173, !llvm.loop !67

._crit_edge795:                                   ; preds = %215
  %.not626 = icmp eq i32 %216, 0
  br i1 %.not626, label %._crit_edge795.thread, label %219

219:                                              ; preds = %._crit_edge795
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %75, i8 1, i64 %77, i1 false)
  br label %._crit_edge795.thread

._crit_edge795.thread:                            ; preds = %._crit_edge782, %219, %._crit_edge795
  %220 = phi i32 [ %216, %219 ], [ 0, %._crit_edge795 ], [ 0, %._crit_edge782 ]
  %221 = call ptr @sqlite3GetVdbe(ptr noundef nonnull %0) #4
  %222 = icmp eq ptr %221, null
  br i1 %222, label %.loopexit745, label %223

223:                                              ; preds = %._crit_edge795.thread
  %224 = getelementptr inbounds i8, ptr %0, i64 30
  %225 = load i8, ptr %224, align 2, !tbaa !68
  %226 = icmp eq i8 %225, 0
  br i1 %226, label %227, label %228

227:                                              ; preds = %223
  call void @sqlite3VdbeCountChanges(ptr noundef nonnull %221) #4
  br label %228

228:                                              ; preds = %227, %223
  call void @sqlite3BeginWriteOperation(ptr noundef nonnull %0, i32 noundef 1, i32 noundef %24) #4
  %229 = load i32, ptr %164, align 4, !tbaa !56
  %.not627 = icmp eq i32 %229, 0
  br i1 %.not627, label %230, label %251

230:                                              ; preds = %228
  %231 = getelementptr inbounds i8, ptr %0, i64 56
  %232 = load i32, ptr %231, align 8, !tbaa !62
  %233 = add nsw i32 %232, 1
  %234 = add nsw i32 %232, 2
  %235 = icmp ne i8 %.0593.lcssa, 0
  %236 = icmp ne ptr %25, null
  %or.cond5 = select i1 %235, i1 true, i1 %236
  %237 = icmp ne i32 %169, 0
  %or.cond7 = select i1 %or.cond5, i1 true, i1 %237
  br i1 %or.cond7, label %238, label %243

238:                                              ; preds = %230
  %239 = add nsw i32 %232, 3
  %240 = load i16, ptr %60, align 2, !tbaa !33
  %241 = sext i16 %240 to i32
  %242 = add nsw i32 %234, %241
  br label %243

243:                                              ; preds = %230, %238
  %244 = phi i32 [ %242, %238 ], [ %234, %230 ]
  %.0570 = phi i32 [ %239, %238 ], [ 0, %230 ]
  %245 = icmp ne i8 %163, 0
  %or.cond9 = select i1 %245, i1 true, i1 %236
  %or.cond11 = select i1 %or.cond9, i1 true, i1 %237
  %246 = add nsw i32 %244, 1
  %spec.select884 = select i1 %or.cond11, i32 %246, i32 %244
  %spec.select885 = select i1 %or.cond11, i32 %246, i32 %234
  %247 = add nsw i32 %spec.select884, 1
  %248 = load i16, ptr %60, align 2, !tbaa !33
  %249 = sext i16 %248 to i32
  %250 = add nsw i32 %spec.select884, %249
  store i32 %250, ptr %231, align 8, !tbaa !62
  br label %251

251:                                              ; preds = %243, %228
  %.0575 = phi i32 [ 0, %228 ], [ %234, %243 ]
  %.1574 = phi i32 [ 0, %228 ], [ %spec.select885, %243 ]
  %.0572 = phi i32 [ 0, %228 ], [ %247, %243 ]
  %.1571 = phi i32 [ 0, %228 ], [ %.0570, %243 ]
  %.0569 = phi i32 [ 0, %228 ], [ %233, %243 ]
  br i1 %.not620, label %252, label %.critedge

252:                                              ; preds = %251
  %253 = load ptr, ptr %18, align 8, !tbaa !51
  call void @sqlite3AuthContextPush(ptr noundef nonnull %0, ptr noundef nonnull %6, ptr noundef %253) #4
  call void @sqlite3MaterializeView(ptr noundef nonnull %0, ptr noundef nonnull %18, ptr noundef %3, i32 noundef %.0585.lcssa) #4
  br label %.critedge

.critedge:                                        ; preds = %251, %252
  %254 = call i32 @sqlite3ResolveExprNames(ptr noundef nonnull %7, ptr noundef %3) #4
  %.not628 = icmp eq i32 %254, 0
  br i1 %.not628, label %255, label %.loopexit745

255:                                              ; preds = %.critedge
  %256 = load i32, ptr %164, align 4, !tbaa !56
  %.not629 = icmp eq i32 %256, 0
  br i1 %.not629, label %258, label %257

257:                                              ; preds = %255
  call void @updateVirtualTable(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %18, ptr noundef nonnull %2, ptr noundef %.0596.lcssa, ptr noundef %69, ptr noundef %3, i32 noundef %4)
  br label %.loopexit745

258:                                              ; preds = %255
  %259 = getelementptr inbounds i8, ptr %11, i64 44
  %260 = load i32, ptr %259, align 4, !tbaa !69
  %261 = and i32 %260, 128
  %.not630 = icmp eq i32 %261, 0
  br i1 %.not630, label %270, label %262

262:                                              ; preds = %258
  %263 = getelementptr inbounds i8, ptr %0, i64 168
  %264 = load ptr, ptr %263, align 8, !tbaa !70
  %.not631 = icmp eq ptr %264, null
  br i1 %.not631, label %265, label %270

265:                                              ; preds = %262
  %266 = getelementptr inbounds i8, ptr %0, i64 56
  %267 = load i32, ptr %266, align 8, !tbaa !62
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr %266, align 8, !tbaa !62
  %269 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %221, i32 noundef 77, i32 noundef 0, i32 noundef %268) #4
  br label %270

270:                                              ; preds = %265, %262, %258
  %.0576 = phi i32 [ 0, %262 ], [ %268, %265 ], [ 0, %258 ]
  %271 = load i32, ptr %37, align 8, !tbaa !29
  %272 = and i32 %271, 32
  %273 = icmp eq i32 %272, 0
  br i1 %273, label %274, label %276

274:                                              ; preds = %270
  %275 = call i32 @sqlite3VdbeAddOp3(ptr noundef nonnull %221, i32 noundef 80, i32 noundef 0, i32 noundef %.0569, i32 noundef %.0575) #4
  br label %288

276:                                              ; preds = %270
  %277 = getelementptr inbounds i8, ptr %.fr811, i64 94
  %278 = load i16, ptr %277, align 2, !tbaa !60
  %279 = getelementptr inbounds i8, ptr %0, i64 56
  %280 = load i32, ptr %279, align 8, !tbaa !62
  %281 = add i32 %280, 1
  %282 = sext i16 %278 to i32
  %283 = add i32 %281, %282
  store i32 %283, ptr %279, align 8, !tbaa !62
  %284 = load i32, ptr %33, align 4, !tbaa !25
  %285 = add nsw i32 %284, 1
  store i32 %285, ptr %33, align 4, !tbaa !25
  %286 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %221, i32 noundef 80, i32 noundef 0, i32 noundef %281) #4
  %287 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %221, i32 noundef 108, i32 noundef %284, i32 noundef %282) #4
  call void @sqlite3VdbeSetP4KeyInfo(ptr noundef nonnull %0, ptr noundef %.fr811) #4
  %.pre850 = load i32, ptr %10, align 4
  br label %288

288:                                              ; preds = %276, %274
  %289 = phi i32 [ %220, %274 ], [ %.pre850, %276 ]
  %.0581 = phi i32 [ 0, %274 ], [ %284, %276 ]
  %.0579 = phi i32 [ 0, %274 ], [ %287, %276 ]
  %.0578 = phi i32 [ 0, %274 ], [ %281, %276 ]
  %.0577 = phi i16 [ 0, %274 ], [ %278, %276 ]
  %.0567 = phi i32 [ 0, %274 ], [ %283, %276 ]
  %290 = load i8, ptr %224, align 2, !tbaa !68
  %291 = icmp ne i8 %290, 0
  %292 = icmp ne ptr %25, null
  %or.cond13 = select i1 %291, i1 true, i1 %292
  %293 = icmp ne i32 %169, 0
  %or.cond15 = select i1 %or.cond13, i1 true, i1 %293
  %294 = icmp ne i8 %163, 0
  %or.cond17 = or i1 %294, %or.cond15
  %295 = icmp ne i32 %289, 0
  %or.cond19 = select i1 %or.cond17, i1 true, i1 %295
  %spec.select667 = select i1 %or.cond19, i16 4100, i16 4108
  %296 = call ptr @sqlite3WhereBegin(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %3, ptr noundef null, ptr noundef null, i16 noundef zeroext %spec.select667, i32 noundef %35) #4
  %297 = icmp eq ptr %296, null
  br i1 %297, label %.loopexit745, label %298

298:                                              ; preds = %288
  %299 = call i32 @sqlite3WhereOkOnePass(ptr noundef nonnull %296, ptr noundef nonnull %9) #4
  %300 = icmp eq i32 %299, 2
  br i1 %300, label %301, label %310

301:                                              ; preds = %298
  %302 = getelementptr inbounds i8, ptr %9, i64 4
  %303 = load i32, ptr %302, align 4, !tbaa !5
  %304 = icmp slt i32 %303, 0
  %.not632 = icmp eq i32 %303, %.0585.lcssa
  %or.cond668 = select i1 %304, i1 true, i1 %.not632
  br i1 %or.cond668, label %310, label %305

305:                                              ; preds = %301
  %306 = sub nsw i32 %303, %34
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds i8, ptr %75, i64 %307
  %309 = load i8, ptr %308, align 1, !tbaa !34
  %.not633 = icmp eq i8 %309, 0
  %spec.select669 = select i1 %.not633, i32 2, i32 0
  br label %310

310:                                              ; preds = %305, %301, %298
  %.1592 = phi i32 [ %299, %298 ], [ 2, %301 ], [ %spec.select669, %305 ]
  %311 = load i32, ptr %37, align 8, !tbaa !29
  %312 = and i32 %311, 32
  %313 = icmp eq i32 %312, 0
  br i1 %313, label %317, label %.preheader

.preheader:                                       ; preds = %310
  %314 = sext i16 %.0577 to i32
  %315 = icmp sgt i16 %.0577, 0
  br i1 %315, label %.lr.ph797, label %._crit_edge798

.lr.ph797:                                        ; preds = %.preheader
  %316 = getelementptr inbounds i8, ptr %.fr811, i64 8
  %wide.trip.count837 = zext nneg i32 %314 to i64
  br label %322

317:                                              ; preds = %310
  %318 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %221, i32 noundef 123, i32 noundef %.0585.lcssa, i32 noundef %.0575) #4
  %319 = icmp eq i32 %.1592, 0
  br i1 %319, label %320, label %335

320:                                              ; preds = %317
  %321 = call i32 @sqlite3VdbeAddOp2(ptr noundef nonnull %221, i32 noundef 143, i32 noundef %.0569, i32 noundef %.0575) #4
  br label %.thread689

322:                                              ; preds = %.lr.ph797, %322
  %indvars.iv834 = phi i64 [ 0, %.lr.ph797 ], [ %indvars.iv.next835, %322 ]
  %323 = load ptr, ptr %316, align 8, !tbaa !61
  %324 = getelementptr inbounds i16, ptr %323, i64 %indvars.iv834
  %325 = load i16, ptr %324, align 2, !tbaa !65
  %326 = sext i16 %325 to i32
  %327 = trunc i64 %indvars.iv834 to i32
  %328 = add i32 %.0578, %327
  call void @sqlite3ExprCodeGetColumnOfTable(ptr noundef %221, ptr noundef %18, i32 noundef %.0585.lcssa, i32 noundef %326, i32 noundef %328) #4
  %indvars.iv.next835 = add nuw nsw i64 %indvars.iv834, 1
  %exitcond838.not = icmp eq i64 %indvars.iv.next835, %wide.trip.count837
  br i1 %exitcond838.not, label %._crit_edge798, label %322, !llvm.loop !71

._crit_edge798:                                   ; preds = %322, %.preheader
  %.not634 = icmp eq i32 %.1592, 0
  br i1 %.not634, label %331, label %329

329:                                              ; preds = %._crit_edge798
  %330 = call i32 @sqlite3VdbeChangeToNoop(ptr noundef %221, i32 noundef %.0579) #4
  br label %335

331:                                              ; preds = %._crit_edge798
  %332 = call ptr @sqlite3IndexAffinityStr(ptr noundef %11, ptr noundef %.fr811) #4
  %333 = call i32 @sqlite3VdbeAddOp4(ptr noundef %221, i32 noundef 100, i32 noundef %.0578, i32 noundef %314, i32 noundef %.0567, ptr noundef %332, i32 noundef %314) #4
  %334 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %221, i32 noundef 126, i32 noundef %.0581, i32 noundef %.0567, i32 noundef %.0578, i32 noundef %314) #4
  br label %.thread689

335:                                              ; preds = %329, %317
  %.0580 = phi i32 [ 0, %317 ], [ %314, %329 ]
  %.1568 = phi i32 [ %.0567, %317 ], [ %.0578, %329 ]
  %.not635 = icmp eq i32 %.1592, 2
  br i1 %.not635, label %.thread702, label %.thread689

.thread689:                                       ; preds = %320, %331, %335
  %.1568696 = phi i32 [ %.1568, %335 ], [ %.0567, %331 ], [ %.0567, %320 ]
  %.0580693 = phi i32 [ %.0580, %335 ], [ 0, %331 ], [ 0, %320 ]
  call void @sqlite3WhereEnd(ptr noundef nonnull %296) #4
  %336 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %221) #4
  br i1 %.not620, label %365, label %338

.thread702:                                       ; preds = %335
  %337 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %221) #4
  br i1 %.not620, label %.thread866, label %.thread711

338:                                              ; preds = %.thread689
  %cond = icmp eq i32 %.1592, 0
  br i1 %cond, label %.thread723, label %.thread711

.thread711:                                       ; preds = %.thread702, %338
  %.not635700706720 = phi i1 [ false, %338 ], [ true, %.thread702 ]
  %.1568697708718 = phi i32 [ %.1568696, %338 ], [ %.1568, %.thread702 ]
  %.0580694710716 = phi i32 [ %.0580693, %338 ], [ %.0580, %.thread702 ]
  %339 = phi i32 [ %336, %338 ], [ %337, %.thread702 ]
  %340 = load i32, ptr %9, align 4, !tbaa !5
  %341 = icmp sgt i32 %340, -1
  br i1 %341, label %342, label %346

342:                                              ; preds = %.thread711
  %343 = sub nsw i32 %340, %34
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds i8, ptr %75, i64 %344
  store i8 0, ptr %345, align 1, !tbaa !34
  br label %346

346:                                              ; preds = %342, %.thread711
  %347 = getelementptr inbounds i8, ptr %9, i64 4
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = icmp sgt i32 %348, -1
  br i1 %349, label %350, label %354

350:                                              ; preds = %346
  %351 = sub nsw i32 %348, %34
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds i8, ptr %75, i64 %352
  store i8 0, ptr %353, align 1, !tbaa !34
  br label %354

354:                                              ; preds = %346, %350
  br i1 %.not635700706720, label %355, label %.thread723

355:                                              ; preds = %354
  %356 = load i32, ptr %347, align 4, !tbaa !5
  %357 = icmp sgt i32 %356, -1
  %.neg = sext i1 %357 to i32
  %358 = add i32 %.0584.lcssa, %.neg
  %359 = icmp sgt i32 %358, 0
  br i1 %359, label %361, label %.thread723

.thread723:                                       ; preds = %355, %354, %338
  %.not635700706721.ph = phi i1 [ false, %338 ], [ false, %354 ], [ true, %355 ]
  %.1568697708719.ph = phi i32 [ %.1568696, %338 ], [ %.1568697708718, %354 ], [ %.1568697708718, %355 ]
  %.0580694710717.ph = phi i32 [ %.0580693, %338 ], [ %.0580694710716, %354 ], [ %.0580694710716, %355 ]
  %.ph = phi i32 [ %336, %338 ], [ %339, %354 ], [ %339, %355 ]
  %360 = call i32 @sqlite3OpenTableAndIndices(ptr noundef nonnull %0, ptr noundef %18, i32 noundef 106, i8 noundef zeroext 0, i32 noundef %34, ptr noundef %75, ptr noundef null, ptr noundef null) #4
  br label %365

361:                                              ; preds = %355
  %362 = call i32 @sqlite3VdbeAddOp0(ptr noundef %221, i32 noundef 20) #4
  %363 = call i32 @sqlite3OpenTableAndIndices(ptr noundef nonnull %0, ptr noundef %18, i32 noundef 106, i8 noundef zeroext 0, i32 noundef %34, ptr noundef %75, ptr noundef null, ptr noundef null) #4
  %.not637 = icmp eq i32 %362, 0
  br i1 %.not637, label %.thread731, label %364

364:                                              ; preds = %361
  call void @sqlite3VdbeJumpHere(ptr noundef %221, i32 noundef %362) #4
  br label %.thread731

365:                                              ; preds = %.thread723, %.thread689
  %366 = phi i32 [ %336, %.thread689 ], [ %.ph, %.thread723 ]
  %.0580694709 = phi i32 [ %.0580693, %.thread689 ], [ %.0580694710717.ph, %.thread723 ]
  %.1568697707 = phi i32 [ %.1568696, %.thread689 ], [ %.1568697708719.ph, %.thread723 ]
  %.not635701 = phi i1 [ false, %.thread689 ], [ %.not635700706721.ph, %.thread723 ]
  %.not638 = icmp eq i32 %.1592, 0
  br i1 %.not638, label %381, label %.thread731

.thread731:                                       ; preds = %364, %361, %365
  %.not635701741 = phi i1 [ %.not635701, %365 ], [ true, %364 ], [ true, %361 ]
  %.1568697707738 = phi i32 [ %.1568697707, %365 ], [ %.1568697708718, %364 ], [ %.1568697708718, %361 ]
  %.0580694709737 = phi i32 [ %.0580694709, %365 ], [ %.0580694710716, %364 ], [ %.0580694710716, %361 ]
  %367 = phi i32 [ %366, %365 ], [ %339, %364 ], [ %339, %361 ]
  %368 = load i32, ptr %9, align 4
  %.not640 = icmp eq i32 %368, %.0585.lcssa
  %or.cond670 = select i1 %.not620, i1 true, i1 %.not640
  %369 = getelementptr inbounds i8, ptr %9, i64 4
  %370 = load i32, ptr %369, align 4
  %.not641 = icmp eq i32 %370, %.0585.lcssa
  %or.cond672 = select i1 %or.cond670, i1 true, i1 %.not641
  br i1 %or.cond672, label %373, label %371

371:                                              ; preds = %.thread731
  %372 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %221, i32 noundef 30, i32 noundef %.0585.lcssa, i32 noundef %367, i32 noundef %.1568697707738, i32 noundef %.0580694709737) #4
  br label %373

373:                                              ; preds = %371, %.thread731
  %374 = icmp eq i32 %.1592, 1
  br i1 %374, label %377, label %.thread866

.thread866:                                       ; preds = %.thread702, %373
  %.not635701741863874 = phi i1 [ %.not635701741, %373 ], [ true, %.thread702 ]
  %.1568697707738864872 = phi i32 [ %.1568697707738, %373 ], [ %.1568, %.thread702 ]
  %.0580694709737865870 = phi i32 [ %.0580694709737, %373 ], [ %.0580, %.thread702 ]
  %375 = phi i32 [ %367, %373 ], [ %337, %.thread702 ]
  %376 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %221) #4
  br label %377

377:                                              ; preds = %373, %.thread866
  %.not635701741863875 = phi i1 [ %.not635701741863874, %.thread866 ], [ %.not635701741, %373 ]
  %.1568697707738864873 = phi i32 [ %.1568697707738864872, %.thread866 ], [ %.1568697707738, %373 ]
  %.0580694709737865871 = phi i32 [ %.0580694709737865870, %.thread866 ], [ %.0580694709737, %373 ]
  %378 = phi i32 [ %375, %.thread866 ], [ %367, %373 ]
  %.0588 = phi i32 [ %376, %.thread866 ], [ %367, %373 ]
  %.not642 = icmp eq ptr %.fr811, null
  %379 = select i1 %.not642, i32 %.0575, i32 %.1568697707738864873
  %380 = call i32 @sqlite3VdbeAddOp2(ptr noundef %221, i32 noundef 34, i32 noundef %379, i32 noundef %378) #4
  br label %390

381:                                              ; preds = %365
  %.not639 = icmp eq ptr %.fr811, null
  br i1 %.not639, label %387, label %382

382:                                              ; preds = %381
  %383 = call i32 @sqlite3VdbeMakeLabel(ptr noundef %221) #4
  %384 = call i32 @sqlite3VdbeAddOp2(ptr noundef %221, i32 noundef 58, i32 noundef %.0581, i32 noundef %366) #4
  %385 = call i32 @sqlite3VdbeAddOp2(ptr noundef %221, i32 noundef 122, i32 noundef %.0581, i32 noundef %.1568697707) #4
  %386 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %221, i32 noundef 30, i32 noundef %.0585.lcssa, i32 noundef %383, i32 noundef %.1568697707, i32 noundef 0) #4
  br label %390

387:                                              ; preds = %381
  %388 = call i32 @sqlite3VdbeAddOp3(ptr noundef %221, i32 noundef 63, i32 noundef %.0569, i32 noundef %366, i32 noundef %.0575) #4
  %389 = call i32 @sqlite3VdbeAddOp3(ptr noundef %221, i32 noundef 33, i32 noundef %.0585.lcssa, i32 noundef %388, i32 noundef %.0575) #4
  br label %390

390:                                              ; preds = %382, %387, %377
  %.not635701740 = phi i1 [ %.not635701741863875, %377 ], [ %.not635701, %382 ], [ %.not635701, %387 ]
  %.1568697707739 = phi i32 [ %.1568697707738864873, %377 ], [ %.1568697707, %382 ], [ %.1568697707, %387 ]
  %.0580694709736 = phi i32 [ %.0580694709737865871, %377 ], [ %.0580694709, %382 ], [ %.0580694709, %387 ]
  %391 = phi i32 [ %378, %377 ], [ %366, %382 ], [ %366, %387 ]
  %.1589 = phi i32 [ %.0588, %377 ], [ %383, %382 ], [ %388, %387 ]
  %.0566 = phi i32 [ 0, %377 ], [ %385, %382 ], [ 0, %387 ]
  %.not643 = icmp eq i8 %.0600.lcssa, 0
  br i1 %.not643, label %394, label %392

392:                                              ; preds = %390
  call void @sqlite3ExprCode(ptr noundef nonnull %0, ptr noundef %.0596.lcssa, i32 noundef %.1574) #4
  %393 = call i32 @sqlite3VdbeAddOp1(ptr noundef %221, i32 noundef 17, i32 noundef %.1574) #4
  br label %394

394:                                              ; preds = %392, %390
  %395 = icmp ne i8 %.0593.lcssa, 0
  %or.cond21 = select i1 %395, i1 true, i1 %293
  %or.cond23 = select i1 %or.cond21, i1 true, i1 %292
  br i1 %or.cond23, label %396, label %431

396:                                              ; preds = %394
  br i1 %293, label %397, label %399

397:                                              ; preds = %396
  %398 = call i32 @sqlite3FkOldmask(ptr noundef nonnull %0, ptr noundef %18) #4
  br label %399

399:                                              ; preds = %396, %397
  %400 = phi i32 [ %398, %397 ], [ 0, %396 ]
  %401 = call i32 @sqlite3TriggerColmask(ptr noundef nonnull %0, ptr noundef %25, ptr noundef nonnull %2, i32 noundef 0, i32 noundef 3, ptr noundef %18, i32 noundef %4) #4
  %402 = or i32 %401, %400
  %403 = load i16, ptr %60, align 2, !tbaa !33
  %404 = icmp sgt i16 %403, 0
  br i1 %404, label %.lr.ph802, label %._crit_edge803

.lr.ph802:                                        ; preds = %399
  %405 = icmp eq i32 %402, -1
  %406 = getelementptr inbounds i8, ptr %18, i64 8
  br label %407

407:                                              ; preds = %.lr.ph802, %424
  %indvars.iv839 = phi i64 [ 0, %.lr.ph802 ], [ %indvars.iv.next840, %424 ]
  %indvars841 = trunc i64 %indvars.iv839 to i32
  br i1 %405, label %418, label %408

408:                                              ; preds = %407
  %409 = icmp ult i64 %indvars.iv839, 32
  br i1 %409, label %410, label %413

410:                                              ; preds = %408
  %411 = shl nuw i32 1, %indvars841
  %412 = and i32 %411, %402
  %.not655 = icmp eq i32 %412, 0
  br i1 %.not655, label %413, label %418

413:                                              ; preds = %410, %408
  %414 = load ptr, ptr %406, align 8, !tbaa !43
  %415 = getelementptr inbounds %struct.Column, ptr %414, i64 %indvars.iv839, i32 6
  %416 = load i8, ptr %415, align 1, !tbaa !48
  %417 = and i8 %416, 1
  %.not656 = icmp eq i8 %417, 0
  br i1 %.not656, label %420, label %418

418:                                              ; preds = %413, %410, %407
  %419 = add nsw i32 %.1571, %indvars841
  call void @sqlite3ExprCodeGetColumnOfTable(ptr noundef %221, ptr noundef nonnull %18, i32 noundef %.0585.lcssa, i32 noundef %indvars841, i32 noundef %419) #4
  br label %424

420:                                              ; preds = %413
  %421 = trunc i64 %indvars.iv839 to i32
  %422 = add i32 %.1571, %421
  %423 = call i32 @sqlite3VdbeAddOp2(ptr noundef %221, i32 noundef 80, i32 noundef 0, i32 noundef %422) #4
  br label %424

424:                                              ; preds = %418, %420
  %indvars.iv.next840 = add nuw nsw i64 %indvars.iv839, 1
  %425 = load i16, ptr %60, align 2, !tbaa !33
  %426 = sext i16 %425 to i64
  %427 = icmp slt i64 %indvars.iv.next840, %426
  br i1 %427, label %407, label %._crit_edge803, !llvm.loop !72

._crit_edge803:                                   ; preds = %424, %399
  %428 = icmp eq ptr %.fr811, null
  %or.cond25 = and i1 %.not643, %428
  br i1 %or.cond25, label %429, label %431

429:                                              ; preds = %._crit_edge803
  %430 = call i32 @sqlite3VdbeAddOp2(ptr noundef %221, i32 noundef 85, i32 noundef %.0575, i32 noundef %.1574) #4
  br label %431

431:                                              ; preds = %._crit_edge803, %429, %394
  %432 = call i32 @sqlite3TriggerColmask(ptr noundef nonnull %0, ptr noundef %25, ptr noundef nonnull %2, i32 noundef 1, i32 noundef 1, ptr noundef %18, i32 noundef %4) #4
  %433 = load i16, ptr %60, align 2, !tbaa !33
  %434 = icmp sgt i16 %433, 0
  br i1 %434, label %.lr.ph806, label %._crit_edge807

.lr.ph806:                                        ; preds = %431
  %435 = getelementptr inbounds i8, ptr %18, i64 68
  %436 = getelementptr inbounds i8, ptr %2, i64 8
  br label %437

437:                                              ; preds = %.lr.ph806, %471
  %indvars.iv842 = phi i64 [ 0, %.lr.ph806 ], [ %indvars.iv.next843, %471 ]
  %indvars844 = trunc i64 %indvars.iv842 to i32
  %438 = load i16, ptr %435, align 4, !tbaa !47
  %439 = sext i16 %438 to i64
  %440 = and i64 %439, 4294967295
  %441 = icmp eq i64 %indvars.iv842, %440
  br i1 %441, label %442, label %446

442:                                              ; preds = %437
  %443 = trunc i64 %indvars.iv842 to i32
  %444 = add i32 %.0572, %443
  %445 = call i32 @sqlite3VdbeAddOp2(ptr noundef %221, i32 noundef 80, i32 noundef 0, i32 noundef %444) #4
  br label %471

446:                                              ; preds = %437
  %447 = getelementptr inbounds i32, ptr %69, i64 %indvars.iv842
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = icmp sgt i32 %448, -1
  br i1 %449, label %450, label %457

450:                                              ; preds = %446
  %451 = load ptr, ptr %436, align 8, !tbaa !40
  %452 = zext nneg i32 %448 to i64
  %453 = getelementptr inbounds %struct.ExprList_item, ptr %451, i64 %452
  %454 = load ptr, ptr %453, align 8, !tbaa !41
  %455 = trunc i64 %indvars.iv842 to i32
  %456 = add i32 %.0572, %455
  call void @sqlite3ExprCode(ptr noundef nonnull %0, ptr noundef %454, i32 noundef %456) #4
  br label %471

457:                                              ; preds = %446
  %458 = load i32, ptr %8, align 4, !tbaa !5
  %459 = and i32 %458, 1
  %460 = icmp eq i32 %459, 0
  %461 = icmp ugt i64 %indvars.iv842, 31
  %or.cond27 = or i1 %461, %460
  br i1 %or.cond27, label %465, label %462

462:                                              ; preds = %457
  %463 = shl nuw i32 1, %indvars844
  %464 = and i32 %463, %432
  %.not654 = icmp eq i32 %464, 0
  br i1 %.not654, label %467, label %465

465:                                              ; preds = %462, %457
  %466 = add nsw i32 %.0572, %indvars844
  call void @sqlite3ExprCodeGetColumnToReg(ptr noundef nonnull %0, ptr noundef nonnull %18, i32 noundef %indvars844, i32 noundef %.0585.lcssa, i32 noundef %466) #4
  br label %471

467:                                              ; preds = %462
  %468 = trunc nuw i64 %indvars.iv842 to i32
  %469 = add i32 %.0572, %468
  %470 = call i32 @sqlite3VdbeAddOp2(ptr noundef %221, i32 noundef 80, i32 noundef 0, i32 noundef %469) #4
  br label %471

471:                                              ; preds = %442, %465, %467, %450
  %indvars.iv.next843 = add nuw nsw i64 %indvars.iv842, 1
  %472 = load i16, ptr %60, align 2, !tbaa !33
  %473 = sext i16 %472 to i64
  %474 = icmp slt i64 %indvars.iv.next843, %473
  br i1 %474, label %437, label %._crit_edge807, !llvm.loop !73

._crit_edge807:                                   ; preds = %471, %431
  %475 = load i32, ptr %8, align 4, !tbaa !5
  %476 = and i32 %475, 1
  %.not644 = icmp eq i32 %476, 0
  br i1 %.not644, label %.loopexit, label %477

477:                                              ; preds = %._crit_edge807
  call void @sqlite3TableAffinity(ptr noundef %221, ptr noundef nonnull %18, i32 noundef %.0572) #4
  call void @sqlite3CodeRowTrigger(ptr noundef nonnull %0, ptr noundef %25, i32 noundef 110, ptr noundef nonnull %2, i32 noundef 1, ptr noundef nonnull %18, i32 noundef %.0575, i32 noundef %4, i32 noundef %.1589) #4
  %.not645 = icmp eq ptr %.fr811, null
  br i1 %.not645, label %480, label %478

478:                                              ; preds = %477
  %479 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %221, i32 noundef 30, i32 noundef %.0585.lcssa, i32 noundef %.1589, i32 noundef %.1568697707739, i32 noundef %.0580694709736) #4
  br label %482

480:                                              ; preds = %477
  %481 = call i32 @sqlite3VdbeAddOp3(ptr noundef %221, i32 noundef 33, i32 noundef %.0585.lcssa, i32 noundef %.1589, i32 noundef %.0575) #4
  br label %482

482:                                              ; preds = %480, %478
  %483 = load i16, ptr %60, align 2, !tbaa !33
  %484 = icmp sgt i16 %483, 0
  br i1 %484, label %.lr.ph810, label %.loopexit

.lr.ph810:                                        ; preds = %482
  %485 = getelementptr inbounds i8, ptr %18, i64 68
  br label %486

486:                                              ; preds = %.lr.ph810, %497
  %487 = phi i16 [ %483, %.lr.ph810 ], [ %498, %497 ]
  %indvars.iv845 = phi i64 [ 0, %.lr.ph810 ], [ %indvars.iv.next846, %497 ]
  %indvars847 = trunc i64 %indvars.iv845 to i32
  %488 = getelementptr inbounds i32, ptr %69, i64 %indvars.iv845
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = icmp slt i32 %489, 0
  br i1 %490, label %491, label %497

491:                                              ; preds = %486
  %492 = load i16, ptr %485, align 4, !tbaa !47
  %493 = sext i16 %492 to i64
  %494 = and i64 %493, 4294967295
  %.not653 = icmp eq i64 %indvars.iv845, %494
  br i1 %.not653, label %497, label %495

495:                                              ; preds = %491
  %496 = add nsw i32 %.0572, %indvars847
  call void @sqlite3ExprCodeGetColumnOfTable(ptr noundef %221, ptr noundef nonnull %18, i32 noundef %.0585.lcssa, i32 noundef %indvars847, i32 noundef %496) #4
  %.pre851 = load i16, ptr %60, align 2, !tbaa !33
  br label %497

497:                                              ; preds = %486, %491, %495
  %498 = phi i16 [ %487, %486 ], [ %487, %491 ], [ %.pre851, %495 ]
  %indvars.iv.next846 = add nuw nsw i64 %indvars.iv845, 1
  %499 = sext i16 %498 to i64
  %500 = icmp slt i64 %indvars.iv.next846, %499
  br i1 %500, label %486, label %.loopexit, !llvm.loop !74

.loopexit:                                        ; preds = %497, %482, %._crit_edge807
  br i1 %.not620, label %523, label %501

501:                                              ; preds = %.loopexit
  %502 = trunc i32 %4 to i8
  call void @sqlite3GenerateConstraintChecks(ptr noundef nonnull %0, ptr noundef nonnull %18, ptr noundef %74, i32 noundef %.0585.lcssa, i32 noundef %35, i32 noundef %.1574, i32 noundef %.0575, i8 noundef zeroext %163, i8 noundef zeroext %502, i32 noundef %.1589, ptr noundef nonnull %10, ptr noundef %69) #4
  br i1 %293, label %503, label %504

503:                                              ; preds = %501
  call void @sqlite3FkCheck(ptr noundef nonnull %0, ptr noundef nonnull %18, i32 noundef %.0575, i32 noundef 0, ptr noundef %69, i32 noundef %168) #4
  br label %504

504:                                              ; preds = %503, %501
  %505 = load i32, ptr %10, align 4, !tbaa !5
  %506 = icmp ne i32 %505, 0
  %or.cond30 = or i1 %294, %506
  br i1 %or.cond30, label %507, label %512

507:                                              ; preds = %504
  %.not646 = icmp eq ptr %.fr811, null
  br i1 %.not646, label %510, label %508

508:                                              ; preds = %507
  %509 = call i32 @sqlite3VdbeAddOp4Int(ptr noundef %221, i32 noundef 30, i32 noundef %.0585.lcssa, i32 noundef 0, i32 noundef %.1568697707739, i32 noundef %.0580694709736) #4
  br label %512

510:                                              ; preds = %507
  %511 = call i32 @sqlite3VdbeAddOp3(ptr noundef %221, i32 noundef 33, i32 noundef %.0585.lcssa, i32 noundef 0, i32 noundef %.0575) #4
  br label %512

512:                                              ; preds = %508, %510, %504
  %.0 = phi i32 [ %509, %508 ], [ %511, %510 ], [ 0, %504 ]
  call void @sqlite3GenerateRowIndexDelete(ptr noundef nonnull %0, ptr noundef nonnull %18, i32 noundef %.0585.lcssa, i32 noundef %35, ptr noundef %74, i32 noundef -1) #4
  %or.cond33 = or i1 %294, %293
  br i1 %or.cond33, label %513, label %515

513:                                              ; preds = %512
  %514 = call i32 @sqlite3VdbeAddOp2(ptr noundef %221, i32 noundef 118, i32 noundef %.0585.lcssa, i32 noundef 0) #4
  br label %515

515:                                              ; preds = %512, %513
  %516 = load i32, ptr %10, align 4, !tbaa !5
  %517 = icmp ne i32 %516, 0
  %or.cond36 = or i1 %294, %517
  br i1 %or.cond36, label %518, label %519

518:                                              ; preds = %515
  call void @sqlite3VdbeJumpHere(ptr noundef %221, i32 noundef %.0) #4
  br label %519

519:                                              ; preds = %515, %518
  br i1 %293, label %520, label %.critedge674

520:                                              ; preds = %519
  call void @sqlite3FkCheck(ptr noundef nonnull %0, ptr noundef nonnull %18, i32 noundef 0, i32 noundef %.1574, ptr noundef %69, i32 noundef %168) #4
  %521 = select i1 %.not635701740, i32 6, i32 4
  call void @sqlite3CompleteInsertion(ptr noundef nonnull %0, ptr noundef nonnull %18, i32 noundef %.0585.lcssa, i32 noundef %35, i32 noundef %.1574, ptr noundef %74, i32 noundef %521, i32 noundef 0, i32 noundef 0) #4
  call void @sqlite3FkActions(ptr noundef nonnull %0, ptr noundef nonnull %18, ptr noundef nonnull %2, i32 noundef %.0575, ptr noundef %69, i32 noundef %168) #4
  br label %523

.critedge674:                                     ; preds = %519
  %522 = select i1 %.not635701740, i32 6, i32 4
  call void @sqlite3CompleteInsertion(ptr noundef nonnull %0, ptr noundef nonnull %18, i32 noundef %.0585.lcssa, i32 noundef %35, i32 noundef %.1574, ptr noundef %74, i32 noundef %522, i32 noundef 0, i32 noundef 0) #4
  br label %523

523:                                              ; preds = %520, %.critedge674, %.loopexit
  %524 = load i32, ptr %259, align 4, !tbaa !69
  %525 = and i32 %524, 128
  %.not647 = icmp eq i32 %525, 0
  br i1 %.not647, label %531, label %526

526:                                              ; preds = %523
  %527 = getelementptr inbounds i8, ptr %0, i64 168
  %528 = load ptr, ptr %527, align 8, !tbaa !70
  %.not648 = icmp eq ptr %528, null
  br i1 %.not648, label %529, label %531

529:                                              ; preds = %526
  %530 = call i32 @sqlite3VdbeAddOp2(ptr noundef %221, i32 noundef 92, i32 noundef %.0576, i32 noundef 1) #4
  br label %531

531:                                              ; preds = %529, %526, %523
  call void @sqlite3CodeRowTrigger(ptr noundef nonnull %0, ptr noundef %25, i32 noundef 110, ptr noundef nonnull %2, i32 noundef 2, ptr noundef nonnull %18, i32 noundef %.0575, i32 noundef %4, i32 noundef %.1589) #4
  switch i32 %.1592, label %533 [
    i32 1, label %538
    i32 2, label %532
  ]

532:                                              ; preds = %531
  call void @sqlite3VdbeResolveLabel(ptr noundef %221, i32 noundef %.1589) #4
  call void @sqlite3WhereEnd(ptr noundef nonnull %296) #4
  br label %538

533:                                              ; preds = %531
  %.not649 = icmp eq ptr %.fr811, null
  br i1 %.not649, label %536, label %534

534:                                              ; preds = %533
  call void @sqlite3VdbeResolveLabel(ptr noundef %221, i32 noundef %.1589) #4
  %535 = call i32 @sqlite3VdbeAddOp2(ptr noundef %221, i32 noundef 7, i32 noundef %.0581, i32 noundef %.0566) #4
  br label %538

536:                                              ; preds = %533
  %537 = call i32 @sqlite3VdbeGoto(ptr noundef %221, i32 noundef %.1589) #4
  br label %538

538:                                              ; preds = %531, %532, %536, %534
  call void @sqlite3VdbeResolveLabel(ptr noundef %221, i32 noundef %391) #4
  %539 = load i8, ptr %224, align 2, !tbaa !68
  %540 = icmp eq i8 %539, 0
  br i1 %540, label %541, label %546

541:                                              ; preds = %538
  %542 = getelementptr inbounds i8, ptr %0, i64 168
  %543 = load ptr, ptr %542, align 8, !tbaa !70
  %544 = icmp eq ptr %543, null
  br i1 %544, label %545, label %546

545:                                              ; preds = %541
  call void @sqlite3AutoincrementEnd(ptr noundef nonnull %0) #4
  br label %546

546:                                              ; preds = %545, %541, %538
  %547 = load i32, ptr %259, align 4, !tbaa !69
  %548 = and i32 %547, 128
  %.not650 = icmp eq i32 %548, 0
  br i1 %.not650, label %.loopexit745, label %549

549:                                              ; preds = %546
  %550 = getelementptr inbounds i8, ptr %0, i64 168
  %551 = load ptr, ptr %550, align 8, !tbaa !70
  %.not651 = icmp eq ptr %551, null
  br i1 %.not651, label %552, label %.loopexit745

552:                                              ; preds = %549
  %553 = load i8, ptr %224, align 2, !tbaa !68
  %.not652 = icmp eq i8 %553, 0
  br i1 %.not652, label %554, label %.loopexit745

554:                                              ; preds = %552
  %555 = call i32 @sqlite3VdbeAddOp2(ptr noundef %221, i32 noundef 88, i32 noundef %.0576, i32 noundef 1) #4
  call void @sqlite3VdbeSetNumCols(ptr noundef %221, i32 noundef 1) #4
  %556 = call i32 @sqlite3VdbeSetColName(ptr noundef %221, i32 noundef 0, i32 noundef 0, ptr noundef nonnull @.str.2, ptr noundef null) #4
  br label %.loopexit745

.loopexit745:                                     ; preds = %149, %92, %546, %549, %552, %554, %288, %.critedge, %._crit_edge795.thread, %._crit_edge, %29, %20, %17, %5, %14, %257, %139
  %.0590 = phi ptr [ null, %5 ], [ null, %14 ], [ null, %17 ], [ null, %20 ], [ null, %29 ], [ null, %._crit_edge ], [ %69, %139 ], [ %69, %._crit_edge795.thread ], [ %69, %.critedge ], [ %69, %257 ], [ %69, %288 ], [ %69, %549 ], [ %69, %552 ], [ %69, %554 ], [ %69, %546 ], [ %69, %92 ], [ %69, %149 ]
  call void @sqlite3AuthContextPop(ptr noundef nonnull %6) #4
  call void @sqlite3DbFree(ptr noundef %11, ptr noundef %.0590) #4
  call void @sqlite3SrcListDelete(ptr noundef %11, ptr noundef %1) #4
  call void @sqlite3ExprListDelete(ptr noundef %11, ptr noundef %2) #4
  call void @sqlite3ExprDelete(ptr noundef %11, ptr noundef %3) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #4
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #4
  ret void
}

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

declare ptr @sqlite3SrcListLookup(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3SchemaToIndex(ptr noundef, ptr noundef) local_unnamed_addr #1

declare ptr @sqlite3TriggersExist(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3ViewGetColumnNames(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3IsReadOnly(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare ptr @sqlite3PrimaryKeyIndex(ptr noundef) local_unnamed_addr #1

declare ptr @sqlite3DbMallocRawNN(ptr noundef, i64 noundef) local_unnamed_addr #1

declare i32 @sqlite3ResolveExprNames(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3StrICmp(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3IsRowid(ptr noundef) local_unnamed_addr #1

declare void @sqlite3ErrorMsg(ptr noundef, ptr noundef, ...) local_unnamed_addr #1

declare i32 @sqlite3AuthCheck(ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3FkRequired(ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare ptr @sqlite3GetVdbe(ptr noundef) local_unnamed_addr #1

declare void @sqlite3VdbeCountChanges(ptr noundef) local_unnamed_addr #1

declare void @sqlite3BeginWriteOperation(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3AuthContextPush(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @sqlite3MaterializeView(ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden void @updateVirtualTable(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @sqlite3VdbeAddOp2(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare i32 @sqlite3VdbeAddOp3(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3VdbeSetP4KeyInfo(ptr noundef, ptr noundef) local_unnamed_addr #1

declare ptr @sqlite3WhereBegin(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i16 noundef zeroext, i32 noundef) local_unnamed_addr #1

declare i32 @sqlite3WhereOkOnePass(ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @sqlite3ExprCodeGetColumnOfTable(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare i32 @sqlite3VdbeChangeToNoop(ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @sqlite3VdbeAddOp4(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare ptr @sqlite3IndexAffinityStr(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3VdbeAddOp4Int(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3WhereEnd(ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3VdbeMakeLabel(ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3VdbeAddOp0(ptr noundef, i32 noundef) local_unnamed_addr #1

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

declare void @sqlite3VdbeJumpHere(ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3ExprCode(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @sqlite3FkOldmask(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @sqlite3TriggerColmask(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3ExprCodeGetColumnToReg(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3TableAffinity(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3CodeRowTrigger(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3GenerateConstraintChecks(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i8 noundef zeroext, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @sqlite3FkCheck(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3GenerateRowIndexDelete(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3CompleteInsertion(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3FkActions(ptr noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3VdbeResolveLabel(ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @sqlite3VdbeGoto(ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @sqlite3AutoincrementEnd(ptr noundef) local_unnamed_addr #1

declare void @sqlite3VdbeSetNumCols(ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @sqlite3VdbeSetColName(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @sqlite3AuthContextPop(ptr noundef) local_unnamed_addr #1

declare void @sqlite3DbFree(ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @sqlite3SrcListDelete(ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @sqlite3ExprListDelete(ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @sqlite3ExprDelete(ptr noundef, ptr noundef) local_unnamed_addr #1

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"Parse", !11, i64 0, !11, i64 8, !11, i64 16, !6, 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, !6, i64 40, !6, i64 44, !6, i64 48, !6, i64 52, !6, i64 56, !6, i64 60, !6, i64 64, !6, i64 68, !6, i64 72, !6, i64 76, !6, i64 80, !6, i64 84, !11, i64 88, !11, i64 96, !12, i64 104, !6, i64 120, !6, i64 124, !6, i64 128, !6, i64 132, !6, i64 136, !6, i64 140, !11, i64 144, !11, i64 152, !11, i64 160, !11, i64 168, !6, i64 176, !6, i64 180, !6, i64 184, !6, i64 188, !7, i64 192, !7, i64 193, !7, i64 194, !7, i64 196, !7, i64 396, !12, i64 432, !12, i64 448, !13, i64 464, !7, i64 466, !7, i64 467, !7, i64 468, !6, i64 472, !6, i64 476, !6, i64 480, !6, i64 484, !11, i64 488, !11, i64 496, !11, i64 504, !11, i64 512, !11, i64 520, !11, i64 528, !12, i64 536, !11, i64 552, !11, i64 560, !11, i64 568, !11, i64 576, !11, i64 584}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!"Token", !11, i64 0, !6, i64 8}
!13 = !{!"short", !7, i64 0}
!14 = !{!10, !6, i64 48}
!15 = !{!16, !7, i64 85}
!16 = !{!"sqlite3", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !6, i64 40, !6, i64 44, !17, i64 48, !17, i64 56, !6, i64 64, !6, i64 68, !6, i64 72, !6, i64 76, !13, 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, !6, i64 96, !6, i64 100, !6, i64 104, !6, i64 108, !7, i64 112, !6, i64 160, !18, i64 164, !6, i64 172, !6, i64 176, !6, i64 180, !6, i64 184, !6, i64 188, !6, i64 192, !11, i64 200, !11, i64 208, !11, i64 216, !11, i64 224, !11, i64 232, !11, i64 240, !11, i64 248, !11, i64 256, !11, i64 264, !11, i64 272, !11, i64 280, !11, i64 288, !11, i64 296, !11, i64 304, !11, i64 312, !11, i64 320, !11, i64 328, !7, i64 336, !19, i64 344, !11, i64 400, !11, i64 408, !11, i64 416, !11, i64 424, !6, i64 432, !6, i64 436, !20, i64 440, !11, i64 464, !11, i64 472, !11, i64 480, !20, i64 488, !20, i64 512, !21, i64 536, !7, i64 560, !11, i64 624, !6, i64 632, !6, i64 636, !6, i64 640, !17, i64 648, !17, i64 656, !11, i64 664}
!17 = !{!"long long", !7, i64 0}
!18 = !{!"sqlite3InitInfo", !6, i64 0, !7, i64 4, !7, i64 5, !7, i64 6, !7, i64 7}
!19 = !{!"Lookaside", !6, i64 0, !13, i64 4, !7, i64 6, !6, i64 8, !6, i64 12, !7, i64 16, !11, i64 32, !11, i64 40, !11, i64 48}
!20 = !{!"Hash", !6, i64 0, !6, i64 4, !11, i64 8, !11, i64 16}
!21 = !{!"BusyHandler", !11, i64 0, !11, i64 8, !6, i64 16}
!22 = !{!23, !11, i64 112}
!23 = !{!"Table", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !6, i64 56, !6, i64 60, !6, i64 64, !13, i64 68, !13, i64 70, !13, i64 72, !13, i64 74, !7, i64 76, !6, i64 80, !6, i64 84, !11, i64 88, !11, i64 96, !11, i64 104, !11, i64 112, !11, i64 120}
!24 = !{!23, !11, i64 24}
!25 = !{!10, !6, i64 52}
!26 = !{!27, !6, i64 68}
!27 = !{!"SrcList_item", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !6, i64 48, !6, i64 52, !6, i64 56, !28, i64 60, !7, i64 64, !6, i64 68, !11, i64 72, !11, i64 80, !17, i64 88, !7, i64 96, !11, i64 104}
!28 = !{!"", !7, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1}
!29 = !{!23, !6, i64 64}
!30 = !{!11, !11, i64 0}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.mustprogress"}
!33 = !{!23, !13, i64 70}
!34 = !{!7, !7, i64 0}
!35 = !{!36, !11, i64 0}
!36 = !{!"NameContext", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !6, i64 40, !6, i64 44, !13, i64 48}
!37 = !{!36, !11, i64 8}
!38 = !{!39, !6, i64 0}
!39 = !{!"ExprList", !6, i64 0, !11, i64 8}
!40 = !{!39, !11, i64 8}
!41 = !{!42, !11, i64 0}
!42 = !{!"ExprList_item", !11, i64 0, !11, i64 8, !11, i64 16, !7, i64 24, !6, i64 25, !6, i64 25, !6, i64 25, !7, i64 28}
!43 = !{!23, !11, i64 8}
!44 = !{!45, !11, i64 0}
!45 = !{!"Column", !11, i64 0, !11, i64 8, !11, i64 16, !7, i64 24, !7, i64 25, !7, i64 26, !7, i64 27}
!46 = !{!42, !11, i64 8}
!47 = !{!23, !13, i64 68}
!48 = !{!45, !7, i64 27}
!49 = distinct !{!49, !32}
!50 = !{!10, !7, i64 29}
!51 = !{!23, !11, i64 0}
!52 = !{!16, !11, i64 32}
!53 = !{!54, !11, i64 0}
!54 = !{!"Db", !11, i64 0, !11, i64 8, !7, i64 16, !7, i64 17, !11, i64 24}
!55 = distinct !{!55, !32}
!56 = !{!23, !6, i64 84}
!57 = !{!27, !17, i64 88}
!58 = !{!59, !11, i64 72}
!59 = !{!"Index", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !6, i64 88, !13, i64 92, !13, i64 94, !13, i64 96, !7, i64 98, !6, i64 99, !6, i64 99, !6, i64 99, !6, i64 99, !6, i64 99, !6, i64 99, !6, i64 99}
!60 = !{!59, !13, i64 94}
!61 = !{!59, !11, i64 8}
!62 = !{!10, !6, i64 56}
!63 = !{!59, !13, i64 96}
!64 = distinct !{!64, !32}
!65 = !{!13, !13, i64 0}
!66 = !{!59, !7, i64 98}
!67 = distinct !{!67, !32}
!68 = !{!10, !7, i64 30}
!69 = !{!16, !6, i64 44}
!70 = !{!10, !11, i64 168}
!71 = distinct !{!71, !32}
!72 = distinct !{!72, !32}
!73 = distinct !{!73, !32}
!74 = distinct !{!74, !32}


; Effective O3 passes: ADCEPass,BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass