; LLVM IR from flomar/sqlmemdb :: sqlite (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.sqlite3_str = type { ptr, ptr, i32, i32, i32, i8, i8 }
%struct.__va_list_tag = type { i32, i32, ptr, ptr }
%struct.Token = type { ptr, i32 }
%struct.SrcList = type { i32, i32, [1 x %struct.SrcList_item] }
%struct.SrcList_item = type { ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, %struct.anon, i32, ptr, ptr, i64, %union.anon.0, ptr }
%struct.anon = type { i8, i8, [2 x i8] }
%union.anon.0 = type { 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 [4 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 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
declare hidden void @sqlite3DbFree(ptr noundef, ptr noundef) #1

; 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 x86_fp80, align 16
  %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 i32, align 4
  %33 = alloca double, align 8
  %34 = alloca i8, align 1
  %35 = alloca i8, align 1
  %36 = alloca ptr, align 8
  %37 = alloca [70 x i8], align 16
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca ptr, align 8
  %45 = alloca i8, align 1
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca ptr, align 8
  %49 = alloca i8, align 1
  %50 = alloca x86_fp80, align 16
  %51 = alloca i64, align 8
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i8, align 1
  %64 = alloca i8, align 1
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca ptr, align 8
  %68 = alloca i32, align 4
  %69 = 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 16, 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 4, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #4
  store ptr null, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 70, ptr %37) #4
  store ptr null, ptr %8, align 8, !tbaa !5
  %70 = load ptr, ptr %4, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.sqlite3_str, ptr %70, i32 0, i32 6
  %72 = load i8, ptr %71, align 1, !tbaa !10
  %73 = zext i8 %72 to i32
  %74 = and i32 %73, 2
  %75 = icmp ne i32 %74, 0
  br i1 %75, label %76, label %93

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

81:                                               ; preds = %76
  %82 = getelementptr inbounds %struct.__va_list_tag, ptr %77, i32 0, i32 3
  %83 = load ptr, ptr %82, align 8
  %84 = getelementptr i8, ptr %83, i32 %79
  %85 = add i32 %79, 8
  store i32 %85, ptr %78, align 8
  br label %90

86:                                               ; preds = %76
  %87 = getelementptr inbounds %struct.__va_list_tag, ptr %77, i32 0, i32 2
  %88 = load ptr, ptr %87, align 8
  %89 = getelementptr i8, ptr %88, i32 8
  store ptr %89, ptr %87, align 8
  br label %90

90:                                               ; preds = %86, %81
  %91 = phi ptr [ %84, %81 ], [ %88, %86 ]
  %92 = load ptr, ptr %91, align 8, !tbaa !5
  store ptr %92, ptr %36, align 8, !tbaa !5
  store i8 1, ptr %22, align 1, !tbaa !9
  br label %94

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

94:                                               ; preds = %93, %90
  br label %95

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

100:                                              ; preds = %95
  %101 = load i32, ptr %7, align 4, !tbaa !13
  %102 = icmp ne i32 %101, 37
  br i1 %102, label %103, label %135

103:                                              ; preds = %100
  %104 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %104, ptr %8, align 8, !tbaa !5
  br label %105

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

108:                                              ; preds = %105
  %109 = load ptr, ptr %5, align 8, !tbaa !5
  %110 = load i8, ptr %109, align 1, !tbaa !9
  %111 = sext i8 %110 to i32
  %112 = icmp ne i32 %111, 0
  br i1 %112, label %113, label %118

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

118:                                              ; preds = %113, %108
  %119 = phi i1 [ false, %108 ], [ %117, %113 ]
  br i1 %119, label %105, label %120, !llvm.loop !14

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

133:                                              ; preds = %120
  br label %1934

134:                                              ; preds = %120
  br label %135

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

141:                                              ; preds = %135
  %142 = load ptr, ptr %4, align 8, !tbaa !5
  call void @sqlite3_str_append(ptr noundef %142, ptr noundef @.str, i32 noundef 1)
  br label %1934

143:                                              ; preds = %135
  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 %144

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

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

147:                                              ; preds = %144
  store i8 43, ptr %14, align 1, !tbaa !9
  br label %329

148:                                              ; preds = %144
  store i8 32, ptr %14, align 1, !tbaa !9
  br label %329

149:                                              ; preds = %144
  store i8 1, ptr %15, align 1, !tbaa !9
  br label %329

150:                                              ; preds = %144
  store i8 1, ptr %16, align 1, !tbaa !9
  br label %329

151:                                              ; preds = %144
  store i8 1, ptr %17, align 1, !tbaa !9
  br label %329

152:                                              ; preds = %144
  store i8 44, ptr %20, align 1, !tbaa !9
  br label %329

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

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

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

166:                                              ; preds = %161, %154
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %329

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

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

176:                                              ; preds = %170
  %177 = load i32, ptr %7, align 4, !tbaa !13
  %178 = icmp sle i32 %177, 57
  br label %179

179:                                              ; preds = %176, %170
  %180 = phi i1 [ false, %170 ], [ %178, %176 ]
  br i1 %180, label %181, label %187

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

187:                                              ; preds = %179
  %188 = load i32, ptr %38, align 4, !tbaa !13
  %189 = and i32 %188, 2147483647
  store i32 %189, ptr %12, align 4, !tbaa !13
  %190 = load i32, ptr %7, align 4, !tbaa !13
  %191 = icmp ne i32 %190, 46
  br i1 %191, label %192, label %196

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

195:                                              ; preds = %192
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %199

196:                                              ; preds = %192, %187
  %197 = load ptr, ptr %5, align 8, !tbaa !5
  %198 = getelementptr inbounds i8, ptr %197, i32 -1
  store ptr %198, ptr %5, align 8, !tbaa !5
  br label %199

199:                                              ; preds = %196, %195
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  br label %329

200:                                              ; preds = %144
  %201 = load i8, ptr %22, align 1, !tbaa !9
  %202 = icmp ne i8 %201, 0
  br i1 %202, label %203, label %207

203:                                              ; preds = %200
  %204 = load ptr, ptr %36, align 8, !tbaa !5
  %205 = call i64 @getIntArg(ptr noundef %204)
  %206 = trunc i64 %205 to i32
  store i32 %206, ptr %12, align 4, !tbaa !13
  br label %224

207:                                              ; preds = %200
  %208 = load ptr, ptr %6, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.__va_list_tag, ptr %208, i32 0, i32 0
  %210 = load i32, ptr %209, align 8
  %211 = icmp ule i32 %210, 40
  br i1 %211, label %212, label %217

212:                                              ; preds = %207
  %213 = getelementptr inbounds %struct.__va_list_tag, ptr %208, i32 0, i32 3
  %214 = load ptr, ptr %213, align 8
  %215 = getelementptr i8, ptr %214, i32 %210
  %216 = add i32 %210, 8
  store i32 %216, ptr %209, align 8
  br label %221

217:                                              ; preds = %207
  %218 = getelementptr inbounds %struct.__va_list_tag, ptr %208, i32 0, i32 2
  %219 = load ptr, ptr %218, align 8
  %220 = getelementptr i8, ptr %219, i32 8
  store ptr %220, ptr %218, align 8
  br label %221

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

224:                                              ; preds = %221, %203
  %225 = load i32, ptr %12, align 4, !tbaa !13
  %226 = icmp slt i32 %225, 0
  br i1 %226, label %227, label %236

227:                                              ; preds = %224
  store i8 1, ptr %13, align 1, !tbaa !9
  %228 = load i32, ptr %12, align 4, !tbaa !13
  %229 = icmp sge i32 %228, -2147483647
  br i1 %229, label %230, label %233

230:                                              ; preds = %227
  %231 = load i32, ptr %12, align 4, !tbaa !13
  %232 = sub nsw i32 0, %231
  br label %234

233:                                              ; preds = %227
  br label %234

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

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

242:                                              ; preds = %236
  %243 = load i32, ptr %7, align 4, !tbaa !13
  %244 = icmp ne i32 %243, 108
  br i1 %244, label %245, label %250

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

250:                                              ; preds = %245, %242, %236
  br label %329

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

258:                                              ; preds = %251
  %259 = load i8, ptr %22, align 1, !tbaa !9
  %260 = icmp ne i8 %259, 0
  br i1 %260, label %261, label %265

261:                                              ; preds = %258
  %262 = load ptr, ptr %36, align 8, !tbaa !5
  %263 = call i64 @getIntArg(ptr noundef %262)
  %264 = trunc i64 %263 to i32
  store i32 %264, ptr %9, align 4, !tbaa !13
  br label %282

265:                                              ; preds = %258
  %266 = load ptr, ptr %6, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.__va_list_tag, ptr %266, i32 0, i32 0
  %268 = load i32, ptr %267, align 8
  %269 = icmp ule i32 %268, 40
  br i1 %269, label %270, label %275

270:                                              ; preds = %265
  %271 = getelementptr inbounds %struct.__va_list_tag, ptr %266, i32 0, i32 3
  %272 = load ptr, ptr %271, align 8
  %273 = getelementptr i8, ptr %272, i32 %268
  %274 = add i32 %268, 8
  store i32 %274, ptr %267, align 8
  br label %279

275:                                              ; preds = %265
  %276 = getelementptr inbounds %struct.__va_list_tag, ptr %266, i32 0, i32 2
  %277 = load ptr, ptr %276, align 8
  %278 = getelementptr i8, ptr %277, i32 8
  store ptr %278, ptr %276, align 8
  br label %279

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

282:                                              ; preds = %279, %261
  %283 = load i32, ptr %9, align 4, !tbaa !13
  %284 = icmp slt i32 %283, 0
  br i1 %284, label %285, label %294

285:                                              ; preds = %282
  %286 = load i32, ptr %9, align 4, !tbaa !13
  %287 = icmp sge i32 %286, -2147483647
  br i1 %287, label %288, label %291

288:                                              ; preds = %285
  %289 = load i32, ptr %9, align 4, !tbaa !13
  %290 = sub nsw i32 0, %289
  br label %292

291:                                              ; preds = %285
  br label %292

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

294:                                              ; preds = %292, %282
  %295 = load ptr, ptr %5, align 8, !tbaa !5
  %296 = getelementptr inbounds i8, ptr %295, i32 1
  store ptr %296, ptr %5, align 8, !tbaa !5
  %297 = load i8, ptr %296, align 1, !tbaa !9
  %298 = sext i8 %297 to i32
  store i32 %298, ptr %7, align 4, !tbaa !13
  br label %321

299:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #4
  store i32 0, ptr %39, align 4, !tbaa !13
  br label %300

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

303:                                              ; preds = %300
  %304 = load i32, ptr %7, align 4, !tbaa !13
  %305 = icmp sle i32 %304, 57
  br label %306

306:                                              ; preds = %303, %300
  %307 = phi i1 [ false, %300 ], [ %305, %303 ]
  br i1 %307, label %308, label %318

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

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

321:                                              ; preds = %318, %294
  %322 = load i32, ptr %7, align 4, !tbaa !13
  %323 = icmp eq i32 %322, 108
  br i1 %323, label %324, label %327

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

327:                                              ; preds = %321
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %328

328:                                              ; preds = %327, %324
  br label %329

329:                                              ; preds = %328, %250, %199, %166, %153, %152, %151, %150, %149, %148, %147, %146
  br label %330

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

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

339:                                              ; preds = %333, %330
  %340 = phi i1 [ false, %330 ], [ %338, %333 ]
  br i1 %340, label %144, label %341, !llvm.loop !18

341:                                              ; preds = %339
  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 %342

342:                                              ; preds = %362, %341
  %343 = load i32, ptr %11, align 4, !tbaa !13
  %344 = icmp slt i32 %343, 23
  br i1 %344, label %345, label %365

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

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

361:                                              ; preds = %345
  br label %362

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

365:                                              ; preds = %354, %342
  %366 = load i8, ptr %21, align 1, !tbaa !9
  %367 = zext i8 %366 to i32
  switch i32 %367, label %1895 [
    i32 13, label %368
    i32 15, label %369
    i32 0, label %369
    i32 16, label %370
    i32 1, label %760
    i32 2, label %760
    i32 3, label %760
    i32 4, label %1221
    i32 7, label %1245
    i32 8, label %1248
    i32 5, label %1426
    i32 6, label %1426
    i32 9, label %1606
    i32 10, label %1606
    i32 14, label %1606
    i32 11, label %1789
    i32 12, label %1832
  ]

368:                                              ; preds = %365
  store i8 2, ptr %18, align 1, !tbaa !9
  br label %369

369:                                              ; preds = %368, %365, %365
  store i8 0, ptr %20, align 1, !tbaa !9
  br label %370

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

377:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #4
  %378 = load i8, ptr %22, align 1, !tbaa !9
  %379 = icmp ne i8 %378, 0
  br i1 %379, label %380, label %383

380:                                              ; preds = %377
  %381 = load ptr, ptr %36, align 8, !tbaa !5
  %382 = call i64 @getIntArg(ptr noundef %381)
  store i64 %382, ptr %40, align 8, !tbaa !24
  br label %444

383:                                              ; preds = %377
  %384 = load i8, ptr %18, align 1, !tbaa !9
  %385 = icmp ne i8 %384, 0
  br i1 %385, label %386, label %425

386:                                              ; preds = %383
  %387 = load i8, ptr %18, align 1, !tbaa !9
  %388 = zext i8 %387 to i32
  %389 = icmp eq i32 %388, 2
  br i1 %389, label %390, label %407

390:                                              ; preds = %386
  %391 = load ptr, ptr %6, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.__va_list_tag, ptr %391, i32 0, i32 0
  %393 = load i32, ptr %392, align 8
  %394 = icmp ule i32 %393, 40
  br i1 %394, label %395, label %400

395:                                              ; preds = %390
  %396 = getelementptr inbounds %struct.__va_list_tag, ptr %391, i32 0, i32 3
  %397 = load ptr, ptr %396, align 8
  %398 = getelementptr i8, ptr %397, i32 %393
  %399 = add i32 %393, 8
  store i32 %399, ptr %392, align 8
  br label %404

400:                                              ; preds = %390
  %401 = getelementptr inbounds %struct.__va_list_tag, ptr %391, i32 0, i32 2
  %402 = load ptr, ptr %401, align 8
  %403 = getelementptr i8, ptr %402, i32 8
  store ptr %403, ptr %401, align 8
  br label %404

404:                                              ; preds = %400, %395
  %405 = phi ptr [ %398, %395 ], [ %402, %400 ]
  %406 = load i64, ptr %405, align 8, !tbaa !24
  store i64 %406, ptr %40, align 8, !tbaa !24
  br label %424

407:                                              ; preds = %386
  %408 = load ptr, ptr %6, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.__va_list_tag, ptr %408, i32 0, i32 0
  %410 = load i32, ptr %409, align 8
  %411 = icmp ule i32 %410, 40
  br i1 %411, label %412, label %417

412:                                              ; preds = %407
  %413 = getelementptr inbounds %struct.__va_list_tag, ptr %408, i32 0, i32 3
  %414 = load ptr, ptr %413, align 8
  %415 = getelementptr i8, ptr %414, i32 %410
  %416 = add i32 %410, 8
  store i32 %416, ptr %409, align 8
  br label %421

417:                                              ; preds = %407
  %418 = getelementptr inbounds %struct.__va_list_tag, ptr %408, i32 0, i32 2
  %419 = load ptr, ptr %418, align 8
  %420 = getelementptr i8, ptr %419, i32 8
  store ptr %420, ptr %418, align 8
  br label %421

421:                                              ; preds = %417, %412
  %422 = phi ptr [ %415, %412 ], [ %419, %417 ]
  %423 = load i64, ptr %422, align 8, !tbaa !26
  store i64 %423, ptr %40, align 8, !tbaa !24
  br label %424

424:                                              ; preds = %421, %404
  br label %443

425:                                              ; preds = %383
  %426 = load ptr, ptr %6, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.__va_list_tag, ptr %426, i32 0, i32 0
  %428 = load i32, ptr %427, align 8
  %429 = icmp ule i32 %428, 40
  br i1 %429, label %430, label %435

430:                                              ; preds = %425
  %431 = getelementptr inbounds %struct.__va_list_tag, ptr %426, i32 0, i32 3
  %432 = load ptr, ptr %431, align 8
  %433 = getelementptr i8, ptr %432, i32 %428
  %434 = add i32 %428, 8
  store i32 %434, ptr %427, align 8
  br label %439

435:                                              ; preds = %425
  %436 = getelementptr inbounds %struct.__va_list_tag, ptr %426, i32 0, i32 2
  %437 = load ptr, ptr %436, align 8
  %438 = getelementptr i8, ptr %437, i32 8
  store ptr %438, ptr %436, align 8
  br label %439

439:                                              ; preds = %435, %430
  %440 = phi ptr [ %433, %430 ], [ %437, %435 ]
  %441 = load i32, ptr %440, align 4, !tbaa !13
  %442 = sext i32 %441 to i64
  store i64 %442, ptr %40, align 8, !tbaa !24
  br label %443

443:                                              ; preds = %439, %424
  br label %444

444:                                              ; preds = %443, %380
  %445 = load i64, ptr %40, align 8, !tbaa !24
  %446 = icmp slt i64 %445, 0
  br i1 %446, label %447, label %455

447:                                              ; preds = %444
  %448 = load i64, ptr %40, align 8, !tbaa !24
  %449 = icmp eq i64 %448, -9223372036854775808
  br i1 %449, label %450, label %451

450:                                              ; preds = %447
  store i64 -9223372036854775808, ptr %24, align 8, !tbaa !24
  br label %454

451:                                              ; preds = %447
  %452 = load i64, ptr %40, align 8, !tbaa !24
  %453 = sub nsw i64 0, %452
  store i64 %453, ptr %24, align 8, !tbaa !24
  br label %454

454:                                              ; preds = %451, %450
  store i8 45, ptr %23, align 1, !tbaa !9
  br label %458

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

458:                                              ; preds = %455, %454
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  br label %527

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

462:                                              ; preds = %459
  %463 = load ptr, ptr %36, align 8, !tbaa !5
  %464 = call i64 @getIntArg(ptr noundef %463)
  store i64 %464, ptr %24, align 8, !tbaa !24
  br label %526

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

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

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

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

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

486:                                              ; preds = %482, %477
  %487 = phi ptr [ %480, %477 ], [ %484, %482 ]
  %488 = load i64, ptr %487, align 8, !tbaa !24
  store i64 %488, ptr %24, align 8, !tbaa !24
  br label %506

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

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

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

503:                                              ; preds = %499, %494
  %504 = phi ptr [ %497, %494 ], [ %501, %499 ]
  %505 = load i64, ptr %504, align 8, !tbaa !26
  store i64 %505, ptr %24, align 8, !tbaa !24
  br label %506

506:                                              ; preds = %503, %486
  br label %525

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

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

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

521:                                              ; preds = %517, %512
  %522 = phi ptr [ %515, %512 ], [ %519, %517 ]
  %523 = load i32, ptr %522, align 4, !tbaa !13
  %524 = zext i32 %523 to i64
  store i64 %524, ptr %24, align 8, !tbaa !24
  br label %525

525:                                              ; preds = %521, %506
  br label %526

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

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

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

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

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

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

551:                                              ; preds = %544, %535, %531
  %552 = load i32, ptr %9, align 4, !tbaa !13
  %553 = icmp slt i32 %552, 37
  br i1 %553, label %554, label %556

554:                                              ; preds = %551
  store i32 70, ptr %28, align 4, !tbaa !13
  %555 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %555, ptr %27, align 8, !tbaa !5
  br label %581

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

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

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

574:                                              ; preds = %568
  store i32 1, ptr %42, align 4
  br label %578

575:                                              ; preds = %568
  %576 = load i64, ptr %41, align 8, !tbaa !24
  %577 = trunc i64 %576 to i32
  store i32 %577, ptr %28, align 4, !tbaa !13
  store i32 0, ptr %42, align 4
  br label %578

578:                                              ; preds = %575, %574
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  %579 = load i32, ptr %42, align 4
  switch i32 %579, label %1935 [
    i32 0, label %580
  ]

580:                                              ; preds = %578
  br label %581

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

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

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

601:                                              ; preds = %596, %590
  store i32 0, ptr %43, align 4, !tbaa !13
  br label %602

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

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

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

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

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

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

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

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

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

680:                                              ; preds = %709, %667
  %681 = load i32, ptr %46, align 4, !tbaa !13
  %682 = icmp sgt i32 %681, 0
  br i1 %682, label %683, label %712

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

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

708:                                              ; preds = %699, %683
  br label %709

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

712:                                              ; preds = %680
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  br label %713

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

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

720:                                              ; preds = %716, %713
  %721 = load i8, ptr %15, align 1, !tbaa !9
  %722 = zext i8 %721 to i32
  %723 = icmp ne i32 %722, 0
  br i1 %723, label %724, label %749

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

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

736:                                              ; preds = %745, %730
  %737 = load ptr, ptr %48, align 8, !tbaa !5
  %738 = load i8, ptr %737, align 1, !tbaa !9
  store i8 %738, ptr %49, align 1, !tbaa !9
  %739 = sext i8 %738 to i32
  %740 = icmp ne i32 %739, 0
  br i1 %740, label %741, label %748

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

745:                                              ; preds = %741
  %746 = load ptr, ptr %48, align 8, !tbaa !5
  %747 = getelementptr inbounds i8, ptr %746, i32 1
  store ptr %747, ptr %48, align 8, !tbaa !5
  br label %736, !llvm.loop !34

748:                                              ; preds = %736
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  br label %749

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

760:                                              ; preds = %365, %365, %365
  %761 = load i8, ptr %22, align 1, !tbaa !9
  %762 = icmp ne i8 %761, 0
  br i1 %762, label %763, label %767

763:                                              ; preds = %760
  %764 = load ptr, ptr %36, align 8, !tbaa !5
  %765 = call double @getDoubleArg(ptr noundef %764)
  %766 = fpext double %765 to x86_fp80
  store x86_fp80 %766, ptr %25, align 16, !tbaa !35
  br label %785

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

772:                                              ; preds = %767
  %773 = getelementptr inbounds %struct.__va_list_tag, ptr %768, i32 0, i32 3
  %774 = load ptr, ptr %773, align 8
  %775 = getelementptr i8, ptr %774, i32 %770
  %776 = add i32 %770, 16
  store i32 %776, ptr %769, align 4
  br label %781

777:                                              ; preds = %767
  %778 = getelementptr inbounds %struct.__va_list_tag, ptr %768, i32 0, i32 2
  %779 = load ptr, ptr %778, align 8
  %780 = getelementptr i8, ptr %779, i32 8
  store ptr %780, ptr %778, align 8
  br label %781

781:                                              ; preds = %777, %772
  %782 = phi ptr [ %775, %772 ], [ %779, %777 ]
  %783 = load double, ptr %782, align 8, !tbaa !37
  %784 = fpext double %783 to x86_fp80
  store x86_fp80 %784, ptr %25, align 16, !tbaa !35
  br label %785

785:                                              ; preds = %781, %763
  %786 = load i32, ptr %9, align 4, !tbaa !13
  %787 = icmp slt i32 %786, 0
  br i1 %787, label %788, label %789

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

789:                                              ; preds = %788, %785
  %790 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %791 = fcmp olt x86_fp80 %790, 0xK00000000000000000000
  br i1 %791, label %792, label %795

792:                                              ; preds = %789
  %793 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %794 = fneg x86_fp80 %793
  store x86_fp80 %794, ptr %25, align 16, !tbaa !35
  store i8 45, ptr %23, align 1, !tbaa !9
  br label %797

795:                                              ; preds = %789
  %796 = load i8, ptr %14, align 1, !tbaa !9
  store i8 %796, ptr %23, align 1, !tbaa !9
  br label %797

797:                                              ; preds = %795, %792
  %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 sgt i32 %802, 0
  br i1 %803, label %804, label %807

804:                                              ; preds = %801
  %805 = load i32, ptr %9, align 4, !tbaa !13
  %806 = add nsw i32 %805, -1
  store i32 %806, ptr %9, align 4, !tbaa !13
  br label %807

807:                                              ; preds = %804, %801, %797
  %808 = load i32, ptr %9, align 4, !tbaa !13
  %809 = and i32 %808, 4095
  store i32 %809, ptr %11, align 4, !tbaa !13
  store double 5.000000e-01, ptr %33, align 8, !tbaa !37
  br label %810

810:                                              ; preds = %814, %807
  %811 = load i32, ptr %11, align 4, !tbaa !13
  %812 = icmp sgt i32 %811, 0
  br i1 %812, label %813, label %819

813:                                              ; preds = %810
  br label %814

814:                                              ; preds = %813
  %815 = load i32, ptr %11, align 4, !tbaa !13
  %816 = add nsw i32 %815, -1
  store i32 %816, ptr %11, align 4, !tbaa !13
  %817 = load double, ptr %33, align 8, !tbaa !37
  %818 = fmul double %817, 1.000000e-01
  store double %818, ptr %33, align 8, !tbaa !37
  br label %810, !llvm.loop !39

819:                                              ; preds = %810
  %820 = load i8, ptr %21, align 1, !tbaa !9
  %821 = zext i8 %820 to i32
  %822 = icmp eq i32 %821, 1
  br i1 %822, label %823, label %828

823:                                              ; preds = %819
  %824 = load double, ptr %33, align 8, !tbaa !37
  %825 = fpext double %824 to x86_fp80
  %826 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %827 = fadd x86_fp80 %826, %825
  store x86_fp80 %827, ptr %25, align 16, !tbaa !35
  br label %828

828:                                              ; preds = %823, %819
  store i32 0, ptr %30, align 4, !tbaa !13
  %829 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %830 = fptrunc x86_fp80 %829 to double
  %831 = call i32 @sqlite3IsNaN(double noundef %830)
  %832 = icmp ne i32 %831, 0
  br i1 %832, label %833, label %834

833:                                              ; preds = %828
  store ptr @.str.1, ptr %8, align 8, !tbaa !5
  store i32 3, ptr %10, align 4, !tbaa !13
  br label %1896

834:                                              ; preds = %828
  %835 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %836 = fcmp ogt x86_fp80 %835, 0xK00000000000000000000
  br i1 %836, label %837, label %929

837:                                              ; preds = %834
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #4
  store x86_fp80 0xK3FFF8000000000000000, ptr %50, align 16, !tbaa !35
  br label %838

838:                                              ; preds = %848, %837
  %839 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %840 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %841 = fmul x86_fp80 0xK414B924D692CA61BE800, %840
  %842 = fcmp oge x86_fp80 %839, %841
  br i1 %842, label %843, label %846

843:                                              ; preds = %838
  %844 = load i32, ptr %30, align 4, !tbaa !13
  %845 = icmp sle i32 %844, 350
  br label %846

846:                                              ; preds = %843, %838
  %847 = phi i1 [ false, %838 ], [ %845, %843 ]
  br i1 %847, label %848, label %853

848:                                              ; preds = %846
  %849 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %850 = fmul x86_fp80 %849, 0xK414B924D692CA61BE800
  store x86_fp80 %850, ptr %50, align 16, !tbaa !35
  %851 = load i32, ptr %30, align 4, !tbaa !13
  %852 = add nsw i32 %851, 100
  store i32 %852, ptr %30, align 4, !tbaa !13
  br label %838, !llvm.loop !40

853:                                              ; preds = %846
  br label %854

854:                                              ; preds = %864, %853
  %855 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %856 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %857 = fmul x86_fp80 0xK40209502F90000000000, %856
  %858 = fcmp oge x86_fp80 %855, %857
  br i1 %858, label %859, label %862

859:                                              ; preds = %854
  %860 = load i32, ptr %30, align 4, !tbaa !13
  %861 = icmp sle i32 %860, 350
  br label %862

862:                                              ; preds = %859, %854
  %863 = phi i1 [ false, %854 ], [ %861, %859 ]
  br i1 %863, label %864, label %869

864:                                              ; preds = %862
  %865 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %866 = fmul x86_fp80 %865, 0xK40209502F90000000000
  store x86_fp80 %866, ptr %50, align 16, !tbaa !35
  %867 = load i32, ptr %30, align 4, !tbaa !13
  %868 = add nsw i32 %867, 10
  store i32 %868, ptr %30, align 4, !tbaa !13
  br label %854, !llvm.loop !41

869:                                              ; preds = %862
  br label %870

870:                                              ; preds = %880, %869
  %871 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %872 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %873 = fmul x86_fp80 0xK4002A000000000000000, %872
  %874 = fcmp oge x86_fp80 %871, %873
  br i1 %874, label %875, label %878

875:                                              ; preds = %870
  %876 = load i32, ptr %30, align 4, !tbaa !13
  %877 = icmp sle i32 %876, 350
  br label %878

878:                                              ; preds = %875, %870
  %879 = phi i1 [ false, %870 ], [ %877, %875 ]
  br i1 %879, label %880, label %885

880:                                              ; preds = %878
  %881 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %882 = fmul x86_fp80 %881, 0xK4002A000000000000000
  store x86_fp80 %882, ptr %50, align 16, !tbaa !35
  %883 = load i32, ptr %30, align 4, !tbaa !13
  %884 = add nsw i32 %883, 1
  store i32 %884, ptr %30, align 4, !tbaa !13
  br label %870, !llvm.loop !42

885:                                              ; preds = %878
  %886 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %887 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %888 = fdiv x86_fp80 %887, %886
  store x86_fp80 %888, ptr %25, align 16, !tbaa !35
  br label %889

889:                                              ; preds = %892, %885
  %890 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %891 = fcmp olt x86_fp80 %890, 0xK3FE4ABCC77118461D000
  br i1 %891, label %892, label %897

892:                                              ; preds = %889
  %893 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %894 = fmul x86_fp80 %893, 0xK4019BEBC200000000000
  store x86_fp80 %894, ptr %25, align 16, !tbaa !35
  %895 = load i32, ptr %30, align 4, !tbaa !13
  %896 = sub nsw i32 %895, 8
  store i32 %896, ptr %30, align 4, !tbaa !13
  br label %889, !llvm.loop !43

897:                                              ; preds = %889
  br label %898

898:                                              ; preds = %901, %897
  %899 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %900 = fcmp olt x86_fp80 %899, 0xK3FFF8000000000000000
  br i1 %900, label %901, label %906

901:                                              ; preds = %898
  %902 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %903 = fmul x86_fp80 %902, 0xK4002A000000000000000
  store x86_fp80 %903, ptr %25, align 16, !tbaa !35
  %904 = load i32, ptr %30, align 4, !tbaa !13
  %905 = add nsw i32 %904, -1
  store i32 %905, ptr %30, align 4, !tbaa !13
  br label %898, !llvm.loop !44

906:                                              ; preds = %898
  %907 = load i32, ptr %30, align 4, !tbaa !13
  %908 = icmp sgt i32 %907, 350
  br i1 %908, label %909, label %925

909:                                              ; preds = %906
  %910 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %910, ptr %8, align 8, !tbaa !5
  %911 = load i8, ptr %23, align 1, !tbaa !9
  %912 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 %911, ptr %912, align 16, !tbaa !9
  %913 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  %914 = load i8, ptr %23, align 1, !tbaa !9
  %915 = sext i8 %914 to i32
  %916 = icmp ne i32 %915, 0
  %917 = zext i1 %916 to i32
  %918 = sext i32 %917 to i64
  %919 = getelementptr inbounds i8, ptr %913, i64 %918
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %919, ptr align 1 @.str.2, i64 4, i1 false)
  %920 = load i8, ptr %23, align 1, !tbaa !9
  %921 = sext i8 %920 to i32
  %922 = icmp ne i32 %921, 0
  %923 = zext i1 %922 to i32
  %924 = add nsw i32 3, %923
  store i32 %924, ptr %10, align 4, !tbaa !13
  store i32 17, ptr %42, align 4
  br label %926

925:                                              ; preds = %906
  store i32 0, ptr %42, align 4
  br label %926

926:                                              ; preds = %925, %909
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #4
  %927 = load i32, ptr %42, align 4
  switch i32 %927, label %1938 [
    i32 0, label %928
    i32 17, label %1896
  ]

928:                                              ; preds = %926
  br label %929

929:                                              ; preds = %928, %834
  %930 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %930, ptr %8, align 8, !tbaa !5
  %931 = load i8, ptr %21, align 1, !tbaa !9
  %932 = zext i8 %931 to i32
  %933 = icmp ne i32 %932, 1
  br i1 %933, label %934, label %947

934:                                              ; preds = %929
  %935 = load double, ptr %33, align 8, !tbaa !37
  %936 = fpext double %935 to x86_fp80
  %937 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %938 = fadd x86_fp80 %937, %936
  store x86_fp80 %938, ptr %25, align 16, !tbaa !35
  %939 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %940 = fcmp oge x86_fp80 %939, 0xK4002A000000000000000
  br i1 %940, label %941, label %946

941:                                              ; preds = %934
  %942 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %943 = fmul x86_fp80 %942, 0xK3FFBCCCCCCCCCCCCD000
  store x86_fp80 %943, ptr %25, align 16, !tbaa !35
  %944 = load i32, ptr %30, align 4, !tbaa !13
  %945 = add nsw i32 %944, 1
  store i32 %945, ptr %30, align 4, !tbaa !13
  br label %946

946:                                              ; preds = %941, %934
  br label %947

947:                                              ; preds = %946, %929
  %948 = load i8, ptr %21, align 1, !tbaa !9
  %949 = zext i8 %948 to i32
  %950 = icmp eq i32 %949, 3
  br i1 %950, label %951, label %969

951:                                              ; preds = %947
  %952 = load i8, ptr %15, align 1, !tbaa !9
  %953 = icmp ne i8 %952, 0
  %954 = xor i1 %953, true
  %955 = zext i1 %954 to i32
  %956 = trunc i32 %955 to i8
  store i8 %956, ptr %35, align 1, !tbaa !9
  %957 = load i32, ptr %30, align 4, !tbaa !13
  %958 = icmp slt i32 %957, -4
  br i1 %958, label %963, label %959

959:                                              ; preds = %951
  %960 = load i32, ptr %30, align 4, !tbaa !13
  %961 = load i32, ptr %9, align 4, !tbaa !13
  %962 = icmp sgt i32 %960, %961
  br i1 %962, label %963, label %964

963:                                              ; preds = %959, %951
  store i8 2, ptr %21, align 1, !tbaa !9
  br label %968

964:                                              ; preds = %959
  %965 = load i32, ptr %9, align 4, !tbaa !13
  %966 = load i32, ptr %30, align 4, !tbaa !13
  %967 = sub nsw i32 %965, %966
  store i32 %967, ptr %9, align 4, !tbaa !13
  store i8 1, ptr %21, align 1, !tbaa !9
  br label %968

968:                                              ; preds = %964, %963
  br label %971

969:                                              ; preds = %947
  %970 = load i8, ptr %16, align 1, !tbaa !9
  store i8 %970, ptr %35, align 1, !tbaa !9
  br label %971

971:                                              ; preds = %969, %968
  %972 = load i8, ptr %21, align 1, !tbaa !9
  %973 = zext i8 %972 to i32
  %974 = icmp eq i32 %973, 2
  br i1 %974, label %975, label %976

975:                                              ; preds = %971
  store i32 0, ptr %31, align 4, !tbaa !13
  br label %978

976:                                              ; preds = %971
  %977 = load i32, ptr %30, align 4, !tbaa !13
  store i32 %977, ptr %31, align 4, !tbaa !13
  br label %978

978:                                              ; preds = %976, %975
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #4
  %979 = load i32, ptr %31, align 4, !tbaa !13
  %980 = icmp sgt i32 %979, 0
  br i1 %980, label %981, label %983

981:                                              ; preds = %978
  %982 = load i32, ptr %31, align 4, !tbaa !13
  br label %984

983:                                              ; preds = %978
  br label %984

984:                                              ; preds = %983, %981
  %985 = phi i32 [ %982, %981 ], [ 0, %983 ]
  %986 = sext i32 %985 to i64
  %987 = load i32, ptr %9, align 4, !tbaa !13
  %988 = sext i32 %987 to i64
  %989 = add nsw i64 %986, %988
  %990 = load i32, ptr %12, align 4, !tbaa !13
  %991 = sext i32 %990 to i64
  %992 = add nsw i64 %989, %991
  %993 = add nsw i64 %992, 15
  store i64 %993, ptr %51, align 8, !tbaa !24
  %994 = load i64, ptr %51, align 8, !tbaa !24
  %995 = icmp sgt i64 %994, 70
  br i1 %995, label %996, label %1004

996:                                              ; preds = %984
  %997 = load ptr, ptr %4, align 8, !tbaa !5
  %998 = load i64, ptr %51, align 8, !tbaa !24
  %999 = call ptr @printfTempBuf(ptr noundef %997, i64 noundef %998)
  store ptr %999, ptr %29, align 8, !tbaa !5
  store ptr %999, ptr %8, align 8, !tbaa !5
  %1000 = load ptr, ptr %8, align 8, !tbaa !5
  %1001 = icmp eq ptr %1000, null
  br i1 %1001, label %1002, label %1003

1002:                                             ; preds = %996
  store i32 1, ptr %42, align 4
  br label %1005

1003:                                             ; preds = %996
  br label %1004

1004:                                             ; preds = %1003, %984
  store i32 0, ptr %42, align 4
  br label %1005

1005:                                             ; preds = %1004, %1002
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  %1006 = load i32, ptr %42, align 4
  switch i32 %1006, label %1935 [
    i32 0, label %1007
  ]

1007:                                             ; preds = %1005
  %1008 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1008, ptr %27, align 8, !tbaa !5
  %1009 = load i8, ptr %16, align 1, !tbaa !9
  %1010 = zext i8 %1009 to i32
  %1011 = mul nsw i32 %1010, 10
  %1012 = add nsw i32 16, %1011
  store i32 %1012, ptr %32, align 4, !tbaa !13
  %1013 = load i32, ptr %9, align 4, !tbaa !13
  %1014 = icmp sgt i32 %1013, 0
  %1015 = zext i1 %1014 to i64
  %1016 = select i1 %1014, i32 1, i32 0
  %1017 = load i8, ptr %15, align 1, !tbaa !9
  %1018 = zext i8 %1017 to i32
  %1019 = or i32 %1016, %1018
  %1020 = load i8, ptr %16, align 1, !tbaa !9
  %1021 = zext i8 %1020 to i32
  %1022 = or i32 %1019, %1021
  %1023 = trunc i32 %1022 to i8
  store i8 %1023, ptr %34, align 1, !tbaa !9
  %1024 = load i8, ptr %23, align 1, !tbaa !9
  %1025 = icmp ne i8 %1024, 0
  br i1 %1025, label %1026, label %1030

1026:                                             ; preds = %1007
  %1027 = load i8, ptr %23, align 1, !tbaa !9
  %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 %1027, ptr %1028, align 1, !tbaa !9
  br label %1030

1030:                                             ; preds = %1026, %1007
  %1031 = load i32, ptr %31, align 4, !tbaa !13
  %1032 = icmp slt i32 %1031, 0
  br i1 %1032, label %1033, label %1036

1033:                                             ; preds = %1030
  %1034 = load ptr, ptr %8, align 8, !tbaa !5
  %1035 = getelementptr inbounds i8, ptr %1034, i32 1
  store ptr %1035, ptr %8, align 8, !tbaa !5
  store i8 48, ptr %1034, align 1, !tbaa !9
  br label %1048

1036:                                             ; preds = %1030
  br label %1037

1037:                                             ; preds = %1044, %1036
  %1038 = load i32, ptr %31, align 4, !tbaa !13
  %1039 = icmp sge i32 %1038, 0
  br i1 %1039, label %1040, label %1047

1040:                                             ; preds = %1037
  %1041 = call signext i8 @et_getdigit(ptr noundef %25, ptr noundef %32)
  %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 %1041, ptr %1042, align 1, !tbaa !9
  br label %1044

1044:                                             ; preds = %1040
  %1045 = load i32, ptr %31, align 4, !tbaa !13
  %1046 = add nsw i32 %1045, -1
  store i32 %1046, ptr %31, align 4, !tbaa !13
  br label %1037, !llvm.loop !45

1047:                                             ; preds = %1037
  br label %1048

1048:                                             ; preds = %1047, %1033
  %1049 = load i8, ptr %34, align 1, !tbaa !9
  %1050 = icmp ne i8 %1049, 0
  br i1 %1050, label %1051, label %1054

1051:                                             ; preds = %1048
  %1052 = load ptr, ptr %8, align 8, !tbaa !5
  %1053 = getelementptr inbounds i8, ptr %1052, i32 1
  store ptr %1053, ptr %8, align 8, !tbaa !5
  store i8 46, ptr %1052, align 1, !tbaa !9
  br label %1054

1054:                                             ; preds = %1051, %1048
  %1055 = load i32, ptr %31, align 4, !tbaa !13
  %1056 = add nsw i32 %1055, 1
  store i32 %1056, ptr %31, align 4, !tbaa !13
  br label %1057

1057:                                             ; preds = %1063, %1054
  %1058 = load i32, ptr %31, align 4, !tbaa !13
  %1059 = icmp slt i32 %1058, 0
  br i1 %1059, label %1060, label %1068

1060:                                             ; preds = %1057
  %1061 = load ptr, ptr %8, align 8, !tbaa !5
  %1062 = getelementptr inbounds i8, ptr %1061, i32 1
  store ptr %1062, ptr %8, align 8, !tbaa !5
  store i8 48, ptr %1061, align 1, !tbaa !9
  br label %1063

1063:                                             ; preds = %1060
  %1064 = load i32, ptr %9, align 4, !tbaa !13
  %1065 = add nsw i32 %1064, -1
  store i32 %1065, ptr %9, align 4, !tbaa !13
  %1066 = load i32, ptr %31, align 4, !tbaa !13
  %1067 = add nsw i32 %1066, 1
  store i32 %1067, ptr %31, align 4, !tbaa !13
  br label %1057, !llvm.loop !46

1068:                                             ; preds = %1057
  br label %1069

1069:                                             ; preds = %1073, %1068
  %1070 = load i32, ptr %9, align 4, !tbaa !13
  %1071 = add nsw i32 %1070, -1
  store i32 %1071, ptr %9, align 4, !tbaa !13
  %1072 = icmp sgt i32 %1070, 0
  br i1 %1072, label %1073, label %1077

1073:                                             ; preds = %1069
  %1074 = call signext i8 @et_getdigit(ptr noundef %25, ptr noundef %32)
  %1075 = load ptr, ptr %8, align 8, !tbaa !5
  %1076 = getelementptr inbounds i8, ptr %1075, i32 1
  store ptr %1076, ptr %8, align 8, !tbaa !5
  store i8 %1074, ptr %1075, align 1, !tbaa !9
  br label %1069, !llvm.loop !47

1077:                                             ; preds = %1069
  %1078 = load i8, ptr %35, align 1, !tbaa !9
  %1079 = zext i8 %1078 to i32
  %1080 = icmp ne i32 %1079, 0
  br i1 %1080, label %1081, label %1112

1081:                                             ; preds = %1077
  %1082 = load i8, ptr %34, align 1, !tbaa !9
  %1083 = zext i8 %1082 to i32
  %1084 = icmp ne i32 %1083, 0
  br i1 %1084, label %1085, label %1112

1085:                                             ; preds = %1081
  br label %1086

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

1092:                                             ; preds = %1086
  %1093 = load ptr, ptr %8, align 8, !tbaa !5
  %1094 = getelementptr inbounds i8, ptr %1093, i32 -1
  store ptr %1094, ptr %8, align 8, !tbaa !5
  store i8 0, ptr %1094, align 1, !tbaa !9
  br label %1086, !llvm.loop !48

1095:                                             ; preds = %1086
  %1096 = load ptr, ptr %8, align 8, !tbaa !5
  %1097 = getelementptr inbounds i8, ptr %1096, i64 -1
  %1098 = load i8, ptr %1097, align 1, !tbaa !9
  %1099 = sext i8 %1098 to i32
  %1100 = icmp eq i32 %1099, 46
  br i1 %1100, label %1101, label %1111

1101:                                             ; preds = %1095
  %1102 = load i8, ptr %16, align 1, !tbaa !9
  %1103 = icmp ne i8 %1102, 0
  br i1 %1103, label %1104, label %1107

1104:                                             ; preds = %1101
  %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 48, ptr %1105, align 1, !tbaa !9
  br label %1110

1107:                                             ; preds = %1101
  %1108 = load ptr, ptr %8, align 8, !tbaa !5
  %1109 = getelementptr inbounds i8, ptr %1108, i32 -1
  store ptr %1109, ptr %8, align 8, !tbaa !5
  store i8 0, ptr %1109, align 1, !tbaa !9
  br label %1110

1110:                                             ; preds = %1107, %1104
  br label %1111

1111:                                             ; preds = %1110, %1095
  br label %1112

1112:                                             ; preds = %1111, %1081, %1077
  %1113 = load i8, ptr %21, align 1, !tbaa !9
  %1114 = zext i8 %1113 to i32
  %1115 = icmp eq i32 %1114, 2
  br i1 %1115, label %1116, label %1160

1116:                                             ; preds = %1112
  %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 = %1116
  %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 = %1116
  %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, %1112
  %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 !49

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 !50

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
  br label %1896

1221:                                             ; preds = %365
  %1222 = load i8, ptr %22, align 1, !tbaa !9
  %1223 = icmp ne i8 %1222, 0
  br i1 %1223, label %1244, label %1224

1224:                                             ; preds = %1221
  %1225 = load ptr, ptr %4, align 8, !tbaa !5
  %1226 = getelementptr inbounds %struct.sqlite3_str, ptr %1225, i32 0, i32 4
  %1227 = load i32, ptr %1226, align 8, !tbaa !51
  %1228 = load ptr, ptr %6, align 8, !tbaa !5
  %1229 = getelementptr inbounds %struct.__va_list_tag, ptr %1228, i32 0, i32 0
  %1230 = load i32, ptr %1229, align 8
  %1231 = icmp ule i32 %1230, 40
  br i1 %1231, label %1232, label %1237

1232:                                             ; preds = %1224
  %1233 = getelementptr inbounds %struct.__va_list_tag, ptr %1228, i32 0, i32 3
  %1234 = load ptr, ptr %1233, align 8
  %1235 = getelementptr i8, ptr %1234, i32 %1230
  %1236 = add i32 %1230, 8
  store i32 %1236, ptr %1229, align 8
  br label %1241

1237:                                             ; preds = %1224
  %1238 = getelementptr inbounds %struct.__va_list_tag, ptr %1228, i32 0, i32 2
  %1239 = load ptr, ptr %1238, align 8
  %1240 = getelementptr i8, ptr %1239, i32 8
  store ptr %1240, ptr %1238, align 8
  br label %1241

1241:                                             ; preds = %1237, %1232
  %1242 = phi ptr [ %1235, %1232 ], [ %1239, %1237 ]
  %1243 = load ptr, ptr %1242, align 8, !tbaa !5
  store i32 %1227, ptr %1243, align 4, !tbaa !13
  br label %1244

1244:                                             ; preds = %1241, %1221
  store i32 0, ptr %12, align 4, !tbaa !13
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1896

1245:                                             ; preds = %365
  %1246 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 37, ptr %1246, align 16, !tbaa !9
  %1247 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1247, ptr %8, align 8, !tbaa !5
  store i32 1, ptr %10, align 4, !tbaa !13
  br label %1896

1248:                                             ; preds = %365
  %1249 = load i8, ptr %22, align 1, !tbaa !9
  %1250 = icmp ne i8 %1249, 0
  br i1 %1250, label %1251, label %1292

1251:                                             ; preds = %1248
  %1252 = load ptr, ptr %36, align 8, !tbaa !5
  %1253 = call ptr @getTextArg(ptr noundef %1252)
  store ptr %1253, ptr %8, align 8, !tbaa !5
  store i32 1, ptr %10, align 4, !tbaa !13
  %1254 = load ptr, ptr %8, align 8, !tbaa !5
  %1255 = icmp ne ptr %1254, null
  br i1 %1255, label %1256, label %1289

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

1266:                                             ; preds = %1256
  br label %1267

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

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

1277:                                             ; preds = %1270, %1267
  %1278 = phi i1 [ false, %1267 ], [ %1276, %1270 ]
  br i1 %1278, label %1279, label %1287

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

1287:                                             ; preds = %1277
  br label %1288

1288:                                             ; preds = %1287, %1256
  br label %1291

1289:                                             ; preds = %1251
  %1290 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 0, ptr %1290, align 16, !tbaa !9
  br label %1291

1291:                                             ; preds = %1289, %1288
  br label %1397

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

1297:                                             ; preds = %1292
  %1298 = getelementptr inbounds %struct.__va_list_tag, ptr %1293, i32 0, i32 3
  %1299 = load ptr, ptr %1298, align 8
  %1300 = getelementptr i8, ptr %1299, i32 %1295
  %1301 = add i32 %1295, 8
  store i32 %1301, ptr %1294, align 8
  br label %1306

1302:                                             ; preds = %1292
  %1303 = getelementptr inbounds %struct.__va_list_tag, ptr %1293, i32 0, i32 2
  %1304 = load ptr, ptr %1303, align 8
  %1305 = getelementptr i8, ptr %1304, i32 8
  store ptr %1305, ptr %1303, align 8
  br label %1306

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

1311:                                             ; preds = %1306
  %1312 = load i32, ptr %54, align 4, !tbaa !13
  %1313 = and i32 %1312, 255
  %1314 = trunc i32 %1313 to i8
  %1315 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 %1314, ptr %1315, align 16, !tbaa !9
  store i32 1, ptr %10, align 4, !tbaa !13
  br label %1396

1316:                                             ; preds = %1306
  %1317 = load i32, ptr %54, align 4, !tbaa !13
  %1318 = icmp ult i32 %1317, 2048
  br i1 %1318, label %1319, label %1335

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

1335:                                             ; preds = %1316
  %1336 = load i32, ptr %54, align 4, !tbaa !13
  %1337 = icmp ult i32 %1336, 65536
  br i1 %1337, label %1338, label %1362

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

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

1394:                                             ; preds = %1362, %1338
  br label %1395

1395:                                             ; preds = %1394, %1319
  br label %1396

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

1397:                                             ; preds = %1396, %1291
  %1398 = load i32, ptr %9, align 4, !tbaa !13
  %1399 = icmp sgt i32 %1398, 1
  br i1 %1399, label %1400, label %1424

1400:                                             ; preds = %1397
  %1401 = load i32, ptr %9, align 4, !tbaa !13
  %1402 = sub nsw i32 %1401, 1
  %1403 = load i32, ptr %12, align 4, !tbaa !13
  %1404 = sub nsw i32 %1403, %1402
  store i32 %1404, ptr %12, align 4, !tbaa !13
  %1405 = load i32, ptr %12, align 4, !tbaa !13
  %1406 = icmp sgt i32 %1405, 1
  br i1 %1406, label %1407, label %1414

1407:                                             ; preds = %1400
  %1408 = load i8, ptr %13, align 1, !tbaa !9
  %1409 = icmp ne i8 %1408, 0
  br i1 %1409, label %1414, label %1410

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

1414:                                             ; preds = %1410, %1407, %1400
  br label %1415

1415:                                             ; preds = %1419, %1414
  %1416 = load i32, ptr %9, align 4, !tbaa !13
  %1417 = add nsw i32 %1416, -1
  store i32 %1417, ptr %9, align 4, !tbaa !13
  %1418 = icmp sgt i32 %1416, 1
  br i1 %1418, label %1419, label %1423

1419:                                             ; preds = %1415
  %1420 = load ptr, ptr %4, align 8, !tbaa !5
  %1421 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  %1422 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %1420, ptr noundef %1421, i32 noundef %1422)
  br label %1415, !llvm.loop !53

