; LLVM IR from eProsima/Fast-DDS :: src/cpp/rtps/persistence (sqlite3)

; 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.et_info = type { i8, i8, i8, i8, i8, i8 }
%struct.FpDecode = type { i8, i8, i32, i32, ptr, [24 x i8] }
%struct.sqlite3_str = type { ptr, ptr, i32, i32, i32, i8, i8 }
%struct.__va_list_tag = type { i32, i32, ptr, ptr }
%struct.Expr = type { i8, i8, i8, i32, %union.anon.1, ptr, ptr, %union.anon.2, i32, i32, i16, i16, %union.anon.3, ptr, %union.anon.4 }
%union.anon.1 = type { ptr }
%union.anon.2 = type { ptr }
%union.anon.3 = type { i32 }
%union.anon.4 = type { ptr }
%struct.Token = type { ptr, i32 }
%struct.SrcItem = type { ptr, ptr, ptr, %struct.anon.5, i32, i64, %union.anon.6, %union.anon.7, %union.anon.8, %union.anon.9 }
%struct.anon.5 = type <{ i8, i16, i8 }>
%union.anon.6 = type { ptr }
%union.anon.7 = type { ptr }
%union.anon.8 = type { ptr }
%union.anon.9 = type { ptr }
%struct.Subquery = type { ptr, i32, i32, i32 }
%struct.Select = type { i8, i16, i32, i32, i32, i32, [2 x i32], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@fmtinfo = external hidden constant [23 x %struct.et_info], align 16
@sqlite3_str_vappendf.zOrd = external hidden constant [9 x i8], align 1
@aDigits = external hidden constant [33 x i8], align 16
@aPrefix = external hidden constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [14 x i8], align 1

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

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

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

78:                                               ; preds = %3
  %79 = load ptr, ptr %6, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.__va_list_tag, ptr %79, i32 0, i32 0
  %81 = load i32, ptr %80, align 8
  %82 = icmp ule i32 %81, 40
  br i1 %82, label %83, label %88

83:                                               ; preds = %78
  %84 = getelementptr inbounds %struct.__va_list_tag, ptr %79, i32 0, i32 3
  %85 = load ptr, ptr %84, align 8
  %86 = getelementptr i8, ptr %85, i32 %81
  %87 = add i32 %81, 8
  store i32 %87, ptr %80, align 8
  br label %92

88:                                               ; preds = %78
  %89 = getelementptr inbounds %struct.__va_list_tag, ptr %79, i32 0, i32 2
  %90 = load ptr, ptr %89, align 8
  %91 = getelementptr i8, ptr %90, i32 8
  store ptr %91, ptr %89, align 8
  br label %92

92:                                               ; preds = %88, %83
  %93 = phi ptr [ %86, %83 ], [ %90, %88 ]
  %94 = load ptr, ptr %93, align 8, !tbaa !5
  store ptr %94, ptr %34, align 8, !tbaa !5
  store i8 1, ptr %22, align 1, !tbaa !9
  br label %96

95:                                               ; preds = %3
  store i8 0, ptr %22, align 1, !tbaa !9
  br label %96

96:                                               ; preds = %95, %92
  br label %97

97:                                               ; preds = %2100, %96
  %98 = load ptr, ptr %5, align 8, !tbaa !5
  %99 = load i8, ptr %98, align 1, !tbaa !9
  %100 = sext i8 %99 to i32
  store i32 %100, ptr %7, align 4, !tbaa !13
  %101 = icmp ne i32 %100, 0
  br i1 %101, label %102, label %2103

102:                                              ; preds = %97
  %103 = load i32, ptr %7, align 4, !tbaa !13
  %104 = icmp ne i32 %103, 37
  br i1 %104, label %105, label %137

105:                                              ; preds = %102
  %106 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %106, ptr %8, align 8, !tbaa !5
  br label %107

107:                                              ; preds = %120, %105
  %108 = load ptr, ptr %5, align 8, !tbaa !5
  %109 = getelementptr inbounds i8, ptr %108, i32 1
  store ptr %109, ptr %5, align 8, !tbaa !5
  br label %110

110:                                              ; preds = %107
  %111 = load ptr, ptr %5, align 8, !tbaa !5
  %112 = load i8, ptr %111, align 1, !tbaa !9
  %113 = sext i8 %112 to i32
  %114 = icmp ne i32 %113, 0
  br i1 %114, label %115, label %120

115:                                              ; preds = %110
  %116 = load ptr, ptr %5, align 8, !tbaa !5
  %117 = load i8, ptr %116, align 1, !tbaa !9
  %118 = sext i8 %117 to i32
  %119 = icmp ne i32 %118, 37
  br label %120

120:                                              ; preds = %115, %110
  %121 = phi i1 [ false, %110 ], [ %119, %115 ]
  br i1 %121, label %107, label %122, !llvm.loop !14

122:                                              ; preds = %120
  %123 = load ptr, ptr %4, align 8, !tbaa !5
  %124 = load ptr, ptr %8, align 8, !tbaa !5
  %125 = load ptr, ptr %5, align 8, !tbaa !5
  %126 = load ptr, ptr %8, align 8, !tbaa !5
  %127 = ptrtoint ptr %125 to i64
  %128 = ptrtoint ptr %126 to i64
  %129 = sub i64 %127, %128
  %130 = trunc i64 %129 to i32
  call void @sqlite3_str_append(ptr noundef %123, ptr noundef %124, i32 noundef %130)
  %131 = load ptr, ptr %5, align 8, !tbaa !5
  %132 = load i8, ptr %131, align 1, !tbaa !9
  %133 = sext i8 %132 to i32
  %134 = icmp eq i32 %133, 0
  br i1 %134, label %135, label %136

135:                                              ; preds = %122
  br label %2103

136:                                              ; preds = %122
  br label %137

137:                                              ; preds = %136, %102
  %138 = load ptr, ptr %5, align 8, !tbaa !5
  %139 = getelementptr inbounds i8, ptr %138, i32 1
  store ptr %139, ptr %5, align 8, !tbaa !5
  %140 = load i8, ptr %139, align 1, !tbaa !9
  %141 = sext i8 %140 to i32
  store i32 %141, ptr %7, align 4, !tbaa !13
  %142 = icmp eq i32 %141, 0
  br i1 %142, label %143, label %145

143:                                              ; preds = %137
  %144 = load ptr, ptr %4, align 8, !tbaa !5
  call void @sqlite3_str_append(ptr noundef %144, ptr noundef @.str, i32 noundef 1)
  br label %2103

145:                                              ; preds = %137
  store i8 0, ptr %17, align 1, !tbaa !9
  store i8 0, ptr %16, align 1, !tbaa !9
  store i8 0, ptr %15, align 1, !tbaa !9
  store i8 0, ptr %20, align 1, !tbaa !9
  store i8 0, ptr %14, align 1, !tbaa !9
  store i8 0, ptr %13, align 1, !tbaa !9
  store i8 0, ptr %19, align 1, !tbaa !9
  store i32 0, ptr %12, align 4, !tbaa !13
  store i8 0, ptr %18, align 1, !tbaa !9
  store i32 -1, ptr %9, align 4, !tbaa !13
  br label %146

146:                                              ; preds = %341, %145
  %147 = load i32, ptr %7, align 4, !tbaa !13
  switch i32 %147, label %155 [
    i32 45, label %148
    i32 43, label %149
    i32 32, label %150
    i32 35, label %151
    i32 33, label %152
    i32 48, label %153
    i32 44, label %154
    i32 108, label %156
    i32 49, label %169
    i32 50, label %169
    i32 51, label %169
    i32 52, label %169
    i32 53, label %169
    i32 54, label %169
    i32 55, label %169
    i32 56, label %169
    i32 57, label %169
    i32 42, label %202
    i32 46, label %253
  ]

148:                                              ; preds = %146
  store i8 1, ptr %13, align 1, !tbaa !9
  br label %331

149:                                              ; preds = %146
  store i8 43, ptr %14, align 1, !tbaa !9
  br label %331

150:                                              ; preds = %146
  store i8 32, ptr %14, align 1, !tbaa !9
  br label %331

151:                                              ; preds = %146
  store i8 1, ptr %15, align 1, !tbaa !9
  br label %331

152:                                              ; preds = %146
  store i8 1, ptr %16, align 1, !tbaa !9
  br label %331

153:                                              ; preds = %146
  store i8 1, ptr %17, align 1, !tbaa !9
  br label %331

154:                                              ; preds = %146
  store i8 44, ptr %20, align 1, !tbaa !9
  br label %331

155:                                              ; preds = %146
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %331

156:                                              ; preds = %146
  store i8 1, ptr %18, align 1, !tbaa !9
  %157 = load ptr, ptr %5, align 8, !tbaa !5
  %158 = getelementptr inbounds i8, ptr %157, i32 1
  store ptr %158, ptr %5, align 8, !tbaa !5
  %159 = load i8, ptr %158, align 1, !tbaa !9
  %160 = sext i8 %159 to i32
  store i32 %160, ptr %7, align 4, !tbaa !13
  %161 = load i32, ptr %7, align 4, !tbaa !13
  %162 = icmp eq i32 %161, 108
  br i1 %162, label %163, label %168

163:                                              ; preds = %156
  %164 = load ptr, ptr %5, align 8, !tbaa !5
  %165 = getelementptr inbounds i8, ptr %164, i32 1
  store ptr %165, ptr %5, align 8, !tbaa !5
  %166 = load i8, ptr %165, align 1, !tbaa !9
  %167 = sext i8 %166 to i32
  store i32 %167, ptr %7, align 4, !tbaa !13
  store i8 2, ptr %18, align 1, !tbaa !9
  br label %168

168:                                              ; preds = %163, %156
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %331

169:                                              ; preds = %146, %146, %146, %146, %146, %146, %146, %146, %146
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  %170 = load i32, ptr %7, align 4, !tbaa !13
  %171 = sub nsw i32 %170, 48
  store i32 %171, ptr %36, align 4, !tbaa !13
  br label %172

172:                                              ; preds = %183, %169
  %173 = load ptr, ptr %5, align 8, !tbaa !5
  %174 = getelementptr inbounds i8, ptr %173, i32 1
  store ptr %174, ptr %5, align 8, !tbaa !5
  %175 = load i8, ptr %174, align 1, !tbaa !9
  %176 = sext i8 %175 to i32
  store i32 %176, ptr %7, align 4, !tbaa !13
  %177 = icmp sge i32 %176, 48
  br i1 %177, label %178, label %181

178:                                              ; preds = %172
  %179 = load i32, ptr %7, align 4, !tbaa !13
  %180 = icmp sle i32 %179, 57
  br label %181

181:                                              ; preds = %178, %172
  %182 = phi i1 [ false, %172 ], [ %180, %178 ]
  br i1 %182, label %183, label %189

183:                                              ; preds = %181
  %184 = load i32, ptr %36, align 4, !tbaa !13
  %185 = mul i32 %184, 10
  %186 = load i32, ptr %7, align 4, !tbaa !13
  %187 = add i32 %185, %186
  %188 = sub i32 %187, 48
  store i32 %188, ptr %36, align 4, !tbaa !13
  br label %172, !llvm.loop !16

189:                                              ; preds = %181
  %190 = load i32, ptr %36, align 4, !tbaa !13
  %191 = and i32 %190, 2147483647
  store i32 %191, ptr %12, align 4, !tbaa !13
  %192 = load i32, ptr %7, align 4, !tbaa !13
  %193 = icmp ne i32 %192, 46
  br i1 %193, label %194, label %198

194:                                              ; preds = %189
  %195 = load i32, ptr %7, align 4, !tbaa !13
  %196 = icmp ne i32 %195, 108
  br i1 %196, label %197, label %198

197:                                              ; preds = %194
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %201

198:                                              ; preds = %194, %189
  %199 = load ptr, ptr %5, align 8, !tbaa !5
  %200 = getelementptr inbounds i8, ptr %199, i32 -1
  store ptr %200, ptr %5, align 8, !tbaa !5
  br label %201

201:                                              ; preds = %198, %197
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  br label %331

202:                                              ; preds = %146
  %203 = load i8, ptr %22, align 1, !tbaa !9
  %204 = icmp ne i8 %203, 0
  br i1 %204, label %205, label %209

205:                                              ; preds = %202
  %206 = load ptr, ptr %34, align 8, !tbaa !5
  %207 = call i64 @getIntArg(ptr noundef %206)
  %208 = trunc i64 %207 to i32
  store i32 %208, ptr %12, align 4, !tbaa !13
  br label %226

209:                                              ; preds = %202
  %210 = load ptr, ptr %6, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.__va_list_tag, ptr %210, i32 0, i32 0
  %212 = load i32, ptr %211, align 8
  %213 = icmp ule i32 %212, 40
  br i1 %213, label %214, label %219

214:                                              ; preds = %209
  %215 = getelementptr inbounds %struct.__va_list_tag, ptr %210, i32 0, i32 3
  %216 = load ptr, ptr %215, align 8
  %217 = getelementptr i8, ptr %216, i32 %212
  %218 = add i32 %212, 8
  store i32 %218, ptr %211, align 8
  br label %223

219:                                              ; preds = %209
  %220 = getelementptr inbounds %struct.__va_list_tag, ptr %210, i32 0, i32 2
  %221 = load ptr, ptr %220, align 8
  %222 = getelementptr i8, ptr %221, i32 8
  store ptr %222, ptr %220, align 8
  br label %223

223:                                              ; preds = %219, %214
  %224 = phi ptr [ %217, %214 ], [ %221, %219 ]
  %225 = load i32, ptr %224, align 4, !tbaa !13
  store i32 %225, ptr %12, align 4, !tbaa !13
  br label %226

226:                                              ; preds = %223, %205
  %227 = load i32, ptr %12, align 4, !tbaa !13
  %228 = icmp slt i32 %227, 0
  br i1 %228, label %229, label %238

229:                                              ; preds = %226
  store i8 1, ptr %13, align 1, !tbaa !9
  %230 = load i32, ptr %12, align 4, !tbaa !13
  %231 = icmp sge i32 %230, -2147483647
  br i1 %231, label %232, label %235

232:                                              ; preds = %229
  %233 = load i32, ptr %12, align 4, !tbaa !13
  %234 = sub nsw i32 0, %233
  br label %236

235:                                              ; preds = %229
  br label %236

236:                                              ; preds = %235, %232
  %237 = phi i32 [ %234, %232 ], [ 0, %235 ]
  store i32 %237, ptr %12, align 4, !tbaa !13
  br label %238

238:                                              ; preds = %236, %226
  %239 = load ptr, ptr %5, align 8, !tbaa !5
  %240 = getelementptr inbounds i8, ptr %239, i64 1
  %241 = load i8, ptr %240, align 1, !tbaa !9
  %242 = sext i8 %241 to i32
  store i32 %242, ptr %7, align 4, !tbaa !13
  %243 = icmp ne i32 %242, 46
  br i1 %243, label %244, label %252

244:                                              ; preds = %238
  %245 = load i32, ptr %7, align 4, !tbaa !13
  %246 = icmp ne i32 %245, 108
  br i1 %246, label %247, label %252

247:                                              ; preds = %244
  %248 = load ptr, ptr %5, align 8, !tbaa !5
  %249 = getelementptr inbounds i8, ptr %248, i32 1
  store ptr %249, ptr %5, align 8, !tbaa !5
  %250 = load i8, ptr %249, align 1, !tbaa !9
  %251 = sext i8 %250 to i32
  store i32 %251, ptr %7, align 4, !tbaa !13
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %252

252:                                              ; preds = %247, %244, %238
  br label %331

253:                                              ; preds = %146
  %254 = load ptr, ptr %5, align 8, !tbaa !5
  %255 = getelementptr inbounds i8, ptr %254, i32 1
  store ptr %255, ptr %5, align 8, !tbaa !5
  %256 = load i8, ptr %255, align 1, !tbaa !9
  %257 = sext i8 %256 to i32
  store i32 %257, ptr %7, align 4, !tbaa !13
  %258 = load i32, ptr %7, align 4, !tbaa !13
  %259 = icmp eq i32 %258, 42
  br i1 %259, label %260, label %301

260:                                              ; preds = %253
  %261 = load i8, ptr %22, align 1, !tbaa !9
  %262 = icmp ne i8 %261, 0
  br i1 %262, label %263, label %267

263:                                              ; preds = %260
  %264 = load ptr, ptr %34, align 8, !tbaa !5
  %265 = call i64 @getIntArg(ptr noundef %264)
  %266 = trunc i64 %265 to i32
  store i32 %266, ptr %9, align 4, !tbaa !13
  br label %284

267:                                              ; preds = %260
  %268 = load ptr, ptr %6, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.__va_list_tag, ptr %268, i32 0, i32 0
  %270 = load i32, ptr %269, align 8
  %271 = icmp ule i32 %270, 40
  br i1 %271, label %272, label %277

272:                                              ; preds = %267
  %273 = getelementptr inbounds %struct.__va_list_tag, ptr %268, i32 0, i32 3
  %274 = load ptr, ptr %273, align 8
  %275 = getelementptr i8, ptr %274, i32 %270
  %276 = add i32 %270, 8
  store i32 %276, ptr %269, align 8
  br label %281

277:                                              ; preds = %267
  %278 = getelementptr inbounds %struct.__va_list_tag, ptr %268, i32 0, i32 2
  %279 = load ptr, ptr %278, align 8
  %280 = getelementptr i8, ptr %279, i32 8
  store ptr %280, ptr %278, align 8
  br label %281

281:                                              ; preds = %277, %272
  %282 = phi ptr [ %275, %272 ], [ %279, %277 ]
  %283 = load i32, ptr %282, align 4, !tbaa !13
  store i32 %283, ptr %9, align 4, !tbaa !13
  br label %284

284:                                              ; preds = %281, %263
  %285 = load i32, ptr %9, align 4, !tbaa !13
  %286 = icmp slt i32 %285, 0
  br i1 %286, label %287, label %296

287:                                              ; preds = %284
  %288 = load i32, ptr %9, align 4, !tbaa !13
  %289 = icmp sge i32 %288, -2147483647
  br i1 %289, label %290, label %293

290:                                              ; preds = %287
  %291 = load i32, ptr %9, align 4, !tbaa !13
  %292 = sub nsw i32 0, %291
  br label %294

293:                                              ; preds = %287
  br label %294

294:                                              ; preds = %293, %290
  %295 = phi i32 [ %292, %290 ], [ -1, %293 ]
  store i32 %295, ptr %9, align 4, !tbaa !13
  br label %296

296:                                              ; preds = %294, %284
  %297 = load ptr, ptr %5, align 8, !tbaa !5
  %298 = getelementptr inbounds i8, ptr %297, i32 1
  store ptr %298, ptr %5, align 8, !tbaa !5
  %299 = load i8, ptr %298, align 1, !tbaa !9
  %300 = sext i8 %299 to i32
  store i32 %300, ptr %7, align 4, !tbaa !13
  br label %323

301:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #4
  store i32 0, ptr %37, align 4, !tbaa !13
  br label %302

302:                                              ; preds = %310, %301
  %303 = load i32, ptr %7, align 4, !tbaa !13
  %304 = icmp sge i32 %303, 48
  br i1 %304, label %305, label %308

305:                                              ; preds = %302
  %306 = load i32, ptr %7, align 4, !tbaa !13
  %307 = icmp sle i32 %306, 57
  br label %308

308:                                              ; preds = %305, %302
  %309 = phi i1 [ false, %302 ], [ %307, %305 ]
  br i1 %309, label %310, label %320

310:                                              ; preds = %308
  %311 = load i32, ptr %37, align 4, !tbaa !13
  %312 = mul i32 %311, 10
  %313 = load i32, ptr %7, align 4, !tbaa !13
  %314 = add i32 %312, %313
  %315 = sub i32 %314, 48
  store i32 %315, ptr %37, align 4, !tbaa !13
  %316 = load ptr, ptr %5, align 8, !tbaa !5
  %317 = getelementptr inbounds i8, ptr %316, i32 1
  store ptr %317, ptr %5, align 8, !tbaa !5
  %318 = load i8, ptr %317, align 1, !tbaa !9
  %319 = sext i8 %318 to i32
  store i32 %319, ptr %7, align 4, !tbaa !13
  br label %302, !llvm.loop !17

320:                                              ; preds = %308
  %321 = load i32, ptr %37, align 4, !tbaa !13
  %322 = and i32 %321, 2147483647
  store i32 %322, ptr %9, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  br label %323

323:                                              ; preds = %320, %296
  %324 = load i32, ptr %7, align 4, !tbaa !13
  %325 = icmp eq i32 %324, 108
  br i1 %325, label %326, label %329

326:                                              ; preds = %323
  %327 = load ptr, ptr %5, align 8, !tbaa !5
  %328 = getelementptr inbounds i8, ptr %327, i32 -1
  store ptr %328, ptr %5, align 8, !tbaa !5
  br label %330

329:                                              ; preds = %323
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %330

330:                                              ; preds = %329, %326
  br label %331

331:                                              ; preds = %330, %252, %201, %168, %155, %154, %153, %152, %151, %150, %149, %148
  br label %332

332:                                              ; preds = %331
  %333 = load i8, ptr %19, align 1, !tbaa !9
  %334 = icmp ne i8 %333, 0
  br i1 %334, label %341, label %335

335:                                              ; preds = %332
  %336 = load ptr, ptr %5, align 8, !tbaa !5
  %337 = getelementptr inbounds i8, ptr %336, i32 1
  store ptr %337, ptr %5, align 8, !tbaa !5
  %338 = load i8, ptr %337, align 1, !tbaa !9
  %339 = sext i8 %338 to i32
  store i32 %339, ptr %7, align 4, !tbaa !13
  %340 = icmp ne i32 %339, 0
  br label %341

341:                                              ; preds = %335, %332
  %342 = phi i1 [ false, %332 ], [ %340, %335 ]
  br i1 %342, label %146, label %343, !llvm.loop !18

343:                                              ; preds = %341
  store ptr @fmtinfo, ptr %26, align 8, !tbaa !5
  store i8 17, ptr %21, align 1, !tbaa !9
  store i32 0, ptr %11, align 4, !tbaa !13
  br label %344

344:                                              ; preds = %364, %343
  %345 = load i32, ptr %11, align 4, !tbaa !13
  %346 = icmp slt i32 %345, 23
  br i1 %346, label %347, label %367

347:                                              ; preds = %344
  %348 = load i32, ptr %7, align 4, !tbaa !13
  %349 = load i32, ptr %11, align 4, !tbaa !13
  %350 = sext i32 %349 to i64
  %351 = getelementptr inbounds [23 x %struct.et_info], ptr @fmtinfo, i64 0, i64 %350
  %352 = getelementptr inbounds %struct.et_info, ptr %351, i32 0, i32 0
  %353 = load i8, ptr %352, align 2, !tbaa !19
  %354 = sext i8 %353 to i32
  %355 = icmp eq i32 %348, %354
  br i1 %355, label %356, label %363

356:                                              ; preds = %347
  %357 = load i32, ptr %11, align 4, !tbaa !13
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds [23 x %struct.et_info], ptr @fmtinfo, i64 0, i64 %358
  store ptr %359, ptr %26, align 8, !tbaa !5
  %360 = load ptr, ptr %26, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.et_info, ptr %360, i32 0, i32 3
  %362 = load i8, ptr %361, align 1, !tbaa !21
  store i8 %362, ptr %21, align 1, !tbaa !9
  br label %367

363:                                              ; preds = %347
  br label %364

364:                                              ; preds = %363
  %365 = load i32, ptr %11, align 4, !tbaa !13
  %366 = add nsw i32 %365, 1
  store i32 %366, ptr %11, align 4, !tbaa !13
  br label %344, !llvm.loop !22

367:                                              ; preds = %356, %344
  %368 = load i8, ptr %21, align 1, !tbaa !9
  %369 = zext i8 %368 to i32
  switch i32 %369, label %2064 [
    i32 13, label %370
    i32 15, label %371
    i32 0, label %371
    i32 16, label %372
    i32 1, label %759
    i32 2, label %759
    i32 3, label %759
    i32 4, label %1223
    i32 7, label %1247
    i32 8, label %1250
    i32 5, label %1488
    i32 6, label %1488
    i32 9, label %1668
    i32 10, label %1668
    i32 14, label %1668
    i32 11, label %1844
    i32 12, label %1930
  ]

370:                                              ; preds = %367
  store i8 2, ptr %18, align 1, !tbaa !9
  br label %371

371:                                              ; preds = %370, %367, %367
  store i8 0, ptr %20, align 1, !tbaa !9
  br label %372

372:                                              ; preds = %371, %367
  %373 = load ptr, ptr %26, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.et_info, ptr %373, i32 0, i32 2
  %375 = load i8, ptr %374, align 1, !tbaa !23
  %376 = zext i8 %375 to i32
  %377 = and i32 %376, 1
  %378 = icmp ne i32 %377, 0
  br i1 %378, label %379, label %458

379:                                              ; preds = %372
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #4
  %380 = load i8, ptr %22, align 1, !tbaa !9
  %381 = icmp ne i8 %380, 0
  br i1 %381, label %382, label %385

382:                                              ; preds = %379
  %383 = load ptr, ptr %34, align 8, !tbaa !5
  %384 = call i64 @getIntArg(ptr noundef %383)
  store i64 %384, ptr %38, align 8, !tbaa !24
  br label %446

385:                                              ; preds = %379
  %386 = load i8, ptr %18, align 1, !tbaa !9
  %387 = icmp ne i8 %386, 0
  br i1 %387, label %388, label %427

388:                                              ; preds = %385
  %389 = load i8, ptr %18, align 1, !tbaa !9
  %390 = zext i8 %389 to i32
  %391 = icmp eq i32 %390, 2
  br i1 %391, label %392, label %409

392:                                              ; preds = %388
  %393 = load ptr, ptr %6, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.__va_list_tag, ptr %393, i32 0, i32 0
  %395 = load i32, ptr %394, align 8
  %396 = icmp ule i32 %395, 40
  br i1 %396, label %397, label %402

397:                                              ; preds = %392
  %398 = getelementptr inbounds %struct.__va_list_tag, ptr %393, i32 0, i32 3
  %399 = load ptr, ptr %398, align 8
  %400 = getelementptr i8, ptr %399, i32 %395
  %401 = add i32 %395, 8
  store i32 %401, ptr %394, align 8
  br label %406

402:                                              ; preds = %392
  %403 = getelementptr inbounds %struct.__va_list_tag, ptr %393, i32 0, i32 2
  %404 = load ptr, ptr %403, align 8
  %405 = getelementptr i8, ptr %404, i32 8
  store ptr %405, ptr %403, align 8
  br label %406

406:                                              ; preds = %402, %397
  %407 = phi ptr [ %400, %397 ], [ %404, %402 ]
  %408 = load i64, ptr %407, align 8, !tbaa !24
  store i64 %408, ptr %38, align 8, !tbaa !24
  br label %426

409:                                              ; preds = %388
  %410 = load ptr, ptr %6, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.__va_list_tag, ptr %410, i32 0, i32 0
  %412 = load i32, ptr %411, align 8
  %413 = icmp ule i32 %412, 40
  br i1 %413, label %414, label %419

414:                                              ; preds = %409
  %415 = getelementptr inbounds %struct.__va_list_tag, ptr %410, i32 0, i32 3
  %416 = load ptr, ptr %415, align 8
  %417 = getelementptr i8, ptr %416, i32 %412
  %418 = add i32 %412, 8
  store i32 %418, ptr %411, align 8
  br label %423

419:                                              ; preds = %409
  %420 = getelementptr inbounds %struct.__va_list_tag, ptr %410, i32 0, i32 2
  %421 = load ptr, ptr %420, align 8
  %422 = getelementptr i8, ptr %421, i32 8
  store ptr %422, ptr %420, align 8
  br label %423

423:                                              ; preds = %419, %414
  %424 = phi ptr [ %417, %414 ], [ %421, %419 ]
  %425 = load i64, ptr %424, align 8, !tbaa !26
  store i64 %425, ptr %38, align 8, !tbaa !24
  br label %426

426:                                              ; preds = %423, %406
  br label %445

427:                                              ; preds = %385
  %428 = load ptr, ptr %6, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.__va_list_tag, ptr %428, i32 0, i32 0
  %430 = load i32, ptr %429, align 8
  %431 = icmp ule i32 %430, 40
  br i1 %431, label %432, label %437

432:                                              ; preds = %427
  %433 = getelementptr inbounds %struct.__va_list_tag, ptr %428, i32 0, i32 3
  %434 = load ptr, ptr %433, align 8
  %435 = getelementptr i8, ptr %434, i32 %430
  %436 = add i32 %430, 8
  store i32 %436, ptr %429, align 8
  br label %441

437:                                              ; preds = %427
  %438 = getelementptr inbounds %struct.__va_list_tag, ptr %428, i32 0, i32 2
  %439 = load ptr, ptr %438, align 8
  %440 = getelementptr i8, ptr %439, i32 8
  store ptr %440, ptr %438, align 8
  br label %441

441:                                              ; preds = %437, %432
  %442 = phi ptr [ %435, %432 ], [ %439, %437 ]
  %443 = load i32, ptr %442, align 4, !tbaa !13
  %444 = sext i32 %443 to i64
  store i64 %444, ptr %38, align 8, !tbaa !24
  br label %445

445:                                              ; preds = %441, %426
  br label %446

446:                                              ; preds = %445, %382
  %447 = load i64, ptr %38, align 8, !tbaa !24
  %448 = icmp slt i64 %447, 0
  br i1 %448, label %449, label %454

449:                                              ; preds = %446
  %450 = load i64, ptr %38, align 8, !tbaa !24
  %451 = xor i64 %450, -1
  store i64 %451, ptr %24, align 8, !tbaa !24
  %452 = load i64, ptr %24, align 8, !tbaa !24
  %453 = add i64 %452, 1
  store i64 %453, ptr %24, align 8, !tbaa !24
  store i8 45, ptr %23, align 1, !tbaa !9
  br label %457

454:                                              ; preds = %446
  %455 = load i64, ptr %38, align 8, !tbaa !24
  store i64 %455, ptr %24, align 8, !tbaa !24
  %456 = load i8, ptr %14, align 1, !tbaa !9
  store i8 %456, ptr %23, align 1, !tbaa !9
  br label %457

457:                                              ; preds = %454, %449
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  br label %526

458:                                              ; preds = %372
  %459 = load i8, ptr %22, align 1, !tbaa !9
  %460 = icmp ne i8 %459, 0
  br i1 %460, label %461, label %464

461:                                              ; preds = %458
  %462 = load ptr, ptr %34, align 8, !tbaa !5
  %463 = call i64 @getIntArg(ptr noundef %462)
  store i64 %463, ptr %24, align 8, !tbaa !24
  br label %525

464:                                              ; preds = %458
  %465 = load i8, ptr %18, align 1, !tbaa !9
  %466 = icmp ne i8 %465, 0
  br i1 %466, label %467, label %506

467:                                              ; preds = %464
  %468 = load i8, ptr %18, align 1, !tbaa !9
  %469 = zext i8 %468 to i32
  %470 = icmp eq i32 %469, 2
  br i1 %470, label %471, label %488

471:                                              ; preds = %467
  %472 = load ptr, ptr %6, align 8, !tbaa !5
  %473 = getelementptr inbounds %struct.__va_list_tag, ptr %472, i32 0, i32 0
  %474 = load i32, ptr %473, align 8
  %475 = icmp ule i32 %474, 40
  br i1 %475, label %476, label %481

476:                                              ; preds = %471
  %477 = getelementptr inbounds %struct.__va_list_tag, ptr %472, i32 0, i32 3
  %478 = load ptr, ptr %477, align 8
  %479 = getelementptr i8, ptr %478, i32 %474
  %480 = add i32 %474, 8
  store i32 %480, ptr %473, align 8
  br label %485

481:                                              ; preds = %471
  %482 = getelementptr inbounds %struct.__va_list_tag, ptr %472, i32 0, i32 2
  %483 = load ptr, ptr %482, align 8
  %484 = getelementptr i8, ptr %483, i32 8
  store ptr %484, ptr %482, align 8
  br label %485

485:                                              ; preds = %481, %476
  %486 = phi ptr [ %479, %476 ], [ %483, %481 ]
  %487 = load i64, ptr %486, align 8, !tbaa !24
  store i64 %487, ptr %24, align 8, !tbaa !24
  br label %505

488:                                              ; preds = %467
  %489 = load ptr, ptr %6, align 8, !tbaa !5
  %490 = getelementptr inbounds %struct.__va_list_tag, ptr %489, i32 0, i32 0
  %491 = load i32, ptr %490, align 8
  %492 = icmp ule i32 %491, 40
  br i1 %492, label %493, label %498

493:                                              ; preds = %488
  %494 = getelementptr inbounds %struct.__va_list_tag, ptr %489, i32 0, i32 3
  %495 = load ptr, ptr %494, align 8
  %496 = getelementptr i8, ptr %495, i32 %491
  %497 = add i32 %491, 8
  store i32 %497, ptr %490, align 8
  br label %502

498:                                              ; preds = %488
  %499 = getelementptr inbounds %struct.__va_list_tag, ptr %489, i32 0, i32 2
  %500 = load ptr, ptr %499, align 8
  %501 = getelementptr i8, ptr %500, i32 8
  store ptr %501, ptr %499, align 8
  br label %502

502:                                              ; preds = %498, %493
  %503 = phi ptr [ %496, %493 ], [ %500, %498 ]
  %504 = load i64, ptr %503, align 8, !tbaa !26
  store i64 %504, ptr %24, align 8, !tbaa !24
  br label %505

505:                                              ; preds = %502, %485
  br label %524

506:                                              ; preds = %464
  %507 = load ptr, ptr %6, align 8, !tbaa !5
  %508 = getelementptr inbounds %struct.__va_list_tag, ptr %507, i32 0, i32 0
  %509 = load i32, ptr %508, align 8
  %510 = icmp ule i32 %509, 40
  br i1 %510, label %511, label %516

511:                                              ; preds = %506
  %512 = getelementptr inbounds %struct.__va_list_tag, ptr %507, i32 0, i32 3
  %513 = load ptr, ptr %512, align 8
  %514 = getelementptr i8, ptr %513, i32 %509
  %515 = add i32 %509, 8
  store i32 %515, ptr %508, align 8
  br label %520

516:                                              ; preds = %506
  %517 = getelementptr inbounds %struct.__va_list_tag, ptr %507, i32 0, i32 2
  %518 = load ptr, ptr %517, align 8
  %519 = getelementptr i8, ptr %518, i32 8
  store ptr %519, ptr %517, align 8
  br label %520

520:                                              ; preds = %516, %511
  %521 = phi ptr [ %514, %511 ], [ %518, %516 ]
  %522 = load i32, ptr %521, align 4, !tbaa !13
  %523 = zext i32 %522 to i64
  store i64 %523, ptr %24, align 8, !tbaa !24
  br label %524

524:                                              ; preds = %520, %505
  br label %525

525:                                              ; preds = %524, %461
  store i8 0, ptr %23, align 1, !tbaa !9
  br label %526

526:                                              ; preds = %525, %457
  %527 = load i64, ptr %24, align 8, !tbaa !24
  %528 = icmp eq i64 %527, 0
  br i1 %528, label %529, label %530

529:                                              ; preds = %526
  store i8 0, ptr %15, align 1, !tbaa !9
  br label %530

530:                                              ; preds = %529, %526
  %531 = load i8, ptr %17, align 1, !tbaa !9
  %532 = zext i8 %531 to i32
  %533 = icmp ne i32 %532, 0
  br i1 %533, label %534, label %550

534:                                              ; preds = %530
  %535 = load i32, ptr %9, align 4, !tbaa !13
  %536 = load i32, ptr %12, align 4, !tbaa !13
  %537 = load i8, ptr %23, align 1, !tbaa !9
  %538 = sext i8 %537 to i32
  %539 = icmp ne i32 %538, 0
  %540 = zext i1 %539 to i32
  %541 = sub nsw i32 %536, %540
  %542 = icmp slt i32 %535, %541
  br i1 %542, label %543, label %550

543:                                              ; preds = %534
  %544 = load i32, ptr %12, align 4, !tbaa !13
  %545 = load i8, ptr %23, align 1, !tbaa !9
  %546 = sext i8 %545 to i32
  %547 = icmp ne i32 %546, 0
  %548 = zext i1 %547 to i32
  %549 = sub nsw i32 %544, %548
  store i32 %549, ptr %9, align 4, !tbaa !13
  br label %550

550:                                              ; preds = %543, %534, %530
  %551 = load i32, ptr %9, align 4, !tbaa !13
  %552 = icmp slt i32 %551, 37
  br i1 %552, label %553, label %555

553:                                              ; preds = %550
  store i32 70, ptr %28, align 4, !tbaa !13
  %554 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store ptr %554, ptr %27, align 8, !tbaa !5
  br label %580

555:                                              ; preds = %550
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #4
  %556 = load i32, ptr %9, align 4, !tbaa !13
  %557 = sext i32 %556 to i64
  %558 = add i64 %557, 10
  store i64 %558, ptr %39, align 8, !tbaa !24
  %559 = load i8, ptr %20, align 1, !tbaa !9
  %560 = icmp ne i8 %559, 0
  br i1 %560, label %561, label %567

561:                                              ; preds = %555
  %562 = load i32, ptr %9, align 4, !tbaa !13
  %563 = sdiv i32 %562, 3
  %564 = sext i32 %563 to i64
  %565 = load i64, ptr %39, align 8, !tbaa !24
  %566 = add i64 %565, %564
  store i64 %566, ptr %39, align 8, !tbaa !24
  br label %567

567:                                              ; preds = %561, %555
  %568 = load ptr, ptr %4, align 8, !tbaa !5
  %569 = load i64, ptr %39, align 8, !tbaa !24
  %570 = call ptr @printfTempBuf(ptr noundef %568, i64 noundef %569)
  store ptr %570, ptr %29, align 8, !tbaa !5
  store ptr %570, ptr %27, align 8, !tbaa !5
  %571 = load ptr, ptr %27, align 8, !tbaa !5
  %572 = icmp eq ptr %571, null
  br i1 %572, label %573, label %574

573:                                              ; preds = %567
  store i32 1, ptr %40, align 4
  br label %577

574:                                              ; preds = %567
  %575 = load i64, ptr %39, align 8, !tbaa !24
  %576 = trunc i64 %575 to i32
  store i32 %576, ptr %28, align 4, !tbaa !13
  store i32 0, ptr %40, align 4
  br label %577

577:                                              ; preds = %574, %573
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  %578 = load i32, ptr %40, align 4
  switch i32 %578, label %2104 [
    i32 0, label %579
  ]

579:                                              ; preds = %577
  br label %580

580:                                              ; preds = %579, %553
  %581 = load ptr, ptr %27, align 8, !tbaa !5
  %582 = load i32, ptr %28, align 4, !tbaa !13
  %583 = sub nsw i32 %582, 1
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds i8, ptr %581, i64 %584
  store ptr %585, ptr %8, align 8, !tbaa !5
  %586 = load i8, ptr %21, align 1, !tbaa !9
  %587 = zext i8 %586 to i32
  %588 = icmp eq i32 %587, 15
  br i1 %588, label %589, label %617

589:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  %590 = load i64, ptr %24, align 8, !tbaa !24
  %591 = urem i64 %590, 10
  %592 = trunc i64 %591 to i32
  store i32 %592, ptr %41, align 4, !tbaa !13
  %593 = load i32, ptr %41, align 4, !tbaa !13
  %594 = icmp sge i32 %593, 4
  br i1 %594, label %600, label %595

595:                                              ; preds = %589
  %596 = load i64, ptr %24, align 8, !tbaa !24
  %597 = udiv i64 %596, 10
  %598 = urem i64 %597, 10
  %599 = icmp eq i64 %598, 1
  br i1 %599, label %600, label %601

600:                                              ; preds = %595, %589
  store i32 0, ptr %41, align 4, !tbaa !13
  br label %601

601:                                              ; preds = %600, %595
  %602 = load i32, ptr %41, align 4, !tbaa !13
  %603 = mul nsw i32 %602, 2
  %604 = add nsw i32 %603, 1
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds [9 x i8], ptr @sqlite3_str_vappendf.zOrd, i64 0, i64 %605
  %607 = load i8, ptr %606, align 1, !tbaa !9
  %608 = load ptr, ptr %8, align 8, !tbaa !5
  %609 = getelementptr inbounds i8, ptr %608, i32 -1
  store ptr %609, ptr %8, align 8, !tbaa !5
  store i8 %607, ptr %609, align 1, !tbaa !9
  %610 = load i32, ptr %41, align 4, !tbaa !13
  %611 = mul nsw i32 %610, 2
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds [9 x i8], ptr @sqlite3_str_vappendf.zOrd, i64 0, i64 %612
  %614 = load i8, ptr %613, align 1, !tbaa !9
  %615 = load ptr, ptr %8, align 8, !tbaa !5
  %616 = getelementptr inbounds i8, ptr %615, i32 -1
  store ptr %616, ptr %8, align 8, !tbaa !5
  store i8 %614, ptr %616, align 1, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  br label %617

617:                                              ; preds = %601, %580
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #4
  %618 = load ptr, ptr %26, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.et_info, ptr %618, i32 0, i32 4
  %620 = load i8, ptr %619, align 1, !tbaa !28
  %621 = zext i8 %620 to i64
  %622 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %621
  store ptr %622, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #4
  %623 = load ptr, ptr %26, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.et_info, ptr %623, i32 0, i32 1
  %625 = load i8, ptr %624, align 1, !tbaa !29
  store i8 %625, ptr %43, align 1, !tbaa !9
  br label %626

626:                                              ; preds = %640, %617
  %627 = load ptr, ptr %42, align 8, !tbaa !5
  %628 = load i64, ptr %24, align 8, !tbaa !24
  %629 = load i8, ptr %43, align 1, !tbaa !9
  %630 = zext i8 %629 to i64
  %631 = urem i64 %628, %630
  %632 = getelementptr inbounds i8, ptr %627, i64 %631
  %633 = load i8, ptr %632, align 1, !tbaa !9
  %634 = load ptr, ptr %8, align 8, !tbaa !5
  %635 = getelementptr inbounds i8, ptr %634, i32 -1
  store ptr %635, ptr %8, align 8, !tbaa !5
  store i8 %633, ptr %635, align 1, !tbaa !9
  %636 = load i64, ptr %24, align 8, !tbaa !24
  %637 = load i8, ptr %43, align 1, !tbaa !9
  %638 = zext i8 %637 to i64
  %639 = udiv i64 %636, %638
  store i64 %639, ptr %24, align 8, !tbaa !24
  br label %640

640:                                              ; preds = %626
  %641 = load i64, ptr %24, align 8, !tbaa !24
  %642 = icmp ugt i64 %641, 0
  br i1 %642, label %626, label %643, !llvm.loop !30

643:                                              ; preds = %640
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  %644 = load ptr, ptr %27, align 8, !tbaa !5
  %645 = load i32, ptr %28, align 4, !tbaa !13
  %646 = sub nsw i32 %645, 1
  %647 = sext i32 %646 to i64
  %648 = getelementptr inbounds i8, ptr %644, i64 %647
  %649 = load ptr, ptr %8, align 8, !tbaa !5
  %650 = ptrtoint ptr %648 to i64
  %651 = ptrtoint ptr %649 to i64
  %652 = sub i64 %650, %651
  %653 = trunc i64 %652 to i32
  store i32 %653, ptr %10, align 4, !tbaa !13
  br label %654

654:                                              ; preds = %658, %643
  %655 = load i32, ptr %9, align 4, !tbaa !13
  %656 = load i32, ptr %10, align 4, !tbaa !13
  %657 = icmp sgt i32 %655, %656
  br i1 %657, label %658, label %663

658:                                              ; preds = %654
  %659 = load ptr, ptr %8, align 8, !tbaa !5
  %660 = getelementptr inbounds i8, ptr %659, i32 -1
  store ptr %660, ptr %8, align 8, !tbaa !5
  store i8 48, ptr %660, align 1, !tbaa !9
  %661 = load i32, ptr %10, align 4, !tbaa !13
  %662 = add nsw i32 %661, 1
  store i32 %662, ptr %10, align 4, !tbaa !13
  br label %654, !llvm.loop !31

663:                                              ; preds = %654
  %664 = load i8, ptr %20, align 1, !tbaa !9
  %665 = icmp ne i8 %664, 0
  br i1 %665, label %666, label %712

666:                                              ; preds = %663
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #4
  %667 = load i32, ptr %10, align 4, !tbaa !13
  %668 = sub nsw i32 %667, 1
  %669 = sdiv i32 %668, 3
  store i32 %669, ptr %44, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #4
  %670 = load i32, ptr %10, align 4, !tbaa !13
  %671 = sub nsw i32 %670, 1
  %672 = srem i32 %671, 3
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr %45, align 4, !tbaa !13
  %674 = load i32, ptr %44, align 4, !tbaa !13
  %675 = load ptr, ptr %8, align 8, !tbaa !5
  %676 = sext i32 %674 to i64
  %677 = sub i64 0, %676
  %678 = getelementptr inbounds i8, ptr %675, i64 %677
  store ptr %678, ptr %8, align 8, !tbaa !5
  store i32 0, ptr %11, align 4, !tbaa !13
  br label %679

679:                                              ; preds = %708, %666
  %680 = load i32, ptr %44, align 4, !tbaa !13
  %681 = icmp sgt i32 %680, 0
  br i1 %681, label %682, label %711

682:                                              ; preds = %679
  %683 = load ptr, ptr %8, align 8, !tbaa !5
  %684 = load i32, ptr %11, align 4, !tbaa !13
  %685 = load i32, ptr %44, align 4, !tbaa !13
  %686 = add nsw i32 %684, %685
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds i8, ptr %683, i64 %687
  %689 = load i8, ptr %688, align 1, !tbaa !9
  %690 = load ptr, ptr %8, align 8, !tbaa !5
  %691 = load i32, ptr %11, align 4, !tbaa !13
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds i8, ptr %690, i64 %692
  store i8 %689, ptr %693, align 1, !tbaa !9
  %694 = load i32, ptr %45, align 4, !tbaa !13
  %695 = add nsw i32 %694, -1
  store i32 %695, ptr %45, align 4, !tbaa !13
  %696 = load i32, ptr %45, align 4, !tbaa !13
  %697 = icmp eq i32 %696, 0
  br i1 %697, label %698, label %707

698:                                              ; preds = %682
  %699 = load i8, ptr %20, align 1, !tbaa !9
  %700 = load ptr, ptr %8, align 8, !tbaa !5
  %701 = load i32, ptr %11, align 4, !tbaa !13
  %702 = add nsw i32 %701, 1
  store i32 %702, ptr %11, align 4, !tbaa !13
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds i8, ptr %700, i64 %703
  store i8 %699, ptr %704, align 1, !tbaa !9
  %705 = load i32, ptr %44, align 4, !tbaa !13
  %706 = add nsw i32 %705, -1
  store i32 %706, ptr %44, align 4, !tbaa !13
  store i32 3, ptr %45, align 4, !tbaa !13
  br label %707

707:                                              ; preds = %698, %682
  br label %708

708:                                              ; preds = %707
  %709 = load i32, ptr %11, align 4, !tbaa !13
  %710 = add nsw i32 %709, 1
  store i32 %710, ptr %11, align 4, !tbaa !13
  br label %679, !llvm.loop !32

711:                                              ; preds = %679
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  br label %712

712:                                              ; preds = %711, %663
  %713 = load i8, ptr %23, align 1, !tbaa !9
  %714 = icmp ne i8 %713, 0
  br i1 %714, label %715, label %719

715:                                              ; preds = %712
  %716 = load i8, ptr %23, align 1, !tbaa !9
  %717 = load ptr, ptr %8, align 8, !tbaa !5
  %718 = getelementptr inbounds i8, ptr %717, i32 -1
  store ptr %718, ptr %8, align 8, !tbaa !5
  store i8 %716, ptr %718, align 1, !tbaa !9
  br label %719

719:                                              ; preds = %715, %712
  %720 = load i8, ptr %15, align 1, !tbaa !9
  %721 = zext i8 %720 to i32
  %722 = icmp ne i32 %721, 0
  br i1 %722, label %723, label %748

723:                                              ; preds = %719
  %724 = load ptr, ptr %26, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.et_info, ptr %724, i32 0, i32 5
  %726 = load i8, ptr %725, align 1, !tbaa !33
  %727 = zext i8 %726 to i32
  %728 = icmp ne i32 %727, 0
  br i1 %728, label %729, label %748

729:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #4
  %730 = load ptr, ptr %26, align 8, !tbaa !5
  %731 = getelementptr inbounds %struct.et_info, ptr %730, i32 0, i32 5
  %732 = load i8, ptr %731, align 1, !tbaa !33
  %733 = zext i8 %732 to i64
  %734 = getelementptr inbounds [7 x i8], ptr @aPrefix, i64 0, i64 %733
  store ptr %734, ptr %46, align 8, !tbaa !5
  br label %735

735:                                              ; preds = %744, %729
  %736 = load ptr, ptr %46, align 8, !tbaa !5
  %737 = load i8, ptr %736, align 1, !tbaa !9
  store i8 %737, ptr %47, align 1, !tbaa !9
  %738 = sext i8 %737 to i32
  %739 = icmp ne i32 %738, 0
  br i1 %739, label %740, label %747

740:                                              ; preds = %735
  %741 = load i8, ptr %47, align 1, !tbaa !9
  %742 = load ptr, ptr %8, align 8, !tbaa !5
  %743 = getelementptr inbounds i8, ptr %742, i32 -1
  store ptr %743, ptr %8, align 8, !tbaa !5
  store i8 %741, ptr %743, align 1, !tbaa !9
  br label %744

744:                                              ; preds = %740
  %745 = load ptr, ptr %46, align 8, !tbaa !5
  %746 = getelementptr inbounds i8, ptr %745, i32 1
  store ptr %746, ptr %46, align 8, !tbaa !5
  br label %735, !llvm.loop !34

747:                                              ; preds = %735
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  br label %748

748:                                              ; preds = %747, %723, %719
  %749 = load ptr, ptr %27, align 8, !tbaa !5
  %750 = load i32, ptr %28, align 4, !tbaa !13
  %751 = sub nsw i32 %750, 1
  %752 = sext i32 %751 to i64
  %753 = getelementptr inbounds i8, ptr %749, i64 %752
  %754 = load ptr, ptr %8, align 8, !tbaa !5
  %755 = ptrtoint ptr %753 to i64
  %756 = ptrtoint ptr %754 to i64
  %757 = sub i64 %755, %756
  %758 = trunc i64 %757 to i32
  store i32 %758, ptr %10, align 4, !tbaa !13
  br label %2065

759:                                              ; preds = %367, %367, %367
  call void @llvm.lifetime.start.p0(i64 48, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  %760 = load i8, ptr %22, align 1, !tbaa !9
  %761 = icmp ne i8 %760, 0
  br i1 %761, label %762, label %765

762:                                              ; preds = %759
  %763 = load ptr, ptr %34, align 8, !tbaa !5
  %764 = call double @getDoubleArg(ptr noundef %763)
  store double %764, ptr %25, align 8, !tbaa !35
  br label %782

765:                                              ; preds = %759
  %766 = load ptr, ptr %6, align 8, !tbaa !5
  %767 = getelementptr inbounds %struct.__va_list_tag, ptr %766, i32 0, i32 1
  %768 = load i32, ptr %767, align 4
  %769 = icmp ule i32 %768, 160
  br i1 %769, label %770, label %775

770:                                              ; preds = %765
  %771 = getelementptr inbounds %struct.__va_list_tag, ptr %766, i32 0, i32 3
  %772 = load ptr, ptr %771, align 8
  %773 = getelementptr i8, ptr %772, i32 %768
  %774 = add i32 %768, 16
  store i32 %774, ptr %767, align 4
  br label %779

775:                                              ; preds = %765
  %776 = getelementptr inbounds %struct.__va_list_tag, ptr %766, i32 0, i32 2
  %777 = load ptr, ptr %776, align 8
  %778 = getelementptr i8, ptr %777, i32 8
  store ptr %778, ptr %776, align 8
  br label %779

779:                                              ; preds = %775, %770
  %780 = phi ptr [ %773, %770 ], [ %777, %775 ]
  %781 = load double, ptr %780, align 8, !tbaa !35
  store double %781, ptr %25, align 8, !tbaa !35
  br label %782

782:                                              ; preds = %779, %762
  %783 = load i32, ptr %9, align 4, !tbaa !13
  %784 = icmp slt i32 %783, 0
  br i1 %784, label %785, label %786

785:                                              ; preds = %782
  store i32 6, ptr %9, align 4, !tbaa !13
  br label %786

786:                                              ; preds = %785, %782
  %787 = load i32, ptr %9, align 4, !tbaa !13
  %788 = icmp sgt i32 %787, 100000000
  br i1 %788, label %789, label %790

789:                                              ; preds = %786
  store i32 100000000, ptr %9, align 4, !tbaa !13
  br label %790

790:                                              ; preds = %789, %786
  %791 = load i8, ptr %21, align 1, !tbaa !9
  %792 = zext i8 %791 to i32
  %793 = icmp eq i32 %792, 1
  br i1 %793, label %794, label %797

794:                                              ; preds = %790
  %795 = load i32, ptr %9, align 4, !tbaa !13
  %796 = sub nsw i32 0, %795
  store i32 %796, ptr %49, align 4, !tbaa !13
  br label %811

797:                                              ; preds = %790
  %798 = load i8, ptr %21, align 1, !tbaa !9
  %799 = zext i8 %798 to i32
  %800 = icmp eq i32 %799, 3
  br i1 %800, label %801, label %807

801:                                              ; preds = %797
  %802 = load i32, ptr %9, align 4, !tbaa !13
  %803 = icmp eq i32 %802, 0
  br i1 %803, label %804, label %805

804:                                              ; preds = %801
  store i32 1, ptr %9, align 4, !tbaa !13
  br label %805

805:                                              ; preds = %804, %801
  %806 = load i32, ptr %9, align 4, !tbaa !13
  store i32 %806, ptr %49, align 4, !tbaa !13
  br label %810

807:                                              ; preds = %797
  %808 = load i32, ptr %9, align 4, !tbaa !13
  %809 = add nsw i32 %808, 1
  store i32 %809, ptr %49, align 4, !tbaa !13
  br label %810

810:                                              ; preds = %807, %805
  br label %811

811:                                              ; preds = %810, %794
  %812 = load double, ptr %25, align 8, !tbaa !35
  %813 = load i32, ptr %49, align 4, !tbaa !13
  %814 = load i8, ptr %16, align 1, !tbaa !9
  %815 = zext i8 %814 to i32
  %816 = icmp ne i32 %815, 0
  %817 = zext i1 %816 to i64
  %818 = select i1 %816, i32 26, i32 16
  call void @sqlite3FpDecode(ptr noundef %48, double noundef %812, i32 noundef %813, i32 noundef %818)
  %819 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 1
  %820 = load i8, ptr %819, align 1, !tbaa !37
  %821 = icmp ne i8 %820, 0
  br i1 %821, label %822, label %867

822:                                              ; preds = %811
  %823 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 1
  %824 = load i8, ptr %823, align 1, !tbaa !37
  %825 = sext i8 %824 to i32
  %826 = icmp eq i32 %825, 2
  br i1 %826, label %827, label %835

827:                                              ; preds = %822
  %828 = load i8, ptr %17, align 1, !tbaa !9
  %829 = zext i8 %828 to i32
  %830 = icmp ne i32 %829, 0
  %831 = zext i1 %830 to i64
  %832 = select i1 %830, ptr @.str.1, ptr @.str.2
  store ptr %832, ptr %8, align 8, !tbaa !5
  %833 = load ptr, ptr %8, align 8, !tbaa !5
  %834 = call i32 @sqlite3Strlen30(ptr noundef %833)
  store i32 %834, ptr %10, align 4, !tbaa !13
  store i32 17, ptr %40, align 4
  br label %1221

835:                                              ; preds = %822
  %836 = load i8, ptr %17, align 1, !tbaa !9
  %837 = icmp ne i8 %836, 0
  br i1 %837, label %838, label %844

838:                                              ; preds = %835
  %839 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 4
  %840 = load ptr, ptr %839, align 8, !tbaa !39
  %841 = getelementptr inbounds i8, ptr %840, i64 0
  store i8 57, ptr %841, align 1, !tbaa !9
  %842 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 3
  store i32 1000, ptr %842, align 8, !tbaa !40
  %843 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 2
  store i32 1, ptr %843, align 4, !tbaa !41
  br label %865

844:                                              ; preds = %835
  %845 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %845, ptr align 1 @.str.3, i64 5, i1 false)
  %846 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store ptr %846, ptr %8, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 0
  %848 = load i8, ptr %847, align 8, !tbaa !42
  %849 = sext i8 %848 to i32
  %850 = icmp eq i32 %849, 45
  br i1 %850, label %851, label %852

851:                                              ; preds = %844
  br label %862

852:                                              ; preds = %844
  %853 = load i8, ptr %14, align 1, !tbaa !9
  %854 = icmp ne i8 %853, 0
  br i1 %854, label %855, label %858

855:                                              ; preds = %852
  %856 = load i8, ptr %14, align 1, !tbaa !9
  %857 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store i8 %856, ptr %857, align 16, !tbaa !9
  br label %861

858:                                              ; preds = %852
  %859 = load ptr, ptr %8, align 8, !tbaa !5
  %860 = getelementptr inbounds i8, ptr %859, i32 1
  store ptr %860, ptr %8, align 8, !tbaa !5
  br label %861

861:                                              ; preds = %858, %855
  br label %862

862:                                              ; preds = %861, %851
  %863 = load ptr, ptr %8, align 8, !tbaa !5
  %864 = call i32 @sqlite3Strlen30(ptr noundef %863)
  store i32 %864, ptr %10, align 4, !tbaa !13
  store i32 17, ptr %40, align 4
  br label %1221

865:                                              ; preds = %838
  br label %866

866:                                              ; preds = %865
  br label %867

867:                                              ; preds = %866, %811
  %868 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 0
  %869 = load i8, ptr %868, align 8, !tbaa !42
  %870 = sext i8 %869 to i32
  %871 = icmp eq i32 %870, 45
  br i1 %871, label %872, label %873

872:                                              ; preds = %867
  store i8 45, ptr %23, align 1, !tbaa !9
  br label %875

873:                                              ; preds = %867
  %874 = load i8, ptr %14, align 1, !tbaa !9
  store i8 %874, ptr %23, align 1, !tbaa !9
  br label %875

875:                                              ; preds = %873, %872
  %876 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 3
  %877 = load i32, ptr %876, align 8, !tbaa !40
  %878 = sub nsw i32 %877, 1
  store i32 %878, ptr %30, align 4, !tbaa !13
  %879 = load i8, ptr %21, align 1, !tbaa !9
  %880 = zext i8 %879 to i32
  %881 = icmp eq i32 %880, 3
  br i1 %881, label %882, label %902

882:                                              ; preds = %875
  %883 = load i32, ptr %9, align 4, !tbaa !13
  %884 = add nsw i32 %883, -1
  store i32 %884, ptr %9, align 4, !tbaa !13
  %885 = load i8, ptr %15, align 1, !tbaa !9
  %886 = icmp ne i8 %885, 0
  %887 = xor i1 %886, true
  %888 = zext i1 %887 to i32
  %889 = trunc i32 %888 to i8
  store i8 %889, ptr %33, align 1, !tbaa !9
  %890 = load i32, ptr %30, align 4, !tbaa !13
  %891 = icmp slt i32 %890, -4
  br i1 %891, label %896, label %892

892:                                              ; preds = %882
  %893 = load i32, ptr %30, align 4, !tbaa !13
  %894 = load i32, ptr %9, align 4, !tbaa !13
  %895 = icmp sgt i32 %893, %894
  br i1 %895, label %896, label %897

896:                                              ; preds = %892, %882
  store i8 2, ptr %21, align 1, !tbaa !9
  br label %901

897:                                              ; preds = %892
  %898 = load i32, ptr %9, align 4, !tbaa !13
  %899 = load i32, ptr %30, align 4, !tbaa !13
  %900 = sub nsw i32 %898, %899
  store i32 %900, ptr %9, align 4, !tbaa !13
  store i8 1, ptr %21, align 1, !tbaa !9
  br label %901

901:                                              ; preds = %897, %896
  br label %904

902:                                              ; preds = %875
  %903 = load i8, ptr %16, align 1, !tbaa !9
  store i8 %903, ptr %33, align 1, !tbaa !9
  br label %904

904:                                              ; preds = %902, %901
  %905 = load i8, ptr %21, align 1, !tbaa !9
  %906 = zext i8 %905 to i32
  %907 = icmp eq i32 %906, 2
  br i1 %907, label %908, label %909

908:                                              ; preds = %904
  store i32 0, ptr %31, align 4, !tbaa !13
  br label %913

909:                                              ; preds = %904
  %910 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 3
  %911 = load i32, ptr %910, align 8, !tbaa !40
  %912 = sub nsw i32 %911, 1
  store i32 %912, ptr %31, align 4, !tbaa !13
  br label %913

913:                                              ; preds = %909, %908
  %914 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store ptr %914, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #4
  %915 = load i32, ptr %31, align 4, !tbaa !13
  %916 = icmp sgt i32 %915, 0
  br i1 %916, label %917, label %919

917:                                              ; preds = %913
  %918 = load i32, ptr %31, align 4, !tbaa !13
  br label %920

919:                                              ; preds = %913
  br label %920

920:                                              ; preds = %919, %917
  %921 = phi i32 [ %918, %917 ], [ 0, %919 ]
  %922 = sext i32 %921 to i64
  %923 = load i32, ptr %9, align 4, !tbaa !13
  %924 = sext i32 %923 to i64
  %925 = add nsw i64 %922, %924
  %926 = load i32, ptr %12, align 4, !tbaa !13
  %927 = sext i32 %926 to i64
  %928 = add nsw i64 %925, %927
  %929 = add nsw i64 %928, 15
  store i64 %929, ptr %51, align 8, !tbaa !24
  %930 = load i8, ptr %20, align 1, !tbaa !9
  %931 = zext i8 %930 to i32
  %932 = icmp ne i32 %931, 0
  br i1 %932, label %933, label %943

933:                                              ; preds = %920
  %934 = load i32, ptr %31, align 4, !tbaa !13
  %935 = icmp sgt i32 %934, 0
  br i1 %935, label %936, label %943

936:                                              ; preds = %933
  %937 = load i32, ptr %31, align 4, !tbaa !13
  %938 = add nsw i32 %937, 2
  %939 = sdiv i32 %938, 3
  %940 = sext i32 %939 to i64
  %941 = load i64, ptr %51, align 8, !tbaa !24
  %942 = add nsw i64 %941, %940
  store i64 %942, ptr %51, align 8, !tbaa !24
  br label %943

943:                                              ; preds = %936, %933, %920
  %944 = load i64, ptr %51, align 8, !tbaa !24
  %945 = icmp sgt i64 %944, 70
  br i1 %945, label %946, label %954

946:                                              ; preds = %943
  %947 = load ptr, ptr %4, align 8, !tbaa !5
  %948 = load i64, ptr %51, align 8, !tbaa !24
  %949 = call ptr @printfTempBuf(ptr noundef %947, i64 noundef %948)
  store ptr %949, ptr %29, align 8, !tbaa !5
  store ptr %949, ptr %8, align 8, !tbaa !5
  %950 = load ptr, ptr %8, align 8, !tbaa !5
  %951 = icmp eq ptr %950, null
  br i1 %951, label %952, label %953

952:                                              ; preds = %946
  store i32 1, ptr %40, align 4
  br label %955

953:                                              ; preds = %946
  br label %954

954:                                              ; preds = %953, %943
  store i32 0, ptr %40, align 4
  br label %955

955:                                              ; preds = %954, %952
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  %956 = load i32, ptr %40, align 4
  switch i32 %956, label %1221 [
    i32 0, label %957
  ]

957:                                              ; preds = %955
  %958 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %958, ptr %27, align 8, !tbaa !5
  %959 = load i32, ptr %9, align 4, !tbaa !13
  %960 = icmp sgt i32 %959, 0
  %961 = zext i1 %960 to i64
  %962 = select i1 %960, i32 1, i32 0
  %963 = load i8, ptr %15, align 1, !tbaa !9
  %964 = zext i8 %963 to i32
  %965 = or i32 %962, %964
  %966 = load i8, ptr %16, align 1, !tbaa !9
  %967 = zext i8 %966 to i32
  %968 = or i32 %965, %967
  %969 = trunc i32 %968 to i8
  store i8 %969, ptr %32, align 1, !tbaa !9
  %970 = load i8, ptr %23, align 1, !tbaa !9
  %971 = icmp ne i8 %970, 0
  br i1 %971, label %972, label %976

972:                                              ; preds = %957
  %973 = load i8, ptr %23, align 1, !tbaa !9
  %974 = load ptr, ptr %8, align 8, !tbaa !5
  %975 = getelementptr inbounds i8, ptr %974, i32 1
  store ptr %975, ptr %8, align 8, !tbaa !5
  store i8 %973, ptr %974, align 1, !tbaa !9
  br label %976

976:                                              ; preds = %972, %957
  store i32 0, ptr %50, align 4, !tbaa !13
  %977 = load i32, ptr %31, align 4, !tbaa !13
  %978 = icmp slt i32 %977, 0
  br i1 %978, label %979, label %982

979:                                              ; preds = %976
  %980 = load ptr, ptr %8, align 8, !tbaa !5
  %981 = getelementptr inbounds i8, ptr %980, i32 1
  store ptr %981, ptr %8, align 8, !tbaa !5
  store i8 48, ptr %980, align 1, !tbaa !9
  br label %1024

982:                                              ; preds = %976
  br label %983

983:                                              ; preds = %1020, %982
  %984 = load i32, ptr %31, align 4, !tbaa !13
  %985 = icmp sge i32 %984, 0
  br i1 %985, label %986, label %1023

986:                                              ; preds = %983
  %987 = load i32, ptr %50, align 4, !tbaa !13
  %988 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 2
  %989 = load i32, ptr %988, align 4, !tbaa !41
  %990 = icmp slt i32 %987, %989
  br i1 %990, label %991, label %1000

991:                                              ; preds = %986
  %992 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 4
  %993 = load ptr, ptr %992, align 8, !tbaa !39
  %994 = load i32, ptr %50, align 4, !tbaa !13
  %995 = add nsw i32 %994, 1
  store i32 %995, ptr %50, align 4, !tbaa !13
  %996 = sext i32 %994 to i64
  %997 = getelementptr inbounds i8, ptr %993, i64 %996
  %998 = load i8, ptr %997, align 1, !tbaa !9
  %999 = sext i8 %998 to i32
  br label %1001

1000:                                             ; preds = %986
  br label %1001

1001:                                             ; preds = %1000, %991
  %1002 = phi i32 [ %999, %991 ], [ 48, %1000 ]
  %1003 = trunc i32 %1002 to i8
  %1004 = load ptr, ptr %8, align 8, !tbaa !5
  %1005 = getelementptr inbounds i8, ptr %1004, i32 1
  store ptr %1005, ptr %8, align 8, !tbaa !5
  store i8 %1003, ptr %1004, align 1, !tbaa !9
  %1006 = load i8, ptr %20, align 1, !tbaa !9
  %1007 = zext i8 %1006 to i32
  %1008 = icmp ne i32 %1007, 0
  br i1 %1008, label %1009, label %1019

1009:                                             ; preds = %1001
  %1010 = load i32, ptr %31, align 4, !tbaa !13
  %1011 = srem i32 %1010, 3
  %1012 = icmp eq i32 %1011, 0
  br i1 %1012, label %1013, label %1019

1013:                                             ; preds = %1009
  %1014 = load i32, ptr %31, align 4, !tbaa !13
  %1015 = icmp sgt i32 %1014, 1
  br i1 %1015, label %1016, label %1019

1016:                                             ; preds = %1013
  %1017 = load ptr, ptr %8, align 8, !tbaa !5
  %1018 = getelementptr inbounds i8, ptr %1017, i32 1
  store ptr %1018, ptr %8, align 8, !tbaa !5
  store i8 44, ptr %1017, align 1, !tbaa !9
  br label %1019

1019:                                             ; preds = %1016, %1013, %1009, %1001
  br label %1020

1020:                                             ; preds = %1019
  %1021 = load i32, ptr %31, align 4, !tbaa !13
  %1022 = add nsw i32 %1021, -1
  store i32 %1022, ptr %31, align 4, !tbaa !13
  br label %983, !llvm.loop !43

1023:                                             ; preds = %983
  br label %1024

1024:                                             ; preds = %1023, %979
  %1025 = load i8, ptr %32, align 1, !tbaa !9
  %1026 = icmp ne i8 %1025, 0
  br i1 %1026, label %1027, label %1030

1027:                                             ; preds = %1024
  %1028 = load ptr, ptr %8, align 8, !tbaa !5
  %1029 = getelementptr inbounds i8, ptr %1028, i32 1
  store ptr %1029, ptr %8, align 8, !tbaa !5
  store i8 46, ptr %1028, align 1, !tbaa !9
  br label %1030

1030:                                             ; preds = %1027, %1024
  %1031 = load i32, ptr %31, align 4, !tbaa !13
  %1032 = add nsw i32 %1031, 1
  store i32 %1032, ptr %31, align 4, !tbaa !13
  br label %1033

1033:                                             ; preds = %1044, %1030
  %1034 = load i32, ptr %31, align 4, !tbaa !13
  %1035 = icmp slt i32 %1034, 0
  br i1 %1035, label %1036, label %1039

1036:                                             ; preds = %1033
  %1037 = load i32, ptr %9, align 4, !tbaa !13
  %1038 = icmp sgt i32 %1037, 0
  br label %1039

1039:                                             ; preds = %1036, %1033
  %1040 = phi i1 [ false, %1033 ], [ %1038, %1036 ]
  br i1 %1040, label %1041, label %1049

1041:                                             ; preds = %1039
  %1042 = load ptr, ptr %8, align 8, !tbaa !5
  %1043 = getelementptr inbounds i8, ptr %1042, i32 1
  store ptr %1043, ptr %8, align 8, !tbaa !5
  store i8 48, ptr %1042, align 1, !tbaa !9
  br label %1044

1044:                                             ; preds = %1041
  %1045 = load i32, ptr %9, align 4, !tbaa !13
  %1046 = add nsw i32 %1045, -1
  store i32 %1046, ptr %9, align 4, !tbaa !13
  %1047 = load i32, ptr %31, align 4, !tbaa !13
  %1048 = add nsw i32 %1047, 1
  store i32 %1048, ptr %31, align 4, !tbaa !13
  br label %1033, !llvm.loop !44

1049:                                             ; preds = %1039
  br label %1050

1050:                                             ; preds = %1069, %1049
  %1051 = load i32, ptr %9, align 4, !tbaa !13
  %1052 = add nsw i32 %1051, -1
  store i32 %1052, ptr %9, align 4, !tbaa !13
  %1053 = icmp sgt i32 %1051, 0
  br i1 %1053, label %1054, label %1074

1054:                                             ; preds = %1050
  %1055 = load i32, ptr %50, align 4, !tbaa !13
  %1056 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 2
  %1057 = load i32, ptr %1056, align 4, !tbaa !41
  %1058 = icmp slt i32 %1055, %1057
  br i1 %1058, label %1059, label %1068

1059:                                             ; preds = %1054
  %1060 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 4
  %1061 = load ptr, ptr %1060, align 8, !tbaa !39
  %1062 = load i32, ptr %50, align 4, !tbaa !13
  %1063 = add nsw i32 %1062, 1
  store i32 %1063, ptr %50, align 4, !tbaa !13
  %1064 = sext i32 %1062 to i64
  %1065 = getelementptr inbounds i8, ptr %1061, i64 %1064
  %1066 = load i8, ptr %1065, align 1, !tbaa !9
  %1067 = sext i8 %1066 to i32
  br label %1069

1068:                                             ; preds = %1054
  br label %1069

1069:                                             ; preds = %1068, %1059
  %1070 = phi i32 [ %1067, %1059 ], [ 48, %1068 ]
  %1071 = trunc i32 %1070 to i8
  %1072 = load ptr, ptr %8, align 8, !tbaa !5
  %1073 = getelementptr inbounds i8, ptr %1072, i32 1
  store ptr %1073, ptr %8, align 8, !tbaa !5
  store i8 %1071, ptr %1072, align 1, !tbaa !9
  br label %1050, !llvm.loop !45

1074:                                             ; preds = %1050
  %1075 = load i8, ptr %33, align 1, !tbaa !9
  %1076 = zext i8 %1075 to i32
  %1077 = icmp ne i32 %1076, 0
  br i1 %1077, label %1078, label %1109

1078:                                             ; preds = %1074
  %1079 = load i8, ptr %32, align 1, !tbaa !9
  %1080 = zext i8 %1079 to i32
  %1081 = icmp ne i32 %1080, 0
  br i1 %1081, label %1082, label %1109

1082:                                             ; preds = %1078
  br label %1083

1083:                                             ; preds = %1089, %1082
  %1084 = load ptr, ptr %8, align 8, !tbaa !5
  %1085 = getelementptr inbounds i8, ptr %1084, i64 -1
  %1086 = load i8, ptr %1085, align 1, !tbaa !9
  %1087 = sext i8 %1086 to i32
  %1088 = icmp eq i32 %1087, 48
  br i1 %1088, label %1089, label %1092

1089:                                             ; preds = %1083
  %1090 = load ptr, ptr %8, align 8, !tbaa !5
  %1091 = getelementptr inbounds i8, ptr %1090, i32 -1
  store ptr %1091, ptr %8, align 8, !tbaa !5
  store i8 0, ptr %1091, align 1, !tbaa !9
  br label %1083, !llvm.loop !46

1092:                                             ; preds = %1083
  %1093 = load ptr, ptr %8, align 8, !tbaa !5
  %1094 = getelementptr inbounds i8, ptr %1093, i64 -1
  %1095 = load i8, ptr %1094, align 1, !tbaa !9
  %1096 = sext i8 %1095 to i32
  %1097 = icmp eq i32 %1096, 46
  br i1 %1097, label %1098, label %1108

1098:                                             ; preds = %1092
  %1099 = load i8, ptr %16, align 1, !tbaa !9
  %1100 = icmp ne i8 %1099, 0
  br i1 %1100, label %1101, label %1104

1101:                                             ; preds = %1098
  %1102 = load ptr, ptr %8, align 8, !tbaa !5
  %1103 = getelementptr inbounds i8, ptr %1102, i32 1
  store ptr %1103, ptr %8, align 8, !tbaa !5
  store i8 48, ptr %1102, align 1, !tbaa !9
  br label %1107

1104:                                             ; preds = %1098
  %1105 = load ptr, ptr %8, align 8, !tbaa !5
  %1106 = getelementptr inbounds i8, ptr %1105, i32 -1
  store ptr %1106, ptr %8, align 8, !tbaa !5
  store i8 0, ptr %1106, align 1, !tbaa !9
  br label %1107

1107:                                             ; preds = %1104, %1101
  br label %1108

1108:                                             ; preds = %1107, %1092
  br label %1109

1109:                                             ; preds = %1108, %1078, %1074
  %1110 = load i8, ptr %21, align 1, !tbaa !9
  %1111 = zext i8 %1110 to i32
  %1112 = icmp eq i32 %1111, 2
  br i1 %1112, label %1113, label %1160

1113:                                             ; preds = %1109
  %1114 = getelementptr inbounds %struct.FpDecode, ptr %48, i32 0, i32 3
  %1115 = load i32, ptr %1114, align 8, !tbaa !40
  %1116 = sub nsw i32 %1115, 1
  store i32 %1116, ptr %30, align 4, !tbaa !13
  %1117 = load ptr, ptr %26, align 8, !tbaa !5
  %1118 = getelementptr inbounds %struct.et_info, ptr %1117, i32 0, i32 4
  %1119 = load i8, ptr %1118, align 1, !tbaa !28
  %1120 = zext i8 %1119 to i64
  %1121 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %1120
  %1122 = load i8, ptr %1121, align 1, !tbaa !9
  %1123 = load ptr, ptr %8, align 8, !tbaa !5
  %1124 = getelementptr inbounds i8, ptr %1123, i32 1
  store ptr %1124, ptr %8, align 8, !tbaa !5
  store i8 %1122, ptr %1123, align 1, !tbaa !9
  %1125 = load i32, ptr %30, align 4, !tbaa !13
  %1126 = icmp slt i32 %1125, 0
  br i1 %1126, label %1127, label %1132

1127:                                             ; preds = %1113
  %1128 = load ptr, ptr %8, align 8, !tbaa !5
  %1129 = getelementptr inbounds i8, ptr %1128, i32 1
  store ptr %1129, ptr %8, align 8, !tbaa !5
  store i8 45, ptr %1128, align 1, !tbaa !9
  %1130 = load i32, ptr %30, align 4, !tbaa !13
  %1131 = sub nsw i32 0, %1130
  store i32 %1131, ptr %30, align 4, !tbaa !13
  br label %1135

1132:                                             ; preds = %1113
  %1133 = load ptr, ptr %8, align 8, !tbaa !5
  %1134 = getelementptr inbounds i8, ptr %1133, i32 1
  store ptr %1134, ptr %8, align 8, !tbaa !5
  store i8 43, ptr %1133, align 1, !tbaa !9
  br label %1135

1135:                                             ; preds = %1132, %1127
  %1136 = load i32, ptr %30, align 4, !tbaa !13
  %1137 = icmp sge i32 %1136, 100
  br i1 %1137, label %1138, label %1147

1138:                                             ; preds = %1135
  %1139 = load i32, ptr %30, align 4, !tbaa !13
  %1140 = sdiv i32 %1139, 100
  %1141 = add nsw i32 %1140, 48
  %1142 = trunc i32 %1141 to i8
  %1143 = load ptr, ptr %8, align 8, !tbaa !5
  %1144 = getelementptr inbounds i8, ptr %1143, i32 1
  store ptr %1144, ptr %8, align 8, !tbaa !5
  store i8 %1142, ptr %1143, align 1, !tbaa !9
  %1145 = load i32, ptr %30, align 4, !tbaa !13
  %1146 = srem i32 %1145, 100
  store i32 %1146, ptr %30, align 4, !tbaa !13
  br label %1147

1147:                                             ; preds = %1138, %1135
  %1148 = load i32, ptr %30, align 4, !tbaa !13
  %1149 = sdiv i32 %1148, 10
  %1150 = add nsw i32 %1149, 48
  %1151 = trunc i32 %1150 to i8
  %1152 = load ptr, ptr %8, align 8, !tbaa !5
  %1153 = getelementptr inbounds i8, ptr %1152, i32 1
  store ptr %1153, ptr %8, align 8, !tbaa !5
  store i8 %1151, ptr %1152, align 1, !tbaa !9
  %1154 = load i32, ptr %30, align 4, !tbaa !13
  %1155 = srem i32 %1154, 10
  %1156 = add nsw i32 %1155, 48
  %1157 = trunc i32 %1156 to i8
  %1158 = load ptr, ptr %8, align 8, !tbaa !5
  %1159 = getelementptr inbounds i8, ptr %1158, i32 1
  store ptr %1159, ptr %8, align 8, !tbaa !5
  store i8 %1157, ptr %1158, align 1, !tbaa !9
  br label %1160

1160:                                             ; preds = %1147, %1109
  %1161 = load ptr, ptr %8, align 8, !tbaa !5
  store i8 0, ptr %1161, align 1, !tbaa !9
  %1162 = load ptr, ptr %8, align 8, !tbaa !5
  %1163 = load ptr, ptr %27, align 8, !tbaa !5
  %1164 = ptrtoint ptr %1162 to i64
  %1165 = ptrtoint ptr %1163 to i64
  %1166 = sub i64 %1164, %1165
  %1167 = trunc i64 %1166 to i32
  store i32 %1167, ptr %10, align 4, !tbaa !13
  %1168 = load ptr, ptr %27, align 8, !tbaa !5
  store ptr %1168, ptr %8, align 8, !tbaa !5
  %1169 = load i8, ptr %17, align 1, !tbaa !9
  %1170 = zext i8 %1169 to i32
  %1171 = icmp ne i32 %1170, 0
  br i1 %1171, label %1172, label %1220

1172:                                             ; preds = %1160
  %1173 = load i8, ptr %13, align 1, !tbaa !9
  %1174 = icmp ne i8 %1173, 0
  br i1 %1174, label %1220, label %1175

1175:                                             ; preds = %1172
  %1176 = load i32, ptr %10, align 4, !tbaa !13
  %1177 = load i32, ptr %12, align 4, !tbaa !13
  %1178 = icmp slt i32 %1176, %1177
  br i1 %1178, label %1179, label %1220

1179:                                             ; preds = %1175
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  %1180 = load i32, ptr %12, align 4, !tbaa !13
  %1181 = load i32, ptr %10, align 4, !tbaa !13
  %1182 = sub nsw i32 %1180, %1181
  store i32 %1182, ptr %53, align 4, !tbaa !13
  %1183 = load i32, ptr %12, align 4, !tbaa !13
  store i32 %1183, ptr %52, align 4, !tbaa !13
  br label %1184

1184:                                             ; preds = %1200, %1179
  %1185 = load i32, ptr %52, align 4, !tbaa !13
  %1186 = load i32, ptr %53, align 4, !tbaa !13
  %1187 = icmp sge i32 %1185, %1186
  br i1 %1187, label %1188, label %1203

1188:                                             ; preds = %1184
  %1189 = load ptr, ptr %8, align 8, !tbaa !5
  %1190 = load i32, ptr %52, align 4, !tbaa !13
  %1191 = load i32, ptr %53, align 4, !tbaa !13
  %1192 = sub nsw i32 %1190, %1191
  %1193 = sext i32 %1192 to i64
  %1194 = getelementptr inbounds i8, ptr %1189, i64 %1193
  %1195 = load i8, ptr %1194, align 1, !tbaa !9
  %1196 = load ptr, ptr %8, align 8, !tbaa !5
  %1197 = load i32, ptr %52, align 4, !tbaa !13
  %1198 = sext i32 %1197 to i64
  %1199 = getelementptr inbounds i8, ptr %1196, i64 %1198
  store i8 %1195, ptr %1199, align 1, !tbaa !9
  br label %1200

1200:                                             ; preds = %1188
  %1201 = load i32, ptr %52, align 4, !tbaa !13
  %1202 = add nsw i32 %1201, -1
  store i32 %1202, ptr %52, align 4, !tbaa !13
  br label %1184, !llvm.loop !47

1203:                                             ; preds = %1184
  %1204 = load i8, ptr %23, align 1, !tbaa !9
  %1205 = sext i8 %1204 to i32
  %1206 = icmp ne i32 %1205, 0
  %1207 = zext i1 %1206 to i32
  store i32 %1207, ptr %52, align 4, !tbaa !13
  br label %1208

1208:                                             ; preds = %1212, %1203
  %1209 = load i32, ptr %53, align 4, !tbaa !13
  %1210 = add nsw i32 %1209, -1
  store i32 %1210, ptr %53, align 4, !tbaa !13
  %1211 = icmp ne i32 %1209, 0
  br i1 %1211, label %1212, label %1218

1212:                                             ; preds = %1208
  %1213 = load ptr, ptr %8, align 8, !tbaa !5
  %1214 = load i32, ptr %52, align 4, !tbaa !13
  %1215 = add nsw i32 %1214, 1
  store i32 %1215, ptr %52, align 4, !tbaa !13
  %1216 = sext i32 %1214 to i64
  %1217 = getelementptr inbounds i8, ptr %1213, i64 %1216
  store i8 48, ptr %1217, align 1, !tbaa !9
  br label %1208, !llvm.loop !48

1218:                                             ; preds = %1208
  %1219 = load i32, ptr %12, align 4, !tbaa !13
  store i32 %1219, ptr %10, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  br label %1220

1220:                                             ; preds = %1218, %1175, %1172, %1160
  store i32 17, ptr %40, align 4
  br label %1221

1221:                                             ; preds = %1220, %955, %862, %827
  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 48, ptr %48) #4
  %1222 = load i32, ptr %40, align 4
  switch i32 %1222, label %2104 [
    i32 17, label %2065
  ]