1423:                                             ; preds = %1415
  br label %1424

1424:                                             ; preds = %1423, %1397
  %1425 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1425, ptr %8, align 8, !tbaa !5
  store i8 1, ptr %16, align 1, !tbaa !9
  br label %1577

1426:                                             ; preds = %365, %365
  %1427 = load i8, ptr %22, align 1, !tbaa !9
  %1428 = icmp ne i8 %1427, 0
  br i1 %1428, label %1429, label %1432

1429:                                             ; preds = %1426
  %1430 = load ptr, ptr %36, align 8, !tbaa !5
  %1431 = call ptr @getTextArg(ptr noundef %1430)
  store ptr %1431, ptr %8, align 8, !tbaa !5
  store i8 5, ptr %21, align 1, !tbaa !9
  br label %1449

1432:                                             ; preds = %1426
  %1433 = load ptr, ptr %6, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.__va_list_tag, ptr %1433, i32 0, i32 0
  %1435 = load i32, ptr %1434, align 8
  %1436 = icmp ule i32 %1435, 40
  br i1 %1436, label %1437, label %1442

1437:                                             ; preds = %1432
  %1438 = getelementptr inbounds %struct.__va_list_tag, ptr %1433, i32 0, i32 3
  %1439 = load ptr, ptr %1438, align 8
  %1440 = getelementptr i8, ptr %1439, i32 %1435
  %1441 = add i32 %1435, 8
  store i32 %1441, ptr %1434, align 8
  br label %1446

1442:                                             ; preds = %1432
  %1443 = getelementptr inbounds %struct.__va_list_tag, ptr %1433, i32 0, i32 2
  %1444 = load ptr, ptr %1443, align 8
  %1445 = getelementptr i8, ptr %1444, i32 8
  store ptr %1445, ptr %1443, align 8
  br label %1446

1446:                                             ; preds = %1442, %1437
  %1447 = phi ptr [ %1440, %1437 ], [ %1444, %1442 ]
  %1448 = load ptr, ptr %1447, align 8, !tbaa !5
  store ptr %1448, ptr %8, align 8, !tbaa !5
  br label %1449

1449:                                             ; preds = %1446, %1429
  %1450 = load ptr, ptr %8, align 8, !tbaa !5
  %1451 = icmp eq ptr %1450, null
  br i1 %1451, label %1452, label %1453

1452:                                             ; preds = %1449
  store ptr @.str.3, ptr %8, align 8, !tbaa !5
  br label %1505

1453:                                             ; preds = %1449
  %1454 = load i8, ptr %21, align 1, !tbaa !9
  %1455 = zext i8 %1454 to i32
  %1456 = icmp eq i32 %1455, 6
  br i1 %1456, label %1457, label %1504

1457:                                             ; preds = %1453
  %1458 = load ptr, ptr %4, align 8, !tbaa !5
  %1459 = getelementptr inbounds %struct.sqlite3_str, ptr %1458, i32 0, i32 4
  %1460 = load i32, ptr %1459, align 8, !tbaa !51
  %1461 = icmp eq i32 %1460, 0
  br i1 %1461, label %1462, label %1502

1462:                                             ; preds = %1457
  %1463 = load ptr, ptr %4, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.sqlite3_str, ptr %1463, i32 0, i32 3
  %1465 = load i32, ptr %1464, align 4, !tbaa !54
  %1466 = icmp ne i32 %1465, 0
  br i1 %1466, label %1467, label %1502

1467:                                             ; preds = %1462
  %1468 = load i32, ptr %12, align 4, !tbaa !13
  %1469 = icmp eq i32 %1468, 0
  br i1 %1469, label %1470, label %1502

1470:                                             ; preds = %1467
  %1471 = load i32, ptr %9, align 4, !tbaa !13
  %1472 = icmp slt i32 %1471, 0
  br i1 %1472, label %1473, label %1502

1473:                                             ; preds = %1470
  %1474 = load ptr, ptr %4, align 8, !tbaa !5
  %1475 = getelementptr inbounds %struct.sqlite3_str, ptr %1474, i32 0, i32 5
  %1476 = load i8, ptr %1475, align 4, !tbaa !55
  %1477 = zext i8 %1476 to i32
  %1478 = icmp eq i32 %1477, 0
  br i1 %1478, label %1479, label %1502

1479:                                             ; preds = %1473
  %1480 = load ptr, ptr %8, align 8, !tbaa !5
  %1481 = load ptr, ptr %4, align 8, !tbaa !5
  %1482 = getelementptr inbounds %struct.sqlite3_str, ptr %1481, i32 0, i32 1
  store ptr %1480, ptr %1482, align 8, !tbaa !56
  %1483 = load ptr, ptr %4, align 8, !tbaa !5
  %1484 = getelementptr inbounds %struct.sqlite3_str, ptr %1483, i32 0, i32 0
  %1485 = load ptr, ptr %1484, align 8, !tbaa !57
  %1486 = load ptr, ptr %8, align 8, !tbaa !5
  %1487 = call i32 @sqlite3DbMallocSize(ptr noundef %1485, ptr noundef %1486)
  %1488 = load ptr, ptr %4, align 8, !tbaa !5
  %1489 = getelementptr inbounds %struct.sqlite3_str, ptr %1488, i32 0, i32 2
  store i32 %1487, ptr %1489, align 8, !tbaa !58
  %1490 = load ptr, ptr %8, align 8, !tbaa !5
  %1491 = call i64 @strlen(ptr noundef %1490) #5
  %1492 = trunc i64 %1491 to i32
  %1493 = and i32 2147483647, %1492
  %1494 = load ptr, ptr %4, align 8, !tbaa !5
  %1495 = getelementptr inbounds %struct.sqlite3_str, ptr %1494, i32 0, i32 4
  store i32 %1493, ptr %1495, align 8, !tbaa !51
  %1496 = load ptr, ptr %4, align 8, !tbaa !5
  %1497 = getelementptr inbounds %struct.sqlite3_str, ptr %1496, i32 0, i32 6
  %1498 = load i8, ptr %1497, align 1, !tbaa !10
  %1499 = zext i8 %1498 to i32
  %1500 = or i32 %1499, 4
  %1501 = trunc i32 %1500 to i8
  store i8 %1501, ptr %1497, align 1, !tbaa !10
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1896

1502:                                             ; preds = %1473, %1470, %1467, %1462, %1457
  %1503 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1503, ptr %29, align 8, !tbaa !5
  br label %1504

1504:                                             ; preds = %1502, %1453
  br label %1505

1505:                                             ; preds = %1504, %1452
  %1506 = load i32, ptr %9, align 4, !tbaa !13
  %1507 = icmp sge i32 %1506, 0
  br i1 %1507, label %1508, label %1571

1508:                                             ; preds = %1505
  %1509 = load i8, ptr %16, align 1, !tbaa !9
  %1510 = icmp ne i8 %1509, 0
  br i1 %1510, label %1511, label %1550

1511:                                             ; preds = %1508
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #4
  %1512 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1512, ptr %55, align 8, !tbaa !5
  br label %1513

1513:                                             ; preds = %1542, %1511
  %1514 = load i32, ptr %9, align 4, !tbaa !13
  %1515 = add nsw i32 %1514, -1
  store i32 %1515, ptr %9, align 4, !tbaa !13
  %1516 = icmp sgt i32 %1514, 0
  br i1 %1516, label %1517, label %1523

1517:                                             ; preds = %1513
  %1518 = load ptr, ptr %55, align 8, !tbaa !5
  %1519 = getelementptr inbounds i8, ptr %1518, i64 0
  %1520 = load i8, ptr %1519, align 1, !tbaa !9
  %1521 = zext i8 %1520 to i32
  %1522 = icmp ne i32 %1521, 0
  br label %1523

1523:                                             ; preds = %1517, %1513
  %1524 = phi i1 [ false, %1513 ], [ %1522, %1517 ]
  br i1 %1524, label %1525, label %1543

1525:                                             ; preds = %1523
  %1526 = load ptr, ptr %55, align 8, !tbaa !5
  %1527 = getelementptr inbounds i8, ptr %1526, i32 1
  store ptr %1527, ptr %55, align 8, !tbaa !5
  %1528 = load i8, ptr %1526, align 1, !tbaa !9
  %1529 = zext i8 %1528 to i32
  %1530 = icmp sge i32 %1529, 192
  br i1 %1530, label %1531, label %1542

1531:                                             ; preds = %1525
  br label %1532

1532:                                             ; preds = %1538, %1531
  %1533 = load ptr, ptr %55, align 8, !tbaa !5
  %1534 = load i8, ptr %1533, align 1, !tbaa !9
  %1535 = zext i8 %1534 to i32
  %1536 = and i32 %1535, 192
  %1537 = icmp eq i32 %1536, 128
  br i1 %1537, label %1538, label %1541

1538:                                             ; preds = %1532
  %1539 = load ptr, ptr %55, align 8, !tbaa !5
  %1540 = getelementptr inbounds i8, ptr %1539, i32 1
  store ptr %1540, ptr %55, align 8, !tbaa !5
  br label %1532, !llvm.loop !59

1541:                                             ; preds = %1532
  br label %1542

1542:                                             ; preds = %1541, %1525
  br label %1513, !llvm.loop !60

1543:                                             ; preds = %1523
  %1544 = load ptr, ptr %55, align 8, !tbaa !5
  %1545 = load ptr, ptr %8, align 8, !tbaa !5
  %1546 = ptrtoint ptr %1544 to i64
  %1547 = ptrtoint ptr %1545 to i64
  %1548 = sub i64 %1546, %1547
  %1549 = trunc i64 %1548 to i32
  store i32 %1549, ptr %10, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  br label %1570

1550:                                             ; preds = %1508
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1551

1551:                                             ; preds = %1566, %1550
  %1552 = load i32, ptr %10, align 4, !tbaa !13
  %1553 = load i32, ptr %9, align 4, !tbaa !13
  %1554 = icmp slt i32 %1552, %1553
  br i1 %1554, label %1555, label %1563

1555:                                             ; preds = %1551
  %1556 = load ptr, ptr %8, align 8, !tbaa !5
  %1557 = load i32, ptr %10, align 4, !tbaa !13
  %1558 = sext i32 %1557 to i64
  %1559 = getelementptr inbounds i8, ptr %1556, i64 %1558
  %1560 = load i8, ptr %1559, align 1, !tbaa !9
  %1561 = sext i8 %1560 to i32
  %1562 = icmp ne i32 %1561, 0
  br label %1563

1563:                                             ; preds = %1555, %1551
  %1564 = phi i1 [ false, %1551 ], [ %1562, %1555 ]
  br i1 %1564, label %1565, label %1569

1565:                                             ; preds = %1563
  br label %1566

1566:                                             ; preds = %1565
  %1567 = load i32, ptr %10, align 4, !tbaa !13
  %1568 = add nsw i32 %1567, 1
  store i32 %1568, ptr %10, align 4, !tbaa !13
  br label %1551, !llvm.loop !61

1569:                                             ; preds = %1563
  br label %1570

1570:                                             ; preds = %1569, %1543
  br label %1576

1571:                                             ; preds = %1505
  %1572 = load ptr, ptr %8, align 8, !tbaa !5
  %1573 = call i64 @strlen(ptr noundef %1572) #5
  %1574 = trunc i64 %1573 to i32
  %1575 = and i32 2147483647, %1574
  store i32 %1575, ptr %10, align 4, !tbaa !13
  br label %1576

1576:                                             ; preds = %1571, %1570
  br label %1577

1577:                                             ; preds = %1787, %1576, %1424
  %1578 = load i8, ptr %16, align 1, !tbaa !9
  %1579 = zext i8 %1578 to i32
  %1580 = icmp ne i32 %1579, 0
  br i1 %1580, label %1581, label %1605

1581:                                             ; preds = %1577
  %1582 = load i32, ptr %12, align 4, !tbaa !13
  %1583 = icmp sgt i32 %1582, 0
  br i1 %1583, label %1584, label %1605

1584:                                             ; preds = %1581
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  %1585 = load i32, ptr %10, align 4, !tbaa !13
  %1586 = sub nsw i32 %1585, 1
  store i32 %1586, ptr %56, align 4, !tbaa !13
  br label %1587

1587:                                             ; preds = %1603, %1584
  %1588 = load i32, ptr %56, align 4, !tbaa !13
  %1589 = icmp sge i32 %1588, 0
  br i1 %1589, label %1590, label %1604

1590:                                             ; preds = %1587
  %1591 = load ptr, ptr %8, align 8, !tbaa !5
  %1592 = load i32, ptr %56, align 4, !tbaa !13
  %1593 = add nsw i32 %1592, -1
  store i32 %1593, ptr %56, align 4, !tbaa !13
  %1594 = sext i32 %1592 to i64
  %1595 = getelementptr inbounds i8, ptr %1591, i64 %1594
  %1596 = load i8, ptr %1595, align 1, !tbaa !9
  %1597 = sext i8 %1596 to i32
  %1598 = and i32 %1597, 192
  %1599 = icmp eq i32 %1598, 128
  br i1 %1599, label %1600, label %1603

1600:                                             ; preds = %1590
  %1601 = load i32, ptr %12, align 4, !tbaa !13
  %1602 = add nsw i32 %1601, 1
  store i32 %1602, ptr %12, align 4, !tbaa !13
  br label %1603

1603:                                             ; preds = %1600, %1590
  br label %1587, !llvm.loop !62

1604:                                             ; preds = %1587
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  br label %1605

1605:                                             ; preds = %1604, %1581, %1577
  br label %1896

1606:                                             ; preds = %365, %365, %365
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #4
  %1607 = load i8, ptr %21, align 1, !tbaa !9
  %1608 = zext i8 %1607 to i32
  %1609 = icmp eq i32 %1608, 14
  %1610 = zext i1 %1609 to i64
  %1611 = select i1 %1609, i32 34, i32 39
  %1612 = trunc i32 %1611 to i8
  store i8 %1612, ptr %64, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #4
  %1613 = load i8, ptr %22, align 1, !tbaa !9
  %1614 = icmp ne i8 %1613, 0
  br i1 %1614, label %1615, label %1618

1615:                                             ; preds = %1606
  %1616 = load ptr, ptr %36, align 8, !tbaa !5
  %1617 = call ptr @getTextArg(ptr noundef %1616)
  store ptr %1617, ptr %65, align 8, !tbaa !5
  br label %1635

1618:                                             ; preds = %1606
  %1619 = load ptr, ptr %6, align 8, !tbaa !5
  %1620 = getelementptr inbounds %struct.__va_list_tag, ptr %1619, i32 0, i32 0
  %1621 = load i32, ptr %1620, align 8
  %1622 = icmp ule i32 %1621, 40
  br i1 %1622, label %1623, label %1628

1623:                                             ; preds = %1618
  %1624 = getelementptr inbounds %struct.__va_list_tag, ptr %1619, i32 0, i32 3
  %1625 = load ptr, ptr %1624, align 8
  %1626 = getelementptr i8, ptr %1625, i32 %1621
  %1627 = add i32 %1621, 8
  store i32 %1627, ptr %1620, align 8
  br label %1632

1628:                                             ; preds = %1618
  %1629 = getelementptr inbounds %struct.__va_list_tag, ptr %1619, i32 0, i32 2
  %1630 = load ptr, ptr %1629, align 8
  %1631 = getelementptr i8, ptr %1630, i32 8
  store ptr %1631, ptr %1629, align 8
  br label %1632

1632:                                             ; preds = %1628, %1623
  %1633 = phi ptr [ %1626, %1623 ], [ %1630, %1628 ]
  %1634 = load ptr, ptr %1633, align 8, !tbaa !5
  store ptr %1634, ptr %65, align 8, !tbaa !5
  br label %1635

1635:                                             ; preds = %1632, %1615
  %1636 = load ptr, ptr %65, align 8, !tbaa !5
  %1637 = icmp eq ptr %1636, null
  %1638 = zext i1 %1637 to i32
  store i32 %1638, ptr %61, align 4, !tbaa !13
  %1639 = load i32, ptr %61, align 4, !tbaa !13
  %1640 = icmp ne i32 %1639, 0
  br i1 %1640, label %1641, label %1647

1641:                                             ; preds = %1635
  %1642 = load i8, ptr %21, align 1, !tbaa !9
  %1643 = zext i8 %1642 to i32
  %1644 = icmp eq i32 %1643, 10
  %1645 = zext i1 %1644 to i64
  %1646 = select i1 %1644, ptr @.str.4, ptr @.str.5
  store ptr %1646, ptr %65, align 8, !tbaa !5
  br label %1647

1647:                                             ; preds = %1641, %1635
  %1648 = load i32, ptr %9, align 4, !tbaa !13
  store i32 %1648, ptr %59, align 4, !tbaa !13
  store i32 0, ptr %60, align 4, !tbaa !13
  store i32 0, ptr %57, align 4, !tbaa !13
  br label %1649

1649:                                             ; preds = %1696, %1647
  %1650 = load i32, ptr %59, align 4, !tbaa !13
  %1651 = icmp ne i32 %1650, 0
  br i1 %1651, label %1652, label %1660

1652:                                             ; preds = %1649
  %1653 = load ptr, ptr %65, align 8, !tbaa !5
  %1654 = load i32, ptr %57, align 4, !tbaa !13
  %1655 = sext i32 %1654 to i64
  %1656 = getelementptr inbounds i8, ptr %1653, i64 %1655
  %1657 = load i8, ptr %1656, align 1, !tbaa !9
  store i8 %1657, ptr %63, align 1, !tbaa !9
  %1658 = sext i8 %1657 to i32
  %1659 = icmp ne i32 %1658, 0
  br label %1660

1660:                                             ; preds = %1652, %1649
  %1661 = phi i1 [ false, %1649 ], [ %1659, %1652 ]
  br i1 %1661, label %1662, label %1701

1662:                                             ; preds = %1660
  %1663 = load i8, ptr %63, align 1, !tbaa !9
  %1664 = sext i8 %1663 to i32
  %1665 = load i8, ptr %64, align 1, !tbaa !9
  %1666 = sext i8 %1665 to i32
  %1667 = icmp eq i32 %1664, %1666
  br i1 %1667, label %1668, label %1671

1668:                                             ; preds = %1662
  %1669 = load i32, ptr %60, align 4, !tbaa !13
  %1670 = add nsw i32 %1669, 1
  store i32 %1670, ptr %60, align 4, !tbaa !13
  br label %1671

1671:                                             ; preds = %1668, %1662
  %1672 = load i8, ptr %16, align 1, !tbaa !9
  %1673 = zext i8 %1672 to i32
  %1674 = icmp ne i32 %1673, 0
  br i1 %1674, label %1675, label %1695

1675:                                             ; preds = %1671
  %1676 = load i8, ptr %63, align 1, !tbaa !9
  %1677 = sext i8 %1676 to i32
  %1678 = and i32 %1677, 192
  %1679 = icmp eq i32 %1678, 192
  br i1 %1679, label %1680, label %1695

1680:                                             ; preds = %1675
  br label %1681

1681:                                             ; preds = %1691, %1680
  %1682 = load ptr, ptr %65, align 8, !tbaa !5
  %1683 = load i32, ptr %57, align 4, !tbaa !13
  %1684 = add nsw i32 %1683, 1
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds i8, ptr %1682, i64 %1685
  %1687 = load i8, ptr %1686, align 1, !tbaa !9
  %1688 = sext i8 %1687 to i32
  %1689 = and i32 %1688, 192
  %1690 = icmp eq i32 %1689, 128
  br i1 %1690, label %1691, label %1694

1691:                                             ; preds = %1681
  %1692 = load i32, ptr %57, align 4, !tbaa !13
  %1693 = add nsw i32 %1692, 1
  store i32 %1693, ptr %57, align 4, !tbaa !13
  br label %1681, !llvm.loop !63

1694:                                             ; preds = %1681
  br label %1695

1695:                                             ; preds = %1694, %1675, %1671
  br label %1696

1696:                                             ; preds = %1695
  %1697 = load i32, ptr %57, align 4, !tbaa !13
  %1698 = add nsw i32 %1697, 1
  store i32 %1698, ptr %57, align 4, !tbaa !13
  %1699 = load i32, ptr %59, align 4, !tbaa !13
  %1700 = add nsw i32 %1699, -1
  store i32 %1700, ptr %59, align 4, !tbaa !13
  br label %1649, !llvm.loop !64

1701:                                             ; preds = %1660
  %1702 = load i32, ptr %61, align 4, !tbaa !13
  %1703 = icmp ne i32 %1702, 0
  br i1 %1703, label %1708, label %1704

1704:                                             ; preds = %1701
  %1705 = load i8, ptr %21, align 1, !tbaa !9
  %1706 = zext i8 %1705 to i32
  %1707 = icmp eq i32 %1706, 10
  br label %1708

1708:                                             ; preds = %1704, %1701
  %1709 = phi i1 [ false, %1701 ], [ %1707, %1704 ]
  %1710 = zext i1 %1709 to i32
  store i32 %1710, ptr %62, align 4, !tbaa !13
  %1711 = load i32, ptr %57, align 4, !tbaa !13
  %1712 = add nsw i32 %1711, 3
  %1713 = load i32, ptr %60, align 4, !tbaa !13
  %1714 = add nsw i32 %1713, %1712
  store i32 %1714, ptr %60, align 4, !tbaa !13
  %1715 = load i32, ptr %60, align 4, !tbaa !13
  %1716 = icmp sgt i32 %1715, 70
  br i1 %1716, label %1717, label %1726

1717:                                             ; preds = %1708
  %1718 = load ptr, ptr %4, align 8, !tbaa !5
  %1719 = load i32, ptr %60, align 4, !tbaa !13
  %1720 = sext i32 %1719 to i64
  %1721 = call ptr @printfTempBuf(ptr noundef %1718, i64 noundef %1720)
  store ptr %1721, ptr %29, align 8, !tbaa !5
  store ptr %1721, ptr %8, align 8, !tbaa !5
  %1722 = load ptr, ptr %8, align 8, !tbaa !5
  %1723 = icmp eq ptr %1722, null
  br i1 %1723, label %1724, label %1725

1724:                                             ; preds = %1717
  store i32 1, ptr %42, align 4
  br label %1787

1725:                                             ; preds = %1717
  br label %1728

1726:                                             ; preds = %1708
  %1727 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1727, ptr %8, align 8, !tbaa !5
  br label %1728

1728:                                             ; preds = %1726, %1725
  store i32 0, ptr %58, align 4, !tbaa !13
  %1729 = load i32, ptr %62, align 4, !tbaa !13
  %1730 = icmp ne i32 %1729, 0
  br i1 %1730, label %1731, label %1738

1731:                                             ; preds = %1728
  %1732 = load i8, ptr %64, align 1, !tbaa !9
  %1733 = load ptr, ptr %8, align 8, !tbaa !5
  %1734 = load i32, ptr %58, align 4, !tbaa !13
  %1735 = add nsw i32 %1734, 1
  store i32 %1735, ptr %58, align 4, !tbaa !13
  %1736 = sext i32 %1734 to i64
  %1737 = getelementptr inbounds i8, ptr %1733, i64 %1736
  store i8 %1732, ptr %1737, align 1, !tbaa !9
  br label %1738

1738:                                             ; preds = %1731, %1728
  %1739 = load i32, ptr %57, align 4, !tbaa !13
  store i32 %1739, ptr %59, align 4, !tbaa !13
  store i32 0, ptr %57, align 4, !tbaa !13
  br label %1740

1740:                                             ; preds = %1768, %1738
  %1741 = load i32, ptr %57, align 4, !tbaa !13
  %1742 = load i32, ptr %59, align 4, !tbaa !13
  %1743 = icmp slt i32 %1741, %1742
  br i1 %1743, label %1744, label %1771

1744:                                             ; preds = %1740
  %1745 = load ptr, ptr %65, align 8, !tbaa !5
  %1746 = load i32, ptr %57, align 4, !tbaa !13
  %1747 = sext i32 %1746 to i64
  %1748 = getelementptr inbounds i8, ptr %1745, i64 %1747
  %1749 = load i8, ptr %1748, align 1, !tbaa !9
  store i8 %1749, ptr %63, align 1, !tbaa !9
  %1750 = load ptr, ptr %8, align 8, !tbaa !5
  %1751 = load i32, ptr %58, align 4, !tbaa !13
  %1752 = add nsw i32 %1751, 1
  store i32 %1752, ptr %58, align 4, !tbaa !13
  %1753 = sext i32 %1751 to i64
  %1754 = getelementptr inbounds i8, ptr %1750, i64 %1753
  store i8 %1749, ptr %1754, align 1, !tbaa !9
  %1755 = load i8, ptr %63, align 1, !tbaa !9
  %1756 = sext i8 %1755 to i32
  %1757 = load i8, ptr %64, align 1, !tbaa !9
  %1758 = sext i8 %1757 to i32
  %1759 = icmp eq i32 %1756, %1758
  br i1 %1759, label %1760, label %1767

1760:                                             ; preds = %1744
  %1761 = load i8, ptr %63, align 1, !tbaa !9
  %1762 = load ptr, ptr %8, align 8, !tbaa !5
  %1763 = load i32, ptr %58, align 4, !tbaa !13
  %1764 = add nsw i32 %1763, 1
  store i32 %1764, ptr %58, align 4, !tbaa !13
  %1765 = sext i32 %1763 to i64
  %1766 = getelementptr inbounds i8, ptr %1762, i64 %1765
  store i8 %1761, ptr %1766, align 1, !tbaa !9
  br label %1767

1767:                                             ; preds = %1760, %1744
  br label %1768

1768:                                             ; preds = %1767
  %1769 = load i32, ptr %57, align 4, !tbaa !13
  %1770 = add nsw i32 %1769, 1
  store i32 %1770, ptr %57, align 4, !tbaa !13
  br label %1740, !llvm.loop !65