1223:                                             ; preds = %367
  %1224 = load i8, ptr %22, align 1, !tbaa !9
  %1225 = icmp ne i8 %1224, 0
  br i1 %1225, label %1246, label %1226

1226:                                             ; preds = %1223
  %1227 = load ptr, ptr %4, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.sqlite3_str, ptr %1227, i32 0, i32 4
  %1229 = load i32, ptr %1228, align 8, !tbaa !49
  %1230 = load ptr, ptr %6, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.__va_list_tag, ptr %1230, i32 0, i32 0
  %1232 = load i32, ptr %1231, align 8
  %1233 = icmp ule i32 %1232, 40
  br i1 %1233, label %1234, label %1239

1234:                                             ; preds = %1226
  %1235 = getelementptr inbounds %struct.__va_list_tag, ptr %1230, i32 0, i32 3
  %1236 = load ptr, ptr %1235, align 8
  %1237 = getelementptr i8, ptr %1236, i32 %1232
  %1238 = add i32 %1232, 8
  store i32 %1238, ptr %1231, align 8
  br label %1243

1239:                                             ; preds = %1226
  %1240 = getelementptr inbounds %struct.__va_list_tag, ptr %1230, i32 0, i32 2
  %1241 = load ptr, ptr %1240, align 8
  %1242 = getelementptr i8, ptr %1241, i32 8
  store ptr %1242, ptr %1240, align 8
  br label %1243