1771:                                             ; preds = %1740
  %1772 = load i32, ptr %62, align 4, !tbaa !13
  %1773 = icmp ne i32 %1772, 0
  br i1 %1773, label %1774, label %1781

1774:                                             ; preds = %1771
  %1775 = load i8, ptr %64, align 1, !tbaa !9
  %1776 = load ptr, ptr %8, align 8, !tbaa !5
  %1777 = load i32, ptr %58, align 4, !tbaa !13
  %1778 = add nsw i32 %1777, 1
  store i32 %1778, ptr %58, align 4, !tbaa !13
  %1779 = sext i32 %1777 to i64
  %1780 = getelementptr inbounds i8, ptr %1776, i64 %1779
  store i8 %1775, ptr %1780, align 1, !tbaa !9
  br label %1781

1781:                                             ; preds = %1774, %1771
  %1782 = load ptr, ptr %8, align 8, !tbaa !5
  %1783 = load i32, ptr %58, align 4, !tbaa !13
  %1784 = sext i32 %1783 to i64
  %1785 = getelementptr inbounds i8, ptr %1782, i64 %1784
  store i8 0, ptr %1785, align 1, !tbaa !9
  %1786 = load i32, ptr %58, align 4, !tbaa !13
  store i32 %1786, ptr %10, align 4, !tbaa !13
  store i32 60, ptr %42, align 4
  br label %1787

1787:                                             ; preds = %1781, %1724
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  %1788 = load i32, ptr %42, align 4
  switch i32 %1788, label %1935 [
    i32 60, label %1577
  ]

1789:                                             ; preds = %365
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #4
  %1790 = load ptr, ptr %4, align 8, !tbaa !5
  %1791 = getelementptr inbounds %struct.sqlite3_str, ptr %1790, i32 0, i32 6
  %1792 = load i8, ptr %1791, align 1, !tbaa !10
  %1793 = zext i8 %1792 to i32
  %1794 = and i32 %1793, 1
  %1795 = icmp eq i32 %1794, 0
  br i1 %1795, label %1796, label %1797

1796:                                             ; preds = %1789
  store i32 1, ptr %42, align 4
  br label %1830

1797:                                             ; preds = %1789
  %1798 = load ptr, ptr %6, align 8, !tbaa !5
  %1799 = getelementptr inbounds %struct.__va_list_tag, ptr %1798, i32 0, i32 0
  %1800 = load i32, ptr %1799, align 8
  %1801 = icmp ule i32 %1800, 40
  br i1 %1801, label %1802, label %1807

1802:                                             ; preds = %1797
  %1803 = getelementptr inbounds %struct.__va_list_tag, ptr %1798, i32 0, i32 3
  %1804 = load ptr, ptr %1803, align 8
  %1805 = getelementptr i8, ptr %1804, i32 %1800
  %1806 = add i32 %1800, 8
  store i32 %1806, ptr %1799, align 8
  br label %1811

1807:                                             ; preds = %1797
  %1808 = getelementptr inbounds %struct.__va_list_tag, ptr %1798, i32 0, i32 2
  %1809 = load ptr, ptr %1808, align 8
  %1810 = getelementptr i8, ptr %1809, i32 8
  store ptr %1810, ptr %1808, align 8
  br label %1811

1811:                                             ; preds = %1807, %1802
  %1812 = phi ptr [ %1805, %1802 ], [ %1809, %1807 ]
  %1813 = load ptr, ptr %1812, align 8, !tbaa !5
  store ptr %1813, ptr %66, align 8, !tbaa !5
  %1814 = load ptr, ptr %66, align 8, !tbaa !5
  %1815 = icmp ne ptr %1814, null
  br i1 %1815, label %1816, label %1829

1816:                                             ; preds = %1811
  %1817 = load ptr, ptr %66, align 8, !tbaa !5
  %1818 = getelementptr inbounds %struct.Token, ptr %1817, i32 0, i32 1
  %1819 = load i32, ptr %1818, align 8, !tbaa !66
  %1820 = icmp ne i32 %1819, 0
  br i1 %1820, label %1821, label %1829

1821:                                             ; preds = %1816
  %1822 = load ptr, ptr %4, align 8, !tbaa !5
  %1823 = load ptr, ptr %66, align 8, !tbaa !5
  %1824 = getelementptr inbounds %struct.Token, ptr %1823, i32 0, i32 0
  %1825 = load ptr, ptr %1824, align 8, !tbaa !68
  %1826 = load ptr, ptr %66, align 8, !tbaa !5
  %1827 = getelementptr inbounds %struct.Token, ptr %1826, i32 0, i32 1
  %1828 = load i32, ptr %1827, align 8, !tbaa !66
  call void @sqlite3_str_append(ptr noundef %1822, ptr noundef %1825, i32 noundef %1828)
  br label %1829

1829:                                             ; preds = %1821, %1816, %1811
  store i32 0, ptr %12, align 4, !tbaa !13
  store i32 0, ptr %10, align 4, !tbaa !13
  store i32 17, ptr %42, align 4
  br label %1830

1830:                                             ; preds = %1829, %1796
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  %1831 = load i32, ptr %42, align 4
  switch i32 %1831, label %1935 [
    i32 17, label %1896
  ]

1832:                                             ; preds = %365
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #4
  %1833 = load ptr, ptr %4, align 8, !tbaa !5
  %1834 = getelementptr inbounds %struct.sqlite3_str, ptr %1833, i32 0, i32 6
  %1835 = load i8, ptr %1834, align 1, !tbaa !10
  %1836 = zext i8 %1835 to i32
  %1837 = and i32 %1836, 1
  %1838 = icmp eq i32 %1837, 0
  br i1 %1838, label %1839, label %1840

1839:                                             ; preds = %1832
  store i32 1, ptr %42, align 4
  br label %1893

1840:                                             ; preds = %1832
  %1841 = load ptr, ptr %6, align 8, !tbaa !5
  %1842 = getelementptr inbounds %struct.__va_list_tag, ptr %1841, i32 0, i32 0
  %1843 = load i32, ptr %1842, align 8
  %1844 = icmp ule i32 %1843, 40
  br i1 %1844, label %1845, label %1850

1845:                                             ; preds = %1840
  %1846 = getelementptr inbounds %struct.__va_list_tag, ptr %1841, i32 0, i32 3
  %1847 = load ptr, ptr %1846, align 8
  %1848 = getelementptr i8, ptr %1847, i32 %1843
  %1849 = add i32 %1843, 8
  store i32 %1849, ptr %1842, align 8
  br label %1854

1850:                                             ; preds = %1840
  %1851 = getelementptr inbounds %struct.__va_list_tag, ptr %1841, i32 0, i32 2
  %1852 = load ptr, ptr %1851, align 8
  %1853 = getelementptr i8, ptr %1852, i32 8
  store ptr %1853, ptr %1851, align 8
  br label %1854

1854:                                             ; preds = %1850, %1845
  %1855 = phi ptr [ %1848, %1845 ], [ %1852, %1850 ]
  %1856 = load ptr, ptr %1855, align 8, !tbaa !5
  store ptr %1856, ptr %67, align 8, !tbaa !5
  %1857 = load ptr, ptr %6, align 8, !tbaa !5
  %1858 = getelementptr inbounds %struct.__va_list_tag, ptr %1857, i32 0, i32 0
  %1859 = load i32, ptr %1858, align 8
  %1860 = icmp ule i32 %1859, 40
  br i1 %1860, label %1861, label %1866

1861:                                             ; preds = %1854
  %1862 = getelementptr inbounds %struct.__va_list_tag, ptr %1857, i32 0, i32 3
  %1863 = load ptr, ptr %1862, align 8
  %1864 = getelementptr i8, ptr %1863, i32 %1859
  %1865 = add i32 %1859, 8
  store i32 %1865, ptr %1858, align 8
  br label %1870

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

1870:                                             ; preds = %1866, %1861
  %1871 = phi ptr [ %1864, %1861 ], [ %1868, %1866 ]
  %1872 = load i32, ptr %1871, align 4, !tbaa !13
  store i32 %1872, ptr %68, align 4, !tbaa !13
  %1873 = load ptr, ptr %67, align 8, !tbaa !5
  %1874 = getelementptr inbounds %struct.SrcList, ptr %1873, i32 0, i32 2
  %1875 = load i32, ptr %68, align 4, !tbaa !13
  %1876 = sext i32 %1875 to i64
  %1877 = getelementptr inbounds [1 x %struct.SrcList_item], ptr %1874, i64 0, i64 %1876
  store ptr %1877, ptr %69, align 8, !tbaa !5
  %1878 = load ptr, ptr %69, align 8, !tbaa !5
  %1879 = getelementptr inbounds %struct.SrcList_item, ptr %1878, i32 0, i32 1
  %1880 = load ptr, ptr %1879, align 8, !tbaa !69
  %1881 = icmp ne ptr %1880, null
  br i1 %1881, label %1882, label %1888

1882:                                             ; preds = %1870
  %1883 = load ptr, ptr %4, align 8, !tbaa !5
  %1884 = load ptr, ptr %69, align 8, !tbaa !5
  %1885 = getelementptr inbounds %struct.SrcList_item, ptr %1884, i32 0, i32 1
  %1886 = load ptr, ptr %1885, align 8, !tbaa !69
  call void @sqlite3_str_appendall(ptr noundef %1883, ptr noundef %1886)
  %1887 = load ptr, ptr %4, align 8, !tbaa !5
  call void @sqlite3_str_append(ptr noundef %1887, ptr noundef @.str.6, i32 noundef 1)
  br label %1888

1888:                                             ; preds = %1882, %1870
  %1889 = load ptr, ptr %4, align 8, !tbaa !5
  %1890 = load ptr, ptr %69, align 8, !tbaa !5
  %1891 = getelementptr inbounds %struct.SrcList_item, ptr %1890, i32 0, i32 2
  %1892 = load ptr, ptr %1891, align 8, !tbaa !72
  call void @sqlite3_str_appendall(ptr noundef %1889, ptr noundef %1892)
  store i32 0, ptr %12, align 4, !tbaa !13
  store i32 0, ptr %10, align 4, !tbaa !13
  store i32 17, ptr %42, align 4
  br label %1893

1893:                                             ; preds = %1888, %1839
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  %1894 = load i32, ptr %42, align 4
  switch i32 %1894, label %1935 [
    i32 17, label %1896
  ]

1895:                                             ; preds = %365
  store i32 1, ptr %42, align 4
  br label %1935

1896:                                             ; preds = %1893, %1830, %1605, %1479, %1245, %1244, %1220, %926, %833, %749
  %1897 = load i32, ptr %10, align 4, !tbaa !13
  %1898 = load i32, ptr %12, align 4, !tbaa !13
  %1899 = sub nsw i32 %1898, %1897
  store i32 %1899, ptr %12, align 4, !tbaa !13
  %1900 = load i32, ptr %12, align 4, !tbaa !13
  %1901 = icmp sgt i32 %1900, 0
  br i1 %1901, label %1902, label %1918

1902:                                             ; preds = %1896
  %1903 = load i8, ptr %13, align 1, !tbaa !9
  %1904 = icmp ne i8 %1903, 0
  br i1 %1904, label %1908, label %1905

1905:                                             ; preds = %1902
  %1906 = load ptr, ptr %4, align 8, !tbaa !5
  %1907 = load i32, ptr %12, align 4, !tbaa !13
  call void @sqlite3_str_appendchar(ptr noundef %1906, i32 noundef %1907, i8 noundef signext 32)
  br label %1908

1908:                                             ; preds = %1905, %1902
  %1909 = load ptr, ptr %4, align 8, !tbaa !5
  %1910 = load ptr, ptr %8, align 8, !tbaa !5
  %1911 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %1909, ptr noundef %1910, i32 noundef %1911)
  %1912 = load i8, ptr %13, align 1, !tbaa !9
  %1913 = icmp ne i8 %1912, 0
  br i1 %1913, label %1914, label %1917

1914:                                             ; preds = %1908
  %1915 = load ptr, ptr %4, align 8, !tbaa !5
  %1916 = load i32, ptr %12, align 4, !tbaa !13
  call void @sqlite3_str_appendchar(ptr noundef %1915, i32 noundef %1916, i8 noundef signext 32)
  br label %1917

1917:                                             ; preds = %1914, %1908
  br label %1922

1918:                                             ; preds = %1896
  %1919 = load ptr, ptr %4, align 8, !tbaa !5
  %1920 = load ptr, ptr %8, align 8, !tbaa !5
  %1921 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %1919, ptr noundef %1920, i32 noundef %1921)
  br label %1922

1922:                                             ; preds = %1918, %1917
  %1923 = load ptr, ptr %29, align 8, !tbaa !5
  %1924 = icmp ne ptr %1923, null
  br i1 %1924, label %1925, label %1930

1925:                                             ; preds = %1922
  %1926 = load ptr, ptr %4, align 8, !tbaa !5
  %1927 = getelementptr inbounds %struct.sqlite3_str, ptr %1926, i32 0, i32 0
  %1928 = load ptr, ptr %1927, align 8, !tbaa !57
  %1929 = load ptr, ptr %29, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %1928, ptr noundef %1929)
  store ptr null, ptr %29, align 8, !tbaa !5
  br label %1930

1930:                                             ; preds = %1925, %1922
  br label %1931

1931:                                             ; preds = %1930
  %1932 = load ptr, ptr %5, align 8, !tbaa !5
  %1933 = getelementptr inbounds i8, ptr %1932, i32 1
  store ptr %1933, ptr %5, align 8, !tbaa !5
  br label %95, !llvm.loop !73

1934:                                             ; preds = %141, %133, %95
  store i32 0, ptr %42, align 4
  br label %1935