1243:                                             ; preds = %1239, %1234
  %1244 = phi ptr [ %1237, %1234 ], [ %1241, %1239 ]
  %1245 = load ptr, ptr %1244, align 8, !tbaa !5
  store i32 %1229, ptr %1245, align 4, !tbaa !13
  br label %1246

1246:                                             ; preds = %1243, %1223
  store i32 0, ptr %12, align 4, !tbaa !13
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %2065

1247:                                             ; preds = %367
  %1248 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store i8 37, ptr %1248, align 16, !tbaa !9
  %1249 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store ptr %1249, ptr %8, align 8, !tbaa !5
  store i32 1, ptr %10, align 4, !tbaa !13
  br label %2065

1250:                                             ; preds = %367
  %1251 = load i8, ptr %22, align 1, !tbaa !9
  %1252 = icmp ne i8 %1251, 0
  br i1 %1252, label %1253, label %1294

1253:                                             ; preds = %1250
  %1254 = load ptr, ptr %34, align 8, !tbaa !5
  %1255 = call ptr @getTextArg(ptr noundef %1254)
  store ptr %1255, ptr %8, align 8, !tbaa !5
  store i32 1, ptr %10, align 4, !tbaa !13
  %1256 = load ptr, ptr %8, align 8, !tbaa !5
  %1257 = icmp ne ptr %1256, null
  br i1 %1257, label %1258, label %1291

1258:                                             ; preds = %1253
  %1259 = load ptr, ptr %8, align 8, !tbaa !5
  %1260 = getelementptr inbounds i8, ptr %1259, i32 1
  store ptr %1260, ptr %8, align 8, !tbaa !5
  %1261 = load i8, ptr %1259, align 1, !tbaa !9
  %1262 = sext i8 %1261 to i32
  store i32 %1262, ptr %7, align 4, !tbaa !13
  %1263 = trunc i32 %1262 to i8
  %1264 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store i8 %1263, ptr %1264, align 16, !tbaa !9
  %1265 = load i32, ptr %7, align 4, !tbaa !13
  %1266 = and i32 %1265, 192
  %1267 = icmp eq i32 %1266, 192
  br i1 %1267, label %1268, label %1290

1268:                                             ; preds = %1258
  br label %1269

1269:                                             ; preds = %1281, %1268
  %1270 = load i32, ptr %10, align 4, !tbaa !13
  %1271 = icmp slt i32 %1270, 4
  br i1 %1271, label %1272, label %1279

1272:                                             ; preds = %1269
  %1273 = load ptr, ptr %8, align 8, !tbaa !5
  %1274 = getelementptr inbounds i8, ptr %1273, i64 0
  %1275 = load i8, ptr %1274, align 1, !tbaa !9
  %1276 = sext i8 %1275 to i32
  %1277 = and i32 %1276, 192
  %1278 = icmp eq i32 %1277, 128
  br label %1279

1279:                                             ; preds = %1272, %1269
  %1280 = phi i1 [ false, %1269 ], [ %1278, %1272 ]
  br i1 %1280, label %1281, label %1289

1281:                                             ; preds = %1279
  %1282 = load ptr, ptr %8, align 8, !tbaa !5
  %1283 = getelementptr inbounds i8, ptr %1282, i32 1
  store ptr %1283, ptr %8, align 8, !tbaa !5
  %1284 = load i8, ptr %1282, align 1, !tbaa !9
  %1285 = load i32, ptr %10, align 4, !tbaa !13
  %1286 = add nsw i32 %1285, 1
  store i32 %1286, ptr %10, align 4, !tbaa !13
  %1287 = sext i32 %1285 to i64
  %1288 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 %1287
  store i8 %1284, ptr %1288, align 1, !tbaa !9
  br label %1269, !llvm.loop !50

1289:                                             ; preds = %1279
  br label %1290

1290:                                             ; preds = %1289, %1258
  br label %1293

1291:                                             ; preds = %1253
  %1292 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store i8 0, ptr %1292, align 16, !tbaa !9
  br label %1293

1293:                                             ; preds = %1291, %1290
  br label %1399

1294:                                             ; preds = %1250
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  %1295 = load ptr, ptr %6, align 8, !tbaa !5
  %1296 = getelementptr inbounds %struct.__va_list_tag, ptr %1295, i32 0, i32 0
  %1297 = load i32, ptr %1296, align 8
  %1298 = icmp ule i32 %1297, 40
  br i1 %1298, label %1299, label %1304

1299:                                             ; preds = %1294
  %1300 = getelementptr inbounds %struct.__va_list_tag, ptr %1295, i32 0, i32 3
  %1301 = load ptr, ptr %1300, align 8
  %1302 = getelementptr i8, ptr %1301, i32 %1297
  %1303 = add i32 %1297, 8
  store i32 %1303, ptr %1296, align 8
  br label %1308

1304:                                             ; preds = %1294
  %1305 = getelementptr inbounds %struct.__va_list_tag, ptr %1295, i32 0, i32 2
  %1306 = load ptr, ptr %1305, align 8
  %1307 = getelementptr i8, ptr %1306, i32 8
  store ptr %1307, ptr %1305, align 8
  br label %1308

1308:                                             ; preds = %1304, %1299
  %1309 = phi ptr [ %1302, %1299 ], [ %1306, %1304 ]
  %1310 = load i32, ptr %1309, align 4, !tbaa !13
  store i32 %1310, ptr %54, align 4, !tbaa !13
  %1311 = load i32, ptr %54, align 4, !tbaa !13
  %1312 = icmp ult i32 %1311, 128
  br i1 %1312, label %1313, label %1318

1313:                                             ; preds = %1308
  %1314 = load i32, ptr %54, align 4, !tbaa !13
  %1315 = and i32 %1314, 255
  %1316 = trunc i32 %1315 to i8
  %1317 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store i8 %1316, ptr %1317, align 16, !tbaa !9
  store i32 1, ptr %10, align 4, !tbaa !13
  br label %1398

1318:                                             ; preds = %1308
  %1319 = load i32, ptr %54, align 4, !tbaa !13
  %1320 = icmp ult i32 %1319, 2048
  br i1 %1320, label %1321, label %1337

1321:                                             ; preds = %1318
  %1322 = load i32, ptr %54, align 4, !tbaa !13
  %1323 = lshr i32 %1322, 6
  %1324 = and i32 %1323, 31
  %1325 = trunc i32 %1324 to i8
  %1326 = zext i8 %1325 to i32
  %1327 = add nsw i32 192, %1326
  %1328 = trunc i32 %1327 to i8
  %1329 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store i8 %1328, ptr %1329, align 16, !tbaa !9
  %1330 = load i32, ptr %54, align 4, !tbaa !13
  %1331 = and i32 %1330, 63
  %1332 = trunc i32 %1331 to i8
  %1333 = zext i8 %1332 to i32
  %1334 = add nsw i32 128, %1333
  %1335 = trunc i32 %1334 to i8
  %1336 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 1
  store i8 %1335, ptr %1336, align 1, !tbaa !9
  store i32 2, ptr %10, align 4, !tbaa !13
  br label %1397

1337:                                             ; preds = %1318
  %1338 = load i32, ptr %54, align 4, !tbaa !13
  %1339 = icmp ult i32 %1338, 65536
  br i1 %1339, label %1340, label %1364

1340:                                             ; preds = %1337
  %1341 = load i32, ptr %54, align 4, !tbaa !13
  %1342 = lshr i32 %1341, 12
  %1343 = and i32 %1342, 15
  %1344 = trunc i32 %1343 to i8
  %1345 = zext i8 %1344 to i32
  %1346 = add nsw i32 224, %1345
  %1347 = trunc i32 %1346 to i8
  %1348 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store i8 %1347, ptr %1348, align 16, !tbaa !9
  %1349 = load i32, ptr %54, align 4, !tbaa !13
  %1350 = lshr i32 %1349, 6
  %1351 = and i32 %1350, 63
  %1352 = trunc i32 %1351 to i8
  %1353 = zext i8 %1352 to i32
  %1354 = add nsw i32 128, %1353
  %1355 = trunc i32 %1354 to i8
  %1356 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 1
  store i8 %1355, ptr %1356, align 1, !tbaa !9
  %1357 = load i32, ptr %54, align 4, !tbaa !13
  %1358 = and i32 %1357, 63
  %1359 = trunc i32 %1358 to i8
  %1360 = zext i8 %1359 to i32
  %1361 = add nsw i32 128, %1360
  %1362 = trunc i32 %1361 to i8
  %1363 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 2
  store i8 %1362, ptr %1363, align 2, !tbaa !9
  store i32 3, ptr %10, align 4, !tbaa !13
  br label %1396

1364:                                             ; preds = %1337
  %1365 = load i32, ptr %54, align 4, !tbaa !13
  %1366 = lshr i32 %1365, 18
  %1367 = and i32 %1366, 7
  %1368 = trunc i32 %1367 to i8
  %1369 = zext i8 %1368 to i32
  %1370 = add nsw i32 240, %1369
  %1371 = trunc i32 %1370 to i8
  %1372 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store i8 %1371, ptr %1372, align 16, !tbaa !9
  %1373 = load i32, ptr %54, align 4, !tbaa !13
  %1374 = lshr i32 %1373, 12
  %1375 = and i32 %1374, 63
  %1376 = trunc i32 %1375 to i8
  %1377 = zext i8 %1376 to i32
  %1378 = add nsw i32 128, %1377
  %1379 = trunc i32 %1378 to i8
  %1380 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 1
  store i8 %1379, ptr %1380, align 1, !tbaa !9
  %1381 = load i32, ptr %54, align 4, !tbaa !13
  %1382 = lshr i32 %1381, 6
  %1383 = and i32 %1382, 63
  %1384 = trunc i32 %1383 to i8
  %1385 = zext i8 %1384 to i32
  %1386 = add nsw i32 128, %1385
  %1387 = trunc i32 %1386 to i8
  %1388 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 2
  store i8 %1387, ptr %1388, align 2, !tbaa !9
  %1389 = load i32, ptr %54, align 4, !tbaa !13
  %1390 = and i32 %1389, 63
  %1391 = trunc i32 %1390 to i8
  %1392 = zext i8 %1391 to i32
  %1393 = add nsw i32 128, %1392
  %1394 = trunc i32 %1393 to i8
  %1395 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 3
  store i8 %1394, ptr %1395, align 1, !tbaa !9
  store i32 4, ptr %10, align 4, !tbaa !13
  br label %1396

1396:                                             ; preds = %1364, %1340
  br label %1397

1397:                                             ; preds = %1396, %1321
  br label %1398

1398:                                             ; preds = %1397, %1313
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  br label %1399

1399:                                             ; preds = %1398, %1293
  %1400 = load i32, ptr %9, align 4, !tbaa !13
  %1401 = icmp sgt i32 %1400, 1
  br i1 %1401, label %1402, label %1486

1402:                                             ; preds = %1399
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #4
  store i64 1, ptr %55, align 8, !tbaa !24
  %1403 = load i32, ptr %9, align 4, !tbaa !13
  %1404 = sub nsw i32 %1403, 1
  %1405 = load i32, ptr %12, align 4, !tbaa !13
  %1406 = sub nsw i32 %1405, %1404
  store i32 %1406, ptr %12, align 4, !tbaa !13
  %1407 = load i32, ptr %12, align 4, !tbaa !13
  %1408 = icmp sgt i32 %1407, 1
  br i1 %1408, label %1409, label %1416

1409:                                             ; preds = %1402
  %1410 = load i8, ptr %13, align 1, !tbaa !9
  %1411 = icmp ne i8 %1410, 0
  br i1 %1411, label %1416, label %1412

1412:                                             ; preds = %1409
  %1413 = load ptr, ptr %4, align 8, !tbaa !5
  %1414 = load i32, ptr %12, align 4, !tbaa !13
  %1415 = sub nsw i32 %1414, 1
  call void @sqlite3_str_appendchar(ptr noundef %1413, i32 noundef %1415, i8 noundef signext 32)
  store i32 0, ptr %12, align 4, !tbaa !13
  br label %1416

1416:                                             ; preds = %1412, %1409, %1402
  %1417 = load ptr, ptr %4, align 8, !tbaa !5
  %1418 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  %1419 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %1417, ptr noundef %1418, i32 noundef %1419)
  %1420 = load i32, ptr %9, align 4, !tbaa !13
  %1421 = add nsw i32 %1420, -1
  store i32 %1421, ptr %9, align 4, !tbaa !13
  br label %1422

1422:                                             ; preds = %1484, %1416
  %1423 = load i32, ptr %9, align 4, !tbaa !13
  %1424 = icmp sgt i32 %1423, 1
  br i1 %1424, label %1425, label %1485

1425:                                             ; preds = %1422
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #4
  %1426 = load i64, ptr %55, align 8, !tbaa !24
  %1427 = load i32, ptr %9, align 4, !tbaa !13
  %1428 = sub nsw i32 %1427, 1
  %1429 = sext i32 %1428 to i64
  %1430 = icmp sgt i64 %1426, %1429
  br i1 %1430, label %1431, label %1435

1431:                                             ; preds = %1425
  %1432 = load i32, ptr %9, align 4, !tbaa !13
  %1433 = sub nsw i32 %1432, 1
  %1434 = sext i32 %1433 to i64
  store i64 %1434, ptr %55, align 8, !tbaa !24
  br label %1435

1435:                                             ; preds = %1431, %1425
  %1436 = load i32, ptr %10, align 4, !tbaa !13
  %1437 = sext i32 %1436 to i64
  %1438 = load i64, ptr %55, align 8, !tbaa !24
  %1439 = mul nsw i64 %1437, %1438
  store i64 %1439, ptr %56, align 8, !tbaa !24
  %1440 = load i64, ptr %56, align 8, !tbaa !24
  %1441 = load ptr, ptr %4, align 8, !tbaa !5
  %1442 = getelementptr inbounds %struct.sqlite3_str, ptr %1441, i32 0, i32 4
  %1443 = load i32, ptr %1442, align 8, !tbaa !49
  %1444 = zext i32 %1443 to i64
  %1445 = add nsw i64 %1440, %1444
  %1446 = load ptr, ptr %4, align 8, !tbaa !5
  %1447 = getelementptr inbounds %struct.sqlite3_str, ptr %1446, i32 0, i32 2
  %1448 = load i32, ptr %1447, align 8, !tbaa !51
  %1449 = zext i32 %1448 to i64
  %1450 = icmp sge i64 %1445, %1449
  br i1 %1450, label %1451, label %1455

1451:                                             ; preds = %1435
  %1452 = load ptr, ptr %4, align 8, !tbaa !5
  %1453 = load i64, ptr %56, align 8, !tbaa !24
  %1454 = call i32 @sqlite3StrAccumEnlarge(ptr noundef %1452, i64 noundef %1453)
  br label %1455

1455:                                             ; preds = %1451, %1435
  %1456 = load ptr, ptr %4, align 8, !tbaa !5
  %1457 = getelementptr inbounds %struct.sqlite3_str, ptr %1456, i32 0, i32 5
  %1458 = load i8, ptr %1457, align 4, !tbaa !52
  %1459 = icmp ne i8 %1458, 0
  br i1 %1459, label %1460, label %1461

1460:                                             ; preds = %1455
  store i32 46, ptr %40, align 4
  br label %1482

1461:                                             ; preds = %1455
  %1462 = load ptr, ptr %4, align 8, !tbaa !5
  %1463 = load ptr, ptr %4, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.sqlite3_str, ptr %1463, i32 0, i32 1
  %1465 = load ptr, ptr %1464, align 8, !tbaa !53
  %1466 = load ptr, ptr %4, align 8, !tbaa !5
  %1467 = getelementptr inbounds %struct.sqlite3_str, ptr %1466, i32 0, i32 4
  %1468 = load i32, ptr %1467, align 8, !tbaa !49
  %1469 = zext i32 %1468 to i64
  %1470 = load i64, ptr %56, align 8, !tbaa !24
  %1471 = sub nsw i64 %1469, %1470
  %1472 = getelementptr inbounds i8, ptr %1465, i64 %1471
  %1473 = load i64, ptr %56, align 8, !tbaa !24
  %1474 = trunc i64 %1473 to i32
  call void @sqlite3_str_append(ptr noundef %1462, ptr noundef %1472, i32 noundef %1474)
  %1475 = load i64, ptr %55, align 8, !tbaa !24
  %1476 = load i32, ptr %9, align 4, !tbaa !13
  %1477 = sext i32 %1476 to i64
  %1478 = sub nsw i64 %1477, %1475
  %1479 = trunc i64 %1478 to i32
  store i32 %1479, ptr %9, align 4, !tbaa !13
  %1480 = load i64, ptr %55, align 8, !tbaa !24
  %1481 = mul nsw i64 %1480, 2
  store i64 %1481, ptr %55, align 8, !tbaa !24
  store i32 0, ptr %40, align 4
  br label %1482

1482:                                             ; preds = %1461, %1460
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  %1483 = load i32, ptr %40, align 4
  switch i32 %1483, label %2107 [
    i32 0, label %1484
    i32 46, label %1485
  ]

1484:                                             ; preds = %1482
  br label %1422, !llvm.loop !54

1485:                                             ; preds = %1482, %1422
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  br label %1486

1486:                                             ; preds = %1485, %1399
  %1487 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store ptr %1487, ptr %8, align 8, !tbaa !5
  store i8 1, ptr %16, align 1, !tbaa !9
  br label %1639

1488:                                             ; preds = %367, %367
  %1489 = load i8, ptr %22, align 1, !tbaa !9
  %1490 = icmp ne i8 %1489, 0
  br i1 %1490, label %1491, label %1494

1491:                                             ; preds = %1488
  %1492 = load ptr, ptr %34, align 8, !tbaa !5
  %1493 = call ptr @getTextArg(ptr noundef %1492)
  store ptr %1493, ptr %8, align 8, !tbaa !5
  store i8 5, ptr %21, align 1, !tbaa !9
  br label %1511

1494:                                             ; preds = %1488
  %1495 = load ptr, ptr %6, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.__va_list_tag, ptr %1495, i32 0, i32 0
  %1497 = load i32, ptr %1496, align 8
  %1498 = icmp ule i32 %1497, 40
  br i1 %1498, label %1499, label %1504

1499:                                             ; preds = %1494
  %1500 = getelementptr inbounds %struct.__va_list_tag, ptr %1495, i32 0, i32 3
  %1501 = load ptr, ptr %1500, align 8
  %1502 = getelementptr i8, ptr %1501, i32 %1497
  %1503 = add i32 %1497, 8
  store i32 %1503, ptr %1496, align 8
  br label %1508

1504:                                             ; preds = %1494
  %1505 = getelementptr inbounds %struct.__va_list_tag, ptr %1495, i32 0, i32 2
  %1506 = load ptr, ptr %1505, align 8
  %1507 = getelementptr i8, ptr %1506, i32 8
  store ptr %1507, ptr %1505, align 8
  br label %1508

1508:                                             ; preds = %1504, %1499
  %1509 = phi ptr [ %1502, %1499 ], [ %1506, %1504 ]
  %1510 = load ptr, ptr %1509, align 8, !tbaa !5
  store ptr %1510, ptr %8, align 8, !tbaa !5
  br label %1511

1511:                                             ; preds = %1508, %1491
  %1512 = load ptr, ptr %8, align 8, !tbaa !5
  %1513 = icmp eq ptr %1512, null
  br i1 %1513, label %1514, label %1515

1514:                                             ; preds = %1511
  store ptr @.str.4, ptr %8, align 8, !tbaa !5
  br label %1567

1515:                                             ; preds = %1511
  %1516 = load i8, ptr %21, align 1, !tbaa !9
  %1517 = zext i8 %1516 to i32
  %1518 = icmp eq i32 %1517, 6
  br i1 %1518, label %1519, label %1566

1519:                                             ; preds = %1515
  %1520 = load ptr, ptr %4, align 8, !tbaa !5
  %1521 = getelementptr inbounds %struct.sqlite3_str, ptr %1520, i32 0, i32 4
  %1522 = load i32, ptr %1521, align 8, !tbaa !49
  %1523 = icmp eq i32 %1522, 0
  br i1 %1523, label %1524, label %1564

1524:                                             ; preds = %1519
  %1525 = load ptr, ptr %4, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.sqlite3_str, ptr %1525, i32 0, i32 3
  %1527 = load i32, ptr %1526, align 4, !tbaa !55
  %1528 = icmp ne i32 %1527, 0
  br i1 %1528, label %1529, label %1564

1529:                                             ; preds = %1524
  %1530 = load i32, ptr %12, align 4, !tbaa !13
  %1531 = icmp eq i32 %1530, 0
  br i1 %1531, label %1532, label %1564

1532:                                             ; preds = %1529
  %1533 = load i32, ptr %9, align 4, !tbaa !13
  %1534 = icmp slt i32 %1533, 0
  br i1 %1534, label %1535, label %1564

1535:                                             ; preds = %1532
  %1536 = load ptr, ptr %4, align 8, !tbaa !5
  %1537 = getelementptr inbounds %struct.sqlite3_str, ptr %1536, i32 0, i32 5
  %1538 = load i8, ptr %1537, align 4, !tbaa !52
  %1539 = zext i8 %1538 to i32
  %1540 = icmp eq i32 %1539, 0
  br i1 %1540, label %1541, label %1564