1935:                                             ; preds = %1934, %1895, %1893, %1830, %1787, %1005, %578
  call void @llvm.lifetime.end.p0(i64 70, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 16, 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
  %1936 = load i32, ptr %42, align 4
  switch i32 %1936, label %1938 [
    i32 0, label %1937
    i32 1, label %1937
  ]

1937:                                             ; preds = %1935, %1935
  ret void

1938:                                             ; preds = %1935, %926
  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 i32 @sqlite3IsNaN(double 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 signext i8 @et_getdigit(ptr noundef, ptr noundef) #1

; 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 @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

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 = !{!"long double", !7, i64 0}
!37 = !{!38, !38, i64 0}
!38 = !{!"double", !7, i64 0}
!39 = distinct !{!39, !15}
!40 = distinct !{!40, !15}
!41 = distinct !{!41, !15}
!42 = distinct !{!42, !15}
!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 = distinct !{!49, !15}
!50 = distinct !{!50, !15}
!51 = !{!11, !12, i64 24}
!52 = distinct !{!52, !15}
!53 = distinct !{!53, !15}
!54 = !{!11, !12, i64 20}
!55 = !{!11, !7, i64 28}
!56 = !{!11, !6, i64 8}
!57 = !{!11, !6, i64 0}
!58 = !{!11, !12, i64 16}
!59 = distinct !{!59, !15}
!60 = distinct !{!60, !15}
!61 = distinct !{!61, !15}
!62 = distinct !{!62, !15}
!63 = distinct !{!63, !15}
!64 = distinct !{!64, !15}
!65 = distinct !{!65, !15}
!66 = !{!67, !12, i64 8}
!67 = !{!"Token", !6, i64 0, !12, i64 8}
!68 = !{!67, !6, i64 0}
!69 = !{!70, !6, i64 8}
!70 = !{!"SrcList_item", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !12, i64 48, !12, i64 52, !12, i64 56, !71, i64 60, !12, i64 64, !6, i64 72, !6, i64 80, !25, i64 88, !7, i64 96, !6, i64 104}
!71 = !{!"", !7, i64 0, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1}
!72 = !{!70, !6, i64 16}
!73 = distinct !{!73, !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.SrcList_item = type { ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, %struct.anon, i32, ptr, ptr, i64, %union.anon.0, ptr }
%struct.anon = type { i8, i8, [2 x i8] }
%union.anon.0 = type { ptr }

@.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 [4 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 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
declare hidden void @sqlite3DbFree(ptr noundef, ptr noundef) local_unnamed_addr #1

; 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 x86_fp80, align 16
  %5 = alloca i32, align 4
  %6 = alloca [70 x i8], align 16
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 70, ptr nonnull %6) #5
  %7 = getelementptr inbounds i8, ptr %0, i64 29
  %8 = load i8, ptr %7, align 1, !tbaa !5
  %9 = and i8 %8, 2
  %.not = icmp eq i8 %9, 0
  br i1 %.not, label %26, label %10

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

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

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

23:                                               ; preds = %19, %13
  %24 = phi ptr [ %17, %13 ], [ %21, %19 ]
  %25 = load ptr, ptr %24, align 8, !tbaa !11
  br label %26

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

85:                                               ; preds = %1013, %26
  %.0493 = phi ptr [ null, %26 ], [ %.29, %1013 ]
  %.0 = phi ptr [ %1, %26 ], [ %1014, %1013 ]
  %86 = load i8, ptr %.0, align 1, !tbaa !12
  switch i8 %86, label %.preheader883 [
    i8 0, label %.thread803
    i8 37, label %95
  ]

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

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

95:                                               ; preds = %85, %.critedge
  %.1494 = phi ptr [ %.0, %.critedge ], [ %.0493, %85 ]
  %.2 = phi ptr [ %87, %.critedge ], [ %.0, %85 ]
  %96 = getelementptr inbounds i8, ptr %.2, i64 1
  %97 = load i8, ptr %96, align 1, !tbaa !12
  %98 = icmp eq i8 %97, 0
  br i1 %98, label %99, label %.preheader882

99:                                               ; preds = %95
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef nonnull @.str, i32 noundef 1)
  br label %.thread803

.preheader882:                                    ; preds = %95, %197
  %.0648 = phi i8 [ %.1649.ph, %197 ], [ 0, %95 ]
  %.0583 = phi i8 [ %.1584.ph, %197 ], [ 0, %95 ]
  %.0575 = phi i8 [ %.1576.ph, %197 ], [ 0, %95 ]
  %.0572 = phi i8 [ %.1573.ph, %197 ], [ 0, %95 ]
  %.0567 = phi i8 [ %.1568.ph, %197 ], [ 0, %95 ]
  %.0561 = phi i8 [ %.2563.ph, %197 ], [ 0, %95 ]
  %.0534 = phi i32 [ %.3537.ph, %197 ], [ 0, %95 ]
  %.0504 = phi i32 [ %.4508.ph, %197 ], [ -1, %95 ]
  %.0487.in = phi i8 [ %199, %197 ], [ %97, %95 ]
  %.3 = phi ptr [ %198, %197 ], [ %96, %95 ]
  %.0487 = sext i8 %.0487.in to i32
  switch i8 %.0487.in, label %.critedge9 [
    i8 45, label %197
    i8 43, label %100
    i8 32, label %101
    i8 35, label %102
    i8 33, label %103
    i8 48, label %104
    i8 44, label %105
    i8 108, label %106
    i8 49, label %114
    i8 50, label %114
    i8 51, label %114
    i8 52, label %114
    i8 53, label %114
    i8 54, label %114
    i8 55, label %114
    i8 56, label %114
    i8 57, label %114
    i8 42, label %130
    i8 46, label %154
  ]

100:                                              ; preds = %.preheader882
  br label %197

101:                                              ; preds = %.preheader882
  br label %197

102:                                              ; preds = %.preheader882
  br label %197

103:                                              ; preds = %.preheader882
  br label %197

104:                                              ; preds = %.preheader882
  br label %197

105:                                              ; preds = %.preheader882
  br label %197

106:                                              ; preds = %.preheader882
  %107 = getelementptr inbounds i8, ptr %.3, i64 1
  %108 = load i8, ptr %107, align 1, !tbaa !12
  %109 = icmp eq i8 %108, 108
  br i1 %109, label %110, label %113

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

113:                                              ; preds = %110, %106
  %.1586 = phi i8 [ 2, %110 ], [ 1, %106 ]
  %.1488.in = phi i8 [ %112, %110 ], [ %108, %106 ]
  %.4 = phi ptr [ %111, %110 ], [ %107, %106 ]
  %.1488 = sext i8 %.1488.in to i32
  br label %.critedge9

114:                                              ; preds = %.preheader882, %.preheader882, %.preheader882, %.preheader882, %.preheader882, %.preheader882, %.preheader882, %.preheader882, %.preheader882
  %.0600908 = add nsw i32 %.0487, -48
  %115 = getelementptr inbounds i8, ptr %.3, i64 1
  %116 = load i8, ptr %115, align 1, !tbaa !12
  %117 = sext i8 %116 to i32
  %118 = add i8 %116, -48
  %119 = icmp ult i8 %118, 10
  br i1 %119, label %.lr.ph911, label %._crit_edge912

.lr.ph911:                                        ; preds = %114, %.lr.ph911
  %120 = phi i32 [ %126, %.lr.ph911 ], [ %117, %114 ]
  %121 = phi ptr [ %124, %.lr.ph911 ], [ %115, %114 ]
  %.0600909 = phi i32 [ %.0600, %.lr.ph911 ], [ %.0600908, %114 ]
  %122 = mul i32 %.0600909, 10
  %123 = add i32 %120, %122
  %.0600 = add i32 %123, -48
  %124 = getelementptr inbounds i8, ptr %121, i64 1
  %125 = load i8, ptr %124, align 1, !tbaa !12
  %126 = sext i8 %125 to i32
  %127 = add i8 %125, -48
  %128 = icmp ult i8 %127, 10
  br i1 %128, label %.lr.ph911, label %._crit_edge912, !llvm.loop !13

._crit_edge912:                                   ; preds = %.lr.ph911, %114
  %.5.lcssa = phi ptr [ %.3, %114 ], [ %121, %.lr.ph911 ]
  %.0600.lcssa = phi i32 [ %.0600908, %114 ], [ %.0600, %.lr.ph911 ]
  %.lcssa887 = phi ptr [ %115, %114 ], [ %124, %.lr.ph911 ]
  %.lcssa886 = phi i8 [ %116, %114 ], [ %125, %.lr.ph911 ]
  %.lcssa885 = phi i32 [ %117, %114 ], [ %126, %.lr.ph911 ]
  %129 = and i32 %.0600.lcssa, 2147483647
  switch i8 %.lcssa886, label %.critedge9 [
    i8 108, label %197
    i8 46, label %197
  ]

130:                                              ; preds = %.preheader882
  br i1 %.not, label %134, label %131

131:                                              ; preds = %130
  %132 = call i64 @getIntArg(ptr noundef %.0601)
  %133 = trunc i64 %132 to i32
  br label %148

134:                                              ; preds = %130
  %135 = load i32, ptr %2, align 8
  %136 = icmp ult i32 %135, 41
  br i1 %136, label %137, label %142

137:                                              ; preds = %134
  %138 = load ptr, ptr %28, align 8
  %139 = zext nneg i32 %135 to i64
  %140 = getelementptr i8, ptr %138, i64 %139
  %141 = add nuw nsw i32 %135, 8
  store i32 %141, ptr %2, align 8
  br label %145

142:                                              ; preds = %134
  %143 = load ptr, ptr %27, align 8
  %144 = getelementptr i8, ptr %143, i64 8
  store ptr %144, ptr %27, align 8
  br label %145

145:                                              ; preds = %142, %137
  %146 = phi ptr [ %140, %137 ], [ %143, %142 ]
  %147 = load i32, ptr %146, align 4, !tbaa !15
  br label %148

148:                                              ; preds = %145, %131
  %.1535 = phi i32 [ %133, %131 ], [ %147, %145 ]
  %149 = icmp slt i32 %.1535, 0
  %.not717 = icmp eq i32 %.1535, -2147483648
  %150 = sub nsw i32 0, %.1535
  %151 = select i1 %.not717, i32 0, i32 %150
  %.1562 = select i1 %149, i8 1, i8 %.0561
  %.2536 = select i1 %149, i32 %151, i32 %.1535
  %152 = getelementptr inbounds i8, ptr %.3, i64 1
  %153 = load i8, ptr %152, align 1, !tbaa !12
  switch i8 %153, label %.critedge9.loopexit.split.loop.exit951 [
    i8 108, label %197
    i8 46, label %197
  ]

154:                                              ; preds = %.preheader882
  %155 = getelementptr inbounds i8, ptr %.3, i64 1
  %156 = load i8, ptr %155, align 1, !tbaa !12
  %157 = icmp eq i8 %156, 42
  br i1 %157, label %160, label %.preheader865

.preheader865:                                    ; preds = %154
  %.2489902 = sext i8 %156 to i32
  %158 = add i8 %156, -48
  %159 = icmp ult i8 %158, 10
  br i1 %159, label %.lr.ph, label %._crit_edge

160:                                              ; preds = %154
  br i1 %.not, label %164, label %161

161:                                              ; preds = %160
  %162 = call i64 @getIntArg(ptr noundef %.0601)
  %163 = trunc i64 %162 to i32
  br label %178

164:                                              ; preds = %160
  %165 = load i32, ptr %2, align 8
  %166 = icmp ult i32 %165, 41
  br i1 %166, label %167, label %172

167:                                              ; preds = %164
  %168 = load ptr, ptr %28, align 8
  %169 = zext nneg i32 %165 to i64
  %170 = getelementptr i8, ptr %168, i64 %169
  %171 = add nuw nsw i32 %165, 8
  store i32 %171, ptr %2, align 8
  br label %175

172:                                              ; preds = %164
  %173 = load ptr, ptr %27, align 8
  %174 = getelementptr i8, ptr %173, i64 8
  store ptr %174, ptr %27, align 8
  br label %175

175:                                              ; preds = %172, %167
  %176 = phi ptr [ %170, %167 ], [ %173, %172 ]
  %177 = load i32, ptr %176, align 4, !tbaa !15
  br label %178

178:                                              ; preds = %175, %161
  %.1505 = phi i32 [ %163, %161 ], [ %177, %175 ]
  %179 = icmp slt i32 %.1505, 0
  %.not715 = icmp eq i32 %.1505, -2147483648
  %180 = sub nsw i32 0, %.1505
  %181 = select i1 %.not715, i32 -1, i32 %180
  %.2506 = select i1 %179, i32 %181, i32 %.1505
  %182 = getelementptr inbounds i8, ptr %.3, i64 2
  %183 = load i8, ptr %182, align 1, !tbaa !12
  %184 = sext i8 %183 to i32
  br label %193

.lr.ph:                                           ; preds = %.preheader865, %.lr.ph
  %.2489905 = phi i32 [ %.2489, %.lr.ph ], [ %.2489902, %.preheader865 ]
  %.7904 = phi ptr [ %188, %.lr.ph ], [ %155, %.preheader865 ]
  %.0599903 = phi i32 [ %187, %.lr.ph ], [ 0, %.preheader865 ]
  %185 = mul i32 %.0599903, 10
  %186 = add i32 %185, -48
  %187 = add i32 %186, %.2489905
  %188 = getelementptr inbounds i8, ptr %.7904, i64 1
  %189 = load i8, ptr %188, align 1, !tbaa !12
  %.2489 = sext i8 %189 to i32
  %190 = add i8 %189, -48
  %191 = icmp ult i8 %190, 10
  br i1 %191, label %.lr.ph, label %._crit_edge, !llvm.loop !16

._crit_edge:                                      ; preds = %.lr.ph, %.preheader865
  %.0599.lcssa = phi i32 [ 0, %.preheader865 ], [ %187, %.lr.ph ]
  %.7.lcssa = phi ptr [ %155, %.preheader865 ], [ %188, %.lr.ph ]
  %.2489.lcssa = phi i32 [ %.2489902, %.preheader865 ], [ %.2489, %.lr.ph ]
  %192 = and i32 %.0599.lcssa, 2147483647
  br label %193

193:                                              ; preds = %._crit_edge, %178
  %.3507 = phi i32 [ %.2506, %178 ], [ %192, %._crit_edge ]
  %.3490 = phi i32 [ %184, %178 ], [ %.2489.lcssa, %._crit_edge ]
  %.8 = phi ptr [ %182, %178 ], [ %.7.lcssa, %._crit_edge ]
  %194 = icmp eq i32 %.3490, 108
  br i1 %194, label %195, label %.critedge9

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

197:                                              ; preds = %._crit_edge912, %._crit_edge912, %195, %148, %148, %105, %104, %103, %102, %101, %100, %.preheader882
  %.1649.ph = phi i8 [ %.0648, %148 ], [ %.0648, %.preheader882 ], [ %.0648, %100 ], [ %.0648, %101 ], [ %.0648, %102 ], [ %.0648, %103 ], [ %.0648, %104 ], [ 44, %105 ], [ %.0648, %148 ], [ %.0648, %195 ], [ %.0648, %._crit_edge912 ], [ %.0648, %._crit_edge912 ]
  %.1584.ph = phi i8 [ %.0583, %148 ], [ %.0583, %.preheader882 ], [ %.0583, %100 ], [ %.0583, %101 ], [ %.0583, %102 ], [ %.0583, %103 ], [ 1, %104 ], [ %.0583, %105 ], [ %.0583, %148 ], [ %.0583, %195 ], [ %.0583, %._crit_edge912 ], [ %.0583, %._crit_edge912 ]
  %.1576.ph = phi i8 [ %.0575, %148 ], [ %.0575, %.preheader882 ], [ %.0575, %100 ], [ %.0575, %101 ], [ %.0575, %102 ], [ 1, %103 ], [ %.0575, %104 ], [ %.0575, %105 ], [ %.0575, %148 ], [ %.0575, %195 ], [ %.0575, %._crit_edge912 ], [ %.0575, %._crit_edge912 ]
  %.1573.ph = phi i8 [ %.0572, %148 ], [ %.0572, %.preheader882 ], [ %.0572, %100 ], [ %.0572, %101 ], [ 1, %102 ], [ %.0572, %103 ], [ %.0572, %104 ], [ %.0572, %105 ], [ %.0572, %148 ], [ %.0572, %195 ], [ %.0572, %._crit_edge912 ], [ %.0572, %._crit_edge912 ]
  %.1568.ph = phi i8 [ %.0567, %148 ], [ %.0567, %.preheader882 ], [ %.0487.in, %100 ], [ %.0487.in, %101 ], [ %.0567, %102 ], [ %.0567, %103 ], [ %.0567, %104 ], [ %.0567, %105 ], [ %.0567, %148 ], [ %.0567, %195 ], [ %.0567, %._crit_edge912 ], [ %.0567, %._crit_edge912 ]
  %.2563.ph = phi i8 [ %.1562, %148 ], [ 1, %.preheader882 ], [ %.0561, %100 ], [ %.0561, %101 ], [ %.0561, %102 ], [ %.0561, %103 ], [ %.0561, %104 ], [ %.0561, %105 ], [ %.1562, %148 ], [ %.0561, %195 ], [ %.0561, %._crit_edge912 ], [ %.0561, %._crit_edge912 ]
  %.3537.ph = phi i32 [ %.2536, %148 ], [ %.0534, %.preheader882 ], [ %.0534, %100 ], [ %.0534, %101 ], [ %.0534, %102 ], [ %.0534, %103 ], [ %.0534, %104 ], [ %.0534, %105 ], [ %.2536, %148 ], [ %.0534, %195 ], [ %129, %._crit_edge912 ], [ %129, %._crit_edge912 ]
  %.4508.ph = phi i32 [ %.0504, %148 ], [ %.0504, %.preheader882 ], [ %.0504, %100 ], [ %.0504, %101 ], [ %.0504, %102 ], [ %.0504, %103 ], [ %.0504, %104 ], [ %.0504, %105 ], [ %.0504, %148 ], [ %.3507, %195 ], [ %.0504, %._crit_edge912 ], [ %.0504, %._crit_edge912 ]
  %.9.ph = phi ptr [ %.3, %148 ], [ %.3, %.preheader882 ], [ %.3, %100 ], [ %.3, %101 ], [ %.3, %102 ], [ %.3, %103 ], [ %.3, %104 ], [ %.3, %105 ], [ %.3, %148 ], [ %196, %195 ], [ %.5.lcssa, %._crit_edge912 ], [ %.5.lcssa, %._crit_edge912 ]
  %198 = getelementptr inbounds i8, ptr %.9.ph, i64 1
  %199 = load i8, ptr %198, align 1, !tbaa !12
  %.not719 = icmp eq i8 %199, 0
  br i1 %.not719, label %.critedge9, label %.preheader882, !llvm.loop !17

.critedge9.loopexit.split.loop.exit951:           ; preds = %148
  %200 = getelementptr inbounds i8, ptr %.3, i64 1
  %201 = sext i8 %153 to i32
  br label %.critedge9

.critedge9:                                       ; preds = %197, %193, %._crit_edge912, %.preheader882, %.critedge9.loopexit.split.loop.exit951, %113
  %.4508800 = phi i32 [ %.0504, %113 ], [ %.0504, %.critedge9.loopexit.split.loop.exit951 ], [ %.4508.ph, %197 ], [ %.3507, %193 ], [ %.0504, %._crit_edge912 ], [ %.0504, %.preheader882 ]
  %.3537798 = phi i32 [ %.0534, %113 ], [ %.2536, %.critedge9.loopexit.split.loop.exit951 ], [ %.3537.ph, %197 ], [ %.0534, %193 ], [ %129, %._crit_edge912 ], [ %.0534, %.preheader882 ]
  %.2563796 = phi i8 [ %.0561, %113 ], [ %.1562, %.critedge9.loopexit.split.loop.exit951 ], [ %.2563.ph, %197 ], [ %.0561, %193 ], [ %.0561, %._crit_edge912 ], [ %.0561, %.preheader882 ]
  %.1568795 = phi i8 [ %.0567, %113 ], [ %.0567, %.critedge9.loopexit.split.loop.exit951 ], [ %.1568.ph, %197 ], [ %.0567, %193 ], [ %.0567, %._crit_edge912 ], [ %.0567, %.preheader882 ]
  %.1573792 = phi i8 [ %.0572, %113 ], [ %.0572, %.critedge9.loopexit.split.loop.exit951 ], [ %.1573.ph, %197 ], [ %.0572, %193 ], [ %.0572, %._crit_edge912 ], [ %.0572, %.preheader882 ]
  %.1576790 = phi i8 [ %.0575, %113 ], [ %.0575, %.critedge9.loopexit.split.loop.exit951 ], [ %.1576.ph, %197 ], [ %.0575, %193 ], [ %.0575, %._crit_edge912 ], [ %.0575, %.preheader882 ]
  %.1584788 = phi i8 [ %.0583, %113 ], [ %.0583, %.critedge9.loopexit.split.loop.exit951 ], [ %.1584.ph, %197 ], [ %.0583, %193 ], [ %.0583, %._crit_edge912 ], [ %.0583, %.preheader882 ]
  %.2587787 = phi i8 [ %.1586, %113 ], [ 0, %.critedge9.loopexit.split.loop.exit951 ], [ 0, %.preheader882 ], [ 0, %._crit_edge912 ], [ 0, %193 ], [ 0, %197 ]
  %.1649785 = phi i8 [ %.0648, %113 ], [ %.0648, %.critedge9.loopexit.split.loop.exit951 ], [ %.1649.ph, %197 ], [ %.0648, %193 ], [ %.0648, %._crit_edge912 ], [ %.0648, %.preheader882 ]
  %.5492 = phi i32 [ %.1488, %113 ], [ %201, %.critedge9.loopexit.split.loop.exit951 ], [ 0, %197 ], [ %.3490, %193 ], [ %.lcssa885, %._crit_edge912 ], [ %.0487, %.preheader882 ]
  %.10 = phi ptr [ %.4, %113 ], [ %200, %.critedge9.loopexit.split.loop.exit951 ], [ %198, %197 ], [ %.8, %193 ], [ %.lcssa887, %._crit_edge912 ], [ %.3, %.preheader882 ]
  %202 = icmp eq i32 %.5492, %40
  br i1 %202, label %247, label %203

203:                                              ; preds = %.critedge9
  %204 = icmp eq i32 %.5492, %42
  br i1 %204, label %247, label %205

205:                                              ; preds = %203
  %206 = icmp eq i32 %.5492, %44
  br i1 %206, label %247, label %207

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

250:                                              ; preds = %247
  br label %252

251:                                              ; preds = %247, %247
  br label %252

252:                                              ; preds = %250, %251, %247
  %.2650 = phi i8 [ %.1649785, %247 ], [ 0, %250 ], [ 0, %251 ]
  %.4589 = phi i8 [ %.2587787, %247 ], [ 2, %250 ], [ %.2587787, %251 ]
  %253 = getelementptr inbounds i8, ptr %.lcssa1090, i64 2
  %254 = load i8, ptr %253, align 1, !tbaa !20
  %255 = and i8 %254, 1
  %.not745 = icmp eq i8 %255, 0
  br i1 %.not745, label %301, label %256

256:                                              ; preds = %252
  br i1 %.not, label %259, label %257

257:                                              ; preds = %256
  %258 = call i64 @getIntArg(ptr noundef %.0601)
  br label %299

259:                                              ; preds = %256
  %260 = load i32, ptr %2, align 8
  %261 = icmp ult i32 %260, 41
  switch i8 %.4589, label %274 [
    i8 0, label %286
    i8 2, label %262
  ]

262:                                              ; preds = %259
  br i1 %261, label %263, label %268

263:                                              ; preds = %262
  %264 = load ptr, ptr %28, align 8
  %265 = zext nneg i32 %260 to i64
  %266 = getelementptr i8, ptr %264, i64 %265
  %267 = add nuw nsw i32 %260, 8
  store i32 %267, ptr %2, align 8
  br label %271

268:                                              ; preds = %262
  %269 = load ptr, ptr %27, align 8
  %270 = getelementptr i8, ptr %269, i64 8
  store ptr %270, ptr %27, align 8
  br label %271

271:                                              ; preds = %268, %263
  %272 = phi ptr [ %266, %263 ], [ %269, %268 ]
  %273 = load i64, ptr %272, align 8, !tbaa !21
  br label %299

274:                                              ; preds = %259
  br i1 %261, label %275, label %280

275:                                              ; preds = %274
  %276 = load ptr, ptr %28, align 8
  %277 = zext nneg i32 %260 to i64
  %278 = getelementptr i8, ptr %276, i64 %277
  %279 = add nuw nsw i32 %260, 8
  store i32 %279, ptr %2, align 8
  br label %283

280:                                              ; preds = %274
  %281 = load ptr, ptr %27, align 8
  %282 = getelementptr i8, ptr %281, i64 8
  store ptr %282, ptr %27, align 8
  br label %283

283:                                              ; preds = %280, %275
  %284 = phi ptr [ %278, %275 ], [ %281, %280 ]
  %285 = load i64, ptr %284, align 8, !tbaa !23
  br label %299

286:                                              ; preds = %259
  br i1 %261, label %287, label %292

287:                                              ; preds = %286
  %288 = load ptr, ptr %28, align 8
  %289 = zext nneg i32 %260 to i64
  %290 = getelementptr i8, ptr %288, i64 %289
  %291 = add nuw nsw i32 %260, 8
  store i32 %291, ptr %2, align 8
  br label %295

292:                                              ; preds = %286
  %293 = load ptr, ptr %27, align 8
  %294 = getelementptr i8, ptr %293, i64 8
  store ptr %294, ptr %27, align 8
  br label %295

295:                                              ; preds = %292, %287
  %296 = phi ptr [ %290, %287 ], [ %293, %292 ]
  %297 = load i32, ptr %296, align 4, !tbaa !15
  %298 = sext i32 %297 to i64
  br label %299

299:                                              ; preds = %295, %283, %271, %257
  %.0598 = phi i64 [ %258, %257 ], [ %273, %271 ], [ %285, %283 ], [ %298, %295 ]
  %300 = icmp slt i64 %.0598, 0
  %spec.select = select i1 %300, i8 45, i8 %.1568795
  %spec.select861 = call i64 @llvm.abs.i64(i64 %.0598, i1 false)
  br label %344

301:                                              ; preds = %252
  br i1 %.not, label %304, label %302

302:                                              ; preds = %301
  %303 = call i64 @getIntArg(ptr noundef %.0601)
  br label %344

304:                                              ; preds = %301
  %305 = load i32, ptr %2, align 8
  %306 = icmp ult i32 %305, 41
  switch i8 %.4589, label %319 [
    i8 0, label %331
    i8 2, label %307
  ]

307:                                              ; preds = %304
  br i1 %306, label %308, label %313

308:                                              ; preds = %307
  %309 = load ptr, ptr %28, align 8
  %310 = zext nneg i32 %305 to i64
  %311 = getelementptr i8, ptr %309, i64 %310
  %312 = add nuw nsw i32 %305, 8
  store i32 %312, ptr %2, align 8
  br label %316

313:                                              ; preds = %307
  %314 = load ptr, ptr %27, align 8
  %315 = getelementptr i8, ptr %314, i64 8
  store ptr %315, ptr %27, align 8
  br label %316

316:                                              ; preds = %313, %308
  %317 = phi ptr [ %311, %308 ], [ %314, %313 ]
  %318 = load i64, ptr %317, align 8, !tbaa !21
  br label %344

319:                                              ; preds = %304
  br i1 %306, label %320, label %325

320:                                              ; preds = %319
  %321 = load ptr, ptr %28, align 8
  %322 = zext nneg i32 %305 to i64
  %323 = getelementptr i8, ptr %321, i64 %322
  %324 = add nuw nsw i32 %305, 8
  store i32 %324, ptr %2, align 8
  br label %328

325:                                              ; preds = %319
  %326 = load ptr, ptr %27, align 8
  %327 = getelementptr i8, ptr %326, i64 8
  store ptr %327, ptr %27, align 8
  br label %328

328:                                              ; preds = %325, %320
  %329 = phi ptr [ %323, %320 ], [ %326, %325 ]
  %330 = load i64, ptr %329, align 8, !tbaa !23
  br label %344

331:                                              ; preds = %304
  br i1 %306, label %332, label %337

332:                                              ; preds = %331
  %333 = load ptr, ptr %28, align 8
  %334 = zext nneg i32 %305 to i64
  %335 = getelementptr i8, ptr %333, i64 %334
  %336 = add nuw nsw i32 %305, 8
  store i32 %336, ptr %2, align 8
  br label %340

337:                                              ; preds = %331
  %338 = load ptr, ptr %27, align 8
  %339 = getelementptr i8, ptr %338, i64 8
  store ptr %339, ptr %27, align 8
  br label %340

340:                                              ; preds = %337, %332
  %341 = phi ptr [ %335, %332 ], [ %338, %337 ]
  %342 = load i32, ptr %341, align 4, !tbaa !15
  %343 = zext i32 %342 to i64
  br label %344

344:                                              ; preds = %299, %302, %316, %328, %340
  %.1642 = phi i8 [ 0, %340 ], [ 0, %328 ], [ 0, %316 ], [ 0, %302 ], [ %spec.select, %299 ]
  %.3639 = phi i64 [ %343, %340 ], [ %330, %328 ], [ %318, %316 ], [ %303, %302 ], [ %spec.select861, %299 ]
  %345 = icmp eq i64 %.3639, 0
  %.not750 = icmp eq i8 %.1584788, 0
  br i1 %.not750, label %349, label %346

346:                                              ; preds = %344
  %347 = icmp ne i8 %.1642, 0
  %.neg = sext i1 %347 to i32
  %348 = add i32 %.3537798, %.neg
  %spec.select761 = call i32 @llvm.smax.i32(i32 %.4508800, i32 %348)
  br label %349

349:                                              ; preds = %346, %344
  %.5509 = phi i32 [ %.4508800, %344 ], [ %spec.select761, %346 ]
  %350 = icmp slt i32 %.5509, 37
  br i1 %350, label %360, label %351

351:                                              ; preds = %349
  %narrow = add nuw i32 %.5509, 10
  %352 = zext i32 %narrow to i64
  %.not751 = icmp eq i8 %.2650, 0
  br i1 %.not751, label %357, label %353

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

357:                                              ; preds = %353, %351
  %.0597 = phi i64 [ %356, %353 ], [ %352, %351 ]
  %358 = call ptr @printfTempBuf(ptr noundef %0, i64 noundef %.0597)
  %.not752 = icmp eq ptr %358, null
  %359 = trunc nuw i64 %.0597 to i32
  br i1 %.not752, label %.thread803, label %360

360:                                              ; preds = %349, %357
  %.0634 = phi ptr [ %358, %357 ], [ %6, %349 ]
  %.2632 = phi i32 [ %359, %357 ], [ 70, %349 ]
  %.1621 = phi ptr [ %358, %357 ], [ null, %349 ]
  %.06341137 = ptrtoint ptr %.0634 to i64
  %361 = add nsw i32 %.2632, -1
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds i8, ptr %.0634, i64 %362
  %364 = icmp eq i8 %249, 15
  br i1 %364, label %365, label %382

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

382:                                              ; preds = %365, %360
  %.2495 = phi ptr [ %381, %365 ], [ %363, %360 ]
  %.24951136 = ptrtoint ptr %.2495 to i64
  %383 = getelementptr inbounds i8, ptr %.lcssa1090, i64 4
  %384 = load i8, ptr %383, align 1, !tbaa !25
  %385 = zext i8 %384 to i64
  %386 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %385
  %387 = getelementptr inbounds i8, ptr %.lcssa1090, i64 1
  %388 = load i8, ptr %387, align 1, !tbaa !26
  %389 = zext i8 %388 to i64
  %scevgep1139 = getelementptr i8, ptr %.2495, i64 -2
  %390 = add i32 %.5509, -1
  %391 = trunc i64 %.24951136 to i32
  %392 = add i32 %390, %391
  %393 = trunc i64 %.06341137 to i32
  %394 = add i32 %.2632, %393
  %395 = sub i32 %392, %394
  br label %396

396:                                              ; preds = %396, %382
  %indvars.iv1142 = phi i32 [ %indvars.iv.next1143, %396 ], [ %395, %382 ]
  %indvars.iv1140 = phi ptr [ %scevgep1141, %396 ], [ %scevgep1139, %382 ]
  %indvar = phi i64 [ %indvar.next, %396 ], [ 0, %382 ]
  %.4640 = phi i64 [ %401, %396 ], [ %.3639, %382 ]
  %.3496 = phi ptr [ %400, %396 ], [ %.2495, %382 ]
  %397 = urem i64 %.4640, %389
  %398 = getelementptr inbounds i8, ptr %386, i64 %397
  %399 = load i8, ptr %398, align 1, !tbaa !12
  %400 = getelementptr inbounds i8, ptr %.3496, i64 -1
  store i8 %399, ptr %400, align 1, !tbaa !12
  %401 = udiv i64 %.4640, %389
  %.not753 = icmp ult i64 %.4640, %389
  %indvar.next = add i64 %indvar, 1
  %scevgep1141 = getelementptr i8, ptr %indvars.iv1140, i64 -1
  %indvars.iv.next1143 = add i32 %indvars.iv1142, -1
  br i1 %.not753, label %402, label %396, !llvm.loop !27

402:                                              ; preds = %396
  %403 = ptrtoint ptr %363 to i64
  %404 = ptrtoint ptr %400 to i64
  %405 = sub i64 %403, %404
  %406 = trunc i64 %405 to i32
  %407 = icmp sgt i32 %.5509, %406
  br i1 %407, label %.lr.ph1041.preheader, label %._crit_edge1042

.lr.ph1041.preheader:                             ; preds = %402
  %408 = sub i64 -2, %indvar
  %scevgep1135 = getelementptr i8, ptr %.2495, i64 %408
  %409 = trunc i64 %indvar to i32
  %410 = sub i32 %395, %409
  %411 = zext i32 %410 to i64
  %412 = sub nsw i64 0, %411
  %scevgep1138 = getelementptr i8, ptr %scevgep1135, i64 %412
  %413 = add nuw nsw i64 %411, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %scevgep1138, i8 48, i64 %413, i1 false), !tbaa !12
  %414 = zext i32 %indvars.iv1142 to i64
  %415 = sub nsw i64 0, %414
  %scevgep1144 = getelementptr i8, ptr %indvars.iv1140, i64 %415
  br label %._crit_edge1042

._crit_edge1042:                                  ; preds = %.lr.ph1041.preheader, %402
  %.1519.lcssa = phi i32 [ %406, %402 ], [ %.5509, %.lr.ph1041.preheader ]
  %.4497.lcssa = phi ptr [ %400, %402 ], [ %scevgep1144, %.lr.ph1041.preheader ]
  %.not754 = icmp eq i8 %.2650, 0
  br i1 %.not754, label %.loopexit867, label %416

416:                                              ; preds = %._crit_edge1042
  %417 = add nsw i32 %.1519.lcssa, -1
  %418 = sdiv i32 %417, 3
  %419 = zext nneg i32 %418 to i64
  %420 = sub nsw i64 0, %419
  %421 = getelementptr inbounds i8, ptr %.4497.lcssa, i64 %420
  %422 = icmp sgt i32 %.1519.lcssa, 3
  br i1 %422, label %.lr.ph1049.preheader, label %.loopexit867

.lr.ph1049.preheader:                             ; preds = %416
  %423 = urem i32 %417, 3
  %424 = add nuw nsw i32 %423, 1
  br label %.lr.ph1049

.lr.ph1049:                                       ; preds = %.lr.ph1049.preheader, %438
  %.15311047 = phi i32 [ %439, %438 ], [ 0, %.lr.ph1049.preheader ]
  %.05791046 = phi i32 [ %.1580, %438 ], [ %424, %.lr.ph1049.preheader ]
  %.05811045 = phi i32 [ %.1582, %438 ], [ %418, %.lr.ph1049.preheader ]
  %425 = add nsw i32 %.15311047, %.05811045
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds i8, ptr %421, i64 %426
  %428 = load i8, ptr %427, align 1, !tbaa !12
  %429 = sext i32 %.15311047 to i64
  %430 = getelementptr inbounds i8, ptr %421, i64 %429
  store i8 %428, ptr %430, align 1, !tbaa !12
  %431 = add nsw i32 %.05791046, -1
  %432 = icmp eq i32 %431, 0
  br i1 %432, label %433, label %438

433:                                              ; preds = %.lr.ph1049
  %434 = add nsw i32 %.15311047, 1
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds i8, ptr %421, i64 %435
  store i8 %.2650, ptr %436, align 1, !tbaa !12
  %437 = add nsw i32 %.05811045, -1
  br label %438

438:                                              ; preds = %.lr.ph1049, %433
  %.1582 = phi i32 [ %437, %433 ], [ %.05811045, %.lr.ph1049 ]
  %.1580 = phi i32 [ 3, %433 ], [ %431, %.lr.ph1049 ]
  %.2532 = phi i32 [ %434, %433 ], [ %.15311047, %.lr.ph1049 ]
  %439 = add nsw i32 %.2532, 1
  %440 = icmp sgt i32 %.1582, 0
  br i1 %440, label %.lr.ph1049, label %.loopexit867, !llvm.loop !28

.loopexit867:                                     ; preds = %438, %416, %._crit_edge1042
  %.5498 = phi ptr [ %.4497.lcssa, %._crit_edge1042 ], [ %421, %416 ], [ %421, %438 ]
  %.not755 = icmp eq i8 %.1642, 0
  br i1 %.not755, label %443, label %441

441:                                              ; preds = %.loopexit867
  %442 = getelementptr inbounds i8, ptr %.5498, i64 -1
  store i8 %.1642, ptr %442, align 1, !tbaa !12
  br label %443

443:                                              ; preds = %441, %.loopexit867
  %.6499 = phi ptr [ %442, %441 ], [ %.5498, %.loopexit867 ]
  %.not756860 = icmp eq i8 %.1573792, 0
  %.not756 = select i1 %345, i1 true, i1 %.not756860
  br i1 %.not756, label %.loopexit866, label %444

444:                                              ; preds = %443
  %445 = getelementptr inbounds i8, ptr %.lcssa1090, i64 5
  %446 = load i8, ptr %445, align 1, !tbaa !29
  %.not757 = icmp eq i8 %446, 0
  br i1 %.not757, label %.loopexit866, label %447

447:                                              ; preds = %444
  %448 = zext i8 %446 to i64
  %449 = getelementptr inbounds [7 x i8], ptr @aPrefix, i64 0, i64 %448
  %450 = load i8, ptr %449, align 1, !tbaa !12
  %.not7581050 = icmp eq i8 %450, 0
  br i1 %.not7581050, label %.loopexit866, label %.lr.ph1054

.lr.ph1054:                                       ; preds = %447, %.lr.ph1054
  %451 = phi i8 [ %454, %.lr.ph1054 ], [ %450, %447 ]
  %.75001052 = phi ptr [ %452, %.lr.ph1054 ], [ %.6499, %447 ]
  %.05781051 = phi ptr [ %453, %.lr.ph1054 ], [ %449, %447 ]
  %452 = getelementptr inbounds i8, ptr %.75001052, i64 -1
  store i8 %451, ptr %452, align 1, !tbaa !12
  %453 = getelementptr inbounds i8, ptr %.05781051, i64 1
  %454 = load i8, ptr %453, align 1, !tbaa !12
  %.not758 = icmp eq i8 %454, 0
  br i1 %.not758, label %.loopexit866, label %.lr.ph1054, !llvm.loop !30

.loopexit866:                                     ; preds = %.lr.ph1054, %447, %444, %443
  %.8501 = phi ptr [ %.6499, %444 ], [ %.6499, %443 ], [ %.6499, %447 ], [ %452, %.lr.ph1054 ]
  %455 = ptrtoint ptr %.8501 to i64
  %456 = sub i64 %403, %455
  %457 = trunc i64 %456 to i32
  br label %.critedge28.thread

458:                                              ; preds = %247, %247, %247
  br i1 %.not, label %461, label %459

459:                                              ; preds = %458
  %460 = call double @getDoubleArg(ptr noundef %.0601)
  br label %475

461:                                              ; preds = %458
  %462 = load i32, ptr %37, align 4
  %463 = icmp ult i32 %462, 161
  br i1 %463, label %464, label %469

464:                                              ; preds = %461
  %465 = load ptr, ptr %28, align 8
  %466 = zext nneg i32 %462 to i64
  %467 = getelementptr i8, ptr %465, i64 %466
  %468 = add nuw nsw i32 %462, 16
  store i32 %468, ptr %37, align 4
  br label %472

469:                                              ; preds = %461
  %470 = load ptr, ptr %27, align 8
  %471 = getelementptr i8, ptr %470, i64 8
  store ptr %471, ptr %27, align 8
  br label %472

472:                                              ; preds = %469, %464
  %473 = phi ptr [ %467, %464 ], [ %470, %469 ]
  %474 = load double, ptr %473, align 8, !tbaa !31
  br label %475

475:                                              ; preds = %472, %459
  %storemerge.in = phi double [ %474, %472 ], [ %460, %459 ]
  %storemerge = fpext double %storemerge.in to x86_fp80
  %476 = icmp slt i32 %.4508800, 0
  %spec.store.select = select i1 %476, i32 6, i32 %.4508800
  %477 = fcmp olt double %storemerge.in, 0.000000e+00
  %478 = fneg x86_fp80 %storemerge
  %storemerge856 = select i1 %477, x86_fp80 %478, x86_fp80 %storemerge
  %.2643 = select i1 %477, i8 45, i8 %.1568795
  store x86_fp80 %storemerge856, ptr %4, align 16, !tbaa !33
  %479 = icmp eq i8 %249, 3
  %480 = icmp sgt i32 %spec.store.select, 0
  %or.cond11 = and i1 %479, %480
  %481 = sext i1 %or.cond11 to i32
  %spec.select762 = add nsw i32 %spec.store.select, %481
  %482 = and i32 %spec.select762, 4095
  %.not1059 = icmp eq i32 %482, 0
  br i1 %.not1059, label %._crit_edge1002, label %.lr.ph1001.preheader

.lr.ph1001.preheader:                             ; preds = %475
  %xtraiter1313 = and i32 %spec.select762, 7
  %lcmp.mod1314.not = icmp eq i32 %xtraiter1313, 0
  br i1 %lcmp.mod1314.not, label %.lr.ph1001.prol.loopexit, label %.lr.ph1001.prol

.lr.ph1001.prol:                                  ; preds = %.lr.ph1001.preheader, %.lr.ph1001.prol
  %.3533999.prol = phi i32 [ %483, %.lr.ph1001.prol ], [ %482, %.lr.ph1001.preheader ]
  %.0606998.prol = phi double [ %484, %.lr.ph1001.prol ], [ 5.000000e-01, %.lr.ph1001.preheader ]
  %prol.iter = phi i32 [ %prol.iter.next, %.lr.ph1001.prol ], [ 0, %.lr.ph1001.preheader ]
  %483 = add nsw i32 %.3533999.prol, -1
  %484 = fmul double %.0606998.prol, 1.000000e-01
  %prol.iter.next = add i32 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i32 %prol.iter.next, %xtraiter1313
  br i1 %prol.iter.cmp.not, label %.lr.ph1001.prol.loopexit, label %.lr.ph1001.prol, !llvm.loop !35

.lr.ph1001.prol.loopexit:                         ; preds = %.lr.ph1001.prol, %.lr.ph1001.preheader
  %.3533999.unr = phi i32 [ %482, %.lr.ph1001.preheader ], [ %483, %.lr.ph1001.prol ]
  %.0606998.unr = phi double [ 5.000000e-01, %.lr.ph1001.preheader ], [ %484, %.lr.ph1001.prol ]
  %.lcssa1300.unr = phi double [ poison, %.lr.ph1001.preheader ], [ %484, %.lr.ph1001.prol ]
  %485 = icmp ult i32 %482, 8
  br i1 %485, label %._crit_edge1002, label %.lr.ph1001

.lr.ph1001:                                       ; preds = %.lr.ph1001.prol.loopexit, %.lr.ph1001
  %.3533999 = phi i32 [ %493, %.lr.ph1001 ], [ %.3533999.unr, %.lr.ph1001.prol.loopexit ]
  %.0606998 = phi double [ %494, %.lr.ph1001 ], [ %.0606998.unr, %.lr.ph1001.prol.loopexit ]
  %486 = fmul double %.0606998, 1.000000e-01
  %487 = fmul double %486, 1.000000e-01
  %488 = fmul double %487, 1.000000e-01
  %489 = fmul double %488, 1.000000e-01
  %490 = fmul double %489, 1.000000e-01
  %491 = fmul double %490, 1.000000e-01
  %492 = fmul double %491, 1.000000e-01
  %493 = add nsw i32 %.3533999, -8
  %494 = fmul double %492, 1.000000e-01
  %495 = add i32 %.3533999, -9
  %496 = icmp ult i32 %495, -2
  br i1 %496, label %.lr.ph1001, label %._crit_edge1002, !llvm.loop !37

._crit_edge1002:                                  ; preds = %.lr.ph1001.prol.loopexit, %.lr.ph1001, %475
  %.0606.lcssa = phi double [ 5.000000e-01, %475 ], [ %.lcssa1300.unr, %.lr.ph1001.prol.loopexit ], [ %494, %.lr.ph1001 ]
  %497 = icmp eq i8 %249, 1
  br i1 %497, label %498, label %501

498:                                              ; preds = %._crit_edge1002
  %499 = fpext double %.0606.lcssa to x86_fp80
  %500 = fadd x86_fp80 %storemerge856, %499
  store x86_fp80 %500, ptr %4, align 16, !tbaa !33
  br label %501

501:                                              ; preds = %498, %._crit_edge1002
  %502 = phi x86_fp80 [ %500, %498 ], [ %storemerge856, %._crit_edge1002 ]
  %503 = fptrunc x86_fp80 %502 to double
  %504 = call i32 @sqlite3IsNaN(double noundef %503)
  %.not737 = icmp eq i32 %504, 0
  br i1 %.not737, label %505, label %.critedge28.thread

505:                                              ; preds = %501
  %506 = load x86_fp80, ptr %4, align 16, !tbaa !33
  %507 = fcmp ogt x86_fp80 %506, 0xK00000000000000000000
  br i1 %507, label %.preheader875, label %.thread806

.preheader875:                                    ; preds = %505
  %508 = fcmp ult x86_fp80 %506, 0xK414B924D692CA61BE800
  br i1 %508, label %.preheader874.preheader, label %.preheader875.1, !llvm.loop !38

.preheader875.1:                                  ; preds = %.preheader875
  %509 = fcmp ult x86_fp80 %506, 0xK4297A738C6BEBB12D2EC
  br i1 %509, label %.preheader874.preheader, label %.preheader875.2, !llvm.loop !38

.preheader875.2:                                  ; preds = %.preheader875.1
  %510 = fcmp ult x86_fp80 %506, 0xK43E3BF21E44003ACDFBE
  br i1 %510, label %.preheader874.preheader, label %.preheader875.3, !llvm.loop !38

.preheader875.3:                                  ; preds = %.preheader875.2
  %511 = fcmp ult x86_fp80 %506, 0xK452FDA763FC8CB9FFDCF
  br i1 %511, label %.preheader874.preheader, label %.preheader875.4, !llvm.loop !38

.preheader875.4:                                  ; preds = %.preheader875.3
  br label %.preheader874.preheader

.preheader874.preheader:                          ; preds = %.preheader875.4, %.preheader875.3, %.preheader875.2, %.preheader875.1, %.preheader875
  %.0611.lcssa = phi i32 [ 0, %.preheader875 ], [ 100, %.preheader875.1 ], [ 200, %.preheader875.2 ], [ 300, %.preheader875.3 ], [ 400, %.preheader875.4 ]
  %.0569.lcssa = phi x86_fp80 [ 0xK3FFF8000000000000000, %.preheader875 ], [ 0xK414B924D692CA61BE800, %.preheader875.1 ], [ 0xK4297A738C6BEBB12D2EC, %.preheader875.2 ], [ 0xK43E3BF21E44003ACDFBE, %.preheader875.3 ], [ 0xK452FDA763FC8CB9FFDCF, %.preheader875.4 ]
  br label %.preheader874

.preheader874:                                    ; preds = %.preheader874.preheader, %.preheader874
  %.1612 = phi i32 [ %516, %.preheader874 ], [ %.0611.lcssa, %.preheader874.preheader ]
  %.1570 = phi x86_fp80 [ %512, %.preheader874 ], [ %.0569.lcssa, %.preheader874.preheader ]
  %512 = fmul x86_fp80 %.1570, 0xK40209502F90000000000
  %513 = fcmp oge x86_fp80 %506, %512
  %514 = icmp ult i32 %.1612, 351
  %515 = select i1 %513, i1 %514, i1 false
  %516 = add nuw nsw i32 %.1612, 10
  br i1 %515, label %.preheader874, label %.preheader873, !llvm.loop !39

.preheader873:                                    ; preds = %.preheader874, %.preheader873
  %.2613 = phi i32 [ %521, %.preheader873 ], [ %.1612, %.preheader874 ]
  %.2571 = phi x86_fp80 [ %517, %.preheader873 ], [ %.1570, %.preheader874 ]
  %517 = fmul x86_fp80 %.2571, 0xK4002A000000000000000
  %518 = fcmp oge x86_fp80 %506, %517
  %519 = icmp ult i32 %.2613, 351
  %520 = select i1 %518, i1 %519, i1 false
  %521 = add nuw nsw i32 %.2613, 1
  br i1 %520, label %.preheader873, label %522, !llvm.loop !40

522:                                              ; preds = %.preheader873
  %523 = fdiv x86_fp80 %506, %.2571
  store x86_fp80 %523, ptr %4, align 16, !tbaa !33
  %524 = fcmp olt x86_fp80 %523, 0xK3FE4ABCC77118461D000
  br i1 %524, label %.lr.ph1006, label %thread-pre-split

.lr.ph1006:                                       ; preds = %522, %.lr.ph1006
  %.36141004 = phi i32 [ %527, %.lr.ph1006 ], [ %.2613, %522 ]
  %525 = phi x86_fp80 [ %526, %.lr.ph1006 ], [ %523, %522 ]
  %526 = fmul x86_fp80 %525, 0xK4019BEBC200000000000
  %527 = add nsw i32 %.36141004, -8
  %528 = fcmp olt x86_fp80 %526, 0xK3FE4ABCC77118461D000
  br i1 %528, label %.lr.ph1006, label %.thread-pre-split_crit_edge, !llvm.loop !41

.thread-pre-split_crit_edge:                      ; preds = %.lr.ph1006
  store x86_fp80 %526, ptr %4, align 16, !tbaa !33
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %.thread-pre-split_crit_edge, %522
  %.pr = phi x86_fp80 [ %526, %.thread-pre-split_crit_edge ], [ %523, %522 ]
  %.3614.lcssa = phi i32 [ %527, %.thread-pre-split_crit_edge ], [ %.2613, %522 ]
  %529 = fcmp olt x86_fp80 %.pr, 0xK3FFF8000000000000000
  br i1 %529, label %.lr.ph1010, label %534

.lr.ph1010:                                       ; preds = %thread-pre-split, %.lr.ph1010
  %.46151009 = phi i32 [ %532, %.lr.ph1010 ], [ %.3614.lcssa, %thread-pre-split ]
  %530 = phi x86_fp80 [ %531, %.lr.ph1010 ], [ %.pr, %thread-pre-split ]
  %531 = fmul x86_fp80 %530, 0xK4002A000000000000000
  %532 = add nsw i32 %.46151009, -1
  %533 = fcmp olt x86_fp80 %531, 0xK3FFF8000000000000000
  br i1 %533, label %.lr.ph1010, label %._crit_edge1011, !llvm.loop !42

._crit_edge1011:                                  ; preds = %.lr.ph1010
  store x86_fp80 %531, ptr %4, align 16, !tbaa !33
  br label %534

534:                                              ; preds = %._crit_edge1011, %thread-pre-split
  %535 = phi x86_fp80 [ %531, %._crit_edge1011 ], [ %.pr, %thread-pre-split ]
  %.4615.lcssa = phi i32 [ %532, %._crit_edge1011 ], [ %.3614.lcssa, %thread-pre-split ]
  %536 = icmp sgt i32 %.4615.lcssa, 350
  br i1 %536, label %537, label %.thread806

537:                                              ; preds = %534
  store i8 %.2643, ptr %6, align 16, !tbaa !12
  %538 = icmp ne i8 %.2643, 0
  %539 = zext i1 %538 to i64
  %540 = getelementptr inbounds i8, ptr %6, i64 %539
  store i32 %38, ptr %540, align 1
  %541 = select i1 %538, i32 4, i32 3
  br label %.critedge28.thread

.thread806:                                       ; preds = %534, %505
  %542 = phi x86_fp80 [ %506, %505 ], [ %535, %534 ]
  %.5616 = phi i32 [ 0, %505 ], [ %.4615.lcssa, %534 ]
  br i1 %497, label %.thread811, label %543

543:                                              ; preds = %.thread806
  %544 = fpext double %.0606.lcssa to x86_fp80
  %545 = fadd x86_fp80 %542, %544
  store x86_fp80 %545, ptr %4, align 16, !tbaa !33
  %546 = fcmp ult x86_fp80 %545, 0xK4002A000000000000000
  br i1 %546, label %550, label %547

547:                                              ; preds = %543
  %548 = fmul x86_fp80 %545, 0xK3FFBCCCCCCCCCCCCD000
  store x86_fp80 %548, ptr %4, align 16, !tbaa !33
  %549 = add nsw i32 %.5616, 1
  br label %550

550:                                              ; preds = %543, %547
  %.6617 = phi i32 [ %549, %547 ], [ %.5616, %543 ]
  br i1 %479, label %551, label %.thread811

551:                                              ; preds = %550
  %.not739 = icmp eq i8 %.1573792, 0
  %552 = zext i1 %.not739 to i8
  %553 = icmp slt i32 %.6617, -4
  %554 = icmp sgt i32 %.6617, %spec.select762
  %or.cond = or i1 %553, %554
  %spec.select769 = select i1 %or.cond, i8 2, i8 1
  %555 = select i1 %or.cond, i32 0, i32 %.6617
  %spec.select770 = sub nsw i32 %spec.select762, %555
  br label %.thread811

.thread811:                                       ; preds = %.thread806, %551, %550
  %.6617813 = phi i32 [ %.6617, %550 ], [ %.6617, %551 ], [ %.5616, %.thread806 ]
  %.1646 = phi i8 [ %249, %550 ], [ %spec.select769, %551 ], [ 1, %.thread806 ]
  %.0602 = phi i8 [ %.1576790, %550 ], [ %552, %551 ], [ %.1576790, %.thread806 ]
  %.7511 = phi i32 [ %spec.select762, %550 ], [ %spec.select770, %551 ], [ %spec.select762, %.thread806 ]
  %556 = icmp eq i8 %.1646, 2
  %..6617 = select i1 %556, i32 0, i32 %.6617813
  %557 = call i32 @llvm.smax.i32(i32 %..6617, i32 0)
  %558 = zext nneg i32 %557 to i64
  %559 = sext i32 %.7511 to i64
  %560 = zext nneg i32 %.3537798 to i64
  %561 = add nsw i64 %559, %560
  %562 = add nsw i64 %561, %558
  %563 = icmp sgt i64 %562, 55
  br i1 %563, label %564, label %568

564:                                              ; preds = %.thread811
  %565 = add nuw nsw i64 %562, 15
  %566 = call ptr @printfTempBuf(ptr noundef %0, i64 noundef %565)
  %567 = icmp eq ptr %566, null
  br i1 %567, label %.thread803, label %568

568:                                              ; preds = %564, %.thread811
  %.3623.ph = phi ptr [ null, %.thread811 ], [ %566, %564 ]
  %.11.ph = phi ptr [ %6, %.thread811 ], [ %566, %564 ]
  %569 = zext nneg i8 %.1576790 to i32
  %570 = mul nuw nsw i32 %569, 10
  %571 = add nuw nsw i32 %570, 16
  store i32 %571, ptr %5, align 4, !tbaa !15
  %572 = icmp sgt i32 %.7511, 0
  %573 = zext i1 %572 to i8
  %574 = or i8 %.1573792, %573
  %575 = or i8 %574, %.1576790
  %.not740 = icmp eq i8 %.2643, 0
  br i1 %.not740, label %578, label %576

576:                                              ; preds = %568
  %577 = getelementptr inbounds i8, ptr %.11.ph, i64 1
  store i8 %.2643, ptr %.11.ph, align 1, !tbaa !12
  br label %578

578:                                              ; preds = %576, %568
  %.12 = phi ptr [ %577, %576 ], [ %.11.ph, %568 ]
  %579 = icmp slt i32 %..6617, 0
  br i1 %579, label %580, label %.preheader871

580:                                              ; preds = %578
  %581 = getelementptr inbounds i8, ptr %.12, i64 1
  store i8 48, ptr %.12, align 1, !tbaa !12
  br label %.loopexit872

.preheader871:                                    ; preds = %578, %.preheader871
  %.131015 = phi ptr [ %583, %.preheader871 ], [ %.12, %578 ]
  %.16081014 = phi i32 [ %584, %.preheader871 ], [ %..6617, %578 ]
  %582 = call signext i8 @et_getdigit(ptr noundef nonnull %4, ptr noundef nonnull %5)
  %583 = getelementptr inbounds i8, ptr %.131015, i64 1
  store i8 %582, ptr %.131015, align 1, !tbaa !12
  %584 = add nsw i32 %.16081014, -1
  %.not1191 = icmp eq i32 %.16081014, 0
  br i1 %.not1191, label %.loopexit872, label %.preheader871, !llvm.loop !43

.loopexit872:                                     ; preds = %.preheader871, %580
  %.2609 = phi i32 [ %.6617813, %580 ], [ -1, %.preheader871 ]
  %.14 = phi ptr [ %581, %580 ], [ %583, %.preheader871 ]
  %.not741 = icmp eq i8 %575, 0
  br i1 %.not741, label %587, label %585

585:                                              ; preds = %.loopexit872
  %586 = getelementptr inbounds i8, ptr %.14, i64 1
  store i8 46, ptr %.14, align 1, !tbaa !12
  br label %587

587:                                              ; preds = %585, %.loopexit872
  %.15 = phi ptr [ %586, %585 ], [ %.14, %.loopexit872 ]
  %588 = icmp slt i32 %.2609, -1
  br i1 %588, label %.lr.ph1020.preheader, label %.preheader870

.lr.ph1020.preheader:                             ; preds = %587
  %589 = sub nuw nsw i32 -2, %.2609
  %590 = zext nneg i32 %589 to i64
  %591 = add nuw nsw i64 %590, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %.15, i8 48, i64 %591, i1 false), !tbaa !12
  %592 = add i32 %.7511, 1
  %scevgep = getelementptr i8, ptr %.15, i64 1
  %scevgep1125 = getelementptr i8, ptr %scevgep, i64 %590
  %593 = add i32 %592, %.2609
  br label %.preheader870