1541:                                             ; preds = %1535
  %1542 = load ptr, ptr %8, align 8, !tbaa !5
  %1543 = load ptr, ptr %4, align 8, !tbaa !5
  %1544 = getelementptr inbounds %struct.sqlite3_str, ptr %1543, i32 0, i32 1
  store ptr %1542, ptr %1544, align 8, !tbaa !53
  %1545 = load ptr, ptr %4, align 8, !tbaa !5
  %1546 = getelementptr inbounds %struct.sqlite3_str, ptr %1545, i32 0, i32 0
  %1547 = load ptr, ptr %1546, align 8, !tbaa !56
  %1548 = load ptr, ptr %8, align 8, !tbaa !5
  %1549 = call i32 @sqlite3DbMallocSize(ptr noundef %1547, ptr noundef %1548)
  %1550 = load ptr, ptr %4, align 8, !tbaa !5
  %1551 = getelementptr inbounds %struct.sqlite3_str, ptr %1550, i32 0, i32 2
  store i32 %1549, ptr %1551, align 8, !tbaa !51
  %1552 = load ptr, ptr %8, align 8, !tbaa !5
  %1553 = call i64 @strlen(ptr noundef %1552) #5
  %1554 = trunc i64 %1553 to i32
  %1555 = and i32 2147483647, %1554
  %1556 = load ptr, ptr %4, align 8, !tbaa !5
  %1557 = getelementptr inbounds %struct.sqlite3_str, ptr %1556, i32 0, i32 4
  store i32 %1555, ptr %1557, align 8, !tbaa !49
  %1558 = load ptr, ptr %4, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.sqlite3_str, ptr %1558, i32 0, i32 6
  %1560 = load i8, ptr %1559, align 1, !tbaa !10
  %1561 = zext i8 %1560 to i32
  %1562 = or i32 %1561, 4
  %1563 = trunc i32 %1562 to i8
  store i8 %1563, ptr %1559, align 1, !tbaa !10
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %2065

1564:                                             ; preds = %1535, %1532, %1529, %1524, %1519
  %1565 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1565, ptr %29, align 8, !tbaa !5
  br label %1566

1566:                                             ; preds = %1564, %1515
  br label %1567

1567:                                             ; preds = %1566, %1514
  %1568 = load i32, ptr %9, align 4, !tbaa !13
  %1569 = icmp sge i32 %1568, 0
  br i1 %1569, label %1570, label %1633

1570:                                             ; preds = %1567
  %1571 = load i8, ptr %16, align 1, !tbaa !9
  %1572 = icmp ne i8 %1571, 0
  br i1 %1572, label %1573, label %1612

1573:                                             ; preds = %1570
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #4
  %1574 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1574, ptr %57, align 8, !tbaa !5
  br label %1575

1575:                                             ; preds = %1604, %1573
  %1576 = load i32, ptr %9, align 4, !tbaa !13
  %1577 = add nsw i32 %1576, -1
  store i32 %1577, ptr %9, align 4, !tbaa !13
  %1578 = icmp sgt i32 %1576, 0
  br i1 %1578, label %1579, label %1585

1579:                                             ; preds = %1575
  %1580 = load ptr, ptr %57, align 8, !tbaa !5
  %1581 = getelementptr inbounds i8, ptr %1580, i64 0
  %1582 = load i8, ptr %1581, align 1, !tbaa !9
  %1583 = zext i8 %1582 to i32
  %1584 = icmp ne i32 %1583, 0
  br label %1585

1585:                                             ; preds = %1579, %1575
  %1586 = phi i1 [ false, %1575 ], [ %1584, %1579 ]
  br i1 %1586, label %1587, label %1605

1587:                                             ; preds = %1585
  %1588 = load ptr, ptr %57, align 8, !tbaa !5
  %1589 = getelementptr inbounds i8, ptr %1588, i32 1
  store ptr %1589, ptr %57, align 8, !tbaa !5
  %1590 = load i8, ptr %1588, align 1, !tbaa !9
  %1591 = zext i8 %1590 to i32
  %1592 = icmp sge i32 %1591, 192
  br i1 %1592, label %1593, label %1604

1593:                                             ; preds = %1587
  br label %1594

1594:                                             ; preds = %1600, %1593
  %1595 = load ptr, ptr %57, align 8, !tbaa !5
  %1596 = load i8, ptr %1595, align 1, !tbaa !9
  %1597 = zext i8 %1596 to i32
  %1598 = and i32 %1597, 192
  %1599 = icmp eq i32 %1598, 128
  br i1 %1599, label %1600, label %1603

1600:                                             ; preds = %1594
  %1601 = load ptr, ptr %57, align 8, !tbaa !5
  %1602 = getelementptr inbounds i8, ptr %1601, i32 1
  store ptr %1602, ptr %57, align 8, !tbaa !5
  br label %1594, !llvm.loop !57

1603:                                             ; preds = %1594
  br label %1604

1604:                                             ; preds = %1603, %1587
  br label %1575, !llvm.loop !58

1605:                                             ; preds = %1585
  %1606 = load ptr, ptr %57, align 8, !tbaa !5
  %1607 = load ptr, ptr %8, align 8, !tbaa !5
  %1608 = ptrtoint ptr %1606 to i64
  %1609 = ptrtoint ptr %1607 to i64
  %1610 = sub i64 %1608, %1609
  %1611 = trunc i64 %1610 to i32
  store i32 %1611, ptr %10, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  br label %1632

1612:                                             ; preds = %1570
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1613

1613:                                             ; preds = %1628, %1612
  %1614 = load i32, ptr %10, align 4, !tbaa !13
  %1615 = load i32, ptr %9, align 4, !tbaa !13
  %1616 = icmp slt i32 %1614, %1615
  br i1 %1616, label %1617, label %1625

1617:                                             ; preds = %1613
  %1618 = load ptr, ptr %8, align 8, !tbaa !5
  %1619 = load i32, ptr %10, align 4, !tbaa !13
  %1620 = sext i32 %1619 to i64
  %1621 = getelementptr inbounds i8, ptr %1618, i64 %1620
  %1622 = load i8, ptr %1621, align 1, !tbaa !9
  %1623 = sext i8 %1622 to i32
  %1624 = icmp ne i32 %1623, 0
  br label %1625

1625:                                             ; preds = %1617, %1613
  %1626 = phi i1 [ false, %1613 ], [ %1624, %1617 ]
  br i1 %1626, label %1627, label %1631

1627:                                             ; preds = %1625
  br label %1628

1628:                                             ; preds = %1627
  %1629 = load i32, ptr %10, align 4, !tbaa !13
  %1630 = add nsw i32 %1629, 1
  store i32 %1630, ptr %10, align 4, !tbaa !13
  br label %1613, !llvm.loop !59

1631:                                             ; preds = %1625
  br label %1632

1632:                                             ; preds = %1631, %1605
  br label %1638

1633:                                             ; preds = %1567
  %1634 = load ptr, ptr %8, align 8, !tbaa !5
  %1635 = call i64 @strlen(ptr noundef %1634) #5
  %1636 = trunc i64 %1635 to i32
  %1637 = and i32 2147483647, %1636
  store i32 %1637, ptr %10, align 4, !tbaa !13
  br label %1638

1638:                                             ; preds = %1633, %1632
  br label %1639

1639:                                             ; preds = %1842, %1638, %1486
  %1640 = load i8, ptr %16, align 1, !tbaa !9
  %1641 = zext i8 %1640 to i32
  %1642 = icmp ne i32 %1641, 0
  br i1 %1642, label %1643, label %1667

1643:                                             ; preds = %1639
  %1644 = load i32, ptr %12, align 4, !tbaa !13
  %1645 = icmp sgt i32 %1644, 0
  br i1 %1645, label %1646, label %1667

1646:                                             ; preds = %1643
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #4
  %1647 = load i32, ptr %10, align 4, !tbaa !13
  %1648 = sub nsw i32 %1647, 1
  store i32 %1648, ptr %58, align 4, !tbaa !13
  br label %1649

1649:                                             ; preds = %1665, %1646
  %1650 = load i32, ptr %58, align 4, !tbaa !13
  %1651 = icmp sge i32 %1650, 0
  br i1 %1651, label %1652, label %1666

1652:                                             ; preds = %1649
  %1653 = load ptr, ptr %8, align 8, !tbaa !5
  %1654 = load i32, ptr %58, align 4, !tbaa !13
  %1655 = add nsw i32 %1654, -1
  store i32 %1655, ptr %58, align 4, !tbaa !13
  %1656 = sext i32 %1654 to i64
  %1657 = getelementptr inbounds i8, ptr %1653, i64 %1656
  %1658 = load i8, ptr %1657, align 1, !tbaa !9
  %1659 = sext i8 %1658 to i32
  %1660 = and i32 %1659, 192
  %1661 = icmp eq i32 %1660, 128
  br i1 %1661, label %1662, label %1665

1662:                                             ; preds = %1652
  %1663 = load i32, ptr %12, align 4, !tbaa !13
  %1664 = add nsw i32 %1663, 1
  store i32 %1664, ptr %12, align 4, !tbaa !13
  br label %1665

1665:                                             ; preds = %1662, %1652
  br label %1649, !llvm.loop !60

1666:                                             ; preds = %1649
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  br label %1667

1667:                                             ; preds = %1666, %1643, %1639
  br label %2065

1668:                                             ; preds = %367, %367, %367
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #4
  %1669 = load i8, ptr %21, align 1, !tbaa !9
  %1670 = zext i8 %1669 to i32
  %1671 = icmp eq i32 %1670, 14
  %1672 = zext i1 %1671 to i64
  %1673 = select i1 %1671, i32 34, i32 39
  %1674 = trunc i32 %1673 to i8
  store i8 %1674, ptr %66, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #4
  %1675 = load i8, ptr %22, align 1, !tbaa !9
  %1676 = icmp ne i8 %1675, 0
  br i1 %1676, label %1677, label %1680

1677:                                             ; preds = %1668
  %1678 = load ptr, ptr %34, align 8, !tbaa !5
  %1679 = call ptr @getTextArg(ptr noundef %1678)
  store ptr %1679, ptr %67, align 8, !tbaa !5
  br label %1697

1680:                                             ; preds = %1668
  %1681 = load ptr, ptr %6, align 8, !tbaa !5
  %1682 = getelementptr inbounds %struct.__va_list_tag, ptr %1681, i32 0, i32 0
  %1683 = load i32, ptr %1682, align 8
  %1684 = icmp ule i32 %1683, 40
  br i1 %1684, label %1685, label %1690

1685:                                             ; preds = %1680
  %1686 = getelementptr inbounds %struct.__va_list_tag, ptr %1681, i32 0, i32 3
  %1687 = load ptr, ptr %1686, align 8
  %1688 = getelementptr i8, ptr %1687, i32 %1683
  %1689 = add i32 %1683, 8
  store i32 %1689, ptr %1682, align 8
  br label %1694

1690:                                             ; preds = %1680
  %1691 = getelementptr inbounds %struct.__va_list_tag, ptr %1681, i32 0, i32 2
  %1692 = load ptr, ptr %1691, align 8
  %1693 = getelementptr i8, ptr %1692, i32 8
  store ptr %1693, ptr %1691, align 8
  br label %1694

1694:                                             ; preds = %1690, %1685
  %1695 = phi ptr [ %1688, %1685 ], [ %1692, %1690 ]
  %1696 = load ptr, ptr %1695, align 8, !tbaa !5
  store ptr %1696, ptr %67, align 8, !tbaa !5
  br label %1697

1697:                                             ; preds = %1694, %1677
  %1698 = load ptr, ptr %67, align 8, !tbaa !5
  %1699 = icmp eq ptr %1698, null
  %1700 = zext i1 %1699 to i32
  store i32 %1700, ptr %64, align 4, !tbaa !13
  %1701 = load i32, ptr %64, align 4, !tbaa !13
  %1702 = icmp ne i32 %1701, 0
  br i1 %1702, label %1703, label %1709

1703:                                             ; preds = %1697
  %1704 = load i8, ptr %21, align 1, !tbaa !9
  %1705 = zext i8 %1704 to i32
  %1706 = icmp eq i32 %1705, 10
  %1707 = zext i1 %1706 to i64
  %1708 = select i1 %1706, ptr @.str.5, ptr @.str.6
  store ptr %1708, ptr %67, align 8, !tbaa !5
  br label %1709

1709:                                             ; preds = %1703, %1697
  %1710 = load i32, ptr %9, align 4, !tbaa !13
  %1711 = sext i32 %1710 to i64
  store i64 %1711, ptr %61, align 8, !tbaa !24
  store i64 0, ptr %62, align 8, !tbaa !24
  store i64 0, ptr %59, align 8, !tbaa !24
  br label %1712

1712:                                             ; preds = %1757, %1709
  %1713 = load i64, ptr %61, align 8, !tbaa !24
  %1714 = icmp ne i64 %1713, 0
  br i1 %1714, label %1715, label %1722

1715:                                             ; preds = %1712
  %1716 = load ptr, ptr %67, align 8, !tbaa !5
  %1717 = load i64, ptr %59, align 8, !tbaa !24
  %1718 = getelementptr inbounds i8, ptr %1716, i64 %1717
  %1719 = load i8, ptr %1718, align 1, !tbaa !9
  store i8 %1719, ptr %65, align 1, !tbaa !9
  %1720 = sext i8 %1719 to i32
  %1721 = icmp ne i32 %1720, 0
  br label %1722

1722:                                             ; preds = %1715, %1712
  %1723 = phi i1 [ false, %1712 ], [ %1721, %1715 ]
  br i1 %1723, label %1724, label %1762

1724:                                             ; preds = %1722
  %1725 = load i8, ptr %65, align 1, !tbaa !9
  %1726 = sext i8 %1725 to i32
  %1727 = load i8, ptr %66, align 1, !tbaa !9
  %1728 = sext i8 %1727 to i32
  %1729 = icmp eq i32 %1726, %1728
  br i1 %1729, label %1730, label %1733

1730:                                             ; preds = %1724
  %1731 = load i64, ptr %62, align 8, !tbaa !24
  %1732 = add nsw i64 %1731, 1
  store i64 %1732, ptr %62, align 8, !tbaa !24
  br label %1733

1733:                                             ; preds = %1730, %1724
  %1734 = load i8, ptr %16, align 1, !tbaa !9
  %1735 = zext i8 %1734 to i32
  %1736 = icmp ne i32 %1735, 0
  br i1 %1736, label %1737, label %1756

1737:                                             ; preds = %1733
  %1738 = load i8, ptr %65, align 1, !tbaa !9
  %1739 = sext i8 %1738 to i32
  %1740 = and i32 %1739, 192
  %1741 = icmp eq i32 %1740, 192
  br i1 %1741, label %1742, label %1756

1742:                                             ; preds = %1737
  br label %1743

1743:                                             ; preds = %1752, %1742
  %1744 = load ptr, ptr %67, align 8, !tbaa !5
  %1745 = load i64, ptr %59, align 8, !tbaa !24
  %1746 = add nsw i64 %1745, 1
  %1747 = getelementptr inbounds i8, ptr %1744, i64 %1746
  %1748 = load i8, ptr %1747, align 1, !tbaa !9
  %1749 = sext i8 %1748 to i32
  %1750 = and i32 %1749, 192
  %1751 = icmp eq i32 %1750, 128
  br i1 %1751, label %1752, label %1755

1752:                                             ; preds = %1743
  %1753 = load i64, ptr %59, align 8, !tbaa !24
  %1754 = add nsw i64 %1753, 1
  store i64 %1754, ptr %59, align 8, !tbaa !24
  br label %1743, !llvm.loop !61

1755:                                             ; preds = %1743
  br label %1756

1756:                                             ; preds = %1755, %1737, %1733
  br label %1757

1757:                                             ; preds = %1756
  %1758 = load i64, ptr %59, align 8, !tbaa !24
  %1759 = add nsw i64 %1758, 1
  store i64 %1759, ptr %59, align 8, !tbaa !24
  %1760 = load i64, ptr %61, align 8, !tbaa !24
  %1761 = add nsw i64 %1760, -1
  store i64 %1761, ptr %61, align 8, !tbaa !24
  br label %1712, !llvm.loop !62

1762:                                             ; preds = %1722
  %1763 = load i32, ptr %64, align 4, !tbaa !13
  %1764 = icmp ne i32 %1763, 0
  br i1 %1764, label %1769, label %1765

1765:                                             ; preds = %1762
  %1766 = load i8, ptr %21, align 1, !tbaa !9
  %1767 = zext i8 %1766 to i32
  %1768 = icmp eq i32 %1767, 10
  br label %1769

1769:                                             ; preds = %1765, %1762
  %1770 = phi i1 [ false, %1762 ], [ %1768, %1765 ]
  %1771 = zext i1 %1770 to i32
  store i32 %1771, ptr %63, align 4, !tbaa !13
  %1772 = load i64, ptr %59, align 8, !tbaa !24
  %1773 = add nsw i64 %1772, 3
  %1774 = load i64, ptr %62, align 8, !tbaa !24
  %1775 = add nsw i64 %1774, %1773
  store i64 %1775, ptr %62, align 8, !tbaa !24
  %1776 = load i64, ptr %62, align 8, !tbaa !24
  %1777 = icmp sgt i64 %1776, 70
  br i1 %1777, label %1778, label %1786

1778:                                             ; preds = %1769
  %1779 = load ptr, ptr %4, align 8, !tbaa !5
  %1780 = load i64, ptr %62, align 8, !tbaa !24
  %1781 = call ptr @printfTempBuf(ptr noundef %1779, i64 noundef %1780)
  store ptr %1781, ptr %29, align 8, !tbaa !5
  store ptr %1781, ptr %8, align 8, !tbaa !5
  %1782 = load ptr, ptr %8, align 8, !tbaa !5
  %1783 = icmp eq ptr %1782, null
  br i1 %1783, label %1784, label %1785

1784:                                             ; preds = %1778
  store i32 1, ptr %40, align 4
  br label %1842

1785:                                             ; preds = %1778
  br label %1788

1786:                                             ; preds = %1769
  %1787 = getelementptr inbounds [70 x i8], ptr %35, i64 0, i64 0
  store ptr %1787, ptr %8, align 8, !tbaa !5
  br label %1788

1788:                                             ; preds = %1786, %1785
  store i64 0, ptr %60, align 8, !tbaa !24
  %1789 = load i32, ptr %63, align 4, !tbaa !13
  %1790 = icmp ne i32 %1789, 0
  br i1 %1790, label %1791, label %1797

1791:                                             ; preds = %1788
  %1792 = load i8, ptr %66, align 1, !tbaa !9
  %1793 = load ptr, ptr %8, align 8, !tbaa !5
  %1794 = load i64, ptr %60, align 8, !tbaa !24
  %1795 = add nsw i64 %1794, 1
  store i64 %1795, ptr %60, align 8, !tbaa !24
  %1796 = getelementptr inbounds i8, ptr %1793, i64 %1794
  store i8 %1792, ptr %1796, align 1, !tbaa !9
  br label %1797

1797:                                             ; preds = %1791, %1788
  %1798 = load i64, ptr %59, align 8, !tbaa !24
  store i64 %1798, ptr %61, align 8, !tbaa !24
  store i64 0, ptr %59, align 8, !tbaa !24
  br label %1799

1799:                                             ; preds = %1824, %1797
  %1800 = load i64, ptr %59, align 8, !tbaa !24
  %1801 = load i64, ptr %61, align 8, !tbaa !24
  %1802 = icmp slt i64 %1800, %1801
  br i1 %1802, label %1803, label %1827

1803:                                             ; preds = %1799
  %1804 = load ptr, ptr %67, align 8, !tbaa !5
  %1805 = load i64, ptr %59, align 8, !tbaa !24
  %1806 = getelementptr inbounds i8, ptr %1804, i64 %1805
  %1807 = load i8, ptr %1806, align 1, !tbaa !9
  store i8 %1807, ptr %65, align 1, !tbaa !9
  %1808 = load ptr, ptr %8, align 8, !tbaa !5
  %1809 = load i64, ptr %60, align 8, !tbaa !24
  %1810 = add nsw i64 %1809, 1
  store i64 %1810, ptr %60, align 8, !tbaa !24
  %1811 = getelementptr inbounds i8, ptr %1808, i64 %1809
  store i8 %1807, ptr %1811, align 1, !tbaa !9
  %1812 = load i8, ptr %65, align 1, !tbaa !9
  %1813 = sext i8 %1812 to i32
  %1814 = load i8, ptr %66, align 1, !tbaa !9
  %1815 = sext i8 %1814 to i32
  %1816 = icmp eq i32 %1813, %1815
  br i1 %1816, label %1817, label %1823

1817:                                             ; preds = %1803
  %1818 = load i8, ptr %65, align 1, !tbaa !9
  %1819 = load ptr, ptr %8, align 8, !tbaa !5
  %1820 = load i64, ptr %60, align 8, !tbaa !24
  %1821 = add nsw i64 %1820, 1
  store i64 %1821, ptr %60, align 8, !tbaa !24
  %1822 = getelementptr inbounds i8, ptr %1819, i64 %1820
  store i8 %1818, ptr %1822, align 1, !tbaa !9
  br label %1823

1823:                                             ; preds = %1817, %1803
  br label %1824

1824:                                             ; preds = %1823
  %1825 = load i64, ptr %59, align 8, !tbaa !24
  %1826 = add nsw i64 %1825, 1
  store i64 %1826, ptr %59, align 8, !tbaa !24
  br label %1799, !llvm.loop !63

1827:                                             ; preds = %1799
  %1828 = load i32, ptr %63, align 4, !tbaa !13
  %1829 = icmp ne i32 %1828, 0
  br i1 %1829, label %1830, label %1836

1830:                                             ; preds = %1827
  %1831 = load i8, ptr %66, align 1, !tbaa !9
  %1832 = load ptr, ptr %8, align 8, !tbaa !5
  %1833 = load i64, ptr %60, align 8, !tbaa !24
  %1834 = add nsw i64 %1833, 1
  store i64 %1834, ptr %60, align 8, !tbaa !24
  %1835 = getelementptr inbounds i8, ptr %1832, i64 %1833
  store i8 %1831, ptr %1835, align 1, !tbaa !9
  br label %1836

1836:                                             ; preds = %1830, %1827
  %1837 = load ptr, ptr %8, align 8, !tbaa !5
  %1838 = load i64, ptr %60, align 8, !tbaa !24
  %1839 = getelementptr inbounds i8, ptr %1837, i64 %1838
  store i8 0, ptr %1839, align 1, !tbaa !9
  %1840 = load i64, ptr %60, align 8, !tbaa !24
  %1841 = trunc i64 %1840 to i32
  store i32 %1841, ptr %10, align 4, !tbaa !13
  store i32 47, ptr %40, align 4
  br label %1842

1842:                                             ; preds = %1836, %1784
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  %1843 = load i32, ptr %40, align 4
  switch i32 %1843, label %2104 [
    i32 47, label %1639
  ]

1844:                                             ; preds = %367
  %1845 = load ptr, ptr %4, align 8, !tbaa !5
  %1846 = getelementptr inbounds %struct.sqlite3_str, ptr %1845, i32 0, i32 6
  %1847 = load i8, ptr %1846, align 1, !tbaa !10
  %1848 = zext i8 %1847 to i32
  %1849 = and i32 %1848, 1
  %1850 = icmp eq i32 %1849, 0
  br i1 %1850, label %1851, label %1852

1851:                                             ; preds = %1844
  store i32 1, ptr %40, align 4
  br label %2104

1852:                                             ; preds = %1844
  %1853 = load i8, ptr %15, align 1, !tbaa !9
  %1854 = icmp ne i8 %1853, 0
  br i1 %1854, label %1855, label %1890

1855:                                             ; preds = %1852
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #4
  %1856 = load ptr, ptr %6, align 8, !tbaa !5
  %1857 = getelementptr inbounds %struct.__va_list_tag, ptr %1856, i32 0, i32 0
  %1858 = load i32, ptr %1857, align 8
  %1859 = icmp ule i32 %1858, 40
  br i1 %1859, label %1860, label %1865

1860:                                             ; preds = %1855
  %1861 = getelementptr inbounds %struct.__va_list_tag, ptr %1856, i32 0, i32 3
  %1862 = load ptr, ptr %1861, align 8
  %1863 = getelementptr i8, ptr %1862, i32 %1858
  %1864 = add i32 %1858, 8
  store i32 %1864, ptr %1857, align 8
  br label %1869

1865:                                             ; preds = %1855
  %1866 = getelementptr inbounds %struct.__va_list_tag, ptr %1856, i32 0, i32 2
  %1867 = load ptr, ptr %1866, align 8
  %1868 = getelementptr i8, ptr %1867, i32 8
  store ptr %1868, ptr %1866, align 8
  br label %1869

1869:                                             ; preds = %1865, %1860
  %1870 = phi ptr [ %1863, %1860 ], [ %1867, %1865 ]
  %1871 = load ptr, ptr %1870, align 8, !tbaa !5
  store ptr %1871, ptr %68, align 8, !tbaa !5
  %1872 = load ptr, ptr %68, align 8, !tbaa !5
  %1873 = icmp ne ptr %1872, null
  br i1 %1873, label %1874, label %1889

1874:                                             ; preds = %1869
  %1875 = load ptr, ptr %68, align 8, !tbaa !5
  %1876 = getelementptr inbounds %struct.Expr, ptr %1875, i32 0, i32 3
  %1877 = load i32, ptr %1876, align 4, !tbaa !64
  %1878 = and i32 %1877, 2048
  %1879 = icmp ne i32 %1878, 0
  br i1 %1879, label %1889, label %1880

1880:                                             ; preds = %1874
  %1881 = load ptr, ptr %4, align 8, !tbaa !5
  %1882 = load ptr, ptr %68, align 8, !tbaa !5
  %1883 = getelementptr inbounds %struct.Expr, ptr %1882, i32 0, i32 4
  %1884 = load ptr, ptr %1883, align 8, !tbaa !9
  call void @sqlite3_str_appendall(ptr noundef %1881, ptr noundef %1884)
  %1885 = load ptr, ptr %4, align 8, !tbaa !5
  %1886 = getelementptr inbounds %struct.sqlite3_str, ptr %1885, i32 0, i32 0
  %1887 = load ptr, ptr %1886, align 8, !tbaa !56
  %1888 = load ptr, ptr %68, align 8, !tbaa !5
  call void @sqlite3RecordErrorOffsetOfExpr(ptr noundef %1887, ptr noundef %1888)
  br label %1889

1889:                                             ; preds = %1880, %1874, %1869
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  br label %1929

1890:                                             ; preds = %1852
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #4
  %1891 = load ptr, ptr %6, align 8, !tbaa !5
  %1892 = getelementptr inbounds %struct.__va_list_tag, ptr %1891, i32 0, i32 0
  %1893 = load i32, ptr %1892, align 8
  %1894 = icmp ule i32 %1893, 40
  br i1 %1894, label %1895, label %1900

1895:                                             ; preds = %1890
  %1896 = getelementptr inbounds %struct.__va_list_tag, ptr %1891, i32 0, i32 3
  %1897 = load ptr, ptr %1896, align 8
  %1898 = getelementptr i8, ptr %1897, i32 %1893
  %1899 = add i32 %1893, 8
  store i32 %1899, ptr %1892, align 8
  br label %1904

1900:                                             ; preds = %1890
  %1901 = getelementptr inbounds %struct.__va_list_tag, ptr %1891, i32 0, i32 2
  %1902 = load ptr, ptr %1901, align 8
  %1903 = getelementptr i8, ptr %1902, i32 8
  store ptr %1903, ptr %1901, align 8
  br label %1904

1904:                                             ; preds = %1900, %1895
  %1905 = phi ptr [ %1898, %1895 ], [ %1902, %1900 ]
  %1906 = load ptr, ptr %1905, align 8, !tbaa !5
  store ptr %1906, ptr %69, align 8, !tbaa !5
  %1907 = load ptr, ptr %69, align 8, !tbaa !5
  %1908 = icmp ne ptr %1907, null
  br i1 %1908, label %1909, label %1928

1909:                                             ; preds = %1904
  %1910 = load ptr, ptr %69, align 8, !tbaa !5
  %1911 = getelementptr inbounds %struct.Token, ptr %1910, i32 0, i32 1
  %1912 = load i32, ptr %1911, align 8, !tbaa !67
  %1913 = icmp ne i32 %1912, 0
  br i1 %1913, label %1914, label %1928

1914:                                             ; preds = %1909
  %1915 = load ptr, ptr %4, align 8, !tbaa !5
  %1916 = load ptr, ptr %69, align 8, !tbaa !5
  %1917 = getelementptr inbounds %struct.Token, ptr %1916, i32 0, i32 0
  %1918 = load ptr, ptr %1917, align 8, !tbaa !69
  %1919 = load ptr, ptr %69, align 8, !tbaa !5
  %1920 = getelementptr inbounds %struct.Token, ptr %1919, i32 0, i32 1
  %1921 = load i32, ptr %1920, align 8, !tbaa !67
  call void @sqlite3_str_append(ptr noundef %1915, ptr noundef %1918, i32 noundef %1921)
  %1922 = load ptr, ptr %4, align 8, !tbaa !5
  %1923 = getelementptr inbounds %struct.sqlite3_str, ptr %1922, i32 0, i32 0
  %1924 = load ptr, ptr %1923, align 8, !tbaa !56
  %1925 = load ptr, ptr %69, align 8, !tbaa !5
  %1926 = getelementptr inbounds %struct.Token, ptr %1925, i32 0, i32 0
  %1927 = load ptr, ptr %1926, align 8, !tbaa !69
  call void @sqlite3RecordErrorByteOffset(ptr noundef %1924, ptr noundef %1927)
  br label %1928

1928:                                             ; preds = %1914, %1909, %1904
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  br label %1929

1929:                                             ; preds = %1928, %1889
  store i32 0, ptr %12, align 4, !tbaa !13
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %2065

1930:                                             ; preds = %367
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #4
  %1931 = load ptr, ptr %4, align 8, !tbaa !5
  %1932 = getelementptr inbounds %struct.sqlite3_str, ptr %1931, i32 0, i32 6
  %1933 = load i8, ptr %1932, align 1, !tbaa !10
  %1934 = zext i8 %1933 to i32
  %1935 = and i32 %1934, 1
  %1936 = icmp eq i32 %1935, 0
  br i1 %1936, label %1937, label %1938

1937:                                             ; preds = %1930
  store i32 1, ptr %40, align 4
  br label %2062

1938:                                             ; preds = %1930
  %1939 = load ptr, ptr %6, align 8, !tbaa !5
  %1940 = getelementptr inbounds %struct.__va_list_tag, ptr %1939, i32 0, i32 0
  %1941 = load i32, ptr %1940, align 8
  %1942 = icmp ule i32 %1941, 40
  br i1 %1942, label %1943, label %1948

1943:                                             ; preds = %1938
  %1944 = getelementptr inbounds %struct.__va_list_tag, ptr %1939, i32 0, i32 3
  %1945 = load ptr, ptr %1944, align 8
  %1946 = getelementptr i8, ptr %1945, i32 %1941
  %1947 = add i32 %1941, 8
  store i32 %1947, ptr %1940, align 8
  br label %1952

1948:                                             ; preds = %1938
  %1949 = getelementptr inbounds %struct.__va_list_tag, ptr %1939, i32 0, i32 2
  %1950 = load ptr, ptr %1949, align 8
  %1951 = getelementptr i8, ptr %1950, i32 8
  store ptr %1951, ptr %1949, align 8
  br label %1952

1952:                                             ; preds = %1948, %1943
  %1953 = phi ptr [ %1946, %1943 ], [ %1950, %1948 ]
  %1954 = load ptr, ptr %1953, align 8, !tbaa !5
  store ptr %1954, ptr %70, align 8, !tbaa !5
  %1955 = load ptr, ptr %70, align 8, !tbaa !5
  %1956 = getelementptr inbounds %struct.SrcItem, ptr %1955, i32 0, i32 1
  %1957 = load ptr, ptr %1956, align 8, !tbaa !70
  %1958 = icmp ne ptr %1957, null
  br i1 %1958, label %1959, label %1967

1959:                                             ; preds = %1952
  %1960 = load i8, ptr %16, align 1, !tbaa !9
  %1961 = icmp ne i8 %1960, 0
  br i1 %1961, label %1967, label %1962

1962:                                             ; preds = %1959
  %1963 = load ptr, ptr %4, align 8, !tbaa !5
  %1964 = load ptr, ptr %70, align 8, !tbaa !5
  %1965 = getelementptr inbounds %struct.SrcItem, ptr %1964, i32 0, i32 1
  %1966 = load ptr, ptr %1965, align 8, !tbaa !70
  call void @sqlite3_str_appendall(ptr noundef %1963, ptr noundef %1966)
  br label %2061

1967:                                             ; preds = %1959, %1952
  %1968 = load ptr, ptr %70, align 8, !tbaa !5
  %1969 = getelementptr inbounds %struct.SrcItem, ptr %1968, i32 0, i32 0
  %1970 = load ptr, ptr %1969, align 8, !tbaa !73
  %1971 = icmp ne ptr %1970, null
  br i1 %1971, label %1972, label %2005

1972:                                             ; preds = %1967
  %1973 = load ptr, ptr %70, align 8, !tbaa !5
  %1974 = getelementptr inbounds %struct.SrcItem, ptr %1973, i32 0, i32 3
  %1975 = getelementptr inbounds %struct.anon.5, ptr %1974, i32 0, i32 2
  %1976 = load i8, ptr %1975, align 1
  %1977 = and i8 %1976, 1
  %1978 = zext i8 %1977 to i32
  %1979 = icmp eq i32 %1978, 0
  br i1 %1979, label %1980, label %2000

1980:                                             ; preds = %1972
  %1981 = load ptr, ptr %70, align 8, !tbaa !5
  %1982 = getelementptr inbounds %struct.SrcItem, ptr %1981, i32 0, i32 3
  %1983 = getelementptr inbounds %struct.anon.5, ptr %1982, i32 0, i32 1
  %1984 = load i16, ptr %1983, align 1
  %1985 = lshr i16 %1984, 2
  %1986 = and i16 %1985, 1
  %1987 = zext i16 %1986 to i32
  %1988 = icmp eq i32 %1987, 0
  br i1 %1988, label %1989, label %2000

1989:                                             ; preds = %1980
  %1990 = load ptr, ptr %70, align 8, !tbaa !5
  %1991 = getelementptr inbounds %struct.SrcItem, ptr %1990, i32 0, i32 9
  %1992 = load ptr, ptr %1991, align 8, !tbaa !9
  %1993 = icmp ne ptr %1992, null
  br i1 %1993, label %1994, label %2000

1994:                                             ; preds = %1989
  %1995 = load ptr, ptr %4, align 8, !tbaa !5
  %1996 = load ptr, ptr %70, align 8, !tbaa !5
  %1997 = getelementptr inbounds %struct.SrcItem, ptr %1996, i32 0, i32 9
  %1998 = load ptr, ptr %1997, align 8, !tbaa !9
  call void @sqlite3_str_appendall(ptr noundef %1995, ptr noundef %1998)
  %1999 = load ptr, ptr %4, align 8, !tbaa !5
  call void @sqlite3_str_append(ptr noundef %1999, ptr noundef @.str.7, i32 noundef 1)
  br label %2000

2000:                                             ; preds = %1994, %1989, %1980, %1972
  %2001 = load ptr, ptr %4, align 8, !tbaa !5
  %2002 = load ptr, ptr %70, align 8, !tbaa !5
  %2003 = getelementptr inbounds %struct.SrcItem, ptr %2002, i32 0, i32 0
  %2004 = load ptr, ptr %2003, align 8, !tbaa !73
  call void @sqlite3_str_appendall(ptr noundef %2001, ptr noundef %2004)
  br label %2060

2005:                                             ; preds = %1967
  %2006 = load ptr, ptr %70, align 8, !tbaa !5
  %2007 = getelementptr inbounds %struct.SrcItem, ptr %2006, i32 0, i32 1
  %2008 = load ptr, ptr %2007, align 8, !tbaa !70
  %2009 = icmp ne ptr %2008, null
  br i1 %2009, label %2010, label %2015

2010:                                             ; preds = %2005
  %2011 = load ptr, ptr %4, align 8, !tbaa !5
  %2012 = load ptr, ptr %70, align 8, !tbaa !5
  %2013 = getelementptr inbounds %struct.SrcItem, ptr %2012, i32 0, i32 1
  %2014 = load ptr, ptr %2013, align 8, !tbaa !70
  call void @sqlite3_str_appendall(ptr noundef %2011, ptr noundef %2014)
  br label %2059