.preheader870:                                    ; preds = %.lr.ph1020.preheader, %587
  %.8512.lcssa = phi i32 [ %.7511, %587 ], [ %593, %.lr.ph1020.preheader ]
  %.16.lcssa = phi ptr [ %.15, %587 ], [ %scevgep1125, %.lr.ph1020.preheader ]
  %594 = icmp sgt i32 %.8512.lcssa, 0
  br i1 %594, label %.lr.ph1025, label %._crit_edge1026

.lr.ph1025:                                       ; preds = %.preheader870, %.lr.ph1025
  %.171024 = phi ptr [ %597, %.lr.ph1025 ], [ %.16.lcssa, %.preheader870 ]
  %.95131023 = phi i32 [ %595, %.lr.ph1025 ], [ %.8512.lcssa, %.preheader870 ]
  %595 = add nsw i32 %.95131023, -1
  %596 = call signext i8 @et_getdigit(ptr noundef nonnull %4, ptr noundef nonnull %5)
  %597 = getelementptr inbounds i8, ptr %.171024, i64 1
  store i8 %596, ptr %.171024, align 1, !tbaa !12
  %598 = icmp ugt i32 %.95131023, 1
  br i1 %598, label %.lr.ph1025, label %._crit_edge1026, !llvm.loop !44

._crit_edge1026:                                  ; preds = %.lr.ph1025, %.preheader870
  %.17.lcssa = phi ptr [ %.16.lcssa, %.preheader870 ], [ %597, %.lr.ph1025 ]
  %599 = icmp ne i8 %.0602, 0
  %600 = icmp ne i8 %575, 0
  %or.cond14 = select i1 %599, i1 %600, i1 false
  br i1 %or.cond14, label %.preheader868, label %.loopexit869

.preheader868:                                    ; preds = %._crit_edge1026, %603
  %.18 = phi ptr [ %601, %603 ], [ %.17.lcssa, %._crit_edge1026 ]
  %601 = getelementptr inbounds i8, ptr %.18, i64 -1
  %602 = load i8, ptr %601, align 1, !tbaa !12
  switch i8 %602, label %.loopexit869 [
    i8 48, label %603
    i8 46, label %604
  ]

603:                                              ; preds = %.preheader868
  store i8 0, ptr %601, align 1, !tbaa !12
  br label %.preheader868, !llvm.loop !45

604:                                              ; preds = %.preheader868
  %.not742 = icmp eq i8 %.1576790, 0
  br i1 %.not742, label %607, label %605

605:                                              ; preds = %604
  %606 = getelementptr inbounds i8, ptr %.18, i64 1
  store i8 48, ptr %.18, align 1, !tbaa !12
  br label %.loopexit869

607:                                              ; preds = %604
  store i8 0, ptr %601, align 1, !tbaa !12
  br label %.loopexit869

.loopexit869:                                     ; preds = %.preheader868, %607, %605, %._crit_edge1026
  %.19 = phi ptr [ %606, %605 ], [ %601, %607 ], [ %.17.lcssa, %._crit_edge1026 ], [ %.18, %.preheader868 ]
  br i1 %556, label %608, label %630

608:                                              ; preds = %.loopexit869
  %609 = getelementptr inbounds i8, ptr %.lcssa1090, i64 4
  %610 = load i8, ptr %609, align 1, !tbaa !25
  %611 = zext i8 %610 to i64
  %612 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %611
  %613 = load i8, ptr %612, align 1, !tbaa !12
  %614 = getelementptr inbounds i8, ptr %.19, i64 1
  store i8 %613, ptr %.19, align 1, !tbaa !12
  %615 = icmp slt i32 %.6617813, 0
  %spec.select1189 = select i1 %615, i8 45, i8 43
  %spec.select1190 = call i32 @llvm.abs.i32(i32 %.6617813, i1 true)
  store i8 %spec.select1189, ptr %614, align 1
  %.20 = getelementptr inbounds i8, ptr %.19, i64 2
  %616 = icmp ugt i32 %spec.select1190, 99
  br i1 %616, label %617, label %623

617:                                              ; preds = %608
  %618 = udiv i32 %spec.select1190, 100
  %619 = trunc i32 %618 to i8
  %620 = add i8 %619, 48
  %621 = getelementptr inbounds i8, ptr %.19, i64 3
  store i8 %620, ptr %.20, align 1, !tbaa !12
  %622 = urem i32 %spec.select1190, 100
  br label %623