2015:                                             ; preds = %2005
  %2016 = load ptr, ptr %70, align 8, !tbaa !5
  %2017 = getelementptr inbounds %struct.SrcItem, ptr %2016, i32 0, i32 3
  %2018 = getelementptr inbounds %struct.anon.5, ptr %2017, i32 0, i32 1
  %2019 = load i16, ptr %2018, align 1
  %2020 = lshr i16 %2019, 2
  %2021 = and i16 %2020, 1
  %2022 = zext i16 %2021 to i32
  %2023 = icmp ne i32 %2022, 0
  br i1 %2023, label %2024, label %2058

2024:                                             ; preds = %2015
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #4
  %2025 = load ptr, ptr %70, align 8, !tbaa !5
  %2026 = getelementptr inbounds %struct.SrcItem, ptr %2025, i32 0, i32 9
  %2027 = load ptr, ptr %2026, align 8, !tbaa !9
  %2028 = getelementptr inbounds %struct.Subquery, ptr %2027, i32 0, i32 0
  %2029 = load ptr, ptr %2028, align 8, !tbaa !74
  store ptr %2029, ptr %71, align 8, !tbaa !5
  %2030 = load ptr, ptr %71, align 8, !tbaa !5
  %2031 = getelementptr inbounds %struct.Select, ptr %2030, i32 0, i32 2
  %2032 = load i32, ptr %2031, align 4, !tbaa !76
  %2033 = and i32 %2032, 2048
  %2034 = icmp ne i32 %2033, 0
  br i1 %2034, label %2035, label %2040

2035:                                             ; preds = %2024
  %2036 = load ptr, ptr %4, align 8, !tbaa !5
  %2037 = load ptr, ptr %71, align 8, !tbaa !5
  %2038 = getelementptr inbounds %struct.Select, ptr %2037, i32 0, i32 5
  %2039 = load i32, ptr %2038, align 8, !tbaa !78
  call void (ptr, ptr, ...) @sqlite3_str_appendf(ptr noundef %2036, ptr noundef @.str.8, i32 noundef %2039)
  br label %2057

2040:                                             ; preds = %2024
  %2041 = load ptr, ptr %71, align 8, !tbaa !5
  %2042 = getelementptr inbounds %struct.Select, ptr %2041, i32 0, i32 2
  %2043 = load i32, ptr %2042, align 4, !tbaa !76
  %2044 = and i32 %2043, 1024
  %2045 = icmp ne i32 %2044, 0
  br i1 %2045, label %2046, label %2051

2046:                                             ; preds = %2040
  %2047 = load ptr, ptr %4, align 8, !tbaa !5
  %2048 = load ptr, ptr %70, align 8, !tbaa !5
  %2049 = getelementptr inbounds %struct.SrcItem, ptr %2048, i32 0, i32 6
  %2050 = load i32, ptr %2049, align 8, !tbaa !9
  call void (ptr, ptr, ...) @sqlite3_str_appendf(ptr noundef %2047, ptr noundef @.str.9, i32 noundef %2050)
  br label %2056

2051:                                             ; preds = %2040
  %2052 = load ptr, ptr %4, align 8, !tbaa !5
  %2053 = load ptr, ptr %71, align 8, !tbaa !5
  %2054 = getelementptr inbounds %struct.Select, ptr %2053, i32 0, i32 5
  %2055 = load i32, ptr %2054, align 8, !tbaa !78
  call void (ptr, ptr, ...) @sqlite3_str_appendf(ptr noundef %2052, ptr noundef @.str.10, i32 noundef %2055)
  br label %2056

2056:                                             ; preds = %2051, %2046
  br label %2057

2057:                                             ; preds = %2056, %2035
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  br label %2058

2058:                                             ; preds = %2057, %2015
  br label %2059

2059:                                             ; preds = %2058, %2010
  br label %2060

2060:                                             ; preds = %2059, %2000
  br label %2061

2061:                                             ; preds = %2060, %1962
  store i32 0, ptr %12, align 4, !tbaa !13
  store i32 0, ptr %10, align 4, !tbaa !13
  store i32 17, ptr %40, align 4
  br label %2062

2062:                                             ; preds = %2061, %1937
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  %2063 = load i32, ptr %40, align 4
  switch i32 %2063, label %2104 [
    i32 17, label %2065
  ]

2064:                                             ; preds = %367
  store i32 1, ptr %40, align 4
  br label %2104

2065:                                             ; preds = %2062, %1929, %1667, %1541, %1247, %1246, %1221, %748
  %2066 = load i32, ptr %10, align 4, !tbaa !13
  %2067 = load i32, ptr %12, align 4, !tbaa !13
  %2068 = sub nsw i32 %2067, %2066
  store i32 %2068, ptr %12, align 4, !tbaa !13
  %2069 = load i32, ptr %12, align 4, !tbaa !13
  %2070 = icmp sgt i32 %2069, 0
  br i1 %2070, label %2071, label %2087

2071:                                             ; preds = %2065
  %2072 = load i8, ptr %13, align 1, !tbaa !9
  %2073 = icmp ne i8 %2072, 0
  br i1 %2073, label %2077, label %2074

2074:                                             ; preds = %2071
  %2075 = load ptr, ptr %4, align 8, !tbaa !5
  %2076 = load i32, ptr %12, align 4, !tbaa !13
  call void @sqlite3_str_appendchar(ptr noundef %2075, i32 noundef %2076, i8 noundef signext 32)
  br label %2077

2077:                                             ; preds = %2074, %2071
  %2078 = load ptr, ptr %4, align 8, !tbaa !5
  %2079 = load ptr, ptr %8, align 8, !tbaa !5
  %2080 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %2078, ptr noundef %2079, i32 noundef %2080)
  %2081 = load i8, ptr %13, align 1, !tbaa !9
  %2082 = icmp ne i8 %2081, 0
  br i1 %2082, label %2083, label %2086

2083:                                             ; preds = %2077
  %2084 = load ptr, ptr %4, align 8, !tbaa !5
  %2085 = load i32, ptr %12, align 4, !tbaa !13
  call void @sqlite3_str_appendchar(ptr noundef %2084, i32 noundef %2085, i8 noundef signext 32)
  br label %2086

2086:                                             ; preds = %2083, %2077
  br label %2091

2087:                                             ; preds = %2065
  %2088 = load ptr, ptr %4, align 8, !tbaa !5
  %2089 = load ptr, ptr %8, align 8, !tbaa !5
  %2090 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %2088, ptr noundef %2089, i32 noundef %2090)
  br label %2091

2091:                                             ; preds = %2087, %2086
  %2092 = load ptr, ptr %29, align 8, !tbaa !5
  %2093 = icmp ne ptr %2092, null
  br i1 %2093, label %2094, label %2099

2094:                                             ; preds = %2091
  %2095 = load ptr, ptr %4, align 8, !tbaa !5
  %2096 = getelementptr inbounds %struct.sqlite3_str, ptr %2095, i32 0, i32 0
  %2097 = load ptr, ptr %2096, align 8, !tbaa !56
  %2098 = load ptr, ptr %29, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %2097, ptr noundef %2098)
  store ptr null, ptr %29, align 8, !tbaa !5
  br label %2099

2099:                                             ; preds = %2094, %2091
  br label %2100

2100:                                             ; preds = %2099
  %2101 = load ptr, ptr %5, align 8, !tbaa !5
  %2102 = getelementptr inbounds i8, ptr %2101, i32 1
  store ptr %2102, ptr %5, align 8, !tbaa !5
  br label %97, !llvm.loop !79

2103:                                             ; preds = %143, %135, %97
  store i32 0, ptr %40, align 4
  br label %2104

2104:                                             ; preds = %2103, %2064, %2062, %1851, %1842, %1221, %577
  call void @llvm.lifetime.end.p0(i64 70, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 1, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 1, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #4
  %2105 = load i32, ptr %40, align 4
  switch i32 %2105, label %2107 [
    i32 0, label %2106
    i32 1, label %2106
  ]

2106:                                             ; preds = %2104, %2104
  ret void

2107:                                             ; preds = %2104, %1482
  unreachable
}

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

; Function Attrs: nounwind uwtable
declare hidden i64 @getIntArg(ptr noundef) #1

; Function Attrs: nounwind uwtable
declare hidden ptr @printfTempBuf(ptr noundef, i64 noundef) #1

; Function Attrs: nounwind uwtable
declare hidden double @getDoubleArg(ptr noundef) #1

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

; Function Attrs: nounwind uwtable
declare hidden ptr @getTextArg(ptr noundef) #1

; Function Attrs: nounwind uwtable
declare dso_local void @sqlite3_str_appendchar(ptr noundef, i32 noundef, i8 noundef signext) #1

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #3

; Function Attrs: nounwind uwtable
declare dso_local void @sqlite3_str_appendall(ptr noundef, ptr noundef) #1

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @sqlite3_str_appendf(ptr noundef, ptr noundef, ...) #1

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { nounwind willreturn memory(read) "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 #4 = { nounwind }
attributes #5 = { nounwind willreturn memory(read) }

!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 = !{!7, !7, i64 0}
!10 = !{!11, !7, i64 29}
!11 = !{!"sqlite3_str", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !7, i64 28, !7, i64 29}
!12 = !{!"int", !7, i64 0}
!13 = !{!12, !12, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}
!19 = !{!20, !7, i64 0}
!20 = !{!"et_info", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !7, i64 4, !7, i64 5}
!21 = !{!20, !7, i64 3}
!22 = distinct !{!22, !15}
!23 = !{!20, !7, i64 2}
!24 = !{!25, !25, i64 0}
!25 = !{!"long long", !7, i64 0}
!26 = !{!27, !27, i64 0}
!27 = !{!"long", !7, i64 0}
!28 = !{!20, !7, i64 4}
!29 = !{!20, !7, i64 1}
!30 = distinct !{!30, !15}
!31 = distinct !{!31, !15}
!32 = distinct !{!32, !15}
!33 = !{!20, !7, i64 5}
!34 = distinct !{!34, !15}
!35 = !{!36, !36, i64 0}
!36 = !{!"double", !7, i64 0}
!37 = !{!38, !7, i64 1}
!38 = !{!"FpDecode", !7, i64 0, !7, i64 1, !12, i64 4, !12, i64 8, !6, i64 16, !7, i64 24}
!39 = !{!38, !6, i64 16}
!40 = !{!38, !12, i64 8}
!41 = !{!38, !12, i64 4}
!42 = !{!38, !7, i64 0}
!43 = distinct !{!43, !15}
!44 = distinct !{!44, !15}
!45 = distinct !{!45, !15}
!46 = distinct !{!46, !15}
!47 = distinct !{!47, !15}
!48 = distinct !{!48, !15}
!49 = !{!11, !12, i64 24}
!50 = distinct !{!50, !15}
!51 = !{!11, !12, i64 16}
!52 = !{!11, !7, i64 28}
!53 = !{!11, !6, i64 8}
!54 = distinct !{!54, !15}
!55 = !{!11, !12, i64 20}
!56 = !{!11, !6, i64 0}
!57 = distinct !{!57, !15}
!58 = distinct !{!58, !15}
!59 = distinct !{!59, !15}
!60 = distinct !{!60, !15}
!61 = distinct !{!61, !15}
!62 = distinct !{!62, !15}
!63 = distinct !{!63, !15}
!64 = !{!65, !12, i64 4}
!65 = !{!"Expr", !7, i64 0, !7, i64 1, !7, i64 2, !12, i64 4, !7, i64 8, !6, i64 16, !6, i64 24, !7, i64 32, !12, i64 40, !12, i64 44, !66, i64 48, !66, i64 50, !7, i64 52, !6, i64 56, !7, i64 64}
!66 = !{!"short", !7, i64 0}
!67 = !{!68, !12, i64 8}
!68 = !{!"Token", !6, i64 0, !12, i64 8}
!69 = !{!68, !6, i64 0}
!70 = !{!71, !6, i64 8}
!71 = !{!"SrcItem", !6, i64 0, !6, i64 8, !6, i64 16, !72, i64 24, !12, i64 28, !25, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64}
!72 = !{!"", !7, i64 0, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 3, !12, i64 3}
!73 = !{!71, !6, i64 0}
!74 = !{!75, !6, i64 0}
!75 = !{!"Subquery", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16}
!76 = !{!77, !12, i64 4}
!77 = !{!"Select", !7, i64 0, !66, i64 2, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !7, i64 20, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120}
!78 = !{!77, !12, i64 16}
!79 = distinct !{!79, !15}


; 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.et_info = type { i8, i8, i8, i8, i8, i8 }
%struct.FpDecode = type { i8, i8, i32, i32, ptr, [24 x i8] }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@fmtinfo = external hidden local_unnamed_addr constant [23 x %struct.et_info], align 16
@sqlite3_str_vappendf.zOrd = external hidden local_unnamed_addr constant [9 x i8], align 1
@aDigits = external hidden local_unnamed_addr constant [33 x i8], align 16
@aPrefix = external hidden local_unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [14 x i8], align 1

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

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

; Function Attrs: nounwind uwtable
define dso_local void @sqlite3_str_vappendf(ptr noundef %0, ptr noundef %1, ptr nocapture noundef %2) local_unnamed_addr #1 {
  %4 = alloca [70 x i8], align 16
  %5 = alloca %struct.FpDecode, align 8
  call void @llvm.lifetime.start.p0(i64 70, ptr nonnull %4) #6
  %6 = getelementptr inbounds i8, ptr %0, i64 29
  %7 = load i8, ptr %6, align 1, !tbaa !5
  %8 = and i8 %7, 2
  %.not = icmp eq i8 %8, 0
  br i1 %.not, label %25, label %9

9:                                                ; preds = %3
  %10 = load i32, ptr %2, align 8
  %11 = icmp ult i32 %10, 41
  br i1 %11, label %12, label %18

12:                                               ; preds = %9
  %13 = getelementptr inbounds i8, ptr %2, i64 16
  %14 = load ptr, ptr %13, align 8
  %15 = zext nneg i32 %10 to i64
  %16 = getelementptr i8, ptr %14, i64 %15
  %17 = add nuw nsw i32 %10, 8
  store i32 %17, ptr %2, align 8
  br label %22

18:                                               ; preds = %9
  %19 = getelementptr inbounds i8, ptr %2, i64 8
  %20 = load ptr, ptr %19, align 8
  %21 = getelementptr i8, ptr %20, i64 8
  store ptr %21, ptr %19, align 8
  br label %22

22:                                               ; preds = %18, %12
  %23 = phi ptr [ %16, %12 ], [ %20, %18 ]
  %24 = load ptr, ptr %23, align 8, !tbaa !11
  br label %25

25:                                               ; preds = %3, %22
  %.0653 = phi ptr [ %24, %22 ], [ null, %3 ]
  %26 = getelementptr inbounds i8, ptr %2, i64 8
  %27 = getelementptr inbounds i8, ptr %2, i64 16
  %28 = getelementptr inbounds i8, ptr %0, i64 24
  %29 = getelementptr inbounds i8, ptr %0, i64 20
  %30 = getelementptr inbounds i8, ptr %0, i64 28
  %31 = getelementptr inbounds i8, ptr %0, i64 8
  %32 = getelementptr inbounds i8, ptr %0, i64 16
  %33 = getelementptr inbounds i8, ptr %4, i64 1
  %34 = getelementptr inbounds i8, ptr %4, i64 2
  %35 = getelementptr inbounds i8, ptr %4, i64 3
  %36 = getelementptr inbounds i8, ptr %2, i64 4
  %37 = getelementptr inbounds i8, ptr %5, i64 1
  %38 = getelementptr inbounds i8, ptr %5, i64 16
  %39 = getelementptr inbounds i8, ptr %5, i64 8
  %40 = getelementptr inbounds i8, ptr %5, i64 4
  %41 = load i8, ptr @fmtinfo, align 16
  %42 = sext i8 %41 to i32
  %43 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 6), align 2
  %44 = sext i8 %43 to i32
  %45 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 12), align 4
  %46 = sext i8 %45 to i32
  %47 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 18), align 2
  %48 = sext i8 %47 to i32
  %49 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 24), align 8
  %50 = sext i8 %49 to i32
  %51 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 30), align 2
  %52 = sext i8 %51 to i32
  %53 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 36), align 4
  %54 = sext i8 %53 to i32
  %55 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 42), align 2
  %56 = sext i8 %55 to i32
  %57 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 48), align 16
  %58 = sext i8 %57 to i32
  %59 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 54), align 2
  %60 = sext i8 %59 to i32
  %61 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 60), align 4
  %62 = sext i8 %61 to i32
  %63 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 66), align 2
  %64 = sext i8 %63 to i32
  %65 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 72), align 8
  %66 = sext i8 %65 to i32
  %67 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 78), align 2
  %68 = sext i8 %67 to i32
  %69 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 84), align 4
  %70 = sext i8 %69 to i32
  %71 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 90), align 2
  %72 = sext i8 %71 to i32
  %73 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 96), align 16
  %74 = sext i8 %73 to i32
  %75 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 102), align 2
  %76 = sext i8 %75 to i32
  %77 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 108), align 4
  %78 = sext i8 %77 to i32
  %79 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 114), align 2
  %80 = sext i8 %79 to i32
  %81 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 120), align 8
  %82 = sext i8 %81 to i32
  %83 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 126), align 2
  %84 = sext i8 %83 to i32
  %85 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 132), align 4
  %86 = sext i8 %85 to i32
  br label %87

87:                                               ; preds = %1098, %25
  %.0544 = phi ptr [ null, %25 ], [ %.31, %1098 ]
  %.0 = phi ptr [ %1, %25 ], [ %1099, %1098 ]
  %88 = load i8, ptr %.0, align 1, !tbaa !12
  switch i8 %88, label %.preheader939 [
    i8 0, label %.thread867
    i8 37, label %97
  ]

.preheader939:                                    ; preds = %87, %.preheader939
  %.1 = phi ptr [ %89, %.preheader939 ], [ %.0, %87 ]
  %89 = getelementptr inbounds i8, ptr %.1, i64 1
  %90 = load i8, ptr %89, align 1, !tbaa !12
  switch i8 %90, label %.preheader939 [
    i8 0, label %.critedge
    i8 37, label %.critedge
  ]

.critedge:                                        ; preds = %.preheader939, %.preheader939
  %91 = ptrtoint ptr %89 to i64
  %92 = ptrtoint ptr %.0 to i64
  %93 = sub i64 %91, %92
  %94 = trunc i64 %93 to i32
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef nonnull %.0, i32 noundef %94)
  %95 = load i8, ptr %89, align 1, !tbaa !12
  %96 = icmp eq i8 %95, 0
  br i1 %96, label %.thread867, label %97

97:                                               ; preds = %87, %.critedge
  %.1545 = phi ptr [ %.0, %.critedge ], [ %.0544, %87 ]
  %.2 = phi ptr [ %89, %.critedge ], [ %.0, %87 ]
  %98 = getelementptr inbounds i8, ptr %.2, i64 1
  %99 = load i8, ptr %98, align 1, !tbaa !12
  %100 = icmp eq i8 %99, 0
  br i1 %100, label %101, label %.preheader938

101:                                              ; preds = %97
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef nonnull @.str, i32 noundef 1)
  br label %.thread867

.preheader938:                                    ; preds = %97, %199
  %.0695 = phi i8 [ %.1696.ph, %199 ], [ 0, %97 ]
  %.0640 = phi i8 [ %.1641.ph, %199 ], [ 0, %97 ]
  %.0637 = phi i8 [ %.1638.ph, %199 ], [ 0, %97 ]
  %.0629 = phi i8 [ %.1630.ph, %199 ], [ 0, %97 ]
  %.0617 = phi i8 [ %.1618.ph, %199 ], [ 0, %97 ]
  %.0611 = phi i8 [ %.2613.ph, %199 ], [ 0, %97 ]
  %.0585 = phi i32 [ %.3588.ph, %199 ], [ 0, %97 ]
  %.0555 = phi i32 [ %.4559.ph, %199 ], [ -1, %97 ]
  %.0538.in = phi i8 [ %201, %199 ], [ %99, %97 ]
  %.3 = phi ptr [ %200, %199 ], [ %98, %97 ]
  %.0538 = sext i8 %.0538.in to i32
  switch i8 %.0538.in, label %.critedge9 [
    i8 45, label %199
    i8 43, label %102
    i8 32, label %103
    i8 35, label %104
    i8 33, label %105
    i8 48, label %106
    i8 44, label %107
    i8 108, label %108
    i8 49, label %116
    i8 50, label %116
    i8 51, label %116
    i8 52, label %116
    i8 53, label %116
    i8 54, label %116
    i8 55, label %116
    i8 56, label %116
    i8 57, label %116
    i8 42, label %132
    i8 46, label %156
  ]

102:                                              ; preds = %.preheader938
  br label %199

103:                                              ; preds = %.preheader938
  br label %199

104:                                              ; preds = %.preheader938
  br label %199

105:                                              ; preds = %.preheader938
  br label %199

106:                                              ; preds = %.preheader938
  br label %199

107:                                              ; preds = %.preheader938
  br label %199

108:                                              ; preds = %.preheader938
  %109 = getelementptr inbounds i8, ptr %.3, i64 1
  %110 = load i8, ptr %109, align 1, !tbaa !12
  %111 = icmp eq i8 %110, 108
  br i1 %111, label %112, label %115

112:                                              ; preds = %108
  %113 = getelementptr inbounds i8, ptr %.3, i64 2
  %114 = load i8, ptr %113, align 1, !tbaa !12
  br label %115

115:                                              ; preds = %112, %108
  %.1656 = phi i8 [ 2, %112 ], [ 1, %108 ]
  %.1539.in = phi i8 [ %114, %112 ], [ %110, %108 ]
  %.4 = phi ptr [ %113, %112 ], [ %109, %108 ]
  %.1539 = sext i8 %.1539.in to i32
  br label %.critedge9

116:                                              ; preds = %.preheader938, %.preheader938, %.preheader938, %.preheader938, %.preheader938, %.preheader938, %.preheader938, %.preheader938, %.preheader938
  %.0652964 = add nsw i32 %.0538, -48
  %117 = getelementptr inbounds i8, ptr %.3, i64 1
  %118 = load i8, ptr %117, align 1, !tbaa !12
  %119 = sext i8 %118 to i32
  %120 = add i8 %118, -48
  %121 = icmp ult i8 %120, 10
  br i1 %121, label %.lr.ph967, label %._crit_edge968

.lr.ph967:                                        ; preds = %116, %.lr.ph967
  %122 = phi i32 [ %128, %.lr.ph967 ], [ %119, %116 ]
  %123 = phi ptr [ %126, %.lr.ph967 ], [ %117, %116 ]
  %.0652965 = phi i32 [ %.0652, %.lr.ph967 ], [ %.0652964, %116 ]
  %124 = mul i32 %.0652965, 10
  %125 = add i32 %122, %124
  %.0652 = add i32 %125, -48
  %126 = getelementptr inbounds i8, ptr %123, i64 1
  %127 = load i8, ptr %126, align 1, !tbaa !12
  %128 = sext i8 %127 to i32
  %129 = add i8 %127, -48
  %130 = icmp ult i8 %129, 10
  br i1 %130, label %.lr.ph967, label %._crit_edge968, !llvm.loop !13

._crit_edge968:                                   ; preds = %.lr.ph967, %116
  %.5.lcssa = phi ptr [ %.3, %116 ], [ %123, %.lr.ph967 ]
  %.0652.lcssa = phi i32 [ %.0652964, %116 ], [ %.0652, %.lr.ph967 ]
  %.lcssa943 = phi ptr [ %117, %116 ], [ %126, %.lr.ph967 ]
  %.lcssa942 = phi i8 [ %118, %116 ], [ %127, %.lr.ph967 ]
  %.lcssa941 = phi i32 [ %119, %116 ], [ %128, %.lr.ph967 ]
  %131 = and i32 %.0652.lcssa, 2147483647
  switch i8 %.lcssa942, label %.critedge9 [
    i8 108, label %199
    i8 46, label %199
  ]

132:                                              ; preds = %.preheader938
  br i1 %.not, label %136, label %133

133:                                              ; preds = %132
  %134 = call i64 @getIntArg(ptr noundef %.0653)
  %135 = trunc i64 %134 to i32
  br label %150

136:                                              ; preds = %132
  %137 = load i32, ptr %2, align 8
  %138 = icmp ult i32 %137, 41
  br i1 %138, label %139, label %144

139:                                              ; preds = %136
  %140 = load ptr, ptr %27, align 8
  %141 = zext nneg i32 %137 to i64
  %142 = getelementptr i8, ptr %140, i64 %141
  %143 = add nuw nsw i32 %137, 8
  store i32 %143, ptr %2, align 8
  br label %147

144:                                              ; preds = %136
  %145 = load ptr, ptr %26, align 8
  %146 = getelementptr i8, ptr %145, i64 8
  store ptr %146, ptr %26, align 8
  br label %147

147:                                              ; preds = %144, %139
  %148 = phi ptr [ %142, %139 ], [ %145, %144 ]
  %149 = load i32, ptr %148, align 4, !tbaa !15
  br label %150

150:                                              ; preds = %147, %133
  %.1586 = phi i32 [ %135, %133 ], [ %149, %147 ]
  %151 = icmp slt i32 %.1586, 0
  %.not769 = icmp eq i32 %.1586, -2147483648
  %152 = sub nsw i32 0, %.1586
  %153 = select i1 %.not769, i32 0, i32 %152
  %.1612 = select i1 %151, i8 1, i8 %.0611
  %.2587 = select i1 %151, i32 %153, i32 %.1586
  %154 = getelementptr inbounds i8, ptr %.3, i64 1
  %155 = load i8, ptr %154, align 1, !tbaa !12
  switch i8 %155, label %.critedge9.loopexit.split.loop.exit1007 [
    i8 108, label %199
    i8 46, label %199
  ]

156:                                              ; preds = %.preheader938
  %157 = getelementptr inbounds i8, ptr %.3, i64 1
  %158 = load i8, ptr %157, align 1, !tbaa !12
  %159 = icmp eq i8 %158, 42
  br i1 %159, label %162, label %.preheader925

.preheader925:                                    ; preds = %156
  %.2540958 = sext i8 %158 to i32
  %160 = add i8 %158, -48
  %161 = icmp ult i8 %160, 10
  br i1 %161, label %.lr.ph, label %._crit_edge

162:                                              ; preds = %156
  br i1 %.not, label %166, label %163

163:                                              ; preds = %162
  %164 = call i64 @getIntArg(ptr noundef %.0653)
  %165 = trunc i64 %164 to i32
  br label %180

166:                                              ; preds = %162
  %167 = load i32, ptr %2, align 8
  %168 = icmp ult i32 %167, 41
  br i1 %168, label %169, label %174

169:                                              ; preds = %166
  %170 = load ptr, ptr %27, align 8
  %171 = zext nneg i32 %167 to i64
  %172 = getelementptr i8, ptr %170, i64 %171
  %173 = add nuw nsw i32 %167, 8
  store i32 %173, ptr %2, align 8
  br label %177

174:                                              ; preds = %166
  %175 = load ptr, ptr %26, align 8
  %176 = getelementptr i8, ptr %175, i64 8
  store ptr %176, ptr %26, align 8
  br label %177

177:                                              ; preds = %174, %169
  %178 = phi ptr [ %172, %169 ], [ %175, %174 ]
  %179 = load i32, ptr %178, align 4, !tbaa !15
  br label %180

180:                                              ; preds = %177, %163
  %.1556 = phi i32 [ %165, %163 ], [ %179, %177 ]
  %181 = icmp slt i32 %.1556, 0
  %.not767 = icmp eq i32 %.1556, -2147483648
  %182 = sub nsw i32 0, %.1556
  %183 = select i1 %.not767, i32 -1, i32 %182
  %.2557 = select i1 %181, i32 %183, i32 %.1556
  %184 = getelementptr inbounds i8, ptr %.3, i64 2
  %185 = load i8, ptr %184, align 1, !tbaa !12
  %186 = sext i8 %185 to i32
  br label %195

.lr.ph:                                           ; preds = %.preheader925, %.lr.ph
  %.2540961 = phi i32 [ %.2540, %.lr.ph ], [ %.2540958, %.preheader925 ]
  %.7960 = phi ptr [ %190, %.lr.ph ], [ %157, %.preheader925 ]
  %.0651959 = phi i32 [ %189, %.lr.ph ], [ 0, %.preheader925 ]
  %187 = mul i32 %.0651959, 10
  %188 = add i32 %187, -48
  %189 = add i32 %188, %.2540961
  %190 = getelementptr inbounds i8, ptr %.7960, i64 1
  %191 = load i8, ptr %190, align 1, !tbaa !12
  %.2540 = sext i8 %191 to i32
  %192 = add i8 %191, -48
  %193 = icmp ult i8 %192, 10
  br i1 %193, label %.lr.ph, label %._crit_edge, !llvm.loop !16

._crit_edge:                                      ; preds = %.lr.ph, %.preheader925
  %.0651.lcssa = phi i32 [ 0, %.preheader925 ], [ %189, %.lr.ph ]
  %.7.lcssa = phi ptr [ %157, %.preheader925 ], [ %190, %.lr.ph ]
  %.2540.lcssa = phi i32 [ %.2540958, %.preheader925 ], [ %.2540, %.lr.ph ]
  %194 = and i32 %.0651.lcssa, 2147483647
  br label %195

195:                                              ; preds = %._crit_edge, %180
  %.3558 = phi i32 [ %.2557, %180 ], [ %194, %._crit_edge ]
  %.3541 = phi i32 [ %186, %180 ], [ %.2540.lcssa, %._crit_edge ]
  %.8 = phi ptr [ %184, %180 ], [ %.7.lcssa, %._crit_edge ]
  %196 = icmp eq i32 %.3541, 108
  br i1 %196, label %197, label %.critedge9

197:                                              ; preds = %195
  %198 = getelementptr inbounds i8, ptr %.8, i64 -1
  br label %199

199:                                              ; preds = %._crit_edge968, %._crit_edge968, %197, %150, %150, %107, %106, %105, %104, %103, %102, %.preheader938
  %.1696.ph = phi i8 [ %.0695, %150 ], [ %.0695, %.preheader938 ], [ %.0695, %102 ], [ %.0695, %103 ], [ %.0695, %104 ], [ %.0695, %105 ], [ %.0695, %106 ], [ 44, %107 ], [ %.0695, %150 ], [ %.0695, %197 ], [ %.0695, %._crit_edge968 ], [ %.0695, %._crit_edge968 ]
  %.1641.ph = phi i8 [ %.0640, %150 ], [ %.0640, %.preheader938 ], [ %.0640, %102 ], [ %.0640, %103 ], [ %.0640, %104 ], [ %.0640, %105 ], [ 1, %106 ], [ %.0640, %107 ], [ %.0640, %150 ], [ %.0640, %197 ], [ %.0640, %._crit_edge968 ], [ %.0640, %._crit_edge968 ]
  %.1638.ph = phi i8 [ %.0637, %150 ], [ %.0637, %.preheader938 ], [ %.0637, %102 ], [ %.0637, %103 ], [ %.0637, %104 ], [ 1, %105 ], [ %.0637, %106 ], [ %.0637, %107 ], [ %.0637, %150 ], [ %.0637, %197 ], [ %.0637, %._crit_edge968 ], [ %.0637, %._crit_edge968 ]
  %.1630.ph = phi i8 [ %.0629, %150 ], [ %.0629, %.preheader938 ], [ %.0629, %102 ], [ %.0629, %103 ], [ 1, %104 ], [ %.0629, %105 ], [ %.0629, %106 ], [ %.0629, %107 ], [ %.0629, %150 ], [ %.0629, %197 ], [ %.0629, %._crit_edge968 ], [ %.0629, %._crit_edge968 ]
  %.1618.ph = phi i8 [ %.0617, %150 ], [ %.0617, %.preheader938 ], [ %.0538.in, %102 ], [ %.0538.in, %103 ], [ %.0617, %104 ], [ %.0617, %105 ], [ %.0617, %106 ], [ %.0617, %107 ], [ %.0617, %150 ], [ %.0617, %197 ], [ %.0617, %._crit_edge968 ], [ %.0617, %._crit_edge968 ]
  %.2613.ph = phi i8 [ %.1612, %150 ], [ 1, %.preheader938 ], [ %.0611, %102 ], [ %.0611, %103 ], [ %.0611, %104 ], [ %.0611, %105 ], [ %.0611, %106 ], [ %.0611, %107 ], [ %.1612, %150 ], [ %.0611, %197 ], [ %.0611, %._crit_edge968 ], [ %.0611, %._crit_edge968 ]
  %.3588.ph = phi i32 [ %.2587, %150 ], [ %.0585, %.preheader938 ], [ %.0585, %102 ], [ %.0585, %103 ], [ %.0585, %104 ], [ %.0585, %105 ], [ %.0585, %106 ], [ %.0585, %107 ], [ %.2587, %150 ], [ %.0585, %197 ], [ %131, %._crit_edge968 ], [ %131, %._crit_edge968 ]
  %.4559.ph = phi i32 [ %.0555, %150 ], [ %.0555, %.preheader938 ], [ %.0555, %102 ], [ %.0555, %103 ], [ %.0555, %104 ], [ %.0555, %105 ], [ %.0555, %106 ], [ %.0555, %107 ], [ %.0555, %150 ], [ %.3558, %197 ], [ %.0555, %._crit_edge968 ], [ %.0555, %._crit_edge968 ]
  %.9.ph = phi ptr [ %.3, %150 ], [ %.3, %.preheader938 ], [ %.3, %102 ], [ %.3, %103 ], [ %.3, %104 ], [ %.3, %105 ], [ %.3, %106 ], [ %.3, %107 ], [ %.3, %150 ], [ %198, %197 ], [ %.5.lcssa, %._crit_edge968 ], [ %.5.lcssa, %._crit_edge968 ]
  %200 = getelementptr inbounds i8, ptr %.9.ph, i64 1
  %201 = load i8, ptr %200, align 1, !tbaa !12
  %.not771 = icmp eq i8 %201, 0
  br i1 %.not771, label %.critedge9, label %.preheader938, !llvm.loop !17

.critedge9.loopexit.split.loop.exit1007:          ; preds = %150
  %202 = getelementptr inbounds i8, ptr %.3, i64 1
  %203 = sext i8 %155 to i32
  br label %.critedge9

.critedge9:                                       ; preds = %199, %195, %._crit_edge968, %.preheader938, %.critedge9.loopexit.split.loop.exit1007, %115
  %.4559864 = phi i32 [ %.0555, %115 ], [ %.0555, %.critedge9.loopexit.split.loop.exit1007 ], [ %.4559.ph, %199 ], [ %.3558, %195 ], [ %.0555, %._crit_edge968 ], [ %.0555, %.preheader938 ]
  %.3588862 = phi i32 [ %.0585, %115 ], [ %.2587, %.critedge9.loopexit.split.loop.exit1007 ], [ %.3588.ph, %199 ], [ %.0585, %195 ], [ %131, %._crit_edge968 ], [ %.0585, %.preheader938 ]
  %.2613860 = phi i8 [ %.0611, %115 ], [ %.1612, %.critedge9.loopexit.split.loop.exit1007 ], [ %.2613.ph, %199 ], [ %.0611, %195 ], [ %.0611, %._crit_edge968 ], [ %.0611, %.preheader938 ]
  %.1618858 = phi i8 [ %.0617, %115 ], [ %.0617, %.critedge9.loopexit.split.loop.exit1007 ], [ %.1618.ph, %199 ], [ %.0617, %195 ], [ %.0617, %._crit_edge968 ], [ %.0617, %.preheader938 ]
  %.1630856 = phi i8 [ %.0629, %115 ], [ %.0629, %.critedge9.loopexit.split.loop.exit1007 ], [ %.1630.ph, %199 ], [ %.0629, %195 ], [ %.0629, %._crit_edge968 ], [ %.0629, %.preheader938 ]
  %.1638854 = phi i8 [ %.0637, %115 ], [ %.0637, %.critedge9.loopexit.split.loop.exit1007 ], [ %.1638.ph, %199 ], [ %.0637, %195 ], [ %.0637, %._crit_edge968 ], [ %.0637, %.preheader938 ]
  %.1641852 = phi i8 [ %.0640, %115 ], [ %.0640, %.critedge9.loopexit.split.loop.exit1007 ], [ %.1641.ph, %199 ], [ %.0640, %195 ], [ %.0640, %._crit_edge968 ], [ %.0640, %.preheader938 ]
  %.2657851 = phi i8 [ %.1656, %115 ], [ 0, %.critedge9.loopexit.split.loop.exit1007 ], [ 0, %.preheader938 ], [ 0, %._crit_edge968 ], [ 0, %195 ], [ 0, %199 ]
  %.1696848 = phi i8 [ %.0695, %115 ], [ %.0695, %.critedge9.loopexit.split.loop.exit1007 ], [ %.1696.ph, %199 ], [ %.0695, %195 ], [ %.0695, %._crit_edge968 ], [ %.0695, %.preheader938 ]
  %.5543 = phi i32 [ %.1539, %115 ], [ %203, %.critedge9.loopexit.split.loop.exit1007 ], [ 0, %199 ], [ %.3541, %195 ], [ %.lcssa941, %._crit_edge968 ], [ %.0538, %.preheader938 ]
  %.10 = phi ptr [ %.4, %115 ], [ %202, %.critedge9.loopexit.split.loop.exit1007 ], [ %200, %199 ], [ %.8, %195 ], [ %.lcssa943, %._crit_edge968 ], [ %.3, %.preheader938 ]
  %204 = icmp eq i32 %.5543, %42
  br i1 %204, label %249, label %205

205:                                              ; preds = %.critedge9
  %206 = icmp eq i32 %.5543, %44
  br i1 %206, label %249, label %207

207:                                              ; preds = %205
  %208 = icmp eq i32 %.5543, %46
  br i1 %208, label %249, label %209

209:                                              ; preds = %207
  %210 = icmp eq i32 %.5543, %48
  br i1 %210, label %249, label %211

211:                                              ; preds = %209
  %212 = icmp eq i32 %.5543, %50
  br i1 %212, label %249, label %213

213:                                              ; preds = %211
  %214 = icmp eq i32 %.5543, %52
  br i1 %214, label %249, label %215

215:                                              ; preds = %213
  %216 = icmp eq i32 %.5543, %54
  br i1 %216, label %249, label %217

217:                                              ; preds = %215
  %218 = icmp eq i32 %.5543, %56
  br i1 %218, label %249, label %219

219:                                              ; preds = %217
  %220 = icmp eq i32 %.5543, %58
  br i1 %220, label %249, label %221

221:                                              ; preds = %219
  %222 = icmp eq i32 %.5543, %60
  br i1 %222, label %249, label %223

223:                                              ; preds = %221
  %224 = icmp eq i32 %.5543, %62
  br i1 %224, label %249, label %225

225:                                              ; preds = %223
  %226 = icmp eq i32 %.5543, %64
  br i1 %226, label %249, label %227

227:                                              ; preds = %225
  %228 = icmp eq i32 %.5543, %66
  br i1 %228, label %249, label %229

229:                                              ; preds = %227
  %230 = icmp eq i32 %.5543, %68
  br i1 %230, label %249, label %231

231:                                              ; preds = %229
  %232 = icmp eq i32 %.5543, %70
  br i1 %232, label %249, label %233

233:                                              ; preds = %231
  %234 = icmp eq i32 %.5543, %72
  br i1 %234, label %249, label %235

235:                                              ; preds = %233
  %236 = icmp eq i32 %.5543, %74
  br i1 %236, label %249, label %237

237:                                              ; preds = %235
  %238 = icmp eq i32 %.5543, %76
  br i1 %238, label %249, label %239

239:                                              ; preds = %237
  %240 = icmp eq i32 %.5543, %78
  br i1 %240, label %249, label %241

241:                                              ; preds = %239
  %242 = icmp eq i32 %.5543, %80
  br i1 %242, label %249, label %243

243:                                              ; preds = %241
  %244 = icmp eq i32 %.5543, %82
  br i1 %244, label %249, label %245

245:                                              ; preds = %243
  %246 = icmp eq i32 %.5543, %84
  br i1 %246, label %249, label %247

247:                                              ; preds = %245
  %248 = icmp eq i32 %.5543, %86
  br i1 %248, label %249, label %.thread867

249:                                              ; preds = %247, %245, %243, %241, %239, %237, %235, %233, %231, %229, %227, %225, %223, %221, %219, %217, %215, %213, %211, %209, %207, %205, %.critedge9
  %.lcssa1133 = phi ptr [ @fmtinfo, %.critedge9 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 6), %205 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 12), %207 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 18), %209 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 24), %211 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 30), %213 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 36), %215 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 42), %217 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 48), %219 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 54), %221 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 60), %223 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 66), %225 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 72), %227 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 78), %229 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 84), %231 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 90), %233 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 96), %235 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 102), %237 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 108), %239 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 114), %241 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 120), %243 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 126), %245 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 132), %247 ]
  %250 = getelementptr inbounds i8, ptr %.lcssa1133, i64 3
  %251 = load i8, ptr %250, align 1, !tbaa !18
  switch i8 %251, label %.thread867 [
    i8 13, label %252
    i8 15, label %253
    i8 0, label %253
    i8 16, label %254
    i8 1, label %460
    i8 2, label %460
    i8 3, label %460
    i8 4, label %688
    i8 7, label %704
    i8 8, label %705
    i8 5, label %809
    i8 6, label %809
    i8 9, label %898
    i8 10, label %898
    i8 14, label %898
    i8 11, label %979
    i8 12, label %1025
  ]

252:                                              ; preds = %249
  br label %254

253:                                              ; preds = %249, %249
  br label %254

254:                                              ; preds = %252, %253, %249
  %.2697 = phi i8 [ %.1696848, %249 ], [ 0, %252 ], [ 0, %253 ]
  %.4659 = phi i8 [ %.2657851, %249 ], [ 2, %252 ], [ %.2657851, %253 ]
  %255 = getelementptr inbounds i8, ptr %.lcssa1133, i64 2
  %256 = load i8, ptr %255, align 1, !tbaa !20
  %257 = and i8 %256, 1
  %.not809 = icmp eq i8 %257, 0
  br i1 %.not809, label %303, label %258

258:                                              ; preds = %254
  br i1 %.not, label %261, label %259

259:                                              ; preds = %258
  %260 = call i64 @getIntArg(ptr noundef %.0653)
  br label %301

261:                                              ; preds = %258
  %262 = load i32, ptr %2, align 8
  %263 = icmp ult i32 %262, 41
  switch i8 %.4659, label %276 [
    i8 0, label %288
    i8 2, label %264
  ]

264:                                              ; preds = %261
  br i1 %263, label %265, label %270

265:                                              ; preds = %264
  %266 = load ptr, ptr %27, align 8
  %267 = zext nneg i32 %262 to i64
  %268 = getelementptr i8, ptr %266, i64 %267
  %269 = add nuw nsw i32 %262, 8
  store i32 %269, ptr %2, align 8
  br label %273

270:                                              ; preds = %264
  %271 = load ptr, ptr %26, align 8
  %272 = getelementptr i8, ptr %271, i64 8
  store ptr %272, ptr %26, align 8
  br label %273

273:                                              ; preds = %270, %265
  %274 = phi ptr [ %268, %265 ], [ %271, %270 ]
  %275 = load i64, ptr %274, align 8, !tbaa !21
  br label %301

276:                                              ; preds = %261
  br i1 %263, label %277, label %282

277:                                              ; preds = %276
  %278 = load ptr, ptr %27, align 8
  %279 = zext nneg i32 %262 to i64
  %280 = getelementptr i8, ptr %278, i64 %279
  %281 = add nuw nsw i32 %262, 8
  store i32 %281, ptr %2, align 8
  br label %285

282:                                              ; preds = %276
  %283 = load ptr, ptr %26, align 8
  %284 = getelementptr i8, ptr %283, i64 8
  store ptr %284, ptr %26, align 8
  br label %285

285:                                              ; preds = %282, %277
  %286 = phi ptr [ %280, %277 ], [ %283, %282 ]
  %287 = load i64, ptr %286, align 8, !tbaa !23
  br label %301

288:                                              ; preds = %261
  br i1 %263, label %289, label %294

289:                                              ; preds = %288
  %290 = load ptr, ptr %27, align 8
  %291 = zext nneg i32 %262 to i64
  %292 = getelementptr i8, ptr %290, i64 %291
  %293 = add nuw nsw i32 %262, 8
  store i32 %293, ptr %2, align 8
  br label %297

294:                                              ; preds = %288
  %295 = load ptr, ptr %26, align 8
  %296 = getelementptr i8, ptr %295, i64 8
  store ptr %296, ptr %26, align 8
  br label %297

297:                                              ; preds = %294, %289
  %298 = phi ptr [ %292, %289 ], [ %295, %294 ]
  %299 = load i32, ptr %298, align 4, !tbaa !15
  %300 = sext i32 %299 to i64
  br label %301

301:                                              ; preds = %297, %285, %273, %259
  %.0650 = phi i64 [ %260, %259 ], [ %275, %273 ], [ %287, %285 ], [ %300, %297 ]
  %302 = icmp slt i64 %.0650, 0
  %.0688 = select i1 %302, i8 45, i8 %.1618858
  %.0684 = call i64 @llvm.abs.i64(i64 %.0650, i1 false)
  br label %346

303:                                              ; preds = %254
  br i1 %.not, label %306, label %304

304:                                              ; preds = %303
  %305 = call i64 @getIntArg(ptr noundef %.0653)
  br label %346

306:                                              ; preds = %303
  %307 = load i32, ptr %2, align 8
  %308 = icmp ult i32 %307, 41
  switch i8 %.4659, label %321 [
    i8 0, label %333
    i8 2, label %309
  ]

309:                                              ; preds = %306
  br i1 %308, label %310, label %315

310:                                              ; preds = %309
  %311 = load ptr, ptr %27, align 8
  %312 = zext nneg i32 %307 to i64
  %313 = getelementptr i8, ptr %311, i64 %312
  %314 = add nuw nsw i32 %307, 8
  store i32 %314, ptr %2, align 8
  br label %318

315:                                              ; preds = %309
  %316 = load ptr, ptr %26, align 8
  %317 = getelementptr i8, ptr %316, i64 8
  store ptr %317, ptr %26, align 8
  br label %318

318:                                              ; preds = %315, %310
  %319 = phi ptr [ %313, %310 ], [ %316, %315 ]
  %320 = load i64, ptr %319, align 8, !tbaa !21
  br label %346

321:                                              ; preds = %306
  br i1 %308, label %322, label %327

322:                                              ; preds = %321
  %323 = load ptr, ptr %27, align 8
  %324 = zext nneg i32 %307 to i64
  %325 = getelementptr i8, ptr %323, i64 %324
  %326 = add nuw nsw i32 %307, 8
  store i32 %326, ptr %2, align 8
  br label %330

327:                                              ; preds = %321
  %328 = load ptr, ptr %26, align 8
  %329 = getelementptr i8, ptr %328, i64 8
  store ptr %329, ptr %26, align 8
  br label %330

330:                                              ; preds = %327, %322
  %331 = phi ptr [ %325, %322 ], [ %328, %327 ]
  %332 = load i64, ptr %331, align 8, !tbaa !23
  br label %346

333:                                              ; preds = %306
  br i1 %308, label %334, label %339

334:                                              ; preds = %333
  %335 = load ptr, ptr %27, align 8
  %336 = zext nneg i32 %307 to i64
  %337 = getelementptr i8, ptr %335, i64 %336
  %338 = add nuw nsw i32 %307, 8
  store i32 %338, ptr %2, align 8
  br label %342

339:                                              ; preds = %333
  %340 = load ptr, ptr %26, align 8
  %341 = getelementptr i8, ptr %340, i64 8
  store ptr %341, ptr %26, align 8
  br label %342

342:                                              ; preds = %339, %334
  %343 = phi ptr [ %337, %334 ], [ %340, %339 ]
  %344 = load i32, ptr %343, align 4, !tbaa !15
  %345 = zext i32 %344 to i64
  br label %346

346:                                              ; preds = %304, %318, %330, %342, %301
  %.1689 = phi i8 [ %.0688, %301 ], [ 0, %342 ], [ 0, %330 ], [ 0, %318 ], [ 0, %304 ]
  %.2686 = phi i64 [ %.0684, %301 ], [ %345, %342 ], [ %332, %330 ], [ %320, %318 ], [ %305, %304 ]
  %347 = icmp eq i64 %.2686, 0
  %.not814 = icmp eq i8 %.1641852, 0
  br i1 %.not814, label %351, label %348

348:                                              ; preds = %346
  %349 = icmp ne i8 %.1689, 0
  %.neg = sext i1 %349 to i32
  %350 = add i32 %.3588862, %.neg
  %spec.select825 = call i32 @llvm.smax.i32(i32 %.4559864, i32 %350)
  br label %351

351:                                              ; preds = %348, %346
  %.5560 = phi i32 [ %.4559864, %346 ], [ %spec.select825, %348 ]
  %352 = icmp slt i32 %.5560, 37
  br i1 %352, label %362, label %353

353:                                              ; preds = %351
  %narrow = add nuw i32 %.5560, 10
  %354 = zext i32 %narrow to i64
  %.not815 = icmp eq i8 %.2697, 0
  br i1 %.not815, label %359, label %355

355:                                              ; preds = %353
  %356 = udiv i32 %.5560, 3
  %357 = zext nneg i32 %356 to i64
  %358 = add nuw nsw i64 %354, %357
  br label %359

359:                                              ; preds = %355, %353
  %.0649 = phi i64 [ %358, %355 ], [ %354, %353 ]
  %360 = call ptr @printfTempBuf(ptr noundef %0, i64 noundef %.0649)
  %.not816 = icmp eq ptr %360, null
  %361 = trunc nuw i64 %.0649 to i32
  br i1 %.not816, label %.thread867, label %362

362:                                              ; preds = %351, %359
  %.0681 = phi ptr [ %360, %359 ], [ %4, %351 ]
  %.2679 = phi i32 [ %361, %359 ], [ 70, %351 ]
  %.1667 = phi ptr [ %360, %359 ], [ null, %351 ]
  %.06811169 = ptrtoint ptr %.0681 to i64
  %363 = add nsw i32 %.2679, -1
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds i8, ptr %.0681, i64 %364
  %366 = icmp eq i8 %251, 15
  br i1 %366, label %367, label %384

367:                                              ; preds = %362
  %368 = urem i64 %.2686, 10
  %369 = udiv i64 %.2686, 10
  %370 = icmp ugt i64 %368, 3
  %371 = trunc nuw nsw i64 %368 to i32
  %372 = urem i64 %369, 10
  %373 = icmp eq i64 %372, 1
  %or.cond1377 = select i1 %370, i1 true, i1 %373
  %.0642 = select i1 %or.cond1377, i32 0, i32 %371
  %374 = shl nuw nsw i32 %.0642, 1
  %375 = or disjoint i32 %374, 1
  %376 = zext nneg i32 %375 to i64
  %377 = getelementptr inbounds [9 x i8], ptr @sqlite3_str_vappendf.zOrd, i64 0, i64 %376
  %378 = load i8, ptr %377, align 1, !tbaa !12
  %379 = getelementptr inbounds i8, ptr %365, i64 -1
  store i8 %378, ptr %379, align 1, !tbaa !12
  %380 = zext nneg i32 %374 to i64
  %381 = getelementptr inbounds [9 x i8], ptr @sqlite3_str_vappendf.zOrd, i64 0, i64 %380
  %382 = load i8, ptr %381, align 1, !tbaa !12
  %383 = getelementptr inbounds i8, ptr %365, i64 -2
  store i8 %382, ptr %383, align 1, !tbaa !12
  br label %384

384:                                              ; preds = %367, %362
  %.2546 = phi ptr [ %383, %367 ], [ %365, %362 ]
  %.25461168 = ptrtoint ptr %.2546 to i64
  %385 = getelementptr inbounds i8, ptr %.lcssa1133, i64 4
  %386 = load i8, ptr %385, align 1, !tbaa !25
  %387 = zext i8 %386 to i64
  %388 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %387
  %389 = getelementptr inbounds i8, ptr %.lcssa1133, i64 1
  %390 = load i8, ptr %389, align 1, !tbaa !26
  %391 = zext i8 %390 to i64
  %scevgep1171 = getelementptr i8, ptr %.2546, i64 -2
  %392 = add i32 %.5560, -1
  %393 = trunc i64 %.25461168 to i32
  %394 = add i32 %392, %393
  %395 = trunc i64 %.06811169 to i32
  %396 = add i32 %.2679, %395
  %397 = sub i32 %394, %396
  br label %398

398:                                              ; preds = %398, %384
  %indvars.iv1174 = phi i32 [ %indvars.iv.next1175, %398 ], [ %397, %384 ]
  %indvars.iv1172 = phi ptr [ %scevgep1173, %398 ], [ %scevgep1171, %384 ]
  %indvar = phi i64 [ %indvar.next, %398 ], [ 0, %384 ]
  %.3687 = phi i64 [ %403, %398 ], [ %.2686, %384 ]
  %.3547 = phi ptr [ %402, %398 ], [ %.2546, %384 ]
  %399 = urem i64 %.3687, %391
  %400 = getelementptr inbounds i8, ptr %388, i64 %399
  %401 = load i8, ptr %400, align 1, !tbaa !12
  %402 = getelementptr inbounds i8, ptr %.3547, i64 -1
  store i8 %401, ptr %402, align 1, !tbaa !12
  %403 = udiv i64 %.3687, %391
  %.not817 = icmp ult i64 %.3687, %391
  %indvar.next = add i64 %indvar, 1
  %scevgep1173 = getelementptr i8, ptr %indvars.iv1172, i64 -1
  %indvars.iv.next1175 = add i32 %indvars.iv1174, -1
  br i1 %.not817, label %404, label %398, !llvm.loop !27

404:                                              ; preds = %398
  %405 = ptrtoint ptr %365 to i64
  %406 = ptrtoint ptr %402 to i64
  %407 = sub i64 %405, %406
  %408 = trunc i64 %407 to i32
  %409 = icmp sgt i32 %.5560, %408
  br i1 %409, label %.lr.ph1084.preheader, label %._crit_edge1085

.lr.ph1084.preheader:                             ; preds = %404
  %410 = sub i64 -2, %indvar
  %scevgep1167 = getelementptr i8, ptr %.2546, i64 %410
  %411 = trunc i64 %indvar to i32
  %412 = sub i32 %397, %411
  %413 = zext i32 %412 to i64
  %414 = sub nsw i64 0, %413
  %scevgep1170 = getelementptr i8, ptr %scevgep1167, i64 %414
  %415 = add nuw nsw i64 %413, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %scevgep1170, i8 48, i64 %415, i1 false), !tbaa !12
  %416 = zext i32 %indvars.iv1174 to i64
  %417 = sub nsw i64 0, %416
  %scevgep1176 = getelementptr i8, ptr %indvars.iv1172, i64 %417
  br label %._crit_edge1085

._crit_edge1085:                                  ; preds = %.lr.ph1084.preheader, %404
  %.1571.lcssa = phi i32 [ %408, %404 ], [ %.5560, %.lr.ph1084.preheader ]
  %.4548.lcssa = phi ptr [ %402, %404 ], [ %scevgep1176, %.lr.ph1084.preheader ]
  %.not818 = icmp eq i8 %.2697, 0
  br i1 %.not818, label %.loopexit927, label %418

418:                                              ; preds = %._crit_edge1085
  %419 = add nsw i32 %.1571.lcssa, -1
  %420 = sdiv i32 %419, 3
  %421 = zext nneg i32 %420 to i64
  %422 = sub nsw i64 0, %421
  %423 = getelementptr inbounds i8, ptr %.4548.lcssa, i64 %422
  %424 = icmp sgt i32 %.1571.lcssa, 3
  br i1 %424, label %.lr.ph1092.preheader, label %.loopexit927

.lr.ph1092.preheader:                             ; preds = %418
  %425 = urem i32 %419, 3
  %426 = add nuw nsw i32 %425, 1
  br label %.lr.ph1092

.lr.ph1092:                                       ; preds = %.lr.ph1092.preheader, %440
  %.15831090 = phi i32 [ %441, %440 ], [ 0, %.lr.ph1092.preheader ]
  %.06331089 = phi i32 [ %.1634, %440 ], [ %426, %.lr.ph1092.preheader ]
  %.06351088 = phi i32 [ %.1636, %440 ], [ %420, %.lr.ph1092.preheader ]
  %427 = add nsw i32 %.15831090, %.06351088
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds i8, ptr %423, i64 %428
  %430 = load i8, ptr %429, align 1, !tbaa !12
  %431 = sext i32 %.15831090 to i64
  %432 = getelementptr inbounds i8, ptr %423, i64 %431
  store i8 %430, ptr %432, align 1, !tbaa !12
  %433 = add nsw i32 %.06331089, -1
  %434 = icmp eq i32 %433, 0
  br i1 %434, label %435, label %440

435:                                              ; preds = %.lr.ph1092
  %436 = add nsw i32 %.15831090, 1
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds i8, ptr %423, i64 %437
  store i8 %.2697, ptr %438, align 1, !tbaa !12
  %439 = add nsw i32 %.06351088, -1
  br label %440

440:                                              ; preds = %.lr.ph1092, %435
  %.1636 = phi i32 [ %439, %435 ], [ %.06351088, %.lr.ph1092 ]
  %.1634 = phi i32 [ 3, %435 ], [ %433, %.lr.ph1092 ]
  %.2584 = phi i32 [ %436, %435 ], [ %.15831090, %.lr.ph1092 ]
  %441 = add nsw i32 %.2584, 1
  %442 = icmp sgt i32 %.1636, 0
  br i1 %442, label %.lr.ph1092, label %.loopexit927, !llvm.loop !28

.loopexit927:                                     ; preds = %440, %418, %._crit_edge1085
  %.5549 = phi ptr [ %.4548.lcssa, %._crit_edge1085 ], [ %423, %418 ], [ %423, %440 ]
  %.not819 = icmp eq i8 %.1689, 0
  br i1 %.not819, label %445, label %443

443:                                              ; preds = %.loopexit927
  %444 = getelementptr inbounds i8, ptr %.5549, i64 -1
  store i8 %.1689, ptr %444, align 1, !tbaa !12
  br label %445

445:                                              ; preds = %443, %.loopexit927
  %.6550 = phi ptr [ %444, %443 ], [ %.5549, %.loopexit927 ]
  %.not820922 = icmp eq i8 %.1630856, 0
  %.not820 = select i1 %347, i1 true, i1 %.not820922
  br i1 %.not820, label %.loopexit926, label %446

446:                                              ; preds = %445
  %447 = getelementptr inbounds i8, ptr %.lcssa1133, i64 5
  %448 = load i8, ptr %447, align 1, !tbaa !29
  %.not821 = icmp eq i8 %448, 0
  br i1 %.not821, label %.loopexit926, label %449

449:                                              ; preds = %446
  %450 = zext i8 %448 to i64
  %451 = getelementptr inbounds [7 x i8], ptr @aPrefix, i64 0, i64 %450
  %452 = load i8, ptr %451, align 1, !tbaa !12
  %.not8221093 = icmp eq i8 %452, 0
  br i1 %.not8221093, label %.loopexit926, label %.lr.ph1097

.lr.ph1097:                                       ; preds = %449, %.lr.ph1097
  %453 = phi i8 [ %456, %.lr.ph1097 ], [ %452, %449 ]
  %.75511095 = phi ptr [ %454, %.lr.ph1097 ], [ %.6550, %449 ]
  %.06321094 = phi ptr [ %455, %.lr.ph1097 ], [ %451, %449 ]
  %454 = getelementptr inbounds i8, ptr %.75511095, i64 -1
  store i8 %453, ptr %454, align 1, !tbaa !12
  %455 = getelementptr inbounds i8, ptr %.06321094, i64 1
  %456 = load i8, ptr %455, align 1, !tbaa !12
  %.not822 = icmp eq i8 %456, 0
  br i1 %.not822, label %.loopexit926, label %.lr.ph1097, !llvm.loop !30

.loopexit926:                                     ; preds = %.lr.ph1097, %449, %446, %445
  %.8552 = phi ptr [ %.6550, %446 ], [ %.6550, %445 ], [ %.6550, %449 ], [ %454, %.lr.ph1097 ]
  %457 = ptrtoint ptr %.8552 to i64
  %458 = sub i64 %405, %457
  %459 = trunc i64 %458 to i32
  br label %.critedge31.thread

460:                                              ; preds = %249, %249, %249
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5) #6
  br i1 %.not, label %463, label %461

461:                                              ; preds = %460
  %462 = call double @getDoubleArg(ptr noundef %.0653)
  br label %477

463:                                              ; preds = %460
  %464 = load i32, ptr %36, align 4
  %465 = icmp ult i32 %464, 161
  br i1 %465, label %466, label %471

466:                                              ; preds = %463
  %467 = load ptr, ptr %27, align 8
  %468 = zext nneg i32 %464 to i64
  %469 = getelementptr i8, ptr %467, i64 %468
  %470 = add nuw nsw i32 %464, 16
  store i32 %470, ptr %36, align 4
  br label %474

471:                                              ; preds = %463
  %472 = load ptr, ptr %26, align 8
  %473 = getelementptr i8, ptr %472, i64 8
  store ptr %473, ptr %26, align 8
  br label %474

474:                                              ; preds = %471, %466
  %475 = phi ptr [ %469, %466 ], [ %472, %471 ]
  %476 = load double, ptr %475, align 8, !tbaa !31
  br label %477

477:                                              ; preds = %474, %461
  %.0683 = phi double [ %462, %461 ], [ %476, %474 ]
  %478 = icmp slt i32 %.4559864, 0
  %479 = call i32 @llvm.smin.i32(i32 %.4559864, i32 100000000)
  %spec.store.select38 = select i1 %478, i32 6, i32 %479
  switch i8 %251, label %483 [
    i8 1, label %480
    i8 3, label %482
  ]

480:                                              ; preds = %477
  %481 = sub nsw i32 0, %spec.store.select38
  br label %485

482:                                              ; preds = %477
  %spec.store.select10 = call i32 @llvm.umax.i32(i32 %spec.store.select38, i32 1)
  br label %485

483:                                              ; preds = %477
  %484 = add nsw i32 %spec.store.select38, 1
  br label %485

485:                                              ; preds = %482, %483, %480
  %.0628 = phi i32 [ %481, %480 ], [ %spec.store.select10, %482 ], [ %484, %483 ]
  %.6561 = phi i32 [ %spec.store.select38, %480 ], [ %spec.store.select10, %482 ], [ %spec.store.select38, %483 ]
  %.not798 = icmp eq i8 %.1638854, 0
  %486 = select i1 %.not798, i32 16, i32 26
  call void @sqlite3FpDecode(ptr noundef nonnull %5, double noundef %.0683, i32 noundef %.0628, i32 noundef %486)
  %487 = load i8, ptr %37, align 1, !tbaa !33
  switch i8 %487, label %491 [
    i8 0, label %._crit_edge1177
    i8 2, label %488
  ]

._crit_edge1177:                                  ; preds = %485
  %.pre1178 = load i32, ptr %39, align 8
  br label %501

488:                                              ; preds = %485
  %.not808 = icmp eq i8 %.1641852, 0
  %489 = select i1 %.not808, ptr @.str.2, ptr @.str.1
  %490 = call i32 @sqlite3Strlen30(ptr noundef nonnull %489)
  br label %.thread878

491:                                              ; preds = %485
  %.not800 = icmp eq i8 %.1641852, 0
  br i1 %.not800, label %494, label %492

492:                                              ; preds = %491
  %493 = load ptr, ptr %38, align 8, !tbaa !35
  store i8 57, ptr %493, align 1, !tbaa !12
  store i32 1000, ptr %39, align 8, !tbaa !36
  store i32 1, ptr %40, align 4, !tbaa !37
  br label %501

494:                                              ; preds = %491
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(5) %4, ptr noundef nonnull align 1 dereferenceable(5) @.str.3, i64 5, i1 false)
  %495 = load i8, ptr %5, align 8, !tbaa !38
  %496 = icmp eq i8 %495, 45
  br i1 %496, label %499, label %497

497:                                              ; preds = %494
  %.not801 = icmp eq i8 %.1618858, 0
  br i1 %.not801, label %499, label %498

498:                                              ; preds = %497
  store i8 %.1618858, ptr %4, align 16, !tbaa !12
  br label %499

499:                                              ; preds = %497, %498, %494
  %.9553 = phi ptr [ %4, %494 ], [ %4, %498 ], [ %33, %497 ]
  %500 = call i32 @sqlite3Strlen30(ptr noundef nonnull %.9553)
  br label %.thread878

501:                                              ; preds = %._crit_edge1177, %492
  %502 = phi i32 [ %.pre1178, %._crit_edge1177 ], [ 1000, %492 ]
  %503 = load i8, ptr %5, align 8, !tbaa !38
  %504 = icmp eq i8 %503, 45
  %..1618 = select i1 %504, i8 45, i8 %.1618858
  %505 = icmp eq i8 %251, 3
  br i1 %505, label %506, label %511

506:                                              ; preds = %501
  %.not802 = icmp eq i8 %.1630856, 0
  %507 = zext i1 %.not802 to i8
  %508 = icmp slt i32 %502, -3
  %509 = icmp sgt i32 %502, %.6561
  %or.cond = select i1 %508, i1 true, i1 %509
  %spec.select833 = select i1 %or.cond, i8 2, i8 1
  %510 = sub i32 0, %502
  %spec.select834.p = select i1 %or.cond, i32 -1, i32 %510
  %spec.select834 = add i32 %spec.select834.p, %.6561
  br label %511

511:                                              ; preds = %506, %501
  %.1693 = phi i8 [ %251, %501 ], [ %spec.select833, %506 ]
  %.0654 = phi i8 [ %.1638854, %501 ], [ %507, %506 ]
  %.7562 = phi i32 [ %.6561, %501 ], [ %spec.select834, %506 ]
  %.7562.fr = freeze i32 %.7562
  %512 = icmp eq i8 %.1693, 2
  %513 = add nsw i32 %502, -1
  %.0660 = select i1 %512, i32 0, i32 %513
  %514 = icmp sgt i32 %.0660, 0
  %515 = call i32 @llvm.smax.i32(i32 %.0660, i32 0)
  %516 = zext nneg i32 %515 to i64
  %517 = sext i32 %.7562.fr to i64
  %518 = zext nneg i32 %.3588862 to i64
  %519 = add nuw nsw i64 %518, 15
  %520 = add nsw i64 %519, %517
  %521 = add nsw i64 %520, %516
  %522 = icmp ne i8 %.1696848, 0
  %or.cond12 = select i1 %522, i1 %514, i1 false
  br i1 %or.cond12, label %523, label %528

523:                                              ; preds = %511
  %524 = add nuw nsw i32 %.0660, 2
  %525 = udiv i32 %524, 3
  %526 = zext nneg i32 %525 to i64
  %527 = add nsw i64 %521, %526
  br label %528

528:                                              ; preds = %523, %511
  %.0622 = phi i64 [ %527, %523 ], [ %521, %511 ]
  %529 = icmp sgt i64 %.0622, 70
  br i1 %529, label %530, label %533

530:                                              ; preds = %528
  %531 = call ptr @printfTempBuf(ptr noundef %0, i64 noundef %.0622)
  %532 = icmp eq ptr %531, null
  br i1 %532, label %687, label %533

533:                                              ; preds = %530, %528
  %.3669.ph = phi ptr [ null, %528 ], [ %531, %530 ]
  %.11.ph = phi ptr [ %4, %528 ], [ %531, %530 ]
  %534 = icmp sgt i32 %.7562.fr, 0
  %535 = zext i1 %534 to i8
  %536 = or i8 %.1630856, %535
  %537 = or i8 %536, %.1638854
  %.not803 = icmp eq i8 %..1618, 0
  br i1 %.not803, label %540, label %538

538:                                              ; preds = %533
  %539 = getelementptr inbounds i8, ptr %.11.ph, i64 1
  store i8 %..1618, ptr %.11.ph, align 1, !tbaa !12
  br label %540

540:                                              ; preds = %538, %533
  %.12 = phi ptr [ %539, %538 ], [ %.11.ph, %533 ]
  %541 = icmp slt i32 %.0660, 0
  br i1 %541, label %542, label %.preheader931

542:                                              ; preds = %540
  %543 = getelementptr inbounds i8, ptr %.12, i64 1
  store i8 48, ptr %.12, align 1, !tbaa !12
  br label %.loopexit932

.preheader931:                                    ; preds = %540, %561
  %.131058 = phi ptr [ %.14, %561 ], [ %.12, %540 ]
  %.06231057 = phi i32 [ %.1624, %561 ], [ 0, %540 ]
  %.16611056 = phi i32 [ %562, %561 ], [ %.0660, %540 ]
  %544 = load i32, ptr %40, align 4, !tbaa !37
  %545 = icmp slt i32 %.06231057, %544
  br i1 %545, label %546, label %552

546:                                              ; preds = %.preheader931
  %547 = load ptr, ptr %38, align 8, !tbaa !35
  %548 = add nsw i32 %.06231057, 1
  %549 = sext i32 %.06231057 to i64
  %550 = getelementptr inbounds i8, ptr %547, i64 %549
  %551 = load i8, ptr %550, align 1, !tbaa !12
  br label %552

552:                                              ; preds = %.preheader931, %546
  %.1624 = phi i32 [ %548, %546 ], [ %.06231057, %.preheader931 ]
  %553 = phi i8 [ %551, %546 ], [ 48, %.preheader931 ]
  %554 = getelementptr inbounds i8, ptr %.131058, i64 1
  store i8 %553, ptr %.131058, align 1, !tbaa !12
  br i1 %522, label %555, label %561

555:                                              ; preds = %552
  %556 = urem i32 %.16611056, 3
  %557 = icmp eq i32 %556, 0
  %558 = icmp ugt i32 %.16611056, 1
  %or.cond14 = and i1 %558, %557
  br i1 %or.cond14, label %559, label %561

559:                                              ; preds = %555
  %560 = getelementptr inbounds i8, ptr %.131058, i64 2
  store i8 44, ptr %554, align 1, !tbaa !12
  br label %561

561:                                              ; preds = %552, %555, %559
  %.14 = phi ptr [ %560, %559 ], [ %554, %555 ], [ %554, %552 ]
  %562 = add nsw i32 %.16611056, -1
  %563 = icmp sgt i32 %.16611056, 0
  br i1 %563, label %.preheader931, label %.loopexit932, !llvm.loop !39

.loopexit932:                                     ; preds = %561, %542
  %.2662 = phi i32 [ %513, %542 ], [ -1, %561 ]
  %.2625 = phi i32 [ 0, %542 ], [ %.1624, %561 ]
  %.15 = phi ptr [ %543, %542 ], [ %.14, %561 ]
  %.not804 = icmp eq i8 %537, 0
  br i1 %.not804, label %566, label %564

564:                                              ; preds = %.loopexit932
  %565 = getelementptr inbounds i8, ptr %.15, i64 1
  store i8 46, ptr %.15, align 1, !tbaa !12
  br label %566

566:                                              ; preds = %564, %.loopexit932
  %.16 = phi ptr [ %565, %564 ], [ %.15, %.loopexit932 ]
  %567 = icmp slt i32 %.2662, -1
  %568 = and i1 %567, %534
  br i1 %568, label %.lr.ph1063.preheader, label %.preheader930

.lr.ph1063.preheader:                             ; preds = %566
  %569 = add nsw i32 %.7562.fr, -1
  %570 = sub nuw nsw i32 -2, %.2662
  %571 = call i32 @llvm.umin.i32(i32 %569, i32 %570)
  %umin = zext nneg i32 %571 to i64
  %572 = add nuw nsw i64 %umin, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %.16, i8 48, i64 %572, i1 false), !tbaa !12
  %scevgep = getelementptr i8, ptr %.16, i64 1
  %scevgep1156 = getelementptr i8, ptr %scevgep, i64 %umin
  %573 = call i32 @llvm.usub.sat.i32(i32 %569, i32 %570)
  br label %.preheader930