623:                                              ; preds = %617, %608
  %.8619 = phi i32 [ %622, %617 ], [ %spec.select1190, %608 ]
  %.21 = phi ptr [ %621, %617 ], [ %.20, %608 ]
  %.lhs.trunc = trunc nuw i32 %.8619 to i8
  %624 = udiv i8 %.lhs.trunc, 10
  %625 = or disjoint i8 %624, 48
  %626 = getelementptr inbounds i8, ptr %.21, i64 1
  store i8 %625, ptr %.21, align 1, !tbaa !12
  %627 = urem i8 %.lhs.trunc, 10
  %628 = or disjoint i8 %627, 48
  %629 = getelementptr inbounds i8, ptr %.21, i64 2
  store i8 %628, ptr %626, align 1, !tbaa !12
  br label %630

630:                                              ; preds = %623, %.loopexit869
  %.22 = phi ptr [ %629, %623 ], [ %.19, %.loopexit869 ]
  store i8 0, ptr %.22, align 1, !tbaa !12
  %631 = ptrtoint ptr %.22 to i64
  %632 = ptrtoint ptr %.11.ph to i64
  %633 = sub i64 %631, %632
  %634 = trunc i64 %633 to i32
  %635 = icmp ne i8 %.1584788, 0
  %636 = icmp eq i8 %.2563796, 0
  %or.cond16.not859 = select i1 %635, i1 %636, i1 false
  %637 = icmp sgt i32 %.3537798, %634
  %or.cond763 = select i1 %or.cond16.not859, i1 %637, i1 false
  br i1 %or.cond763, label %638, label %.critedge28.thread

638:                                              ; preds = %630
  %.not7431028 = icmp slt i32 %634, 0
  br i1 %.not7431028, label %._crit_edge1032, label %iter.check

iter.check:                                       ; preds = %638
  %639 = sub nsw i32 %.3537798, %634
  %640 = sext i32 %.3537798 to i64
  %641 = sext i32 %639 to i64
  %642 = add nsw i64 %640, 1
  %smin1238 = call i64 @llvm.smin.i64(i64 %641, i64 %640)
  %643 = sub i64 %642, %smin1238
  %min.iters.check = icmp ult i64 %643, 4
  br i1 %min.iters.check, label %.lr.ph1031.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %iter.check
  %smin = call i64 @llvm.smin.i64(i64 %641, i64 %640)
  %644 = sub i64 %640, %smin
  %scevgep1233 = getelementptr i8, ptr %.11.ph, i64 %640
  %645 = sub i64 0, %644
  %646 = getelementptr i8, ptr %scevgep1233, i64 %645
  %647 = icmp ugt ptr %646, %scevgep1233
  %648 = and i64 %633, 2147483647
  %scevgep1234 = getelementptr i8, ptr %.11.ph, i64 %648
  %649 = sub i64 0, %644
  %650 = getelementptr i8, ptr %scevgep1234, i64 %649
  %651 = icmp ugt ptr %650, %scevgep1234
  %652 = or i1 %647, %651
  br i1 %652, label %.lr.ph1031.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %653 = and i64 %633, 2147483647
  %654 = sub nsw i64 %653, %640
  %diff.check = icmp ult i64 %654, 16
  br i1 %diff.check, label %.lr.ph1031.preheader, label %vector.main.loop.iter.check

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

vector.ph:                                        ; preds = %vector.main.loop.iter.check
  %n.vec = and i64 %643, -16
  %invariant.gep = getelementptr i8, ptr %.11.ph, i64 -15
  %invariant.gep1359 = 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 %640, %index
  %655 = sub nsw i64 %offset.idx, %641
  %gep = getelementptr i8, ptr %invariant.gep, i64 %655
  %wide.load = load <16 x i8>, ptr %gep, align 1, !tbaa !12
  %gep1360 = getelementptr i8, ptr %invariant.gep1359, i64 %offset.idx
  store <16 x i8> %wide.load, ptr %gep1360, align 1, !tbaa !12
  %index.next = add nuw i64 %index, 16
  %656 = icmp eq i64 %index.next, %n.vec
  br i1 %656, label %middle.block, label %vector.body, !llvm.loop !46

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

vec.epilog.iter.check:                            ; preds = %middle.block
  %ind.end1243 = sub i64 %640, %n.vec
  %n.vec.remaining = and i64 %643, 12
  %min.epilog.iters.check = icmp eq i64 %n.vec.remaining, 0
  br i1 %min.epilog.iters.check, label %.lr.ph1031.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.vec1242 = and i64 %643, -4
  %ind.end = sub i64 %640, %n.vec1242
  %invariant.gep1361 = getelementptr i8, ptr %.11.ph, i64 -3
  %invariant.gep1363 = 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
  %index1244 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next1249, %vec.epilog.vector.body ]
  %offset.idx1245 = sub i64 %640, %index1244
  %657 = sub nsw i64 %offset.idx1245, %641
  %gep1362 = getelementptr i8, ptr %invariant.gep1361, i64 %657
  %wide.load1246 = load <4 x i8>, ptr %gep1362, align 1, !tbaa !12
  %gep1364 = getelementptr i8, ptr %invariant.gep1363, i64 %offset.idx1245
  store <4 x i8> %wide.load1246, ptr %gep1364, align 1, !tbaa !12
  %index.next1249 = add nuw i64 %index1244, 4
  %658 = icmp eq i64 %index.next1249, %n.vec1242
  br i1 %658, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !49

vec.epilog.middle.block:                          ; preds = %vec.epilog.vector.body
  %cmp.n1250 = icmp eq i64 %643, %n.vec1242
  br i1 %cmp.n1250, label %._crit_edge1032, label %.lr.ph1031.preheader

.lr.ph1031.preheader:                             ; preds = %vec.epilog.middle.block, %vector.memcheck, %vector.scevcheck, %iter.check, %vec.epilog.iter.check
  %indvars.iv1128.ph = phi i64 [ %640, %iter.check ], [ %640, %vector.memcheck ], [ %640, %vector.scevcheck ], [ %ind.end1243, %vec.epilog.iter.check ], [ %ind.end, %vec.epilog.middle.block ]
  br label %.lr.ph1031

.lr.ph1031:                                       ; preds = %.lr.ph1031.preheader, %.lr.ph1031
  %indvars.iv1128 = phi i64 [ %indvars.iv.next1129, %.lr.ph1031 ], [ %indvars.iv1128.ph, %.lr.ph1031.preheader ]
  %659 = sub nsw i64 %indvars.iv1128, %641
  %660 = getelementptr inbounds i8, ptr %.11.ph, i64 %659
  %661 = load i8, ptr %660, align 1, !tbaa !12
  %662 = getelementptr inbounds i8, ptr %.11.ph, i64 %indvars.iv1128
  store i8 %661, ptr %662, align 1, !tbaa !12
  %indvars.iv.next1129 = add nsw i64 %indvars.iv1128, -1
  %.not743.not = icmp sgt i64 %indvars.iv1128, %641
  br i1 %.not743.not, label %.lr.ph1031, label %._crit_edge1032, !llvm.loop !50

._crit_edge1032:                                  ; preds = %.lr.ph1031, %middle.block, %vec.epilog.middle.block, %638
  %.not7441033 = icmp eq i32 %.3537798, %634
  br i1 %.not7441033, label %.critedge28.thread, label %.lr.ph1037.preheader

.lr.ph1037.preheader:                             ; preds = %._crit_edge1032
  %663 = icmp ne i8 %.2643, 0
  %664 = zext i1 %663 to i64
  %scevgep1131 = getelementptr i8, ptr %.11.ph, i64 %664
  %665 = add i32 %.3537798, -1
  %666 = trunc i64 %632 to i32
  %667 = add i32 %665, %666
  %668 = trunc i64 %631 to i32
  %669 = sub i32 %667, %668
  %670 = zext i32 %669 to i64
  %671 = add nuw nsw i64 %670, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %scevgep1131, i8 48, i64 %671, i1 false), !tbaa !12
  br label %.critedge28.thread

672:                                              ; preds = %247
  br i1 %.not, label %673, label %.critedge28.thread

673:                                              ; preds = %672
  %674 = load i32, ptr %29, align 8, !tbaa !51
  %675 = load i32, ptr %2, align 8
  %676 = icmp ult i32 %675, 41
  br i1 %676, label %677, label %682

677:                                              ; preds = %673
  %678 = load ptr, ptr %28, align 8
  %679 = zext nneg i32 %675 to i64
  %680 = getelementptr i8, ptr %678, i64 %679
  %681 = add nuw nsw i32 %675, 8
  store i32 %681, ptr %2, align 8
  br label %685

682:                                              ; preds = %673
  %683 = load ptr, ptr %27, align 8
  %684 = getelementptr i8, ptr %683, i64 8
  store ptr %684, ptr %27, align 8
  br label %685

685:                                              ; preds = %682, %677
  %686 = phi ptr [ %680, %677 ], [ %683, %682 ]
  %687 = load ptr, ptr %686, align 8, !tbaa !11
  store i32 %674, ptr %687, align 4, !tbaa !15
  br label %.critedge28.thread

688:                                              ; preds = %247
  store i8 37, ptr %6, align 16, !tbaa !12
  br label %.critedge28.thread

689:                                              ; preds = %247
  br i1 %.not, label %706, label %690

690:                                              ; preds = %689
  %691 = call ptr @getTextArg(ptr noundef %.0601)
  %.not734 = icmp eq ptr %691, null
  br i1 %.not734, label %705, label %692

692:                                              ; preds = %690
  %693 = load i8, ptr %691, align 1, !tbaa !12
  store i8 %693, ptr %6, align 16, !tbaa !12
  %694 = icmp ugt i8 %693, -65
  br i1 %694, label %.preheader878.preheader, label %.critedge18

.preheader878.preheader:                          ; preds = %692
  %.23 = getelementptr inbounds i8, ptr %691, i64 1
  %695 = load i8, ptr %.23, align 1, !tbaa !12
  %696 = and i8 %695, -64
  %697 = icmp eq i8 %696, -128
  br i1 %697, label %.preheader878.1, label %.critedge18

.preheader878.1:                                  ; preds = %.preheader878.preheader
  store i8 %695, ptr %34, align 1, !tbaa !12
  %.23.1 = getelementptr inbounds i8, ptr %691, i64 2
  %698 = load i8, ptr %.23.1, align 1, !tbaa !12
  %699 = and i8 %698, -64
  %700 = icmp eq i8 %699, -128
  br i1 %700, label %.preheader878.2, label %.critedge18

.preheader878.2:                                  ; preds = %.preheader878.1
  store i8 %698, ptr %35, align 2, !tbaa !12
  %.23.2 = getelementptr inbounds i8, ptr %691, i64 3
  %701 = load i8, ptr %.23.2, align 1, !tbaa !12
  %702 = and i8 %701, -64
  %703 = icmp eq i8 %702, -128
  br i1 %703, label %704, label %.critedge18

704:                                              ; preds = %.preheader878.2
  store i8 %701, ptr %36, align 1, !tbaa !12
  br label %.critedge18

705:                                              ; preds = %690
  store i8 0, ptr %6, align 16, !tbaa !12
  br label %.critedge18

706:                                              ; preds = %689
  %707 = load i32, ptr %2, align 8
  %708 = icmp ult i32 %707, 41
  br i1 %708, label %709, label %714

709:                                              ; preds = %706
  %710 = load ptr, ptr %28, align 8
  %711 = zext nneg i32 %707 to i64
  %712 = getelementptr i8, ptr %710, i64 %711
  %713 = add nuw nsw i32 %707, 8
  store i32 %713, ptr %2, align 8
  br label %717

714:                                              ; preds = %706
  %715 = load ptr, ptr %27, align 8
  %716 = getelementptr i8, ptr %715, i64 8
  store ptr %716, ptr %27, align 8
  br label %717

717:                                              ; preds = %714, %709
  %718 = phi ptr [ %712, %709 ], [ %715, %714 ]
  %719 = load i32, ptr %718, align 4, !tbaa !15
  %720 = icmp ult i32 %719, 128
  br i1 %720, label %721, label %723

721:                                              ; preds = %717
  %722 = trunc nuw nsw i32 %719 to i8
  store i8 %722, ptr %6, align 16, !tbaa !12
  br label %.critedge18

723:                                              ; preds = %717
  %724 = icmp ult i32 %719, 2048
  br i1 %724, label %725, label %732

725:                                              ; preds = %723
  %726 = lshr i32 %719, 6
  %727 = trunc nuw i32 %726 to i8
  %728 = or disjoint i8 %727, -64
  store i8 %728, ptr %6, align 16, !tbaa !12
  %729 = trunc i32 %719 to i8
  %730 = and i8 %729, 63
  %731 = or disjoint i8 %730, -128
  store i8 %731, ptr %34, align 1, !tbaa !12
  br label %.critedge18

732:                                              ; preds = %723
  %733 = icmp ult i32 %719, 65536
  br i1 %733, label %734, label %745

734:                                              ; preds = %732
  %735 = lshr i32 %719, 12
  %736 = trunc nuw i32 %735 to i8
  %737 = or disjoint i8 %736, -32
  store i8 %737, ptr %6, align 16, !tbaa !12
  %738 = lshr i32 %719, 6
  %739 = trunc i32 %738 to i8
  %740 = and i8 %739, 63
  %741 = or disjoint i8 %740, -128
  store i8 %741, ptr %34, align 1, !tbaa !12
  %742 = trunc i32 %719 to i8
  %743 = and i8 %742, 63
  %744 = or disjoint i8 %743, -128
  store i8 %744, ptr %35, align 2, !tbaa !12
  br label %.critedge18

745:                                              ; preds = %732
  %746 = lshr i32 %719, 18
  %747 = lshr i32 %719, 12
  %748 = lshr i32 %719, 6
  %749 = trunc i32 %746 to i8
  %750 = insertelement <4 x i8> poison, i8 %749, i64 0
  %751 = trunc i32 %747 to i8
  %752 = insertelement <4 x i8> %750, i8 %751, i64 1
  %753 = trunc i32 %748 to i8
  %754 = insertelement <4 x i8> %752, i8 %753, i64 2
  %755 = trunc i32 %719 to i8
  %756 = insertelement <4 x i8> %754, i8 %755, i64 3
  %757 = and <4 x i8> %756, <i8 7, i8 63, i8 63, i8 63>
  %758 = or disjoint <4 x i8> %757, <i8 -16, i8 -128, i8 -128, i8 -128>
  store <4 x i8> %758, ptr %6, align 16, !tbaa !12
  br label %.critedge18

.critedge18:                                      ; preds = %.preheader878.preheader, %.preheader878.1, %.preheader878.2, %704, %721, %734, %745, %725, %705, %692
  %.5523 = phi i32 [ 1, %692 ], [ 1, %705 ], [ 1, %721 ], [ 2, %725 ], [ 3, %734 ], [ 4, %745 ], [ 1, %.preheader878.preheader ], [ 2, %.preheader878.1 ], [ 3, %.preheader878.2 ], [ 4, %704 ]
  %759 = icmp sgt i32 %.4508800, 1
  br i1 %759, label %760, label %.critedge28

760:                                              ; preds = %.critedge18
  %reass.sub = sub i32 %.3537798, %.4508800
  %761 = add i32 %reass.sub, 1
  %762 = icmp slt i32 %761, 2
  %763 = icmp ne i8 %.2563796, 0
  %or.cond20 = select i1 %762, i1 true, i1 %763
  br i1 %or.cond20, label %.lr.ph993.preheader, label %764

764:                                              ; preds = %760
  call void @sqlite3_str_appendchar(ptr noundef %0, i32 noundef %reass.sub, i8 noundef signext 32)
  br label %.lr.ph993.preheader

.lr.ph993.preheader:                              ; preds = %760, %764
  %.4538 = phi i32 [ %761, %760 ], [ 0, %764 ]
  br label %.lr.ph993

.lr.ph993:                                        ; preds = %.lr.ph993.preheader, %.lr.ph993
  %.10514991 = phi i32 [ %765, %.lr.ph993 ], [ %.4508800, %.lr.ph993.preheader ]
  %765 = add nsw i32 %.10514991, -1
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef nonnull %6, i32 noundef %.5523)
  %766 = icmp ugt i32 %.10514991, 2
  br i1 %766, label %.lr.ph993, label %.critedge28, !llvm.loop !52

767:                                              ; preds = %247, %247
  br i1 %.not, label %768, label %.thread821

768:                                              ; preds = %767
  %769 = load i32, ptr %2, align 8
  %770 = icmp ult i32 %769, 41
  br i1 %770, label %771, label %776

771:                                              ; preds = %768
  %772 = load ptr, ptr %28, align 8
  %773 = zext nneg i32 %769 to i64
  %774 = getelementptr i8, ptr %772, i64 %773
  %775 = add nuw nsw i32 %769, 8
  store i32 %775, ptr %2, align 8
  br label %779

776:                                              ; preds = %768
  %777 = load ptr, ptr %27, align 8
  %778 = getelementptr i8, ptr %777, i64 8
  store ptr %778, ptr %27, align 8
  br label %779

779:                                              ; preds = %771, %776
  %780 = phi ptr [ %774, %771 ], [ %777, %776 ]
  %781 = load ptr, ptr %780, align 8, !tbaa !11
  %782 = icmp eq ptr %781, null
  br i1 %782, label %.thread826, label %785

.thread821:                                       ; preds = %767
  %783 = call ptr @getTextArg(ptr noundef %.0601)
  %784 = icmp eq ptr %783, null
  %spec.select855 = select i1 %784, ptr @.str.3, ptr %783
  br label %.thread826

785:                                              ; preds = %779
  %786 = icmp eq i8 %249, 6
  br i1 %786, label %787, label %.thread826

787:                                              ; preds = %785
  %788 = load i32, ptr %29, align 8, !tbaa !51
  %789 = icmp eq i32 %788, 0
  br i1 %789, label %790, label %.thread826

790:                                              ; preds = %787
  %791 = load i32, ptr %30, align 4, !tbaa !53
  %792 = icmp ne i32 %791, 0
  %793 = icmp eq i32 %.3537798, 0
  %or.cond22 = select i1 %792, i1 %793, i1 false
  %794 = icmp slt i32 %.4508800, 0
  %or.cond24 = select i1 %or.cond22, i1 %794, i1 false
  br i1 %or.cond24, label %795, label %.thread826

795:                                              ; preds = %790
  %796 = load i8, ptr %31, align 4, !tbaa !54
  %797 = icmp eq i8 %796, 0
  br i1 %797, label %798, label %.thread829

798:                                              ; preds = %795
  store ptr %781, ptr %32, align 8, !tbaa !55
  %799 = load ptr, ptr %0, align 8, !tbaa !56
  %800 = call i32 @sqlite3DbMallocSize(ptr noundef %799, ptr noundef nonnull %781)
  store i32 %800, ptr %33, align 8, !tbaa !57
  %801 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %781) #6
  %802 = trunc i64 %801 to i32
  %803 = and i32 %802, 2147483647
  store i32 %803, ptr %29, align 8, !tbaa !51
  %804 = load i8, ptr %7, align 1, !tbaa !5
  %805 = or i8 %804, 4
  store i8 %805, ptr %7, align 1, !tbaa !5
  br label %.critedge28.thread

.thread826:                                       ; preds = %.thread821, %787, %790, %779, %785
  %.4624 = phi ptr [ null, %785 ], [ null, %779 ], [ %781, %790 ], [ %781, %787 ], [ null, %.thread821 ]
  %.25 = phi ptr [ %781, %785 ], [ @.str.3, %779 ], [ %781, %790 ], [ %781, %787 ], [ %spec.select855, %.thread821 ]
  %806 = icmp sgt i32 %.4508800, -1
  br i1 %806, label %807, label %.thread829

807:                                              ; preds = %.thread826
  %.not730 = icmp eq i8 %.1576790, 0
  %.not1058 = icmp eq i32 %.4508800, 0
  br i1 %.not730, label %.preheader879, label %.preheader881

.preheader881:                                    ; preds = %807
  br i1 %.not1058, label %.critedge26, label %.lr.ph982

.preheader879:                                    ; preds = %807
  br i1 %.not1058, label %.critedge28.thread, label %.lr.ph987.preheader

.lr.ph987.preheader:                              ; preds = %.preheader879
  %wide.trip.count1116 = zext nneg i32 %.4508800 to i64
  br label %.lr.ph987

.lr.ph982:                                        ; preds = %.preheader881, %.loopexit
  %.in = phi i32 [ %808, %.loopexit ], [ %.4508800, %.preheader881 ]
  %.0558981 = phi ptr [ %.2560, %.loopexit ], [ %.25, %.preheader881 ]
  %808 = add nsw i32 %.in, -1
  %809 = load i8, ptr %.0558981, align 1, !tbaa !12
  %.not732 = icmp eq i8 %809, 0
  br i1 %.not732, label %.critedge26, label %810

810:                                              ; preds = %.lr.ph982
  %811 = getelementptr inbounds i8, ptr %.0558981, i64 1
  %812 = icmp ugt i8 %809, -65
  br i1 %812, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %810, %.preheader
  %.1559 = phi ptr [ %816, %.preheader ], [ %811, %810 ]
  %813 = load i8, ptr %.1559, align 1, !tbaa !12
  %814 = and i8 %813, -64
  %815 = icmp eq i8 %814, -128
  %816 = getelementptr inbounds i8, ptr %.1559, i64 1
  br i1 %815, label %.preheader, label %.loopexit, !llvm.loop !58

.loopexit:                                        ; preds = %.preheader, %810
  %.2560 = phi ptr [ %811, %810 ], [ %.1559, %.preheader ]
  %817 = icmp sgt i32 %.in, 1
  br i1 %817, label %.lr.ph982, label %.critedge26, !llvm.loop !59

.critedge26:                                      ; preds = %.lr.ph982, %.loopexit, %.preheader881
  %.0558.lcssa = phi ptr [ %.25, %.preheader881 ], [ %.2560, %.loopexit ], [ %.0558981, %.lr.ph982 ]
  %818 = ptrtoint ptr %.0558.lcssa to i64
  %819 = ptrtoint ptr %.25 to i64
  %820 = sub i64 %818, %819
  %821 = trunc i64 %820 to i32
  br label %.critedge28

.lr.ph987:                                        ; preds = %.lr.ph987.preheader, %824
  %indvars.iv1113 = phi i64 [ 0, %.lr.ph987.preheader ], [ %indvars.iv.next1114, %824 ]
  %822 = getelementptr inbounds i8, ptr %.25, i64 %indvars.iv1113
  %823 = load i8, ptr %822, align 1, !tbaa !12
  %.not731 = icmp eq i8 %823, 0
  br i1 %.not731, label %.critedge28.thread.loopexit1146.split.loop.exit1187, label %824

824:                                              ; preds = %.lr.ph987
  %indvars.iv.next1114 = add nuw nsw i64 %indvars.iv1113, 1
  %exitcond1117.not = icmp eq i64 %indvars.iv.next1114, %wide.trip.count1116
  br i1 %exitcond1117.not, label %.critedge28.thread, label %.lr.ph987, !llvm.loop !60

.thread829:                                       ; preds = %795, %.thread826
  %.25833 = phi ptr [ %.25, %.thread826 ], [ %781, %795 ]
  %.4624832 = phi ptr [ %.4624, %.thread826 ], [ %781, %795 ]
  %825 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.25833) #6
  %826 = trunc i64 %825 to i32
  %827 = and i32 %826, 2147483647
  br label %.critedge28

.critedge28:                                      ; preds = %.lr.ph993, %.thread840, %.critedge18, %.thread829, %.critedge26
  %.5625 = phi ptr [ %.4624, %.critedge26 ], [ %.4624832, %.thread829 ], [ null, %.critedge18 ], [ %.6626, %.thread840 ], [ null, %.lr.ph993 ]
  %.2577 = phi i8 [ 1, %.critedge26 ], [ %.1576790, %.thread829 ], [ 1, %.critedge18 ], [ %.1576790, %.thread840 ], [ 1, %.lr.ph993 ]
  %.6540 = phi i32 [ %.3537798, %.critedge26 ], [ %.3537798, %.thread829 ], [ %.3537798, %.critedge18 ], [ %.3537798, %.thread840 ], [ %.4538, %.lr.ph993 ]
  %.7525 = phi i32 [ %821, %.critedge26 ], [ %827, %.thread829 ], [ %.5523, %.critedge18 ], [ %.3552, %.thread840 ], [ %.5523, %.lr.ph993 ]
  %.26 = phi ptr [ %.25, %.critedge26 ], [ %.25833, %.thread829 ], [ %6, %.critedge18 ], [ %.27, %.thread840 ], [ %6, %.lr.ph993 ]
  %828 = icmp ne i8 %.2577, 0
  %829 = icmp sgt i32 %.6540, 0
  %or.cond30 = select i1 %828, i1 %829, i1 false
  %830 = icmp sgt i32 %.7525, 0
  %or.cond1056 = select i1 %or.cond30, i1 %830, i1 false
  br i1 %or.cond1056, label %.lr.ph996.preheader, label %.critedge28.thread

.lr.ph996.preheader:                              ; preds = %.critedge28
  %831 = zext nneg i32 %.7525 to i64
  %min.iters.check1252 = icmp ult i32 %.7525, 8
  br i1 %min.iters.check1252, label %.lr.ph996.preheader1268, label %vector.ph1253

vector.ph1253:                                    ; preds = %.lr.ph996.preheader
  %n.vec1255 = and i64 %831, 2147483640
  %ind.end1256 = and i64 %831, 7
  %832 = insertelement <4 x i32> <i32 poison, i32 0, i32 0, i32 0>, i32 %.6540, i64 0
  br label %vector.body1258

vector.body1258:                                  ; preds = %vector.body1258, %vector.ph1253
  %index1259 = phi i64 [ 0, %vector.ph1253 ], [ %index.next1266, %vector.body1258 ]
  %vec.phi = phi <4 x i32> [ %832, %vector.ph1253 ], [ %846, %vector.body1258 ]
  %vec.phi1260 = phi <4 x i32> [ zeroinitializer, %vector.ph1253 ], [ %847, %vector.body1258 ]
  %833 = xor i64 %index1259, -1
  %834 = add i64 %833, %831
  %835 = getelementptr inbounds i8, ptr %.26, i64 %834
  %836 = getelementptr inbounds i8, ptr %835, i64 -3
  %837 = getelementptr inbounds i8, ptr %835, i64 -7
  %wide.load1262 = load <4 x i8>, ptr %836, align 1, !tbaa !12
  %wide.load1264 = load <4 x i8>, ptr %837, align 1, !tbaa !12
  %838 = and <4 x i8> %wide.load1262, <i8 -64, i8 -64, i8 -64, i8 -64>
  %839 = shufflevector <4 x i8> %838, <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  %840 = and <4 x i8> %wide.load1264, <i8 -64, i8 -64, i8 -64, i8 -64>
  %841 = shufflevector <4 x i8> %840, <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  %842 = icmp eq <4 x i8> %839, <i8 -128, i8 -128, i8 -128, i8 -128>
  %843 = icmp eq <4 x i8> %841, <i8 -128, i8 -128, i8 -128, i8 -128>
  %844 = zext <4 x i1> %842 to <4 x i32>
  %845 = zext <4 x i1> %843 to <4 x i32>
  %846 = add <4 x i32> %vec.phi, %844
  %847 = add <4 x i32> %vec.phi1260, %845
  %index.next1266 = add nuw i64 %index1259, 8
  %848 = icmp eq i64 %index.next1266, %n.vec1255
  br i1 %848, label %middle.block1251, label %vector.body1258, !llvm.loop !61

middle.block1251:                                 ; preds = %vector.body1258
  %bin.rdx = add <4 x i32> %847, %846
  %849 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %bin.rdx)
  %cmp.n1267 = icmp eq i64 %n.vec1255, %831
  br i1 %cmp.n1267, label %.critedge28.thread, label %.lr.ph996.preheader1268

.lr.ph996.preheader1268:                          ; preds = %middle.block1251, %.lr.ph996.preheader
  %indvars.iv1122.ph = phi i64 [ %831, %.lr.ph996.preheader ], [ %ind.end1256, %middle.block1251 ]
  %.7541995.ph = phi i32 [ %.6540, %.lr.ph996.preheader ], [ %849, %middle.block1251 ]
  br label %.lr.ph996

.lr.ph996:                                        ; preds = %.lr.ph996.preheader1268, %.lr.ph996
  %indvars.iv1122 = phi i64 [ %indvars.iv.next1123, %.lr.ph996 ], [ %indvars.iv1122.ph, %.lr.ph996.preheader1268 ]
  %.7541995 = phi i32 [ %spec.select764, %.lr.ph996 ], [ %.7541995.ph, %.lr.ph996.preheader1268 ]
  %indvars.iv.next1123 = add nsw i64 %indvars.iv1122, -1
  %850 = getelementptr inbounds i8, ptr %.26, i64 %indvars.iv.next1123
  %851 = load i8, ptr %850, align 1, !tbaa !12
  %852 = and i8 %851, -64
  %853 = icmp eq i8 %852, -128
  %854 = zext i1 %853 to i32
  %spec.select764 = add nuw nsw i32 %.7541995, %854
  %855 = icmp ugt i64 %indvars.iv1122, 1
  br i1 %855, label %.lr.ph996, label %.critedge28.thread, !llvm.loop !62

856:                                              ; preds = %247, %247, %247
  %857 = icmp eq i8 %249, 14
  %858 = select i1 %857, i8 34, i8 39
  br i1 %.not, label %861, label %859

859:                                              ; preds = %856
  %860 = call ptr @getTextArg(ptr noundef %.0601)
  br label %875

861:                                              ; preds = %856
  %862 = load i32, ptr %2, align 8
  %863 = icmp ult i32 %862, 41
  br i1 %863, label %864, label %869

864:                                              ; preds = %861
  %865 = load ptr, ptr %28, align 8
  %866 = zext nneg i32 %862 to i64
  %867 = getelementptr i8, ptr %865, i64 %866
  %868 = add nuw nsw i32 %862, 8
  store i32 %868, ptr %2, align 8
  br label %872

869:                                              ; preds = %861
  %870 = load ptr, ptr %27, align 8
  %871 = getelementptr i8, ptr %870, i64 8
  store ptr %871, ptr %27, align 8
  br label %872

872:                                              ; preds = %869, %864
  %873 = phi ptr [ %867, %864 ], [ %870, %869 ]
  %874 = load ptr, ptr %873, align 8, !tbaa !11
  br label %875

875:                                              ; preds = %872, %859
  %.0516 = phi ptr [ %860, %859 ], [ %874, %872 ]
  %876 = icmp ne ptr %.0516, null
  %877 = icmp eq i8 %249, 10
  %878 = select i1 %877, ptr @.str.4, ptr @.str.5
  %.1517 = select i1 %876, ptr %.0516, ptr %878
  %.not726964 = icmp eq i32 %.4508800, 0
  br i1 %.not726964, label %.critedge32, label %.lr.ph969

.lr.ph969:                                        ; preds = %875
  %.not728 = icmp ne i8 %.1576790, 0
  br label %879

879:                                              ; preds = %.lr.ph969, %.loopexit864
  %.0546967 = phi i32 [ 0, %.lr.ph969 ], [ %spec.select765, %.loopexit864 ]
  %.0548966 = phi i32 [ %.4508800, %.lr.ph969 ], [ %893, %.loopexit864 ]
  %.0553965 = phi i32 [ 0, %.lr.ph969 ], [ %892, %.loopexit864 ]
  %880 = sext i32 %.0553965 to i64
  %881 = getelementptr inbounds i8, ptr %.1517, i64 %880
  %882 = load i8, ptr %881, align 1, !tbaa !12
  %.not727 = icmp eq i8 %882, 0
  br i1 %.not727, label %.critedge32, label %883

883:                                              ; preds = %879
  %884 = icmp eq i8 %882, %858
  %885 = zext i1 %884 to i32
  %spec.select765 = add nuw nsw i32 %.0546967, %885
  %886 = icmp ugt i8 %882, -65
  %or.cond766 = and i1 %.not728, %886
  br i1 %or.cond766, label %.preheader863, label %.loopexit864

.preheader863:                                    ; preds = %883, %.preheader863
  %indvars.iv = phi i64 [ %indvars.iv.next, %.preheader863 ], [ %880, %883 ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %887 = getelementptr inbounds i8, ptr %.1517, i64 %indvars.iv.next
  %888 = load i8, ptr %887, align 1, !tbaa !12
  %889 = and i8 %888, -64
  %890 = icmp eq i8 %889, -128
  br i1 %890, label %.preheader863, label %.loopexit864.loopexit, !llvm.loop !63

.loopexit864.loopexit:                            ; preds = %.preheader863
  %891 = trunc nsw i64 %indvars.iv to i32
  br label %.loopexit864

.loopexit864:                                     ; preds = %.loopexit864.loopexit, %883
  %.2555 = phi i32 [ %.0553965, %883 ], [ %891, %.loopexit864.loopexit ]
  %892 = add nsw i32 %.2555, 1
  %893 = add nsw i32 %.0548966, -1
  %.not726 = icmp eq i32 %893, 0
  br i1 %.not726, label %.critedge32, label %879, !llvm.loop !64

.critedge32:                                      ; preds = %879, %.loopexit864, %875
  %.0553.lcssa = phi i32 [ 0, %875 ], [ %892, %.loopexit864 ], [ %.0553965, %879 ]
  %.0546.lcssa = phi i32 [ 0, %875 ], [ %spec.select765, %.loopexit864 ], [ %.0546967, %879 ]
  %894 = and i1 %877, %876
  %895 = add nsw i32 %.0553.lcssa, 3
  %896 = add nsw i32 %895, %.0546.lcssa
  %897 = icmp sgt i32 %896, 70
  br i1 %897, label %898, label %902

898:                                              ; preds = %.critedge32
  %899 = zext nneg i32 %896 to i64
  %900 = call ptr @printfTempBuf(ptr noundef %0, i64 noundef %899)
  %901 = icmp eq ptr %900, null
  br i1 %901, label %.thread803, label %902

902:                                              ; preds = %.critedge32, %898
  %.6626 = phi ptr [ %900, %898 ], [ null, %.critedge32 ]
  %.27 = phi ptr [ %900, %898 ], [ %6, %.critedge32 ]
  br i1 %894, label %903, label %904

903:                                              ; preds = %902
  store i8 39, ptr %.27, align 1, !tbaa !12
  br label %904

904:                                              ; preds = %903, %902
  %.0549 = phi i32 [ 1, %903 ], [ 0, %902 ]
  %905 = icmp sgt i32 %.0553.lcssa, 0
  br i1 %905, label %.lr.ph978.preheader, label %._crit_edge979

.lr.ph978.preheader:                              ; preds = %904
  %wide.trip.count = zext nneg i32 %.0553.lcssa to i64
  %xtraiter = and i64 %wide.trip.count, 1
  %906 = icmp eq i32 %.0553.lcssa, 1
  br i1 %906, label %._crit_edge979.loopexit.unr-lcssa, label %.lr.ph978.preheader.new

.lr.ph978.preheader.new:                          ; preds = %.lr.ph978.preheader
  %unroll_iter = and i64 %wide.trip.count, 2147483646
  br label %.lr.ph978

.lr.ph978:                                        ; preds = %927, %.lr.ph978.preheader.new
  %indvars.iv1110 = phi i64 [ 0, %.lr.ph978.preheader.new ], [ %indvars.iv.next1111.1, %927 ]
  %.1550976 = phi i32 [ %.0549, %.lr.ph978.preheader.new ], [ %.2551.1, %927 ]
  %niter = phi i64 [ 0, %.lr.ph978.preheader.new ], [ %niter.next.1, %927 ]
  %907 = getelementptr inbounds i8, ptr %.1517, i64 %indvars.iv1110
  %908 = load i8, ptr %907, align 1, !tbaa !12
  %909 = add nsw i32 %.1550976, 1
  %910 = sext i32 %.1550976 to i64
  %911 = getelementptr inbounds i8, ptr %.27, i64 %910
  store i8 %908, ptr %911, align 1, !tbaa !12
  %912 = icmp eq i8 %908, %858
  br i1 %912, label %913, label %.lr.ph978.1

913:                                              ; preds = %.lr.ph978
  %914 = add nsw i32 %.1550976, 2
  %915 = sext i32 %909 to i64
  %916 = getelementptr inbounds i8, ptr %.27, i64 %915
  store i8 %858, ptr %916, align 1, !tbaa !12
  br label %.lr.ph978.1

.lr.ph978.1:                                      ; preds = %.lr.ph978, %913
  %.2551 = phi i32 [ %914, %913 ], [ %909, %.lr.ph978 ]
  %indvars.iv.next1111 = or disjoint i64 %indvars.iv1110, 1
  %917 = getelementptr inbounds i8, ptr %.1517, i64 %indvars.iv.next1111
  %918 = load i8, ptr %917, align 1, !tbaa !12
  %919 = add nsw i32 %.2551, 1
  %920 = sext i32 %.2551 to i64
  %921 = getelementptr inbounds i8, ptr %.27, i64 %920
  store i8 %918, ptr %921, align 1, !tbaa !12
  %922 = icmp eq i8 %918, %858
  br i1 %922, label %923, label %927

923:                                              ; preds = %.lr.ph978.1
  %924 = add nsw i32 %.2551, 2
  %925 = sext i32 %919 to i64
  %926 = getelementptr inbounds i8, ptr %.27, i64 %925
  store i8 %858, ptr %926, align 1, !tbaa !12
  br label %927

927:                                              ; preds = %923, %.lr.ph978.1
  %.2551.1 = phi i32 [ %924, %923 ], [ %919, %.lr.ph978.1 ]
  %indvars.iv.next1111.1 = add nuw nsw i64 %indvars.iv1110, 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_edge979.loopexit.unr-lcssa, label %.lr.ph978, !llvm.loop !65

._crit_edge979.loopexit.unr-lcssa:                ; preds = %927, %.lr.ph978.preheader
  %.2551.lcssa.ph = phi i32 [ poison, %.lr.ph978.preheader ], [ %.2551.1, %927 ]
  %indvars.iv1110.unr = phi i64 [ 0, %.lr.ph978.preheader ], [ %indvars.iv.next1111.1, %927 ]
  %.1550976.unr = phi i32 [ %.0549, %.lr.ph978.preheader ], [ %.2551.1, %927 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge979, label %.lr.ph978.epil

.lr.ph978.epil:                                   ; preds = %._crit_edge979.loopexit.unr-lcssa
  %928 = getelementptr inbounds i8, ptr %.1517, i64 %indvars.iv1110.unr
  %929 = load i8, ptr %928, align 1, !tbaa !12
  %930 = add nsw i32 %.1550976.unr, 1
  %931 = sext i32 %.1550976.unr to i64
  %932 = getelementptr inbounds i8, ptr %.27, i64 %931
  store i8 %929, ptr %932, align 1, !tbaa !12
  %933 = icmp eq i8 %929, %858
  br i1 %933, label %934, label %._crit_edge979

934:                                              ; preds = %.lr.ph978.epil
  %935 = add nsw i32 %.1550976.unr, 2
  %936 = sext i32 %930 to i64
  %937 = getelementptr inbounds i8, ptr %.27, i64 %936
  store i8 %858, ptr %937, align 1, !tbaa !12
  br label %._crit_edge979

._crit_edge979:                                   ; preds = %._crit_edge979.loopexit.unr-lcssa, %934, %.lr.ph978.epil, %904
  %.1550.lcssa = phi i32 [ %.0549, %904 ], [ %.2551.lcssa.ph, %._crit_edge979.loopexit.unr-lcssa ], [ %935, %934 ], [ %930, %.lr.ph978.epil ]
  br i1 %894, label %938, label %.thread840

938:                                              ; preds = %._crit_edge979
  %939 = add nsw i32 %.1550.lcssa, 1
  %940 = sext i32 %.1550.lcssa to i64
  %941 = getelementptr inbounds i8, ptr %.27, i64 %940
  store i8 39, ptr %941, align 1, !tbaa !12
  br label %.thread840

.thread840:                                       ; preds = %._crit_edge979, %938
  %.3552 = phi i32 [ %939, %938 ], [ %.1550.lcssa, %._crit_edge979 ]
  %942 = sext i32 %.3552 to i64
  %943 = getelementptr inbounds i8, ptr %.27, i64 %942
  store i8 0, ptr %943, align 1, !tbaa !12
  br label %.critedge28

944:                                              ; preds = %247
  %945 = load i8, ptr %7, align 1, !tbaa !5
  %946 = and i8 %945, 1
  %.not724 = icmp eq i8 %946, 0
  br i1 %.not724, label %.thread803, label %947

947:                                              ; preds = %944
  %948 = load i32, ptr %2, align 8
  %949 = icmp ult i32 %948, 41
  br i1 %949, label %950, label %955

950:                                              ; preds = %947
  %951 = load ptr, ptr %28, align 8
  %952 = zext nneg i32 %948 to i64
  %953 = getelementptr i8, ptr %951, i64 %952
  %954 = add nuw nsw i32 %948, 8
  store i32 %954, ptr %2, align 8
  br label %958

955:                                              ; preds = %947
  %956 = load ptr, ptr %27, align 8
  %957 = getelementptr i8, ptr %956, i64 8
  store ptr %957, ptr %27, align 8
  br label %958

958:                                              ; preds = %955, %950
  %959 = phi ptr [ %953, %950 ], [ %956, %955 ]
  %960 = load ptr, ptr %959, align 8, !tbaa !11
  %.not722 = icmp eq ptr %960, null
  br i1 %.not722, label %.critedge28.thread, label %961

961:                                              ; preds = %958
  %962 = getelementptr inbounds i8, ptr %960, i64 8
  %963 = load i32, ptr %962, align 8, !tbaa !66
  %.not723 = icmp eq i32 %963, 0
  br i1 %.not723, label %.critedge28.thread, label %964

964:                                              ; preds = %961
  %965 = load ptr, ptr %960, align 8, !tbaa !68
  call void @sqlite3_str_append(ptr noundef nonnull %0, ptr noundef %965, i32 noundef %963)
  br label %.critedge28.thread

966:                                              ; preds = %247
  %967 = load i8, ptr %7, align 1, !tbaa !5
  %968 = and i8 %967, 1
  %.not721 = icmp eq i8 %968, 0
  br i1 %.not721, label %.thread803, label %969

969:                                              ; preds = %966
  %970 = load i32, ptr %2, align 8
  %971 = icmp ult i32 %970, 41
  br i1 %971, label %975, label %.thread

.thread:                                          ; preds = %969
  %972 = load ptr, ptr %27, align 8
  %973 = getelementptr i8, ptr %972, i64 8
  store ptr %973, ptr %27, align 8
  %974 = load ptr, ptr %972, align 8, !tbaa !11
  br label %987

975:                                              ; preds = %969
  %976 = load ptr, ptr %28, align 8
  %977 = zext nneg i32 %970 to i64
  %978 = getelementptr i8, ptr %976, i64 %977
  %979 = add nuw nsw i32 %970, 8
  store i32 %979, ptr %2, align 8
  %980 = load ptr, ptr %978, align 8, !tbaa !11
  %981 = icmp ult i32 %970, 33
  br i1 %981, label %982, label %987

982:                                              ; preds = %975
  %983 = load ptr, ptr %28, align 8
  %984 = zext nneg i32 %979 to i64
  %985 = getelementptr i8, ptr %983, i64 %984
  %986 = add nuw nsw i32 %970, 16
  store i32 %986, ptr %2, align 8
  br label %991

987:                                              ; preds = %.thread, %975
  %988 = phi ptr [ %974, %.thread ], [ %980, %975 ]
  %989 = load ptr, ptr %27, align 8
  %990 = getelementptr i8, ptr %989, i64 8
  store ptr %990, ptr %27, align 8
  br label %991

991:                                              ; preds = %987, %982
  %992 = phi ptr [ %980, %982 ], [ %988, %987 ]
  %993 = phi ptr [ %985, %982 ], [ %989, %987 ]
  %994 = load i32, ptr %993, align 4, !tbaa !15
  %995 = getelementptr inbounds i8, ptr %992, i64 8
  %996 = sext i32 %994 to i64
  %997 = getelementptr inbounds [1 x %struct.SrcList_item], ptr %995, i64 0, i64 %996
  %998 = getelementptr inbounds i8, ptr %997, i64 8
  %999 = load ptr, ptr %998, align 8, !tbaa !69
  %.not720 = icmp eq ptr %999, null
  br i1 %.not720, label %1001, label %1000

1000:                                             ; preds = %991
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef nonnull %999)
  call void @sqlite3_str_append(ptr noundef nonnull %0, ptr noundef nonnull @.str.6, i32 noundef 1)
  br label %1001

1001:                                             ; preds = %991, %1000
  %1002 = getelementptr inbounds i8, ptr %997, i64 16
  %1003 = load ptr, ptr %1002, align 8, !tbaa !72
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef %1003)
  br label %.critedge28.thread

.critedge28.thread.loopexit1146.split.loop.exit1187: ; preds = %.lr.ph987
  %1004 = trunc nuw nsw i64 %indvars.iv1113 to i32
  br label %.critedge28.thread

.critedge28.thread:                               ; preds = %824, %.lr.ph996, %middle.block1251, %.critedge28.thread.loopexit1146.split.loop.exit1187, %.lr.ph1037.preheader, %.preheader879, %._crit_edge1032, %964, %961, %958, %1001, %537, %672, %685, %501, %.critedge28, %630, %798, %688, %.loopexit866
  %.8628 = phi ptr [ null, %1001 ], [ %.5625, %.critedge28 ], [ null, %798 ], [ null, %688 ], [ null, %537 ], [ %.3623.ph, %630 ], [ %.1621, %.loopexit866 ], [ null, %501 ], [ null, %685 ], [ null, %672 ], [ null, %958 ], [ null, %961 ], [ null, %964 ], [ %.3623.ph, %._crit_edge1032 ], [ %.4624, %.preheader879 ], [ %.3623.ph, %.lr.ph1037.preheader ], [ %.4624, %.critedge28.thread.loopexit1146.split.loop.exit1187 ], [ %.5625, %middle.block1251 ], [ %.5625, %.lr.ph996 ], [ %.4624, %824 ]
  %.11545 = phi i32 [ 0, %1001 ], [ %.6540, %.critedge28 ], [ 0, %798 ], [ %.3537798, %688 ], [ %.3537798, %537 ], [ %.3537798, %630 ], [ %.3537798, %.loopexit866 ], [ %.3537798, %501 ], [ 0, %685 ], [ 0, %672 ], [ 0, %958 ], [ 0, %961 ], [ 0, %964 ], [ %.3537798, %._crit_edge1032 ], [ %.3537798, %.preheader879 ], [ %.3537798, %.lr.ph1037.preheader ], [ %.3537798, %.critedge28.thread.loopexit1146.split.loop.exit1187 ], [ %849, %middle.block1251 ], [ %spec.select764, %.lr.ph996 ], [ %.3537798, %824 ]
  %.11529 = phi i32 [ 0, %1001 ], [ %.7525, %.critedge28 ], [ 0, %798 ], [ 1, %688 ], [ %541, %537 ], [ %634, %630 ], [ %457, %.loopexit866 ], [ 3, %501 ], [ 0, %685 ], [ 0, %672 ], [ 0, %958 ], [ 0, %961 ], [ 0, %964 ], [ %.3537798, %._crit_edge1032 ], [ 0, %.preheader879 ], [ %.3537798, %.lr.ph1037.preheader ], [ %1004, %.critedge28.thread.loopexit1146.split.loop.exit1187 ], [ %.7525, %middle.block1251 ], [ %.7525, %.lr.ph996 ], [ %.4508800, %824 ]
  %.29 = phi ptr [ %.1494, %1001 ], [ %.26, %.critedge28 ], [ %781, %798 ], [ %6, %688 ], [ %6, %537 ], [ %.11.ph, %630 ], [ %.8501, %.loopexit866 ], [ @.str.1, %501 ], [ %.1494, %685 ], [ %.1494, %672 ], [ %.1494, %958 ], [ %.1494, %961 ], [ %.1494, %964 ], [ %.11.ph, %._crit_edge1032 ], [ %.25, %.preheader879 ], [ %.11.ph, %.lr.ph1037.preheader ], [ %.25, %.critedge28.thread.loopexit1146.split.loop.exit1187 ], [ %.26, %middle.block1251 ], [ %.26, %.lr.ph996 ], [ %.25, %824 ]
  %1005 = sub nsw i32 %.11545, %.11529
  %1006 = icmp sgt i32 %1005, 0
  br i1 %1006, label %1007, label %1009

1007:                                             ; preds = %.critedge28.thread
  %.not759 = icmp eq i8 %.2563796, 0
  br i1 %.not759, label %1008, label %.critedge768

1008:                                             ; preds = %1007
  call void @sqlite3_str_appendchar(ptr noundef %0, i32 noundef %1005, i8 noundef signext 32)
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.29, i32 noundef %.11529)
  br label %1010

.critedge768:                                     ; preds = %1007
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.29, i32 noundef %.11529)
  call void @sqlite3_str_appendchar(ptr noundef %0, i32 noundef %1005, i8 noundef signext 32)
  br label %1010

1009:                                             ; preds = %.critedge28.thread
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.29, i32 noundef %.11529)
  br label %1010

1010:                                             ; preds = %1008, %.critedge768, %1009
  %.not760 = icmp eq ptr %.8628, null
  br i1 %.not760, label %1013, label %1011

1011:                                             ; preds = %1010
  %1012 = load ptr, ptr %0, align 8, !tbaa !56
  call void @sqlite3DbFree(ptr noundef %1012, ptr noundef nonnull %.8628)
  br label %1013

1013:                                             ; preds = %1010, %1011
  %1014 = getelementptr inbounds i8, ptr %.10, i64 1
  br label %85, !llvm.loop !73

.thread803:                                       ; preds = %966, %944, %898, %564, %.critedge, %85, %247, %357, %245, %99
  call void @llvm.lifetime.end.p0(i64 70, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #5
  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 i32 @sqlite3IsNaN(double noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden signext i8 @et_getdigit(ptr noundef, ptr noundef) local_unnamed_addr #1

; 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 @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 #2

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.abs.i64(i64, i1 immarg) #3

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smin.i64(i64, i64) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.vector.reduce.add.v4i32(<4 x i32>) #3

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 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 #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nounwind }
attributes #6 = { 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, !34, i64 0}
!34 = !{!"long double", !8, i64 0}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.unroll.disable"}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14, !47, !48}
!47 = !{!"llvm.loop.isvectorized", i32 1}
!48 = !{!"llvm.loop.unroll.runtime.disable"}
!49 = distinct !{!49, !14, !47, !48}
!50 = distinct !{!50, !14, !47}
!51 = !{!6, !10, i64 24}
!52 = distinct !{!52, !14}
!53 = !{!6, !10, i64 20}
!54 = !{!6, !8, i64 28}
!55 = !{!6, !7, i64 8}
!56 = !{!6, !7, i64 0}
!57 = !{!6, !10, i64 16}
!58 = distinct !{!58, !14}
!59 = distinct !{!59, !14}
!60 = distinct !{!60, !14}
!61 = distinct !{!61, !14, !47, !48}
!62 = distinct !{!62, !14, !48, !47}
!63 = distinct !{!63, !14}
!64 = distinct !{!64, !14}
!65 = distinct !{!65, !14}
!66 = !{!67, !10, i64 8}
!67 = !{!"Token", !7, i64 0, !10, i64 8}
!68 = !{!67, !7, i64 0}
!69 = !{!70, !7, i64 8}
!70 = !{!"SrcList_item", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !10, i64 48, !10, i64 52, !10, i64 56, !71, i64 60, !10, i64 64, !7, i64 72, !7, i64 80, !22, i64 88, !8, i64 96, !7, i64 104}
!71 = !{!"", !8, i64 0, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1}
!72 = !{!70, !7, i64 16}
!73 = distinct !{!73, !14}


; Effective O3 passes: 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