.preheader930:                                    ; preds = %.lr.ph1063.preheader, %566
  %.8563.lcssa = phi i32 [ %.7562.fr, %566 ], [ %573, %.lr.ph1063.preheader ]
  %.17.lcssa = phi ptr [ %.16, %566 ], [ %scevgep1156, %.lr.ph1063.preheader ]
  %574 = icmp sgt i32 %.8563.lcssa, 0
  br i1 %574, label %.lr.ph1068.preheader, label %._crit_edge1069

.lr.ph1068.preheader:                             ; preds = %.preheader930
  %xtraiter1329 = and i32 %.8563.lcssa, 1
  %lcmp.mod1330.not = icmp eq i32 %xtraiter1329, 0
  br i1 %lcmp.mod1330.not, label %.lr.ph1068.prol.loopexit, label %.lr.ph1068.prol

.lr.ph1068.prol:                                  ; preds = %.lr.ph1068.preheader
  %575 = add nsw i32 %.8563.lcssa, -1
  %576 = load i32, ptr %40, align 4, !tbaa !37
  %577 = icmp slt i32 %.2625, %576
  br i1 %577, label %578, label %.lr.ph1068.prol.loopexit.unr-lcssa

578:                                              ; preds = %.lr.ph1068.prol
  %579 = load ptr, ptr %38, align 8, !tbaa !35
  %580 = add nsw i32 %.2625, 1
  %581 = sext i32 %.2625 to i64
  %582 = getelementptr inbounds i8, ptr %579, i64 %581
  %583 = load i8, ptr %582, align 1, !tbaa !12
  br label %.lr.ph1068.prol.loopexit.unr-lcssa

.lr.ph1068.prol.loopexit.unr-lcssa:               ; preds = %578, %.lr.ph1068.prol
  %.4627.prol = phi i32 [ %580, %578 ], [ %.2625, %.lr.ph1068.prol ]
  %584 = phi i8 [ %583, %578 ], [ 48, %.lr.ph1068.prol ]
  %585 = getelementptr inbounds i8, ptr %.17.lcssa, i64 1
  store i8 %584, ptr %.17.lcssa, align 1, !tbaa !12
  br label %.lr.ph1068.prol.loopexit

.lr.ph1068.prol.loopexit:                         ; preds = %.lr.ph1068.prol.loopexit.unr-lcssa, %.lr.ph1068.preheader
  %.in1103.unr = phi i32 [ %.8563.lcssa, %.lr.ph1068.preheader ], [ %575, %.lr.ph1068.prol.loopexit.unr-lcssa ]
  %.181067.unr = phi ptr [ %.17.lcssa, %.lr.ph1068.preheader ], [ %585, %.lr.ph1068.prol.loopexit.unr-lcssa ]
  %.36261066.unr = phi i32 [ %.2625, %.lr.ph1068.preheader ], [ %.4627.prol, %.lr.ph1068.prol.loopexit.unr-lcssa ]
  %.lcssa1322.unr = phi ptr [ poison, %.lr.ph1068.preheader ], [ %585, %.lr.ph1068.prol.loopexit.unr-lcssa ]
  %586 = icmp eq i32 %.8563.lcssa, 1
  br i1 %586, label %._crit_edge1069, label %.lr.ph1068

.lr.ph1068:                                       ; preds = %.lr.ph1068.prol.loopexit, %606
  %.in1103 = phi i32 [ %597, %606 ], [ %.in1103.unr, %.lr.ph1068.prol.loopexit ]
  %.181067 = phi ptr [ %608, %606 ], [ %.181067.unr, %.lr.ph1068.prol.loopexit ]
  %.36261066 = phi i32 [ %.4627.1, %606 ], [ %.36261066.unr, %.lr.ph1068.prol.loopexit ]
  %587 = load i32, ptr %40, align 4, !tbaa !37
  %588 = icmp slt i32 %.36261066, %587
  br i1 %588, label %589, label %.lr.ph1068.1

589:                                              ; preds = %.lr.ph1068
  %590 = load ptr, ptr %38, align 8, !tbaa !35
  %591 = add nsw i32 %.36261066, 1
  %592 = sext i32 %.36261066 to i64
  %593 = getelementptr inbounds i8, ptr %590, i64 %592
  %594 = load i8, ptr %593, align 1, !tbaa !12
  br label %.lr.ph1068.1

.lr.ph1068.1:                                     ; preds = %.lr.ph1068, %589
  %.4627 = phi i32 [ %591, %589 ], [ %.36261066, %.lr.ph1068 ]
  %595 = phi i8 [ %594, %589 ], [ 48, %.lr.ph1068 ]
  %596 = getelementptr inbounds i8, ptr %.181067, i64 1
  store i8 %595, ptr %.181067, align 1, !tbaa !12
  %597 = add nsw i32 %.in1103, -2
  %598 = load i32, ptr %40, align 4, !tbaa !37
  %599 = icmp slt i32 %.4627, %598
  br i1 %599, label %600, label %606

600:                                              ; preds = %.lr.ph1068.1
  %601 = load ptr, ptr %38, align 8, !tbaa !35
  %602 = add nsw i32 %.4627, 1
  %603 = sext i32 %.4627 to i64
  %604 = getelementptr inbounds i8, ptr %601, i64 %603
  %605 = load i8, ptr %604, align 1, !tbaa !12
  br label %606

606:                                              ; preds = %600, %.lr.ph1068.1
  %.4627.1 = phi i32 [ %602, %600 ], [ %.4627, %.lr.ph1068.1 ]
  %607 = phi i8 [ %605, %600 ], [ 48, %.lr.ph1068.1 ]
  %608 = getelementptr inbounds i8, ptr %.181067, i64 2
  store i8 %607, ptr %596, align 1, !tbaa !12
  %609 = add i32 %.in1103, -3
  %610 = icmp ult i32 %609, -2
  br i1 %610, label %.lr.ph1068, label %._crit_edge1069, !llvm.loop !40

._crit_edge1069:                                  ; preds = %.lr.ph1068.prol.loopexit, %606, %.preheader930
  %.18.lcssa = phi ptr [ %.17.lcssa, %.preheader930 ], [ %.lcssa1322.unr, %.lr.ph1068.prol.loopexit ], [ %608, %606 ]
  %611 = icmp ne i8 %.0654, 0
  %612 = icmp ne i8 %537, 0
  %or.cond17 = select i1 %611, i1 %612, i1 false
  br i1 %or.cond17, label %.preheader928, label %.loopexit929

.preheader928:                                    ; preds = %._crit_edge1069, %615
  %.19 = phi ptr [ %613, %615 ], [ %.18.lcssa, %._crit_edge1069 ]
  %613 = getelementptr inbounds i8, ptr %.19, i64 -1
  %614 = load i8, ptr %613, align 1, !tbaa !12
  switch i8 %614, label %.loopexit929 [
    i8 48, label %615
    i8 46, label %616
  ]

615:                                              ; preds = %.preheader928
  store i8 0, ptr %613, align 1, !tbaa !12
  br label %.preheader928, !llvm.loop !41

616:                                              ; preds = %.preheader928
  br i1 %.not798, label %619, label %617

617:                                              ; preds = %616
  %618 = getelementptr inbounds i8, ptr %.19, i64 1
  store i8 48, ptr %.19, align 1, !tbaa !12
  br label %.loopexit929

619:                                              ; preds = %616
  store i8 0, ptr %613, align 1, !tbaa !12
  br label %.loopexit929

.loopexit929:                                     ; preds = %.preheader928, %619, %617, %._crit_edge1069
  %.20 = phi ptr [ %618, %617 ], [ %613, %619 ], [ %.18.lcssa, %._crit_edge1069 ], [ %.19, %.preheader928 ]
  br i1 %512, label %620, label %645

620:                                              ; preds = %.loopexit929
  %621 = load i32, ptr %39, align 8, !tbaa !36
  %622 = getelementptr inbounds i8, ptr %.lcssa1133, i64 4
  %623 = load i8, ptr %622, align 1, !tbaa !25
  %624 = zext i8 %623 to i64
  %625 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %624
  %626 = load i8, ptr %625, align 1, !tbaa !12
  %627 = getelementptr inbounds i8, ptr %.20, i64 1
  store i8 %626, ptr %.20, align 1, !tbaa !12
  %628 = icmp slt i32 %621, 1
  %629 = sub nsw i32 1, %621
  %630 = add nsw i32 %621, -1
  %.sink = select i1 %628, i8 45, i8 43
  %.0664 = select i1 %628, i32 %629, i32 %630
  store i8 %.sink, ptr %627, align 1
  %.21 = getelementptr inbounds i8, ptr %.20, i64 2
  %631 = icmp ugt i32 %.0664, 99
  br i1 %631, label %632, label %638

632:                                              ; preds = %620
  %633 = udiv i32 %.0664, 100
  %634 = trunc i32 %633 to i8
  %635 = add i8 %634, 48
  %636 = getelementptr inbounds i8, ptr %.20, i64 3
  store i8 %635, ptr %.21, align 1, !tbaa !12
  %637 = urem i32 %.0664, 100
  br label %638

638:                                              ; preds = %632, %620
  %.1665 = phi i32 [ %637, %632 ], [ %.0664, %620 ]
  %.22 = phi ptr [ %636, %632 ], [ %.21, %620 ]
  %.lhs.trunc = trunc nuw i32 %.1665 to i8
  %639 = udiv i8 %.lhs.trunc, 10
  %640 = or disjoint i8 %639, 48
  %641 = getelementptr inbounds i8, ptr %.22, i64 1
  store i8 %640, ptr %.22, align 1, !tbaa !12
  %642 = urem i8 %.lhs.trunc, 10
  %643 = or disjoint i8 %642, 48
  %644 = getelementptr inbounds i8, ptr %.22, i64 2
  store i8 %643, ptr %641, align 1, !tbaa !12
  br label %645

645:                                              ; preds = %638, %.loopexit929
  %.23 = phi ptr [ %644, %638 ], [ %.20, %.loopexit929 ]
  store i8 0, ptr %.23, align 1, !tbaa !12
  %646 = ptrtoint ptr %.23 to i64
  %647 = ptrtoint ptr %.11.ph to i64
  %648 = sub i64 %646, %647
  %649 = trunc i64 %648 to i32
  %650 = icmp ne i8 %.1641852, 0
  %651 = icmp eq i8 %.2613860, 0
  %or.cond19.not921 = select i1 %650, i1 %651, i1 false
  %652 = icmp sgt i32 %.3588862, %649
  %or.cond826 = select i1 %or.cond19.not921, i1 %652, i1 false
  br i1 %or.cond826, label %653, label %.thread878

653:                                              ; preds = %645
  %.not8061071 = icmp slt i32 %649, 0
  br i1 %.not8061071, label %._crit_edge1075, label %iter.check

iter.check:                                       ; preds = %653
  %654 = sub nsw i32 %.3588862, %649
  %655 = sext i32 %.3588862 to i64
  %656 = sext i32 %654 to i64
  %657 = add nsw i64 %655, 1
  %smin1259 = call i64 @llvm.smin.i64(i64 %656, i64 %655)
  %658 = sub i64 %657, %smin1259
  %min.iters.check = icmp ult i64 %658, 4
  br i1 %min.iters.check, label %.lr.ph1074.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %iter.check
  %smin = call i64 @llvm.smin.i64(i64 %656, i64 %655)
  %659 = sub i64 %655, %smin
  %scevgep1254 = getelementptr i8, ptr %.11.ph, i64 %655
  %660 = sub i64 0, %659
  %661 = getelementptr i8, ptr %scevgep1254, i64 %660
  %662 = icmp ugt ptr %661, %scevgep1254
  %663 = and i64 %648, 2147483647
  %scevgep1255 = getelementptr i8, ptr %.11.ph, i64 %663
  %664 = sub i64 0, %659
  %665 = getelementptr i8, ptr %scevgep1255, i64 %664
  %666 = icmp ugt ptr %665, %scevgep1255
  %667 = or i1 %662, %666
  br i1 %667, label %.lr.ph1074.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %668 = and i64 %648, 2147483647
  %669 = sub nsw i64 %668, %655
  %diff.check = icmp ult i64 %669, 16
  br i1 %diff.check, label %.lr.ph1074.preheader, label %vector.main.loop.iter.check

vector.main.loop.iter.check:                      ; preds = %vector.memcheck
  %min.iters.check1260 = icmp ult i64 %658, 16
  br i1 %min.iters.check1260, label %vec.epilog.ph, label %vector.ph

vector.ph:                                        ; preds = %vector.main.loop.iter.check
  %n.vec = and i64 %658, -16
  %invariant.gep = getelementptr i8, ptr %.11.ph, i64 -15
  %invariant.gep1369 = getelementptr i8, ptr %.11.ph, i64 -15
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = sub i64 %655, %index
  %670 = sub nsw i64 %offset.idx, %656
  %gep = getelementptr i8, ptr %invariant.gep, i64 %670
  %wide.load = load <16 x i8>, ptr %gep, align 1, !tbaa !12
  %gep1370 = getelementptr i8, ptr %invariant.gep1369, i64 %offset.idx
  store <16 x i8> %wide.load, ptr %gep1370, align 1, !tbaa !12
  %index.next = add nuw i64 %index, 16
  %671 = icmp eq i64 %index.next, %n.vec
  br i1 %671, label %middle.block, label %vector.body, !llvm.loop !42

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %658, %n.vec
  br i1 %cmp.n, label %._crit_edge1075, label %vec.epilog.iter.check

vec.epilog.iter.check:                            ; preds = %middle.block
  %ind.end1264 = sub i64 %655, %n.vec
  %n.vec.remaining = and i64 %658, 12
  %min.epilog.iters.check = icmp eq i64 %n.vec.remaining, 0
  br i1 %min.epilog.iters.check, label %.lr.ph1074.preheader, label %vec.epilog.ph

vec.epilog.ph:                                    ; preds = %vector.main.loop.iter.check, %vec.epilog.iter.check
  %vec.epilog.resume.val = phi i64 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
  %n.vec1263 = and i64 %658, -4
  %ind.end = sub i64 %655, %n.vec1263
  %invariant.gep1371 = getelementptr i8, ptr %.11.ph, i64 -3
  %invariant.gep1373 = getelementptr i8, ptr %.11.ph, i64 -3
  br label %vec.epilog.vector.body

vec.epilog.vector.body:                           ; preds = %vec.epilog.vector.body, %vec.epilog.ph
  %index1265 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next1270, %vec.epilog.vector.body ]
  %offset.idx1266 = sub i64 %655, %index1265
  %672 = sub nsw i64 %offset.idx1266, %656
  %gep1372 = getelementptr i8, ptr %invariant.gep1371, i64 %672
  %wide.load1267 = load <4 x i8>, ptr %gep1372, align 1, !tbaa !12
  %gep1374 = getelementptr i8, ptr %invariant.gep1373, i64 %offset.idx1266
  store <4 x i8> %wide.load1267, ptr %gep1374, align 1, !tbaa !12
  %index.next1270 = add nuw i64 %index1265, 4
  %673 = icmp eq i64 %index.next1270, %n.vec1263
  br i1 %673, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !45

vec.epilog.middle.block:                          ; preds = %vec.epilog.vector.body
  %cmp.n1271 = icmp eq i64 %658, %n.vec1263
  br i1 %cmp.n1271, label %._crit_edge1075, label %.lr.ph1074.preheader

.lr.ph1074.preheader:                             ; preds = %vec.epilog.middle.block, %vector.memcheck, %vector.scevcheck, %iter.check, %vec.epilog.iter.check
  %indvars.iv1160.ph = phi i64 [ %655, %iter.check ], [ %655, %vector.memcheck ], [ %655, %vector.scevcheck ], [ %ind.end1264, %vec.epilog.iter.check ], [ %ind.end, %vec.epilog.middle.block ]
  br label %.lr.ph1074

.lr.ph1074:                                       ; preds = %.lr.ph1074.preheader, %.lr.ph1074
  %indvars.iv1160 = phi i64 [ %indvars.iv.next1161, %.lr.ph1074 ], [ %indvars.iv1160.ph, %.lr.ph1074.preheader ]
  %674 = sub nsw i64 %indvars.iv1160, %656
  %675 = getelementptr inbounds i8, ptr %.11.ph, i64 %674
  %676 = load i8, ptr %675, align 1, !tbaa !12
  %677 = getelementptr inbounds i8, ptr %.11.ph, i64 %indvars.iv1160
  store i8 %676, ptr %677, align 1, !tbaa !12
  %indvars.iv.next1161 = add nsw i64 %indvars.iv1160, -1
  %.not806.not = icmp sgt i64 %indvars.iv1160, %656
  br i1 %.not806.not, label %.lr.ph1074, label %._crit_edge1075, !llvm.loop !46

._crit_edge1075:                                  ; preds = %.lr.ph1074, %middle.block, %vec.epilog.middle.block, %653
  %.not8071076 = icmp eq i32 %.3588862, %649
  br i1 %.not8071076, label %.thread878, label %.lr.ph1080.preheader

.lr.ph1080.preheader:                             ; preds = %._crit_edge1075
  %678 = icmp ne i8 %..1618, 0
  %679 = zext i1 %678 to i64
  %scevgep1163 = getelementptr i8, ptr %.11.ph, i64 %679
  %680 = add i32 %.3588862, -1
  %681 = trunc i64 %647 to i32
  %682 = add i32 %680, %681
  %683 = trunc i64 %646 to i32
  %684 = sub i32 %682, %683
  %685 = zext i32 %684 to i64
  %686 = add nuw nsw i64 %685, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %scevgep1163, i8 48, i64 %686, i1 false), !tbaa !12
  br label %.thread878

.thread878:                                       ; preds = %.lr.ph1080.preheader, %._crit_edge1075, %488, %499, %645
  %.4670.ph = phi ptr [ %.3669.ph, %645 ], [ null, %499 ], [ null, %488 ], [ %.3669.ph, %._crit_edge1075 ], [ %.3669.ph, %.lr.ph1080.preheader ]
  %.3573.ph = phi i32 [ %649, %645 ], [ %500, %499 ], [ %490, %488 ], [ %.3588862, %._crit_edge1075 ], [ %.3588862, %.lr.ph1080.preheader ]
  %.24.ph = phi ptr [ %.11.ph, %645 ], [ %.9553, %499 ], [ %489, %488 ], [ %.11.ph, %._crit_edge1075 ], [ %.11.ph, %.lr.ph1080.preheader ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #6
  br label %.critedge31.thread

687:                                              ; preds = %530
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #6
  br label %.thread867

688:                                              ; preds = %249
  br i1 %.not, label %689, label %.critedge31.thread

689:                                              ; preds = %688
  %690 = load i32, ptr %28, align 8, !tbaa !47
  %691 = load i32, ptr %2, align 8
  %692 = icmp ult i32 %691, 41
  br i1 %692, label %693, label %698

693:                                              ; preds = %689
  %694 = load ptr, ptr %27, align 8
  %695 = zext nneg i32 %691 to i64
  %696 = getelementptr i8, ptr %694, i64 %695
  %697 = add nuw nsw i32 %691, 8
  store i32 %697, ptr %2, align 8
  br label %701

698:                                              ; preds = %689
  %699 = load ptr, ptr %26, align 8
  %700 = getelementptr i8, ptr %699, i64 8
  store ptr %700, ptr %26, align 8
  br label %701

701:                                              ; preds = %698, %693
  %702 = phi ptr [ %696, %693 ], [ %699, %698 ]
  %703 = load ptr, ptr %702, align 8, !tbaa !11
  store i32 %690, ptr %703, align 4, !tbaa !15
  br label %.critedge31.thread

704:                                              ; preds = %249
  store i8 37, ptr %4, align 16, !tbaa !12
  br label %.critedge31.thread

705:                                              ; preds = %249
  br i1 %.not, label %722, label %706

706:                                              ; preds = %705
  %707 = call ptr @getTextArg(ptr noundef %.0653)
  %.not793 = icmp eq ptr %707, null
  br i1 %.not793, label %721, label %708

708:                                              ; preds = %706
  %709 = load i8, ptr %707, align 1, !tbaa !12
  store i8 %709, ptr %4, align 16, !tbaa !12
  %710 = icmp ugt i8 %709, -65
  br i1 %710, label %.preheader934.preheader, label %.critedge21

.preheader934.preheader:                          ; preds = %708
  %.25 = getelementptr inbounds i8, ptr %707, i64 1
  %711 = load i8, ptr %.25, align 1, !tbaa !12
  %712 = and i8 %711, -64
  %713 = icmp eq i8 %712, -128
  br i1 %713, label %.preheader934.1, label %.critedge21

.preheader934.1:                                  ; preds = %.preheader934.preheader
  store i8 %711, ptr %33, align 1, !tbaa !12
  %.25.1 = getelementptr inbounds i8, ptr %707, i64 2
  %714 = load i8, ptr %.25.1, align 1, !tbaa !12
  %715 = and i8 %714, -64
  %716 = icmp eq i8 %715, -128
  br i1 %716, label %.preheader934.2, label %.critedge21

.preheader934.2:                                  ; preds = %.preheader934.1
  store i8 %714, ptr %34, align 2, !tbaa !12
  %.25.2 = getelementptr inbounds i8, ptr %707, i64 3
  %717 = load i8, ptr %.25.2, align 1, !tbaa !12
  %718 = and i8 %717, -64
  %719 = icmp eq i8 %718, -128
  br i1 %719, label %720, label %.critedge21

720:                                              ; preds = %.preheader934.2
  store i8 %717, ptr %35, align 1, !tbaa !12
  br label %.critedge21

721:                                              ; preds = %706
  store i8 0, ptr %4, align 16, !tbaa !12
  br label %.critedge21

722:                                              ; preds = %705
  %723 = load i32, ptr %2, align 8
  %724 = icmp ult i32 %723, 41
  br i1 %724, label %725, label %730

725:                                              ; preds = %722
  %726 = load ptr, ptr %27, align 8
  %727 = zext nneg i32 %723 to i64
  %728 = getelementptr i8, ptr %726, i64 %727
  %729 = add nuw nsw i32 %723, 8
  store i32 %729, ptr %2, align 8
  br label %733

730:                                              ; preds = %722
  %731 = load ptr, ptr %26, align 8
  %732 = getelementptr i8, ptr %731, i64 8
  store ptr %732, ptr %26, align 8
  br label %733

733:                                              ; preds = %730, %725
  %734 = phi ptr [ %728, %725 ], [ %731, %730 ]
  %735 = load i32, ptr %734, align 4, !tbaa !15
  %736 = icmp ult i32 %735, 128
  br i1 %736, label %737, label %739

737:                                              ; preds = %733
  %738 = trunc nuw nsw i32 %735 to i8
  store i8 %738, ptr %4, align 16, !tbaa !12
  br label %.critedge21

739:                                              ; preds = %733
  %740 = icmp ult i32 %735, 2048
  br i1 %740, label %741, label %748

741:                                              ; preds = %739
  %742 = lshr i32 %735, 6
  %743 = trunc nuw i32 %742 to i8
  %744 = or disjoint i8 %743, -64
  store i8 %744, ptr %4, align 16, !tbaa !12
  %745 = trunc i32 %735 to i8
  %746 = and i8 %745, 63
  %747 = or disjoint i8 %746, -128
  store i8 %747, ptr %33, align 1, !tbaa !12
  br label %.critedge21

748:                                              ; preds = %739
  %749 = icmp ult i32 %735, 65536
  br i1 %749, label %750, label %761

750:                                              ; preds = %748
  %751 = lshr i32 %735, 12
  %752 = trunc nuw i32 %751 to i8
  %753 = or disjoint i8 %752, -32
  store i8 %753, ptr %4, align 16, !tbaa !12
  %754 = lshr i32 %735, 6
  %755 = trunc i32 %754 to i8
  %756 = and i8 %755, 63
  %757 = or disjoint i8 %756, -128
  store i8 %757, ptr %33, align 1, !tbaa !12
  %758 = trunc i32 %735 to i8
  %759 = and i8 %758, 63
  %760 = or disjoint i8 %759, -128
  store i8 %760, ptr %34, align 2, !tbaa !12
  br label %.critedge21

761:                                              ; preds = %748
  %762 = lshr i32 %735, 18
  %763 = lshr i32 %735, 12
  %764 = lshr i32 %735, 6
  %765 = trunc i32 %762 to i8
  %766 = insertelement <4 x i8> poison, i8 %765, i64 0
  %767 = trunc i32 %763 to i8
  %768 = insertelement <4 x i8> %766, i8 %767, i64 1
  %769 = trunc i32 %764 to i8
  %770 = insertelement <4 x i8> %768, i8 %769, i64 2
  %771 = trunc i32 %735 to i8
  %772 = insertelement <4 x i8> %770, i8 %771, i64 3
  %773 = and <4 x i8> %772, <i8 7, i8 63, i8 63, i8 63>
  %774 = or disjoint <4 x i8> %773, <i8 -16, i8 -128, i8 -128, i8 -128>
  store <4 x i8> %774, ptr %4, align 16, !tbaa !12
  br label %.critedge21

.critedge21:                                      ; preds = %.preheader934.preheader, %.preheader934.1, %.preheader934.2, %720, %737, %750, %761, %741, %721, %708
  %.6576 = phi i32 [ 1, %708 ], [ 1, %721 ], [ 1, %737 ], [ 2, %741 ], [ 3, %750 ], [ 4, %761 ], [ 1, %.preheader934.preheader ], [ 2, %.preheader934.1 ], [ 3, %.preheader934.2 ], [ 4, %720 ]
  %775 = icmp sgt i32 %.4559864, 1
  br i1 %775, label %776, label %.critedge31

776:                                              ; preds = %.critedge21
  %777 = add nsw i32 %.4559864, -1
  %778 = sub nsw i32 %.3588862, %777
  %779 = icmp slt i32 %778, 2
  %780 = icmp ne i8 %.2613860, 0
  %or.cond23 = select i1 %779, i1 true, i1 %780
  br i1 %or.cond23, label %783, label %781

781:                                              ; preds = %776
  %782 = add nsw i32 %778, -1
  call void @sqlite3_str_appendchar(ptr noundef %0, i32 noundef %782, i8 noundef signext 32)
  br label %783

783:                                              ; preds = %781, %776
  %.4589 = phi i32 [ %778, %776 ], [ 0, %781 ]
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef nonnull %4, i32 noundef %.6576)
  %.not1102 = icmp eq i32 %.4559864, 2
  br i1 %.not1102, label %.critedge31, label %.lr.ph1050

.lr.ph1050:                                       ; preds = %783
  %784 = zext nneg i32 %.6576 to i64
  br label %785

785:                                              ; preds = %.lr.ph1050, %798
  %.105651048 = phi i32 [ %777, %.lr.ph1050 ], [ %806, %798 ]
  %.06141047 = phi i64 [ 1, %.lr.ph1050 ], [ %807, %798 ]
  %786 = add nsw i32 %.105651048, -1
  %787 = zext nneg i32 %786 to i64
  %spec.select827 = call i64 @llvm.smin.i64(i64 %.06141047, i64 %787)
  %788 = mul nsw i64 %spec.select827, %784
  %789 = load i32, ptr %28, align 8, !tbaa !47
  %790 = zext i32 %789 to i64
  %791 = add nsw i64 %788, %790
  %792 = load i32, ptr %32, align 8, !tbaa !48
  %793 = zext i32 %792 to i64
  %.not794 = icmp slt i64 %791, %793
  br i1 %.not794, label %796, label %794

794:                                              ; preds = %785
  %795 = call i32 @sqlite3StrAccumEnlarge(ptr noundef nonnull %0, i64 noundef %788)
  br label %796

796:                                              ; preds = %794, %785
  %797 = load i8, ptr %30, align 4, !tbaa !49
  %.not795 = icmp eq i8 %797, 0
  br i1 %.not795, label %798, label %.critedge31

798:                                              ; preds = %796
  %799 = load ptr, ptr %31, align 8, !tbaa !50
  %800 = load i32, ptr %28, align 8, !tbaa !47
  %801 = zext i32 %800 to i64
  %802 = sub nsw i64 %801, %788
  %803 = getelementptr inbounds i8, ptr %799, i64 %802
  %804 = trunc i64 %788 to i32
  call void @sqlite3_str_append(ptr noundef nonnull %0, ptr noundef %803, i32 noundef %804)
  %805 = trunc i64 %spec.select827 to i32
  %806 = sub i32 %.105651048, %805
  %807 = shl nsw i64 %spec.select827, 1
  %808 = icmp sgt i32 %806, 1
  br i1 %808, label %785, label %.critedge31

809:                                              ; preds = %249, %249
  br i1 %.not, label %810, label %.thread888

810:                                              ; preds = %809
  %811 = load i32, ptr %2, align 8
  %812 = icmp ult i32 %811, 41
  br i1 %812, label %813, label %818

813:                                              ; preds = %810
  %814 = load ptr, ptr %27, align 8
  %815 = zext nneg i32 %811 to i64
  %816 = getelementptr i8, ptr %814, i64 %815
  %817 = add nuw nsw i32 %811, 8
  store i32 %817, ptr %2, align 8
  br label %821

818:                                              ; preds = %810
  %819 = load ptr, ptr %26, align 8
  %820 = getelementptr i8, ptr %819, i64 8
  store ptr %820, ptr %26, align 8
  br label %821

821:                                              ; preds = %813, %818
  %822 = phi ptr [ %816, %813 ], [ %819, %818 ]
  %823 = load ptr, ptr %822, align 8, !tbaa !11
  %824 = icmp eq ptr %823, null
  br i1 %824, label %.thread893, label %827

.thread888:                                       ; preds = %809
  %825 = call ptr @getTextArg(ptr noundef %.0653)
  %826 = icmp eq ptr %825, null
  %spec.select918 = select i1 %826, ptr @.str.4, ptr %825
  br label %.thread893

827:                                              ; preds = %821
  %828 = icmp eq i8 %251, 6
  br i1 %828, label %829, label %.thread893

829:                                              ; preds = %827
  %830 = load i32, ptr %28, align 8, !tbaa !47
  %831 = icmp eq i32 %830, 0
  br i1 %831, label %832, label %.thread893

832:                                              ; preds = %829
  %833 = load i32, ptr %29, align 4, !tbaa !51
  %834 = icmp ne i32 %833, 0
  %835 = icmp eq i32 %.3588862, 0
  %or.cond25 = select i1 %834, i1 %835, i1 false
  %836 = icmp slt i32 %.4559864, 0
  %or.cond27 = select i1 %or.cond25, i1 %836, i1 false
  br i1 %or.cond27, label %837, label %.thread893

837:                                              ; preds = %832
  %838 = load i8, ptr %30, align 4, !tbaa !49
  %839 = icmp eq i8 %838, 0
  br i1 %839, label %840, label %.thread896

840:                                              ; preds = %837
  store ptr %823, ptr %31, align 8, !tbaa !50
  %841 = load ptr, ptr %0, align 8, !tbaa !52
  %842 = call i32 @sqlite3DbMallocSize(ptr noundef %841, ptr noundef nonnull %823)
  store i32 %842, ptr %32, align 8, !tbaa !48
  %843 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %823) #7
  %844 = trunc i64 %843 to i32
  %845 = and i32 %844, 2147483647
  store i32 %845, ptr %28, align 8, !tbaa !47
  %846 = load i8, ptr %6, align 1, !tbaa !5
  %847 = or i8 %846, 4
  store i8 %847, ptr %6, align 1, !tbaa !5
  br label %.critedge31.thread

.thread893:                                       ; preds = %.thread888, %829, %832, %821, %827
  %.5671 = phi ptr [ null, %827 ], [ null, %821 ], [ %823, %832 ], [ %823, %829 ], [ null, %.thread888 ]
  %.27 = phi ptr [ %823, %827 ], [ @.str.4, %821 ], [ %823, %832 ], [ %823, %829 ], [ %spec.select918, %.thread888 ]
  %848 = icmp sgt i32 %.4559864, -1
  br i1 %848, label %849, label %.thread896

849:                                              ; preds = %.thread893
  %.not789 = icmp eq i8 %.1638854, 0
  %.not1101 = icmp eq i32 %.4559864, 0
  br i1 %.not789, label %.preheader935, label %.preheader937

.preheader937:                                    ; preds = %849
  br i1 %.not1101, label %.critedge29, label %.lr.ph1038

.preheader935:                                    ; preds = %849
  br i1 %.not1101, label %.critedge31.thread, label %.lr.ph1043.preheader

.lr.ph1043.preheader:                             ; preds = %.preheader935
  %wide.trip.count = zext nneg i32 %.4559864 to i64
  br label %.lr.ph1043

.lr.ph1038:                                       ; preds = %.preheader937, %.loopexit
  %.in = phi i32 [ %850, %.loopexit ], [ %.4559864, %.preheader937 ]
  %.06081037 = phi ptr [ %.2610, %.loopexit ], [ %.27, %.preheader937 ]
  %850 = add nsw i32 %.in, -1
  %851 = load i8, ptr %.06081037, align 1, !tbaa !12
  %.not791 = icmp eq i8 %851, 0
  br i1 %.not791, label %.critedge29, label %852

852:                                              ; preds = %.lr.ph1038
  %853 = getelementptr inbounds i8, ptr %.06081037, i64 1
  %854 = icmp ugt i8 %851, -65
  br i1 %854, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %852, %.preheader
  %.1609 = phi ptr [ %858, %.preheader ], [ %853, %852 ]
  %855 = load i8, ptr %.1609, align 1, !tbaa !12
  %856 = and i8 %855, -64
  %857 = icmp eq i8 %856, -128
  %858 = getelementptr inbounds i8, ptr %.1609, i64 1
  br i1 %857, label %.preheader, label %.loopexit, !llvm.loop !53

.loopexit:                                        ; preds = %.preheader, %852
  %.2610 = phi ptr [ %853, %852 ], [ %.1609, %.preheader ]
  %859 = icmp sgt i32 %.in, 1
  br i1 %859, label %.lr.ph1038, label %.critedge29, !llvm.loop !54

.critedge29:                                      ; preds = %.lr.ph1038, %.loopexit, %.preheader937
  %.0608.lcssa = phi ptr [ %.27, %.preheader937 ], [ %.2610, %.loopexit ], [ %.06081037, %.lr.ph1038 ]
  %860 = ptrtoint ptr %.0608.lcssa to i64
  %861 = ptrtoint ptr %.27 to i64
  %862 = sub i64 %860, %861
  %863 = trunc i64 %862 to i32
  br label %.critedge31

.lr.ph1043:                                       ; preds = %.lr.ph1043.preheader, %866
  %indvars.iv = phi i64 [ 0, %.lr.ph1043.preheader ], [ %indvars.iv.next, %866 ]
  %864 = getelementptr inbounds i8, ptr %.27, i64 %indvars.iv
  %865 = load i8, ptr %864, align 1, !tbaa !12
  %.not790 = icmp eq i8 %865, 0
  br i1 %.not790, label %.critedge31.thread.loopexit1180.split.loop.exit1216, label %866

866:                                              ; preds = %.lr.ph1043
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond1147.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond1147.not, label %.critedge31.thread, label %.lr.ph1043, !llvm.loop !55

.thread896:                                       ; preds = %837, %.thread893
  %.27900 = phi ptr [ %.27, %.thread893 ], [ %823, %837 ]
  %.5671899 = phi ptr [ %.5671, %.thread893 ], [ %823, %837 ]
  %867 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.27900) #7
  %868 = trunc i64 %867 to i32
  %869 = and i32 %868, 2147483647
  br label %.critedge31

.critedge31:                                      ; preds = %798, %796, %783, %.thread907, %.critedge21, %.thread896, %.critedge29
  %.6672 = phi ptr [ %.5671, %.critedge29 ], [ %.5671899, %.thread896 ], [ null, %.critedge21 ], [ %.7673, %.thread907 ], [ null, %783 ], [ null, %796 ], [ null, %798 ]
  %.2639 = phi i8 [ 1, %.critedge29 ], [ %.1638854, %.thread896 ], [ 1, %.critedge21 ], [ %.1638854, %.thread907 ], [ 1, %783 ], [ 1, %796 ], [ 1, %798 ]
  %.6591 = phi i32 [ %.3588862, %.critedge29 ], [ %.3588862, %.thread896 ], [ %.3588862, %.critedge21 ], [ %.3588862, %.thread907 ], [ %.4589, %783 ], [ %.4589, %796 ], [ %.4589, %798 ]
  %.8578 = phi i32 [ %863, %.critedge29 ], [ %869, %.thread896 ], [ %.6576, %.critedge21 ], [ %978, %.thread907 ], [ %.6576, %783 ], [ %.6576, %796 ], [ %.6576, %798 ]
  %.28 = phi ptr [ %.27, %.critedge29 ], [ %.27900, %.thread896 ], [ %4, %.critedge21 ], [ %.29, %.thread907 ], [ %4, %783 ], [ %4, %796 ], [ %4, %798 ]
  %870 = icmp ne i8 %.2639, 0
  %871 = icmp sgt i32 %.6591, 0
  %or.cond33 = select i1 %870, i1 %871, i1 false
  %872 = icmp sgt i32 %.8578, 0
  %or.cond1099 = select i1 %or.cond33, i1 %872, i1 false
  br i1 %or.cond1099, label %.lr.ph1054.preheader, label %.critedge31.thread

.lr.ph1054.preheader:                             ; preds = %.critedge31
  %873 = zext nneg i32 %.8578 to i64
  %min.iters.check1273 = icmp ult i32 %.8578, 8
  br i1 %min.iters.check1273, label %.lr.ph1054.preheader1289, label %vector.ph1274

vector.ph1274:                                    ; preds = %.lr.ph1054.preheader
  %n.vec1276 = and i64 %873, 2147483640
  %ind.end1277 = and i64 %873, 7
  %874 = insertelement <4 x i32> <i32 poison, i32 0, i32 0, i32 0>, i32 %.6591, i64 0
  br label %vector.body1279

vector.body1279:                                  ; preds = %vector.body1279, %vector.ph1274
  %index1280 = phi i64 [ 0, %vector.ph1274 ], [ %index.next1287, %vector.body1279 ]
  %vec.phi = phi <4 x i32> [ %874, %vector.ph1274 ], [ %888, %vector.body1279 ]
  %vec.phi1281 = phi <4 x i32> [ zeroinitializer, %vector.ph1274 ], [ %889, %vector.body1279 ]
  %875 = xor i64 %index1280, -1
  %876 = add i64 %875, %873
  %877 = getelementptr inbounds i8, ptr %.28, i64 %876
  %878 = getelementptr inbounds i8, ptr %877, i64 -3
  %879 = getelementptr inbounds i8, ptr %877, i64 -7
  %wide.load1283 = load <4 x i8>, ptr %878, align 1, !tbaa !12
  %wide.load1285 = load <4 x i8>, ptr %879, align 1, !tbaa !12
  %880 = and <4 x i8> %wide.load1283, <i8 -64, i8 -64, i8 -64, i8 -64>
  %881 = shufflevector <4 x i8> %880, <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  %882 = and <4 x i8> %wide.load1285, <i8 -64, i8 -64, i8 -64, i8 -64>
  %883 = shufflevector <4 x i8> %882, <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  %884 = icmp eq <4 x i8> %881, <i8 -128, i8 -128, i8 -128, i8 -128>
  %885 = icmp eq <4 x i8> %883, <i8 -128, i8 -128, i8 -128, i8 -128>
  %886 = zext <4 x i1> %884 to <4 x i32>
  %887 = zext <4 x i1> %885 to <4 x i32>
  %888 = add <4 x i32> %vec.phi, %886
  %889 = add <4 x i32> %vec.phi1281, %887
  %index.next1287 = add nuw i64 %index1280, 8
  %890 = icmp eq i64 %index.next1287, %n.vec1276
  br i1 %890, label %middle.block1272, label %vector.body1279, !llvm.loop !56

middle.block1272:                                 ; preds = %vector.body1279
  %bin.rdx = add <4 x i32> %889, %888
  %891 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %bin.rdx)
  %cmp.n1288 = icmp eq i64 %n.vec1276, %873
  br i1 %cmp.n1288, label %.critedge31.thread, label %.lr.ph1054.preheader1289

.lr.ph1054.preheader1289:                         ; preds = %middle.block1272, %.lr.ph1054.preheader
  %indvars.iv1152.ph = phi i64 [ %873, %.lr.ph1054.preheader ], [ %ind.end1277, %middle.block1272 ]
  %.75921053.ph = phi i32 [ %.6591, %.lr.ph1054.preheader ], [ %891, %middle.block1272 ]
  br label %.lr.ph1054

.lr.ph1054:                                       ; preds = %.lr.ph1054.preheader1289, %.lr.ph1054
  %indvars.iv1152 = phi i64 [ %indvars.iv.next1153, %.lr.ph1054 ], [ %indvars.iv1152.ph, %.lr.ph1054.preheader1289 ]
  %.75921053 = phi i32 [ %spec.select828, %.lr.ph1054 ], [ %.75921053.ph, %.lr.ph1054.preheader1289 ]
  %indvars.iv.next1153 = add nsw i64 %indvars.iv1152, -1
  %892 = getelementptr inbounds i8, ptr %.28, i64 %indvars.iv.next1153
  %893 = load i8, ptr %892, align 1, !tbaa !12
  %894 = and i8 %893, -64
  %895 = icmp eq i8 %894, -128
  %896 = zext i1 %895 to i32
  %spec.select828 = add nuw nsw i32 %.75921053, %896
  %897 = icmp ugt i64 %indvars.iv1152, 1
  br i1 %897, label %.lr.ph1054, label %.critedge31.thread, !llvm.loop !57

898:                                              ; preds = %249, %249, %249
  %899 = icmp eq i8 %251, 14
  %900 = select i1 %899, i8 34, i8 39
  br i1 %.not, label %903, label %901

901:                                              ; preds = %898
  %902 = call ptr @getTextArg(ptr noundef %.0653)
  br label %917

903:                                              ; preds = %898
  %904 = load i32, ptr %2, align 8
  %905 = icmp ult i32 %904, 41
  br i1 %905, label %906, label %911

906:                                              ; preds = %903
  %907 = load ptr, ptr %27, align 8
  %908 = zext nneg i32 %904 to i64
  %909 = getelementptr i8, ptr %907, i64 %908
  %910 = add nuw nsw i32 %904, 8
  store i32 %910, ptr %2, align 8
  br label %914

911:                                              ; preds = %903
  %912 = load ptr, ptr %26, align 8
  %913 = getelementptr i8, ptr %912, i64 8
  store ptr %913, ptr %26, align 8
  br label %914

914:                                              ; preds = %911, %906
  %915 = phi ptr [ %909, %906 ], [ %912, %911 ]
  %916 = load ptr, ptr %915, align 8, !tbaa !11
  br label %917

917:                                              ; preds = %914, %901
  %.0568 = phi ptr [ %902, %901 ], [ %916, %914 ]
  %918 = icmp ne ptr %.0568, null
  %919 = icmp eq i8 %251, 10
  %920 = select i1 %919, ptr @.str.5, ptr @.str.6
  %.1569 = select i1 %918, ptr %.0568, ptr %920
  %.not7851020 = icmp eq i32 %.4559864, 0
  br i1 %.not7851020, label %.critedge35, label %.lr.ph1025

.lr.ph1025:                                       ; preds = %917
  %921 = sext i32 %.4559864 to i64
  %.not787 = icmp ne i8 %.1638854, 0
  br label %922

922:                                              ; preds = %.lr.ph1025, %.loopexit924
  %.05961023 = phi i64 [ 0, %.lr.ph1025 ], [ %spec.select829, %.loopexit924 ]
  %.05981022 = phi i64 [ %921, %.lr.ph1025 ], [ %934, %.loopexit924 ]
  %.06031021 = phi i64 [ 0, %.lr.ph1025 ], [ %.pre-phi, %.loopexit924 ]
  %923 = getelementptr inbounds i8, ptr %.1569, i64 %.06031021
  %924 = load i8, ptr %923, align 1, !tbaa !12
  %.not786 = icmp eq i8 %924, 0
  br i1 %.not786, label %.critedge35, label %925

925:                                              ; preds = %922
  %926 = icmp eq i8 %924, %900
  %927 = zext i1 %926 to i64
  %spec.select829 = add nuw nsw i64 %.05961023, %927
  %928 = icmp ugt i8 %924, -65
  %or.cond830 = and i1 %.not787, %928
  br i1 %or.cond830, label %.preheader923, label %..loopexit924_crit_edge

..loopexit924_crit_edge:                          ; preds = %925
  %.pre1179 = add nsw i64 %.06031021, 1
  br label %.loopexit924

.preheader923:                                    ; preds = %925, %.preheader923
  %.1604 = phi i64 [ %929, %.preheader923 ], [ %.06031021, %925 ]
  %929 = add nsw i64 %.1604, 1
  %930 = getelementptr inbounds i8, ptr %.1569, i64 %929
  %931 = load i8, ptr %930, align 1, !tbaa !12
  %932 = and i8 %931, -64
  %933 = icmp eq i8 %932, -128
  br i1 %933, label %.preheader923, label %.loopexit924, !llvm.loop !58

.loopexit924:                                     ; preds = %.preheader923, %..loopexit924_crit_edge
  %.pre-phi = phi i64 [ %.pre1179, %..loopexit924_crit_edge ], [ %929, %.preheader923 ]
  %934 = add nsw i64 %.05981022, -1
  %.not785 = icmp eq i64 %934, 0
  br i1 %.not785, label %.critedge35, label %922, !llvm.loop !59

.critedge35:                                      ; preds = %922, %.loopexit924, %917
  %.0603.lcssa = phi i64 [ 0, %917 ], [ %.pre-phi, %.loopexit924 ], [ %.06031021, %922 ]
  %.0596.lcssa = phi i64 [ 0, %917 ], [ %spec.select829, %.loopexit924 ], [ %.05961023, %922 ]
  %935 = and i1 %919, %918
  %936 = add nsw i64 %.0603.lcssa, 3
  %937 = add nsw i64 %936, %.0596.lcssa
  %938 = icmp sgt i64 %937, 70
  br i1 %938, label %939, label %942

939:                                              ; preds = %.critedge35
  %940 = call ptr @printfTempBuf(ptr noundef %0, i64 noundef %937)
  %941 = icmp eq ptr %940, null
  br i1 %941, label %.thread867, label %942

942:                                              ; preds = %.critedge35, %939
  %.7673 = phi ptr [ %940, %939 ], [ null, %.critedge35 ]
  %.29 = phi ptr [ %940, %939 ], [ %4, %.critedge35 ]
  br i1 %935, label %943, label %944

943:                                              ; preds = %942
  store i8 39, ptr %.29, align 1, !tbaa !12
  br label %944

944:                                              ; preds = %943, %942
  %.0599 = phi i64 [ 1, %943 ], [ 0, %942 ]
  %945 = icmp sgt i64 %.0603.lcssa, 0
  br i1 %945, label %.lr.ph1034.preheader, label %._crit_edge1035

.lr.ph1034.preheader:                             ; preds = %944
  %xtraiter = and i64 %.0603.lcssa, 1
  %946 = icmp eq i64 %.0603.lcssa, 1
  br i1 %946, label %._crit_edge1035.loopexit.unr-lcssa, label %.lr.ph1034.preheader.new

.lr.ph1034.preheader.new:                         ; preds = %.lr.ph1034.preheader
  %unroll_iter = and i64 %.0603.lcssa, 9223372036854775806
  br label %.lr.ph1034

.lr.ph1034:                                       ; preds = %964, %.lr.ph1034.preheader.new
  %.16001032 = phi i64 [ %.0599, %.lr.ph1034.preheader.new ], [ %.2601.1, %964 ]
  %.36061031 = phi i64 [ 0, %.lr.ph1034.preheader.new ], [ %965, %964 ]
  %niter = phi i64 [ 0, %.lr.ph1034.preheader.new ], [ %niter.next.1, %964 ]
  %947 = getelementptr inbounds i8, ptr %.1569, i64 %.36061031
  %948 = load i8, ptr %947, align 1, !tbaa !12
  %949 = add nsw i64 %.16001032, 1
  %950 = getelementptr inbounds i8, ptr %.29, i64 %.16001032
  store i8 %948, ptr %950, align 1, !tbaa !12
  %951 = icmp eq i8 %948, %900
  br i1 %951, label %952, label %.lr.ph1034.1

952:                                              ; preds = %.lr.ph1034
  %953 = add nsw i64 %.16001032, 2
  %954 = getelementptr inbounds i8, ptr %.29, i64 %949
  store i8 %900, ptr %954, align 1, !tbaa !12
  br label %.lr.ph1034.1

.lr.ph1034.1:                                     ; preds = %.lr.ph1034, %952
  %.2601 = phi i64 [ %953, %952 ], [ %949, %.lr.ph1034 ]
  %955 = or disjoint i64 %.36061031, 1
  %956 = getelementptr inbounds i8, ptr %.1569, i64 %955
  %957 = load i8, ptr %956, align 1, !tbaa !12
  %958 = add nsw i64 %.2601, 1
  %959 = getelementptr inbounds i8, ptr %.29, i64 %.2601
  store i8 %957, ptr %959, align 1, !tbaa !12
  %960 = icmp eq i8 %957, %900
  br i1 %960, label %961, label %964

961:                                              ; preds = %.lr.ph1034.1
  %962 = add nsw i64 %.2601, 2
  %963 = getelementptr inbounds i8, ptr %.29, i64 %958
  store i8 %900, ptr %963, align 1, !tbaa !12
  br label %964

964:                                              ; preds = %961, %.lr.ph1034.1
  %.2601.1 = phi i64 [ %962, %961 ], [ %958, %.lr.ph1034.1 ]
  %965 = add nuw nsw i64 %.36061031, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge1035.loopexit.unr-lcssa, label %.lr.ph1034, !llvm.loop !60

._crit_edge1035.loopexit.unr-lcssa:               ; preds = %964, %.lr.ph1034.preheader
  %.2601.lcssa.ph = phi i64 [ poison, %.lr.ph1034.preheader ], [ %.2601.1, %964 ]
  %.16001032.unr = phi i64 [ %.0599, %.lr.ph1034.preheader ], [ %.2601.1, %964 ]
  %.36061031.unr = phi i64 [ 0, %.lr.ph1034.preheader ], [ %965, %964 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge1035, label %.lr.ph1034.epil

.lr.ph1034.epil:                                  ; preds = %._crit_edge1035.loopexit.unr-lcssa
  %966 = getelementptr inbounds i8, ptr %.1569, i64 %.36061031.unr
  %967 = load i8, ptr %966, align 1, !tbaa !12
  %968 = add nsw i64 %.16001032.unr, 1
  %969 = getelementptr inbounds i8, ptr %.29, i64 %.16001032.unr
  store i8 %967, ptr %969, align 1, !tbaa !12
  %970 = icmp eq i8 %967, %900
  br i1 %970, label %971, label %._crit_edge1035

971:                                              ; preds = %.lr.ph1034.epil
  %972 = add nsw i64 %.16001032.unr, 2
  %973 = getelementptr inbounds i8, ptr %.29, i64 %968
  store i8 %900, ptr %973, align 1, !tbaa !12
  br label %._crit_edge1035

._crit_edge1035:                                  ; preds = %._crit_edge1035.loopexit.unr-lcssa, %971, %.lr.ph1034.epil, %944
  %.1600.lcssa = phi i64 [ %.0599, %944 ], [ %.2601.lcssa.ph, %._crit_edge1035.loopexit.unr-lcssa ], [ %972, %971 ], [ %968, %.lr.ph1034.epil ]
  br i1 %935, label %974, label %.thread907

974:                                              ; preds = %._crit_edge1035
  %975 = add nsw i64 %.1600.lcssa, 1
  %976 = getelementptr inbounds i8, ptr %.29, i64 %.1600.lcssa
  store i8 39, ptr %976, align 1, !tbaa !12
  br label %.thread907

.thread907:                                       ; preds = %._crit_edge1035, %974
  %.3602 = phi i64 [ %975, %974 ], [ %.1600.lcssa, %._crit_edge1035 ]
  %977 = getelementptr inbounds i8, ptr %.29, i64 %.3602
  store i8 0, ptr %977, align 1, !tbaa !12
  %978 = trunc i64 %.3602 to i32
  br label %.critedge31

979:                                              ; preds = %249
  %980 = load i8, ptr %6, align 1, !tbaa !5
  %981 = and i8 %980, 1
  %982 = icmp eq i8 %981, 0
  br i1 %982, label %.thread867, label %983

983:                                              ; preds = %979
  %.not779 = icmp eq i8 %.1630856, 0
  %984 = load i32, ptr %2, align 8
  %985 = icmp ult i32 %984, 41
  br i1 %.not779, label %1006, label %986

986:                                              ; preds = %983
  br i1 %985, label %987, label %992

987:                                              ; preds = %986
  %988 = load ptr, ptr %27, align 8
  %989 = zext nneg i32 %984 to i64
  %990 = getelementptr i8, ptr %988, i64 %989
  %991 = add nuw nsw i32 %984, 8
  store i32 %991, ptr %2, align 8
  br label %995

992:                                              ; preds = %986
  %993 = load ptr, ptr %26, align 8
  %994 = getelementptr i8, ptr %993, i64 8
  store ptr %994, ptr %26, align 8
  br label %995

995:                                              ; preds = %992, %987
  %996 = phi ptr [ %990, %987 ], [ %993, %992 ]
  %997 = load ptr, ptr %996, align 8, !tbaa !11
  %.not782 = icmp eq ptr %997, null
  br i1 %.not782, label %.critedge31.thread, label %998

998:                                              ; preds = %995
  %999 = getelementptr inbounds i8, ptr %997, i64 4
  %1000 = load i32, ptr %999, align 4, !tbaa !61
  %1001 = and i32 %1000, 2048
  %.not783 = icmp eq i32 %1001, 0
  br i1 %.not783, label %1002, label %.critedge31.thread

1002:                                             ; preds = %998
  %1003 = getelementptr inbounds i8, ptr %997, i64 8
  %1004 = load ptr, ptr %1003, align 8, !tbaa !12
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef %1004)
  %1005 = load ptr, ptr %0, align 8, !tbaa !52
  call void @sqlite3RecordErrorOffsetOfExpr(ptr noundef %1005, ptr noundef nonnull %997)
  br label %.critedge31.thread

1006:                                             ; preds = %983
  br i1 %985, label %1007, label %1012

1007:                                             ; preds = %1006
  %1008 = load ptr, ptr %27, align 8
  %1009 = zext nneg i32 %984 to i64
  %1010 = getelementptr i8, ptr %1008, i64 %1009
  %1011 = add nuw nsw i32 %984, 8
  store i32 %1011, ptr %2, align 8
  br label %1015

1012:                                             ; preds = %1006
  %1013 = load ptr, ptr %26, align 8
  %1014 = getelementptr i8, ptr %1013, i64 8
  store ptr %1014, ptr %26, align 8
  br label %1015

1015:                                             ; preds = %1012, %1007
  %1016 = phi ptr [ %1010, %1007 ], [ %1013, %1012 ]
  %1017 = load ptr, ptr %1016, align 8, !tbaa !11
  %.not780 = icmp eq ptr %1017, null
  br i1 %.not780, label %.critedge31.thread, label %1018

1018:                                             ; preds = %1015
  %1019 = getelementptr inbounds i8, ptr %1017, i64 8
  %1020 = load i32, ptr %1019, align 8, !tbaa !64
  %.not781 = icmp eq i32 %1020, 0
  br i1 %.not781, label %.critedge31.thread, label %1021

1021:                                             ; preds = %1018
  %1022 = load ptr, ptr %1017, align 8, !tbaa !66
  call void @sqlite3_str_append(ptr noundef nonnull %0, ptr noundef %1022, i32 noundef %1020)
  %1023 = load ptr, ptr %0, align 8, !tbaa !52
  %1024 = load ptr, ptr %1017, align 8, !tbaa !66
  call void @sqlite3RecordErrorByteOffset(ptr noundef %1023, ptr noundef %1024)
  br label %.critedge31.thread

1025:                                             ; preds = %249
  %1026 = load i8, ptr %6, align 1, !tbaa !5
  %1027 = and i8 %1026, 1
  %.not778 = icmp eq i8 %1027, 0
  br i1 %.not778, label %.thread867, label %1028

1028:                                             ; preds = %1025
  %1029 = load i32, ptr %2, align 8
  %1030 = icmp ult i32 %1029, 41
  br i1 %1030, label %1031, label %1036

1031:                                             ; preds = %1028
  %1032 = load ptr, ptr %27, align 8
  %1033 = zext nneg i32 %1029 to i64
  %1034 = getelementptr i8, ptr %1032, i64 %1033
  %1035 = add nuw nsw i32 %1029, 8
  store i32 %1035, ptr %2, align 8
  br label %1039

1036:                                             ; preds = %1028
  %1037 = load ptr, ptr %26, align 8
  %1038 = getelementptr i8, ptr %1037, i64 8
  store ptr %1038, ptr %26, align 8
  br label %1039

1039:                                             ; preds = %1036, %1031
  %1040 = phi ptr [ %1034, %1031 ], [ %1037, %1036 ]
  %1041 = load ptr, ptr %1040, align 8, !tbaa !11
  %1042 = getelementptr inbounds i8, ptr %1041, i64 8
  %1043 = load ptr, ptr %1042, align 8, !tbaa !67
  %1044 = icmp eq ptr %1043, null
  %1045 = icmp ne i8 %.1638854, 0
  %or.cond37 = select i1 %1044, i1 true, i1 %1045
  br i1 %or.cond37, label %1047, label %1046

1046:                                             ; preds = %1039
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef nonnull %1043)
  br label %.critedge31.thread

1047:                                             ; preds = %1039
  %1048 = load ptr, ptr %1041, align 8, !tbaa !70
  %.not772 = icmp eq ptr %1048, null
  br i1 %.not772, label %1065, label %1049

1049:                                             ; preds = %1047
  %1050 = getelementptr inbounds i8, ptr %1041, i64 27
  %1051 = load i8, ptr %1050, align 1
  %1052 = and i8 %1051, 1
  %1053 = icmp eq i8 %1052, 0
  br i1 %1053, label %1054, label %1063

1054:                                             ; preds = %1049
  %1055 = getelementptr inbounds i8, ptr %1041, i64 25
  %1056 = load i16, ptr %1055, align 1
  %1057 = and i16 %1056, 4
  %1058 = icmp eq i16 %1057, 0
  br i1 %1058, label %1059, label %1063

1059:                                             ; preds = %1054
  %1060 = getelementptr inbounds i8, ptr %1041, i64 64
  %1061 = load ptr, ptr %1060, align 8, !tbaa !12
  %.not777 = icmp eq ptr %1061, null
  br i1 %.not777, label %1063, label %1062

1062:                                             ; preds = %1059
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef nonnull %1061)
  call void @sqlite3_str_append(ptr noundef nonnull %0, ptr noundef nonnull @.str.7, i32 noundef 1)
  %.pre = load ptr, ptr %1041, align 8, !tbaa !70
  br label %1063

1063:                                             ; preds = %1062, %1059, %1054, %1049
  %1064 = phi ptr [ %.pre, %1062 ], [ %1048, %1059 ], [ %1048, %1054 ], [ %1048, %1049 ]
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef %1064)
  br label %.critedge31.thread

1065:                                             ; preds = %1047
  br i1 %1044, label %1067, label %1066

1066:                                             ; preds = %1065
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef nonnull %1043)
  br label %.critedge31.thread

1067:                                             ; preds = %1065
  %1068 = getelementptr inbounds i8, ptr %1041, i64 25
  %1069 = load i16, ptr %1068, align 1
  %1070 = and i16 %1069, 4
  %.not774 = icmp eq i16 %1070, 0
  br i1 %.not774, label %.critedge31.thread, label %1071

1071:                                             ; preds = %1067
  %1072 = getelementptr inbounds i8, ptr %1041, i64 64
  %1073 = load ptr, ptr %1072, align 8, !tbaa !12
  %1074 = load ptr, ptr %1073, align 8, !tbaa !71
  %1075 = getelementptr inbounds i8, ptr %1074, i64 4
  %1076 = load i32, ptr %1075, align 4, !tbaa !73
  %1077 = and i32 %1076, 2048
  %.not775 = icmp eq i32 %1077, 0
  br i1 %.not775, label %1081, label %1078

1078:                                             ; preds = %1071
  %1079 = getelementptr inbounds i8, ptr %1074, i64 16
  %1080 = load i32, ptr %1079, align 8, !tbaa !75
  call void (ptr, ptr, ...) @sqlite3_str_appendf(ptr noundef nonnull %0, ptr noundef nonnull @.str.8, i32 noundef %1080)
  br label %.critedge31.thread

1081:                                             ; preds = %1071
  %1082 = and i32 %1076, 1024
  %.not776 = icmp eq i32 %1082, 0
  br i1 %.not776, label %1086, label %1083

1083:                                             ; preds = %1081
  %1084 = getelementptr inbounds i8, ptr %1041, i64 40
  %1085 = load i32, ptr %1084, align 8, !tbaa !12
  call void (ptr, ptr, ...) @sqlite3_str_appendf(ptr noundef nonnull %0, ptr noundef nonnull @.str.9, i32 noundef %1085)
  br label %.critedge31.thread

1086:                                             ; preds = %1081
  %1087 = getelementptr inbounds i8, ptr %1074, i64 16
  %1088 = load i32, ptr %1087, align 8, !tbaa !75
  call void (ptr, ptr, ...) @sqlite3_str_appendf(ptr noundef nonnull %0, ptr noundef nonnull @.str.10, i32 noundef %1088)
  br label %.critedge31.thread

.critedge31.thread.loopexit1180.split.loop.exit1216: ; preds = %.lr.ph1043
  %1089 = trunc nuw nsw i64 %indvars.iv to i32
  br label %.critedge31.thread

.critedge31.thread:                               ; preds = %866, %.lr.ph1054, %middle.block1272, %.critedge31.thread.loopexit1180.split.loop.exit1216, %.preheader935, %1078, %1086, %1083, %1063, %1067, %1066, %1046, %.thread878, %1002, %998, %995, %1021, %1018, %1015, %688, %701, %.critedge31, %840, %704, %.loopexit926
  %.9675 = phi ptr [ %.6672, %.critedge31 ], [ null, %840 ], [ null, %704 ], [ %.1667, %.loopexit926 ], [ null, %701 ], [ null, %688 ], [ null, %1015 ], [ null, %1018 ], [ null, %1021 ], [ null, %995 ], [ null, %998 ], [ null, %1002 ], [ %.4670.ph, %.thread878 ], [ null, %1046 ], [ null, %1066 ], [ null, %1067 ], [ null, %1063 ], [ null, %1083 ], [ null, %1086 ], [ null, %1078 ], [ %.5671, %.preheader935 ], [ %.5671, %.critedge31.thread.loopexit1180.split.loop.exit1216 ], [ %.6672, %middle.block1272 ], [ %.6672, %.lr.ph1054 ], [ %.5671, %866 ]
  %.10595 = phi i32 [ %.6591, %.critedge31 ], [ 0, %840 ], [ %.3588862, %704 ], [ %.3588862, %.loopexit926 ], [ 0, %701 ], [ 0, %688 ], [ 0, %1015 ], [ 0, %1018 ], [ 0, %1021 ], [ 0, %995 ], [ 0, %998 ], [ 0, %1002 ], [ %.3588862, %.thread878 ], [ 0, %1046 ], [ 0, %1066 ], [ 0, %1067 ], [ 0, %1063 ], [ 0, %1083 ], [ 0, %1086 ], [ 0, %1078 ], [ %.3588862, %.preheader935 ], [ %.3588862, %.critedge31.thread.loopexit1180.split.loop.exit1216 ], [ %891, %middle.block1272 ], [ %spec.select828, %.lr.ph1054 ], [ %.3588862, %866 ]
  %.11581 = phi i32 [ %.8578, %.critedge31 ], [ 0, %840 ], [ 1, %704 ], [ %459, %.loopexit926 ], [ 0, %701 ], [ 0, %688 ], [ 0, %1015 ], [ 0, %1018 ], [ 0, %1021 ], [ 0, %995 ], [ 0, %998 ], [ 0, %1002 ], [ %.3573.ph, %.thread878 ], [ 0, %1046 ], [ 0, %1066 ], [ 0, %1067 ], [ 0, %1063 ], [ 0, %1083 ], [ 0, %1086 ], [ 0, %1078 ], [ 0, %.preheader935 ], [ %1089, %.critedge31.thread.loopexit1180.split.loop.exit1216 ], [ %.8578, %middle.block1272 ], [ %.8578, %.lr.ph1054 ], [ %.4559864, %866 ]
  %.31 = phi ptr [ %.28, %.critedge31 ], [ %823, %840 ], [ %4, %704 ], [ %.8552, %.loopexit926 ], [ %.1545, %701 ], [ %.1545, %688 ], [ %.1545, %1015 ], [ %.1545, %1018 ], [ %.1545, %1021 ], [ %.1545, %995 ], [ %.1545, %998 ], [ %.1545, %1002 ], [ %.24.ph, %.thread878 ], [ %.1545, %1046 ], [ %.1545, %1066 ], [ %.1545, %1067 ], [ %.1545, %1063 ], [ %.1545, %1083 ], [ %.1545, %1086 ], [ %.1545, %1078 ], [ %.27, %.preheader935 ], [ %.27, %.critedge31.thread.loopexit1180.split.loop.exit1216 ], [ %.28, %middle.block1272 ], [ %.28, %.lr.ph1054 ], [ %.27, %866 ]
  %1090 = sub nsw i32 %.10595, %.11581
  %1091 = icmp sgt i32 %1090, 0
  br i1 %1091, label %1092, label %1094

1092:                                             ; preds = %.critedge31.thread
  %.not823 = icmp eq i8 %.2613860, 0
  br i1 %.not823, label %1093, label %.critedge832

1093:                                             ; preds = %1092
  call void @sqlite3_str_appendchar(ptr noundef %0, i32 noundef %1090, i8 noundef signext 32)
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.31, i32 noundef %.11581)
  br label %1095

.critedge832:                                     ; preds = %1092
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.31, i32 noundef %.11581)
  call void @sqlite3_str_appendchar(ptr noundef %0, i32 noundef %1090, i8 noundef signext 32)
  br label %1095

1094:                                             ; preds = %.critedge31.thread
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.31, i32 noundef %.11581)
  br label %1095

1095:                                             ; preds = %1093, %.critedge832, %1094
  %.not824 = icmp eq ptr %.9675, null
  br i1 %.not824, label %1098, label %1096

1096:                                             ; preds = %1095
  %1097 = load ptr, ptr %0, align 8, !tbaa !52
  call void @sqlite3DbFree(ptr noundef %1097, ptr noundef nonnull %.9675)
  br label %1098

1098:                                             ; preds = %1095, %1096
  %1099 = getelementptr inbounds i8, ptr %.10, i64 1
  br label %87, !llvm.loop !76

.thread867:                                       ; preds = %1025, %939, %.critedge, %87, %249, %979, %359, %247, %687, %101
  call void @llvm.lifetime.end.p0(i64 70, ptr nonnull %4) #6
  ret void
}

; Function Attrs: nounwind uwtable
declare dso_local void @sqlite3_str_append(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden i64 @getIntArg(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden ptr @printfTempBuf(ptr noundef, i64 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden double @getDoubleArg(ptr noundef) local_unnamed_addr #1

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

; Function Attrs: nounwind uwtable
declare hidden i32 @sqlite3Strlen30(ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

; Function Attrs: nounwind uwtable
declare hidden ptr @getTextArg(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local void @sqlite3_str_appendchar(ptr noundef, i32 noundef, i8 noundef signext) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden i32 @sqlite3StrAccumEnlarge(ptr noundef, i64 noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare dso_local void @sqlite3_str_appendall(ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @sqlite3_str_appendf(ptr noundef, ptr noundef, ...) local_unnamed_addr #1

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smin.i64(i64, i64) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.abs.i64(i64, i1 immarg) #4

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.usub.sat.i32(i32, i32) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.vector.reduce.add.v4i32(<4 x i32>) #4

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { mustprogress nofree nounwind willreturn memory(argmem: read) "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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { nounwind }
attributes #7 = { nounwind willreturn memory(read) }

!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, !8, i64 29}
!6 = !{!"sqlite3_str", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !8, i64 28, !8, i64 29}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!8, !8, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!10, !10, i64 0}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = !{!19, !8, i64 3}
!19 = !{!"et_info", !8, i64 0, !8, i64 1, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 5}
!20 = !{!19, !8, i64 2}
!21 = !{!22, !22, i64 0}
!22 = !{!"long long", !8, i64 0}
!23 = !{!24, !24, i64 0}
!24 = !{!"long", !8, i64 0}
!25 = !{!19, !8, i64 4}
!26 = !{!19, !8, i64 1}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = !{!19, !8, i64 5}
!30 = distinct !{!30, !14}
!31 = !{!32, !32, i64 0}
!32 = !{!"double", !8, i64 0}
!33 = !{!34, !8, i64 1}
!34 = !{!"FpDecode", !8, i64 0, !8, i64 1, !10, i64 4, !10, i64 8, !7, i64 16, !8, i64 24}
!35 = !{!34, !7, i64 16}
!36 = !{!34, !10, i64 8}
!37 = !{!34, !10, i64 4}
!38 = !{!34, !8, i64 0}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14, !43, !44}
!43 = !{!"llvm.loop.isvectorized", i32 1}
!44 = !{!"llvm.loop.unroll.runtime.disable"}
!45 = distinct !{!45, !14, !43, !44}
!46 = distinct !{!46, !14, !43}
!47 = !{!6, !10, i64 24}
!48 = !{!6, !10, i64 16}
!49 = !{!6, !8, i64 28}
!50 = !{!6, !7, i64 8}
!51 = !{!6, !10, i64 20}
!52 = !{!6, !7, i64 0}
!53 = distinct !{!53, !14}
!54 = distinct !{!54, !14}
!55 = distinct !{!55, !14}
!56 = distinct !{!56, !14, !43, !44}
!57 = distinct !{!57, !14, !44, !43}
!58 = distinct !{!58, !14}
!59 = distinct !{!59, !14}
!60 = distinct !{!60, !14}
!61 = !{!62, !10, i64 4}
!62 = !{!"Expr", !8, i64 0, !8, i64 1, !8, i64 2, !10, i64 4, !8, i64 8, !7, i64 16, !7, i64 24, !8, i64 32, !10, i64 40, !10, i64 44, !63, i64 48, !63, i64 50, !8, i64 52, !7, i64 56, !8, i64 64}
!63 = !{!"short", !8, i64 0}
!64 = !{!65, !10, i64 8}
!65 = !{!"Token", !7, i64 0, !10, i64 8}
!66 = !{!65, !7, i64 0}
!67 = !{!68, !7, i64 8}
!68 = !{!"SrcItem", !7, i64 0, !7, i64 8, !7, i64 16, !69, i64 24, !10, i64 28, !22, i64 32, !8, i64 40, !8, i64 48, !8, i64 56, !8, i64 64}
!69 = !{!"", !8, i64 0, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 3, !10, i64 3}
!70 = !{!68, !7, i64 0}
!71 = !{!72, !7, i64 0}
!72 = !{!"Subquery", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16}
!73 = !{!74, !10, i64 4}
!74 = !{!"Select", !8, i64 0, !63, i64 2, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !8, i64 20, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120}
!75 = !{!74, !10, i64 16}
!76 = distinct !{!76, !14}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DivRemPairsPass,EarlyCSEPass,GVNPass,GlobalDCEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass