; LLVM IR from muun/libwallet :: vendor/github.com/mattn/go-sqlite3 (sqlite3-binding)

; 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
@arRound = external hidden constant [10 x double], align 16
@.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 double, align 8
  %51 = alloca i64, align 8
  %52 = alloca i32, align 4
  %53 = alloca x86_fp80, align 16
  %54 = alloca i64, align 8
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca ptr, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i8, align 1
  %67 = alloca i8, align 1
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca i32, align 4
  %72 = 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) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #5
  store i8 17, ptr %21, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  store ptr null, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  store ptr null, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 70, ptr %37) #5
  store ptr null, ptr %8, align 8, !tbaa !5
  %73 = load ptr, ptr %4, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.sqlite3_str, ptr %73, i32 0, i32 6
  %75 = load i8, ptr %74, align 1, !tbaa !10
  %76 = zext i8 %75 to i32
  %77 = and i32 %76, 2
  %78 = icmp ne i32 %77, 0
  br i1 %78, label %79, label %96

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

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

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

93:                                               ; preds = %89, %84
  %94 = phi ptr [ %87, %84 ], [ %91, %89 ]
  %95 = load ptr, ptr %94, align 8, !tbaa !5
  store ptr %95, ptr %36, align 8, !tbaa !5
  store i8 1, ptr %22, align 1, !tbaa !9
  br label %97

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

97:                                               ; preds = %96, %93
  br label %98

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

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

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

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

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

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

121:                                              ; preds = %116, %111
  %122 = phi i1 [ false, %111 ], [ %120, %116 ]
  br i1 %122, label %108, label %123, !llvm.loop !14

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

136:                                              ; preds = %123
  br label %1964

137:                                              ; preds = %123
  br label %138

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

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

146:                                              ; preds = %138
  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 %147

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

149:                                              ; preds = %147
  store i8 1, ptr %13, align 1, !tbaa !9
  br label %332

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

151:                                              ; preds = %147
  store i8 32, ptr %14, align 1, !tbaa !9
  br label %332

152:                                              ; preds = %147
  store i8 1, ptr %15, align 1, !tbaa !9
  br label %332

153:                                              ; preds = %147
  store i8 1, ptr %16, align 1, !tbaa !9
  br label %332

154:                                              ; preds = %147
  store i8 1, ptr %17, align 1, !tbaa !9
  br label %332

155:                                              ; preds = %147
  store i8 44, ptr %20, align 1, !tbaa !9
  br label %332

156:                                              ; preds = %147
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %332

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

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

169:                                              ; preds = %164, %157
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %332

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

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

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

182:                                              ; preds = %179, %173
  %183 = phi i1 [ false, %173 ], [ %181, %179 ]
  br i1 %183, label %184, label %190

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

190:                                              ; preds = %182
  %191 = load i32, ptr %38, align 4, !tbaa !13
  %192 = and i32 %191, 2147483647
  store i32 %192, ptr %12, align 4, !tbaa !13
  %193 = load i32, ptr %7, align 4, !tbaa !13
  %194 = icmp ne i32 %193, 46
  br i1 %194, label %195, label %199

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

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

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

202:                                              ; preds = %199, %198
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  br label %332

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

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

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

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

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

224:                                              ; preds = %220, %215
  %225 = phi ptr [ %218, %215 ], [ %222, %220 ]
  %226 = load i32, ptr %225, align 4, !tbaa !13
  store i32 %226, ptr %12, align 4, !tbaa !13
  br label %227

227:                                              ; preds = %224, %206
  %228 = load i32, ptr %12, align 4, !tbaa !13
  %229 = icmp slt i32 %228, 0
  br i1 %229, label %230, label %239

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

233:                                              ; preds = %230
  %234 = load i32, ptr %12, align 4, !tbaa !13
  %235 = sub nsw i32 0, %234
  br label %237

236:                                              ; preds = %230
  br label %237

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

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

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

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

253:                                              ; preds = %248, %245, %239
  br label %332

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

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

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

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

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

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

282:                                              ; preds = %278, %273
  %283 = phi ptr [ %276, %273 ], [ %280, %278 ]
  %284 = load i32, ptr %283, align 4, !tbaa !13
  store i32 %284, ptr %9, align 4, !tbaa !13
  br label %285

285:                                              ; preds = %282, %264
  %286 = load i32, ptr %9, align 4, !tbaa !13
  %287 = icmp slt i32 %286, 0
  br i1 %287, label %288, label %297

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

291:                                              ; preds = %288
  %292 = load i32, ptr %9, align 4, !tbaa !13
  %293 = sub nsw i32 0, %292
  br label %295

294:                                              ; preds = %288
  br label %295

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

297:                                              ; preds = %295, %285
  %298 = load ptr, ptr %5, align 8, !tbaa !5
  %299 = getelementptr inbounds i8, ptr %298, i32 1
  store ptr %299, ptr %5, align 8, !tbaa !5
  %300 = load i8, ptr %299, align 1, !tbaa !9
  %301 = sext i8 %300 to i32
  store i32 %301, ptr %7, align 4, !tbaa !13
  br label %324

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

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

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

309:                                              ; preds = %306, %303
  %310 = phi i1 [ false, %303 ], [ %308, %306 ]
  br i1 %310, label %311, label %321

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

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

324:                                              ; preds = %321, %297
  %325 = load i32, ptr %7, align 4, !tbaa !13
  %326 = icmp eq i32 %325, 108
  br i1 %326, label %327, label %330

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

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

331:                                              ; preds = %330, %327
  br label %332

332:                                              ; preds = %331, %253, %202, %169, %156, %155, %154, %153, %152, %151, %150, %149
  br label %333

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

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

342:                                              ; preds = %336, %333
  %343 = phi i1 [ false, %333 ], [ %341, %336 ]
  br i1 %343, label %147, label %344, !llvm.loop !18

344:                                              ; preds = %342
  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 %345

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

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

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

364:                                              ; preds = %348
  br label %365

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

368:                                              ; preds = %357, %345
  %369 = load i8, ptr %21, align 1, !tbaa !9
  %370 = zext i8 %369 to i32
  switch i32 %370, label %1925 [
    i32 13, label %371
    i32 15, label %372
    i32 0, label %372
    i32 16, label %373
    i32 1, label %763
    i32 2, label %763
    i32 3, label %763
    i32 4, label %1251
    i32 7, label %1275
    i32 8, label %1278
    i32 5, label %1456
    i32 6, label %1456
    i32 9, label %1636
    i32 10, label %1636
    i32 14, label %1636
    i32 11, label %1819
    i32 12, label %1862
  ]

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

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

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

380:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  %381 = load i8, ptr %22, align 1, !tbaa !9
  %382 = icmp ne i8 %381, 0
  br i1 %382, label %383, label %386

383:                                              ; preds = %380
  %384 = load ptr, ptr %36, align 8, !tbaa !5
  %385 = call i64 @getIntArg(ptr noundef %384)
  store i64 %385, ptr %40, align 8, !tbaa !24
  br label %447

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

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

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

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

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

407:                                              ; preds = %403, %398
  %408 = phi ptr [ %401, %398 ], [ %405, %403 ]
  %409 = load i64, ptr %408, align 8, !tbaa !24
  store i64 %409, ptr %40, align 8, !tbaa !24
  br label %427

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

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

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

424:                                              ; preds = %420, %415
  %425 = phi ptr [ %418, %415 ], [ %422, %420 ]
  %426 = load i64, ptr %425, align 8, !tbaa !26
  store i64 %426, ptr %40, align 8, !tbaa !24
  br label %427

427:                                              ; preds = %424, %407
  br label %446

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

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

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

442:                                              ; preds = %438, %433
  %443 = phi ptr [ %436, %433 ], [ %440, %438 ]
  %444 = load i32, ptr %443, align 4, !tbaa !13
  %445 = sext i32 %444 to i64
  store i64 %445, ptr %40, align 8, !tbaa !24
  br label %446

446:                                              ; preds = %442, %427
  br label %447

447:                                              ; preds = %446, %383
  %448 = load i64, ptr %40, align 8, !tbaa !24
  %449 = icmp slt i64 %448, 0
  br i1 %449, label %450, label %458

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

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

454:                                              ; preds = %450
  %455 = load i64, ptr %40, align 8, !tbaa !24
  %456 = sub nsw i64 0, %455
  store i64 %456, ptr %24, align 8, !tbaa !24
  br label %457

457:                                              ; preds = %454, %453
  store i8 45, ptr %23, align 1, !tbaa !9
  br label %461

458:                                              ; preds = %447
  %459 = load i64, ptr %40, align 8, !tbaa !24
  store i64 %459, ptr %24, align 8, !tbaa !24
  %460 = load i8, ptr %14, align 1, !tbaa !9
  store i8 %460, ptr %23, align 1, !tbaa !9
  br label %461

461:                                              ; preds = %458, %457
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  br label %530

462:                                              ; preds = %373
  %463 = load i8, ptr %22, align 1, !tbaa !9
  %464 = icmp ne i8 %463, 0
  br i1 %464, label %465, label %468

465:                                              ; preds = %462
  %466 = load ptr, ptr %36, align 8, !tbaa !5
  %467 = call i64 @getIntArg(ptr noundef %466)
  store i64 %467, ptr %24, align 8, !tbaa !24
  br label %529

468:                                              ; preds = %462
  %469 = load i8, ptr %18, align 1, !tbaa !9
  %470 = icmp ne i8 %469, 0
  br i1 %470, label %471, label %510

471:                                              ; preds = %468
  %472 = load i8, ptr %18, align 1, !tbaa !9
  %473 = zext i8 %472 to i32
  %474 = icmp eq i32 %473, 2
  br i1 %474, label %475, label %492

475:                                              ; preds = %471
  %476 = load ptr, ptr %6, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.__va_list_tag, ptr %476, i32 0, i32 0
  %478 = load i32, ptr %477, align 8
  %479 = icmp ule i32 %478, 40
  br i1 %479, label %480, label %485

480:                                              ; preds = %475
  %481 = getelementptr inbounds %struct.__va_list_tag, ptr %476, i32 0, i32 3
  %482 = load ptr, ptr %481, align 8
  %483 = getelementptr i8, ptr %482, i32 %478
  %484 = add i32 %478, 8
  store i32 %484, ptr %477, align 8
  br label %489

485:                                              ; preds = %475
  %486 = getelementptr inbounds %struct.__va_list_tag, ptr %476, i32 0, i32 2
  %487 = load ptr, ptr %486, align 8
  %488 = getelementptr i8, ptr %487, i32 8
  store ptr %488, ptr %486, align 8
  br label %489

489:                                              ; preds = %485, %480
  %490 = phi ptr [ %483, %480 ], [ %487, %485 ]
  %491 = load i64, ptr %490, align 8, !tbaa !24
  store i64 %491, ptr %24, align 8, !tbaa !24
  br label %509

492:                                              ; preds = %471
  %493 = load ptr, ptr %6, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.__va_list_tag, ptr %493, i32 0, i32 0
  %495 = load i32, ptr %494, align 8
  %496 = icmp ule i32 %495, 40
  br i1 %496, label %497, label %502

497:                                              ; preds = %492
  %498 = getelementptr inbounds %struct.__va_list_tag, ptr %493, i32 0, i32 3
  %499 = load ptr, ptr %498, align 8
  %500 = getelementptr i8, ptr %499, i32 %495
  %501 = add i32 %495, 8
  store i32 %501, ptr %494, align 8
  br label %506

502:                                              ; preds = %492
  %503 = getelementptr inbounds %struct.__va_list_tag, ptr %493, i32 0, i32 2
  %504 = load ptr, ptr %503, align 8
  %505 = getelementptr i8, ptr %504, i32 8
  store ptr %505, ptr %503, align 8
  br label %506

506:                                              ; preds = %502, %497
  %507 = phi ptr [ %500, %497 ], [ %504, %502 ]
  %508 = load i64, ptr %507, align 8, !tbaa !26
  store i64 %508, ptr %24, align 8, !tbaa !24
  br label %509

509:                                              ; preds = %506, %489
  br label %528

510:                                              ; preds = %468
  %511 = load ptr, ptr %6, align 8, !tbaa !5
  %512 = getelementptr inbounds %struct.__va_list_tag, ptr %511, i32 0, i32 0
  %513 = load i32, ptr %512, align 8
  %514 = icmp ule i32 %513, 40
  br i1 %514, label %515, label %520

515:                                              ; preds = %510
  %516 = getelementptr inbounds %struct.__va_list_tag, ptr %511, i32 0, i32 3
  %517 = load ptr, ptr %516, align 8
  %518 = getelementptr i8, ptr %517, i32 %513
  %519 = add i32 %513, 8
  store i32 %519, ptr %512, align 8
  br label %524

520:                                              ; preds = %510
  %521 = getelementptr inbounds %struct.__va_list_tag, ptr %511, i32 0, i32 2
  %522 = load ptr, ptr %521, align 8
  %523 = getelementptr i8, ptr %522, i32 8
  store ptr %523, ptr %521, align 8
  br label %524

524:                                              ; preds = %520, %515
  %525 = phi ptr [ %518, %515 ], [ %522, %520 ]
  %526 = load i32, ptr %525, align 4, !tbaa !13
  %527 = zext i32 %526 to i64
  store i64 %527, ptr %24, align 8, !tbaa !24
  br label %528

528:                                              ; preds = %524, %509
  br label %529

529:                                              ; preds = %528, %465
  store i8 0, ptr %23, align 1, !tbaa !9
  br label %530

530:                                              ; preds = %529, %461
  %531 = load i64, ptr %24, align 8, !tbaa !24
  %532 = icmp eq i64 %531, 0
  br i1 %532, label %533, label %534

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

534:                                              ; preds = %533, %530
  %535 = load i8, ptr %17, align 1, !tbaa !9
  %536 = zext i8 %535 to i32
  %537 = icmp ne i32 %536, 0
  br i1 %537, label %538, label %554

538:                                              ; preds = %534
  %539 = load i32, ptr %9, align 4, !tbaa !13
  %540 = load i32, ptr %12, align 4, !tbaa !13
  %541 = load i8, ptr %23, align 1, !tbaa !9
  %542 = sext i8 %541 to i32
  %543 = icmp ne i32 %542, 0
  %544 = zext i1 %543 to i32
  %545 = sub nsw i32 %540, %544
  %546 = icmp slt i32 %539, %545
  br i1 %546, label %547, label %554

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

554:                                              ; preds = %547, %538, %534
  %555 = load i32, ptr %9, align 4, !tbaa !13
  %556 = icmp slt i32 %555, 37
  br i1 %556, label %557, label %559

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

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

565:                                              ; preds = %559
  %566 = load i32, ptr %9, align 4, !tbaa !13
  %567 = sdiv i32 %566, 3
  %568 = sext i32 %567 to i64
  %569 = load i64, ptr %41, align 8, !tbaa !24
  %570 = add i64 %569, %568
  store i64 %570, ptr %41, align 8, !tbaa !24
  br label %571

571:                                              ; preds = %565, %559
  %572 = load ptr, ptr %4, align 8, !tbaa !5
  %573 = load i64, ptr %41, align 8, !tbaa !24
  %574 = call ptr @printfTempBuf(ptr noundef %572, i64 noundef %573)
  store ptr %574, ptr %29, align 8, !tbaa !5
  store ptr %574, ptr %27, align 8, !tbaa !5
  %575 = load ptr, ptr %27, align 8, !tbaa !5
  %576 = icmp eq ptr %575, null
  br i1 %576, label %577, label %578

577:                                              ; preds = %571
  store i32 1, ptr %42, align 4
  br label %581

578:                                              ; preds = %571
  %579 = load i64, ptr %41, align 8, !tbaa !24
  %580 = trunc i64 %579 to i32
  store i32 %580, ptr %28, align 4, !tbaa !13
  store i32 0, ptr %42, align 4
  br label %581

581:                                              ; preds = %578, %577
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  %582 = load i32, ptr %42, align 4
  switch i32 %582, label %1965 [
    i32 0, label %583
  ]

583:                                              ; preds = %581
  br label %584

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

593:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  %594 = load i64, ptr %24, align 8, !tbaa !24
  %595 = urem i64 %594, 10
  %596 = trunc i64 %595 to i32
  store i32 %596, ptr %43, align 4, !tbaa !13
  %597 = load i32, ptr %43, align 4, !tbaa !13
  %598 = icmp sge i32 %597, 4
  br i1 %598, label %604, label %599

599:                                              ; preds = %593
  %600 = load i64, ptr %24, align 8, !tbaa !24
  %601 = udiv i64 %600, 10
  %602 = urem i64 %601, 10
  %603 = icmp eq i64 %602, 1
  br i1 %603, label %604, label %605

604:                                              ; preds = %599, %593
  store i32 0, ptr %43, align 4, !tbaa !13
  br label %605

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

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

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

644:                                              ; preds = %630
  %645 = load i64, ptr %24, align 8, !tbaa !24
  %646 = icmp ugt i64 %645, 0
  br i1 %646, label %630, label %647, !llvm.loop !30

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

658:                                              ; preds = %662, %647
  %659 = load i32, ptr %9, align 4, !tbaa !13
  %660 = load i32, ptr %10, align 4, !tbaa !13
  %661 = icmp sgt i32 %659, %660
  br i1 %661, label %662, label %667

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

667:                                              ; preds = %658
  %668 = load i8, ptr %20, align 1, !tbaa !9
  %669 = icmp ne i8 %668, 0
  br i1 %669, label %670, label %716

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

683:                                              ; preds = %712, %670
  %684 = load i32, ptr %46, align 4, !tbaa !13
  %685 = icmp sgt i32 %684, 0
  br i1 %685, label %686, label %715

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

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

711:                                              ; preds = %702, %686
  br label %712

712:                                              ; preds = %711
  %713 = load i32, ptr %11, align 4, !tbaa !13
  %714 = add nsw i32 %713, 1
  store i32 %714, ptr %11, align 4, !tbaa !13
  br label %683, !llvm.loop !32

715:                                              ; preds = %683
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  br label %716

716:                                              ; preds = %715, %667
  %717 = load i8, ptr %23, align 1, !tbaa !9
  %718 = icmp ne i8 %717, 0
  br i1 %718, label %719, label %723

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

723:                                              ; preds = %719, %716
  %724 = load i8, ptr %15, align 1, !tbaa !9
  %725 = zext i8 %724 to i32
  %726 = icmp ne i32 %725, 0
  br i1 %726, label %727, label %752

727:                                              ; preds = %723
  %728 = load ptr, ptr %26, align 8, !tbaa !5
  %729 = getelementptr inbounds %struct.et_info, ptr %728, i32 0, i32 5
  %730 = load i8, ptr %729, align 1, !tbaa !33
  %731 = zext i8 %730 to i32
  %732 = icmp ne i32 %731, 0
  br i1 %732, label %733, label %752

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

739:                                              ; preds = %748, %733
  %740 = load ptr, ptr %48, align 8, !tbaa !5
  %741 = load i8, ptr %740, align 1, !tbaa !9
  store i8 %741, ptr %49, align 1, !tbaa !9
  %742 = sext i8 %741 to i32
  %743 = icmp ne i32 %742, 0
  br i1 %743, label %744, label %751

744:                                              ; preds = %739
  %745 = load i8, ptr %49, align 1, !tbaa !9
  %746 = load ptr, ptr %8, align 8, !tbaa !5
  %747 = getelementptr inbounds i8, ptr %746, i32 -1
  store ptr %747, ptr %8, align 8, !tbaa !5
  store i8 %745, ptr %747, align 1, !tbaa !9
  br label %748

748:                                              ; preds = %744
  %749 = load ptr, ptr %48, align 8, !tbaa !5
  %750 = getelementptr inbounds i8, ptr %749, i32 1
  store ptr %750, ptr %48, align 8, !tbaa !5
  br label %739, !llvm.loop !34

751:                                              ; preds = %739
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  br label %752

752:                                              ; preds = %751, %727, %723
  %753 = load ptr, ptr %27, align 8, !tbaa !5
  %754 = load i32, ptr %28, align 4, !tbaa !13
  %755 = sub nsw i32 %754, 1
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds i8, ptr %753, i64 %756
  %758 = load ptr, ptr %8, align 8, !tbaa !5
  %759 = ptrtoint ptr %757 to i64
  %760 = ptrtoint ptr %758 to i64
  %761 = sub i64 %759, %760
  %762 = trunc i64 %761 to i32
  store i32 %762, ptr %10, align 4, !tbaa !13
  br label %1926

763:                                              ; preds = %368, %368, %368
  %764 = load i8, ptr %22, align 1, !tbaa !9
  %765 = icmp ne i8 %764, 0
  br i1 %765, label %766, label %770

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

770:                                              ; preds = %763
  %771 = load ptr, ptr %6, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.__va_list_tag, ptr %771, i32 0, i32 1
  %773 = load i32, ptr %772, align 4
  %774 = icmp ule i32 %773, 160
  br i1 %774, label %775, label %780

775:                                              ; preds = %770
  %776 = getelementptr inbounds %struct.__va_list_tag, ptr %771, i32 0, i32 3
  %777 = load ptr, ptr %776, align 8
  %778 = getelementptr i8, ptr %777, i32 %773
  %779 = add i32 %773, 16
  store i32 %779, ptr %772, align 4
  br label %784

780:                                              ; preds = %770
  %781 = getelementptr inbounds %struct.__va_list_tag, ptr %771, i32 0, i32 2
  %782 = load ptr, ptr %781, align 8
  %783 = getelementptr i8, ptr %782, i32 8
  store ptr %783, ptr %781, align 8
  br label %784

784:                                              ; preds = %780, %775
  %785 = phi ptr [ %778, %775 ], [ %782, %780 ]
  %786 = load double, ptr %785, align 8, !tbaa !37
  %787 = fpext double %786 to x86_fp80
  store x86_fp80 %787, ptr %25, align 16, !tbaa !35
  br label %788

788:                                              ; preds = %784, %766
  %789 = load i32, ptr %9, align 4, !tbaa !13
  %790 = icmp slt i32 %789, 0
  br i1 %790, label %791, label %792

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

792:                                              ; preds = %791, %788
  %793 = load i32, ptr %9, align 4, !tbaa !13
  %794 = icmp sgt i32 %793, 100000000
  br i1 %794, label %795, label %796

795:                                              ; preds = %792
  store i32 100000000, ptr %9, align 4, !tbaa !13
  br label %796

796:                                              ; preds = %795, %792
  %797 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %798 = fcmp olt x86_fp80 %797, 0xK00000000000000000000
  br i1 %798, label %799, label %802

799:                                              ; preds = %796
  %800 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %801 = fneg x86_fp80 %800
  store x86_fp80 %801, ptr %25, align 16, !tbaa !35
  store i8 45, ptr %23, align 1, !tbaa !9
  br label %804

802:                                              ; preds = %796
  %803 = load i8, ptr %14, align 1, !tbaa !9
  store i8 %803, ptr %23, align 1, !tbaa !9
  br label %804

804:                                              ; preds = %802, %799
  %805 = load i8, ptr %21, align 1, !tbaa !9
  %806 = zext i8 %805 to i32
  %807 = icmp eq i32 %806, 3
  br i1 %807, label %808, label %814

808:                                              ; preds = %804
  %809 = load i32, ptr %9, align 4, !tbaa !13
  %810 = icmp sgt i32 %809, 0
  br i1 %810, label %811, label %814

811:                                              ; preds = %808
  %812 = load i32, ptr %9, align 4, !tbaa !13
  %813 = add nsw i32 %812, -1
  store i32 %813, ptr %9, align 4, !tbaa !13
  br label %814

814:                                              ; preds = %811, %808, %804
  %815 = load i32, ptr %9, align 4, !tbaa !13
  %816 = and i32 %815, 4095
  store i32 %816, ptr %11, align 4, !tbaa !13
  %817 = load i32, ptr %11, align 4, !tbaa !13
  %818 = srem i32 %817, 10
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds [10 x double], ptr @arRound, i64 0, i64 %819
  %821 = load double, ptr %820, align 8, !tbaa !37
  store double %821, ptr %33, align 8, !tbaa !37
  br label %822

822:                                              ; preds = %825, %814
  %823 = load i32, ptr %11, align 4, !tbaa !13
  %824 = icmp sge i32 %823, 10
  br i1 %824, label %825, label %830

825:                                              ; preds = %822
  %826 = load double, ptr %33, align 8, !tbaa !37
  %827 = fmul double %826, 1.000000e-10
  store double %827, ptr %33, align 8, !tbaa !37
  %828 = load i32, ptr %11, align 4, !tbaa !13
  %829 = sub nsw i32 %828, 10
  store i32 %829, ptr %11, align 4, !tbaa !13
  br label %822, !llvm.loop !39

830:                                              ; preds = %822
  %831 = load i8, ptr %21, align 1, !tbaa !9
  %832 = zext i8 %831 to i32
  %833 = icmp eq i32 %832, 1
  br i1 %833, label %834, label %858

834:                                              ; preds = %830
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  %835 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %836 = fptrunc x86_fp80 %835 to double
  store double %836, ptr %50, align 8, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %51, ptr align 8 %50, i64 8, i1 false)
  %837 = load i64, ptr %51, align 8, !tbaa !24
  %838 = lshr i64 %837, 52
  %839 = and i64 %838, 2047
  %840 = trunc i64 %839 to i32
  %841 = add nsw i32 -1023, %840
  store i32 %841, ptr %52, align 4, !tbaa !13
  %842 = load i32, ptr %9, align 4, !tbaa !13
  %843 = load i32, ptr %52, align 4, !tbaa !13
  %844 = sdiv i32 %843, 3
  %845 = add nsw i32 %842, %844
  %846 = icmp slt i32 %845, 15
  br i1 %846, label %847, label %853

847:                                              ; preds = %834
  %848 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %849 = load double, ptr %33, align 8, !tbaa !37
  %850 = fpext double %849 to x86_fp80
  %851 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %848, x86_fp80 0xK3FCBACF02F8F133A6800, x86_fp80 %850)
  %852 = fptrunc x86_fp80 %851 to double
  store double %852, ptr %33, align 8, !tbaa !37
  br label %853

853:                                              ; preds = %847, %834
  %854 = load double, ptr %33, align 8, !tbaa !37
  %855 = fpext double %854 to x86_fp80
  %856 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %857 = fadd x86_fp80 %856, %855
  store x86_fp80 %857, ptr %25, align 16, !tbaa !35
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  br label %858

858:                                              ; preds = %853, %830
  store i32 0, ptr %30, align 4, !tbaa !13
  %859 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %860 = fptrunc x86_fp80 %859 to double
  %861 = call i32 @sqlite3IsNaN(double noundef %860)
  %862 = icmp ne i32 %861, 0
  br i1 %862, label %863, label %864

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

864:                                              ; preds = %858
  %865 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %866 = fcmp ogt x86_fp80 %865, 0xK00000000000000000000
  br i1 %866, label %867, label %959

867:                                              ; preds = %864
  call void @llvm.lifetime.start.p0(i64 16, ptr %53) #5
  store x86_fp80 0xK3FFF8000000000000000, ptr %53, align 16, !tbaa !35
  br label %868

868:                                              ; preds = %878, %867
  %869 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %870 = load x86_fp80, ptr %53, align 16, !tbaa !35
  %871 = fmul x86_fp80 0xK414B924D692CA61BE800, %870
  %872 = fcmp oge x86_fp80 %869, %871
  br i1 %872, label %873, label %876

873:                                              ; preds = %868
  %874 = load i32, ptr %30, align 4, !tbaa !13
  %875 = icmp sle i32 %874, 350
  br label %876

876:                                              ; preds = %873, %868
  %877 = phi i1 [ false, %868 ], [ %875, %873 ]
  br i1 %877, label %878, label %883

878:                                              ; preds = %876
  %879 = load x86_fp80, ptr %53, align 16, !tbaa !35
  %880 = fmul x86_fp80 %879, 0xK414B924D692CA61BE800
  store x86_fp80 %880, ptr %53, align 16, !tbaa !35
  %881 = load i32, ptr %30, align 4, !tbaa !13
  %882 = add nsw i32 %881, 100
  store i32 %882, ptr %30, align 4, !tbaa !13
  br label %868, !llvm.loop !40

883:                                              ; preds = %876
  br label %884

884:                                              ; preds = %894, %883
  %885 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %886 = load x86_fp80, ptr %53, align 16, !tbaa !35
  %887 = fmul x86_fp80 0xK40209502F90000000000, %886
  %888 = fcmp oge x86_fp80 %885, %887
  br i1 %888, label %889, label %892

889:                                              ; preds = %884
  %890 = load i32, ptr %30, align 4, !tbaa !13
  %891 = icmp sle i32 %890, 350
  br label %892

892:                                              ; preds = %889, %884
  %893 = phi i1 [ false, %884 ], [ %891, %889 ]
  br i1 %893, label %894, label %899

894:                                              ; preds = %892
  %895 = load x86_fp80, ptr %53, align 16, !tbaa !35
  %896 = fmul x86_fp80 %895, 0xK40209502F90000000000
  store x86_fp80 %896, ptr %53, align 16, !tbaa !35
  %897 = load i32, ptr %30, align 4, !tbaa !13
  %898 = add nsw i32 %897, 10
  store i32 %898, ptr %30, align 4, !tbaa !13
  br label %884, !llvm.loop !41

899:                                              ; preds = %892
  br label %900

900:                                              ; preds = %910, %899
  %901 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %902 = load x86_fp80, ptr %53, align 16, !tbaa !35
  %903 = fmul x86_fp80 0xK4002A000000000000000, %902
  %904 = fcmp oge x86_fp80 %901, %903
  br i1 %904, label %905, label %908

905:                                              ; preds = %900
  %906 = load i32, ptr %30, align 4, !tbaa !13
  %907 = icmp sle i32 %906, 350
  br label %908

908:                                              ; preds = %905, %900
  %909 = phi i1 [ false, %900 ], [ %907, %905 ]
  br i1 %909, label %910, label %915

910:                                              ; preds = %908
  %911 = load x86_fp80, ptr %53, align 16, !tbaa !35
  %912 = fmul x86_fp80 %911, 0xK4002A000000000000000
  store x86_fp80 %912, ptr %53, align 16, !tbaa !35
  %913 = load i32, ptr %30, align 4, !tbaa !13
  %914 = add nsw i32 %913, 1
  store i32 %914, ptr %30, align 4, !tbaa !13
  br label %900, !llvm.loop !42

915:                                              ; preds = %908
  %916 = load x86_fp80, ptr %53, align 16, !tbaa !35
  %917 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %918 = fdiv x86_fp80 %917, %916
  store x86_fp80 %918, ptr %25, align 16, !tbaa !35
  br label %919

919:                                              ; preds = %922, %915
  %920 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %921 = fcmp olt x86_fp80 %920, 0xK3FE4ABCC77118461D000
  br i1 %921, label %922, label %927

922:                                              ; preds = %919
  %923 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %924 = fmul x86_fp80 %923, 0xK4019BEBC200000000000
  store x86_fp80 %924, ptr %25, align 16, !tbaa !35
  %925 = load i32, ptr %30, align 4, !tbaa !13
  %926 = sub nsw i32 %925, 8
  store i32 %926, ptr %30, align 4, !tbaa !13
  br label %919, !llvm.loop !43

927:                                              ; preds = %919
  br label %928

928:                                              ; preds = %931, %927
  %929 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %930 = fcmp olt x86_fp80 %929, 0xK3FFF8000000000000000
  br i1 %930, label %931, label %936

931:                                              ; preds = %928
  %932 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %933 = fmul x86_fp80 %932, 0xK4002A000000000000000
  store x86_fp80 %933, ptr %25, align 16, !tbaa !35
  %934 = load i32, ptr %30, align 4, !tbaa !13
  %935 = add nsw i32 %934, -1
  store i32 %935, ptr %30, align 4, !tbaa !13
  br label %928, !llvm.loop !44

936:                                              ; preds = %928
  %937 = load i32, ptr %30, align 4, !tbaa !13
  %938 = icmp sgt i32 %937, 350
  br i1 %938, label %939, label %955

939:                                              ; preds = %936
  %940 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %940, ptr %8, align 8, !tbaa !5
  %941 = load i8, ptr %23, align 1, !tbaa !9
  %942 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 %941, ptr %942, align 16, !tbaa !9
  %943 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  %944 = load i8, ptr %23, align 1, !tbaa !9
  %945 = sext i8 %944 to i32
  %946 = icmp ne i32 %945, 0
  %947 = zext i1 %946 to i32
  %948 = sext i32 %947 to i64
  %949 = getelementptr inbounds i8, ptr %943, i64 %948
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %949, ptr align 1 @.str.2, i64 4, i1 false)
  %950 = load i8, ptr %23, align 1, !tbaa !9
  %951 = sext i8 %950 to i32
  %952 = icmp ne i32 %951, 0
  %953 = zext i1 %952 to i32
  %954 = add nsw i32 3, %953
  store i32 %954, ptr %10, align 4, !tbaa !13
  store i32 17, ptr %42, align 4
  br label %956

955:                                              ; preds = %936
  store i32 0, ptr %42, align 4
  br label %956

956:                                              ; preds = %955, %939
  call void @llvm.lifetime.end.p0(i64 16, ptr %53) #5
  %957 = load i32, ptr %42, align 4
  switch i32 %957, label %1968 [
    i32 0, label %958
    i32 17, label %1926
  ]

958:                                              ; preds = %956
  br label %959

959:                                              ; preds = %958, %864
  %960 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %960, ptr %8, align 8, !tbaa !5
  %961 = load i8, ptr %21, align 1, !tbaa !9
  %962 = zext i8 %961 to i32
  %963 = icmp ne i32 %962, 1
  br i1 %963, label %964, label %977

964:                                              ; preds = %959
  %965 = load double, ptr %33, align 8, !tbaa !37
  %966 = fpext double %965 to x86_fp80
  %967 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %968 = fadd x86_fp80 %967, %966
  store x86_fp80 %968, ptr %25, align 16, !tbaa !35
  %969 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %970 = fcmp oge x86_fp80 %969, 0xK4002A000000000000000
  br i1 %970, label %971, label %976

971:                                              ; preds = %964
  %972 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %973 = fmul x86_fp80 %972, 0xK3FFBCCCCCCCCCCCCD000
  store x86_fp80 %973, ptr %25, align 16, !tbaa !35
  %974 = load i32, ptr %30, align 4, !tbaa !13
  %975 = add nsw i32 %974, 1
  store i32 %975, ptr %30, align 4, !tbaa !13
  br label %976

976:                                              ; preds = %971, %964
  br label %977

977:                                              ; preds = %976, %959
  %978 = load i8, ptr %21, align 1, !tbaa !9
  %979 = zext i8 %978 to i32
  %980 = icmp eq i32 %979, 3
  br i1 %980, label %981, label %999

981:                                              ; preds = %977
  %982 = load i8, ptr %15, align 1, !tbaa !9
  %983 = icmp ne i8 %982, 0
  %984 = xor i1 %983, true
  %985 = zext i1 %984 to i32
  %986 = trunc i32 %985 to i8
  store i8 %986, ptr %35, align 1, !tbaa !9
  %987 = load i32, ptr %30, align 4, !tbaa !13
  %988 = icmp slt i32 %987, -4
  br i1 %988, label %993, label %989

989:                                              ; preds = %981
  %990 = load i32, ptr %30, align 4, !tbaa !13
  %991 = load i32, ptr %9, align 4, !tbaa !13
  %992 = icmp sgt i32 %990, %991
  br i1 %992, label %993, label %994

993:                                              ; preds = %989, %981
  store i8 2, ptr %21, align 1, !tbaa !9
  br label %998

994:                                              ; preds = %989
  %995 = load i32, ptr %9, align 4, !tbaa !13
  %996 = load i32, ptr %30, align 4, !tbaa !13
  %997 = sub nsw i32 %995, %996
  store i32 %997, ptr %9, align 4, !tbaa !13
  store i8 1, ptr %21, align 1, !tbaa !9
  br label %998

998:                                              ; preds = %994, %993
  br label %1001

999:                                              ; preds = %977
  %1000 = load i8, ptr %16, align 1, !tbaa !9
  store i8 %1000, ptr %35, align 1, !tbaa !9
  br label %1001

1001:                                             ; preds = %999, %998
  %1002 = load i8, ptr %21, align 1, !tbaa !9
  %1003 = zext i8 %1002 to i32
  %1004 = icmp eq i32 %1003, 2
  br i1 %1004, label %1005, label %1006

1005:                                             ; preds = %1001
  store i32 0, ptr %31, align 4, !tbaa !13
  br label %1008

1006:                                             ; preds = %1001
  %1007 = load i32, ptr %30, align 4, !tbaa !13
  store i32 %1007, ptr %31, align 4, !tbaa !13
  br label %1008

1008:                                             ; preds = %1006, %1005
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  %1009 = load i32, ptr %31, align 4, !tbaa !13
  %1010 = icmp sgt i32 %1009, 0
  br i1 %1010, label %1011, label %1013

1011:                                             ; preds = %1008
  %1012 = load i32, ptr %31, align 4, !tbaa !13
  br label %1014

1013:                                             ; preds = %1008
  br label %1014

1014:                                             ; preds = %1013, %1011
  %1015 = phi i32 [ %1012, %1011 ], [ 0, %1013 ]
  %1016 = sext i32 %1015 to i64
  %1017 = load i32, ptr %9, align 4, !tbaa !13
  %1018 = sext i32 %1017 to i64
  %1019 = add nsw i64 %1016, %1018
  %1020 = load i32, ptr %12, align 4, !tbaa !13
  %1021 = sext i32 %1020 to i64
  %1022 = add nsw i64 %1019, %1021
  %1023 = add nsw i64 %1022, 15
  store i64 %1023, ptr %54, align 8, !tbaa !24
  %1024 = load i64, ptr %54, align 8, !tbaa !24
  %1025 = icmp sgt i64 %1024, 70
  br i1 %1025, label %1026, label %1034

1026:                                             ; preds = %1014
  %1027 = load ptr, ptr %4, align 8, !tbaa !5
  %1028 = load i64, ptr %54, align 8, !tbaa !24
  %1029 = call ptr @printfTempBuf(ptr noundef %1027, i64 noundef %1028)
  store ptr %1029, ptr %29, align 8, !tbaa !5
  store ptr %1029, ptr %8, align 8, !tbaa !5
  %1030 = load ptr, ptr %8, align 8, !tbaa !5
  %1031 = icmp eq ptr %1030, null
  br i1 %1031, label %1032, label %1033

1032:                                             ; preds = %1026
  store i32 1, ptr %42, align 4
  br label %1035

1033:                                             ; preds = %1026
  br label %1034

1034:                                             ; preds = %1033, %1014
  store i32 0, ptr %42, align 4
  br label %1035

1035:                                             ; preds = %1034, %1032
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  %1036 = load i32, ptr %42, align 4
  switch i32 %1036, label %1965 [
    i32 0, label %1037
  ]

1037:                                             ; preds = %1035
  %1038 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1038, ptr %27, align 8, !tbaa !5
  %1039 = load i8, ptr %16, align 1, !tbaa !9
  %1040 = zext i8 %1039 to i32
  %1041 = mul nsw i32 %1040, 10
  %1042 = add nsw i32 16, %1041
  store i32 %1042, ptr %32, align 4, !tbaa !13
  %1043 = load i32, ptr %9, align 4, !tbaa !13
  %1044 = icmp sgt i32 %1043, 0
  %1045 = zext i1 %1044 to i64
  %1046 = select i1 %1044, i32 1, i32 0
  %1047 = load i8, ptr %15, align 1, !tbaa !9
  %1048 = zext i8 %1047 to i32
  %1049 = or i32 %1046, %1048
  %1050 = load i8, ptr %16, align 1, !tbaa !9
  %1051 = zext i8 %1050 to i32
  %1052 = or i32 %1049, %1051
  %1053 = trunc i32 %1052 to i8
  store i8 %1053, ptr %34, align 1, !tbaa !9
  %1054 = load i8, ptr %23, align 1, !tbaa !9
  %1055 = icmp ne i8 %1054, 0
  br i1 %1055, label %1056, label %1060

1056:                                             ; preds = %1037
  %1057 = load i8, ptr %23, align 1, !tbaa !9
  %1058 = load ptr, ptr %8, align 8, !tbaa !5
  %1059 = getelementptr inbounds i8, ptr %1058, i32 1
  store ptr %1059, ptr %8, align 8, !tbaa !5
  store i8 %1057, ptr %1058, align 1, !tbaa !9
  br label %1060

1060:                                             ; preds = %1056, %1037
  %1061 = load i32, ptr %31, align 4, !tbaa !13
  %1062 = icmp slt i32 %1061, 0
  br i1 %1062, label %1063, label %1066

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

1066:                                             ; preds = %1060
  br label %1067

1067:                                             ; preds = %1074, %1066
  %1068 = load i32, ptr %31, align 4, !tbaa !13
  %1069 = icmp sge i32 %1068, 0
  br i1 %1069, label %1070, label %1077

1070:                                             ; preds = %1067
  %1071 = call signext i8 @et_getdigit(ptr noundef %25, ptr noundef %32)
  %1072 = load ptr, ptr %8, align 8, !tbaa !5
  %1073 = getelementptr inbounds i8, ptr %1072, i32 1
  store ptr %1073, ptr %8, align 8, !tbaa !5
  store i8 %1071, ptr %1072, align 1, !tbaa !9
  br label %1074

1074:                                             ; preds = %1070
  %1075 = load i32, ptr %31, align 4, !tbaa !13
  %1076 = add nsw i32 %1075, -1
  store i32 %1076, ptr %31, align 4, !tbaa !13
  br label %1067, !llvm.loop !45

1077:                                             ; preds = %1067
  br label %1078

1078:                                             ; preds = %1077, %1063
  %1079 = load i8, ptr %34, align 1, !tbaa !9
  %1080 = icmp ne i8 %1079, 0
  br i1 %1080, label %1081, label %1084

1081:                                             ; preds = %1078
  %1082 = load ptr, ptr %8, align 8, !tbaa !5
  %1083 = getelementptr inbounds i8, ptr %1082, i32 1
  store ptr %1083, ptr %8, align 8, !tbaa !5
  store i8 46, ptr %1082, align 1, !tbaa !9
  br label %1084

1084:                                             ; preds = %1081, %1078
  %1085 = load i32, ptr %31, align 4, !tbaa !13
  %1086 = add nsw i32 %1085, 1
  store i32 %1086, ptr %31, align 4, !tbaa !13
  br label %1087

1087:                                             ; preds = %1093, %1084
  %1088 = load i32, ptr %31, align 4, !tbaa !13
  %1089 = icmp slt i32 %1088, 0
  br i1 %1089, label %1090, label %1098

1090:                                             ; preds = %1087
  %1091 = load ptr, ptr %8, align 8, !tbaa !5
  %1092 = getelementptr inbounds i8, ptr %1091, i32 1
  store ptr %1092, ptr %8, align 8, !tbaa !5
  store i8 48, ptr %1091, align 1, !tbaa !9
  br label %1093

1093:                                             ; preds = %1090
  %1094 = load i32, ptr %9, align 4, !tbaa !13
  %1095 = add nsw i32 %1094, -1
  store i32 %1095, ptr %9, align 4, !tbaa !13
  %1096 = load i32, ptr %31, align 4, !tbaa !13
  %1097 = add nsw i32 %1096, 1
  store i32 %1097, ptr %31, align 4, !tbaa !13
  br label %1087, !llvm.loop !46

1098:                                             ; preds = %1087
  br label %1099

1099:                                             ; preds = %1103, %1098
  %1100 = load i32, ptr %9, align 4, !tbaa !13
  %1101 = add nsw i32 %1100, -1
  store i32 %1101, ptr %9, align 4, !tbaa !13
  %1102 = icmp sgt i32 %1100, 0
  br i1 %1102, label %1103, label %1107

1103:                                             ; preds = %1099
  %1104 = call signext i8 @et_getdigit(ptr noundef %25, ptr noundef %32)
  %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 %1104, ptr %1105, align 1, !tbaa !9
  br label %1099, !llvm.loop !47

1107:                                             ; preds = %1099
  %1108 = load i8, ptr %35, align 1, !tbaa !9
  %1109 = zext i8 %1108 to i32
  %1110 = icmp ne i32 %1109, 0
  br i1 %1110, label %1111, label %1142

1111:                                             ; preds = %1107
  %1112 = load i8, ptr %34, align 1, !tbaa !9
  %1113 = zext i8 %1112 to i32
  %1114 = icmp ne i32 %1113, 0
  br i1 %1114, label %1115, label %1142

1115:                                             ; preds = %1111
  br label %1116

1116:                                             ; preds = %1122, %1115
  %1117 = load ptr, ptr %8, align 8, !tbaa !5
  %1118 = getelementptr inbounds i8, ptr %1117, i64 -1
  %1119 = load i8, ptr %1118, align 1, !tbaa !9
  %1120 = sext i8 %1119 to i32
  %1121 = icmp eq i32 %1120, 48
  br i1 %1121, label %1122, label %1125

1122:                                             ; preds = %1116
  %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 0, ptr %1124, align 1, !tbaa !9
  br label %1116, !llvm.loop !48

1125:                                             ; preds = %1116
  %1126 = load ptr, ptr %8, align 8, !tbaa !5
  %1127 = getelementptr inbounds i8, ptr %1126, i64 -1
  %1128 = load i8, ptr %1127, align 1, !tbaa !9
  %1129 = sext i8 %1128 to i32
  %1130 = icmp eq i32 %1129, 46
  br i1 %1130, label %1131, label %1141

1131:                                             ; preds = %1125
  %1132 = load i8, ptr %16, align 1, !tbaa !9
  %1133 = icmp ne i8 %1132, 0
  br i1 %1133, label %1134, label %1137

1134:                                             ; preds = %1131
  %1135 = load ptr, ptr %8, align 8, !tbaa !5
  %1136 = getelementptr inbounds i8, ptr %1135, i32 1
  store ptr %1136, ptr %8, align 8, !tbaa !5
  store i8 48, ptr %1135, align 1, !tbaa !9
  br label %1140

1137:                                             ; preds = %1131
  %1138 = load ptr, ptr %8, align 8, !tbaa !5
  %1139 = getelementptr inbounds i8, ptr %1138, i32 -1
  store ptr %1139, ptr %8, align 8, !tbaa !5
  store i8 0, ptr %1139, align 1, !tbaa !9
  br label %1140

1140:                                             ; preds = %1137, %1134
  br label %1141

1141:                                             ; preds = %1140, %1125
  br label %1142

1142:                                             ; preds = %1141, %1111, %1107
  %1143 = load i8, ptr %21, align 1, !tbaa !9
  %1144 = zext i8 %1143 to i32
  %1145 = icmp eq i32 %1144, 2
  br i1 %1145, label %1146, label %1190

1146:                                             ; preds = %1142
  %1147 = load ptr, ptr %26, align 8, !tbaa !5
  %1148 = getelementptr inbounds %struct.et_info, ptr %1147, i32 0, i32 4
  %1149 = load i8, ptr %1148, align 1, !tbaa !28
  %1150 = zext i8 %1149 to i64
  %1151 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %1150
  %1152 = load i8, ptr %1151, align 1, !tbaa !9
  %1153 = load ptr, ptr %8, align 8, !tbaa !5
  %1154 = getelementptr inbounds i8, ptr %1153, i32 1
  store ptr %1154, ptr %8, align 8, !tbaa !5
  store i8 %1152, ptr %1153, align 1, !tbaa !9
  %1155 = load i32, ptr %30, align 4, !tbaa !13
  %1156 = icmp slt i32 %1155, 0
  br i1 %1156, label %1157, label %1162

1157:                                             ; preds = %1146
  %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 45, ptr %1158, align 1, !tbaa !9
  %1160 = load i32, ptr %30, align 4, !tbaa !13
  %1161 = sub nsw i32 0, %1160
  store i32 %1161, ptr %30, align 4, !tbaa !13
  br label %1165

1162:                                             ; preds = %1146
  %1163 = load ptr, ptr %8, align 8, !tbaa !5
  %1164 = getelementptr inbounds i8, ptr %1163, i32 1
  store ptr %1164, ptr %8, align 8, !tbaa !5
  store i8 43, ptr %1163, align 1, !tbaa !9
  br label %1165

1165:                                             ; preds = %1162, %1157
  %1166 = load i32, ptr %30, align 4, !tbaa !13
  %1167 = icmp sge i32 %1166, 100
  br i1 %1167, label %1168, label %1177

1168:                                             ; preds = %1165
  %1169 = load i32, ptr %30, align 4, !tbaa !13
  %1170 = sdiv i32 %1169, 100
  %1171 = add nsw i32 %1170, 48
  %1172 = trunc i32 %1171 to i8
  %1173 = load ptr, ptr %8, align 8, !tbaa !5
  %1174 = getelementptr inbounds i8, ptr %1173, i32 1
  store ptr %1174, ptr %8, align 8, !tbaa !5
  store i8 %1172, ptr %1173, align 1, !tbaa !9
  %1175 = load i32, ptr %30, align 4, !tbaa !13
  %1176 = srem i32 %1175, 100
  store i32 %1176, ptr %30, align 4, !tbaa !13
  br label %1177

1177:                                             ; preds = %1168, %1165
  %1178 = load i32, ptr %30, align 4, !tbaa !13
  %1179 = sdiv i32 %1178, 10
  %1180 = add nsw i32 %1179, 48
  %1181 = trunc i32 %1180 to i8
  %1182 = load ptr, ptr %8, align 8, !tbaa !5
  %1183 = getelementptr inbounds i8, ptr %1182, i32 1
  store ptr %1183, ptr %8, align 8, !tbaa !5
  store i8 %1181, ptr %1182, align 1, !tbaa !9
  %1184 = load i32, ptr %30, align 4, !tbaa !13
  %1185 = srem i32 %1184, 10
  %1186 = add nsw i32 %1185, 48
  %1187 = trunc i32 %1186 to i8
  %1188 = load ptr, ptr %8, align 8, !tbaa !5
  %1189 = getelementptr inbounds i8, ptr %1188, i32 1
  store ptr %1189, ptr %8, align 8, !tbaa !5
  store i8 %1187, ptr %1188, align 1, !tbaa !9
  br label %1190

1190:                                             ; preds = %1177, %1142
  %1191 = load ptr, ptr %8, align 8, !tbaa !5
  store i8 0, ptr %1191, align 1, !tbaa !9
  %1192 = load ptr, ptr %8, align 8, !tbaa !5
  %1193 = load ptr, ptr %27, align 8, !tbaa !5
  %1194 = ptrtoint ptr %1192 to i64
  %1195 = ptrtoint ptr %1193 to i64
  %1196 = sub i64 %1194, %1195
  %1197 = trunc i64 %1196 to i32
  store i32 %1197, ptr %10, align 4, !tbaa !13
  %1198 = load ptr, ptr %27, align 8, !tbaa !5
  store ptr %1198, ptr %8, align 8, !tbaa !5
  %1199 = load i8, ptr %17, align 1, !tbaa !9
  %1200 = zext i8 %1199 to i32
  %1201 = icmp ne i32 %1200, 0
  br i1 %1201, label %1202, label %1250

1202:                                             ; preds = %1190
  %1203 = load i8, ptr %13, align 1, !tbaa !9
  %1204 = icmp ne i8 %1203, 0
  br i1 %1204, label %1250, label %1205

1205:                                             ; preds = %1202
  %1206 = load i32, ptr %10, align 4, !tbaa !13
  %1207 = load i32, ptr %12, align 4, !tbaa !13
  %1208 = icmp slt i32 %1206, %1207
  br i1 %1208, label %1209, label %1250

1209:                                             ; preds = %1205
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  %1210 = load i32, ptr %12, align 4, !tbaa !13
  %1211 = load i32, ptr %10, align 4, !tbaa !13
  %1212 = sub nsw i32 %1210, %1211
  store i32 %1212, ptr %56, align 4, !tbaa !13
  %1213 = load i32, ptr %12, align 4, !tbaa !13
  store i32 %1213, ptr %55, align 4, !tbaa !13
  br label %1214

1214:                                             ; preds = %1230, %1209
  %1215 = load i32, ptr %55, align 4, !tbaa !13
  %1216 = load i32, ptr %56, align 4, !tbaa !13
  %1217 = icmp sge i32 %1215, %1216
  br i1 %1217, label %1218, label %1233

1218:                                             ; preds = %1214
  %1219 = load ptr, ptr %8, align 8, !tbaa !5
  %1220 = load i32, ptr %55, align 4, !tbaa !13
  %1221 = load i32, ptr %56, align 4, !tbaa !13
  %1222 = sub nsw i32 %1220, %1221
  %1223 = sext i32 %1222 to i64
  %1224 = getelementptr inbounds i8, ptr %1219, i64 %1223
  %1225 = load i8, ptr %1224, align 1, !tbaa !9
  %1226 = load ptr, ptr %8, align 8, !tbaa !5
  %1227 = load i32, ptr %55, align 4, !tbaa !13
  %1228 = sext i32 %1227 to i64
  %1229 = getelementptr inbounds i8, ptr %1226, i64 %1228
  store i8 %1225, ptr %1229, align 1, !tbaa !9
  br label %1230

1230:                                             ; preds = %1218
  %1231 = load i32, ptr %55, align 4, !tbaa !13
  %1232 = add nsw i32 %1231, -1
  store i32 %1232, ptr %55, align 4, !tbaa !13
  br label %1214, !llvm.loop !49

1233:                                             ; preds = %1214
  %1234 = load i8, ptr %23, align 1, !tbaa !9
  %1235 = sext i8 %1234 to i32
  %1236 = icmp ne i32 %1235, 0
  %1237 = zext i1 %1236 to i32
  store i32 %1237, ptr %55, align 4, !tbaa !13
  br label %1238

1238:                                             ; preds = %1242, %1233
  %1239 = load i32, ptr %56, align 4, !tbaa !13
  %1240 = add nsw i32 %1239, -1
  store i32 %1240, ptr %56, align 4, !tbaa !13
  %1241 = icmp ne i32 %1239, 0
  br i1 %1241, label %1242, label %1248

1242:                                             ; preds = %1238
  %1243 = load ptr, ptr %8, align 8, !tbaa !5
  %1244 = load i32, ptr %55, align 4, !tbaa !13
  %1245 = add nsw i32 %1244, 1
  store i32 %1245, ptr %55, align 4, !tbaa !13
  %1246 = sext i32 %1244 to i64
  %1247 = getelementptr inbounds i8, ptr %1243, i64 %1246
  store i8 48, ptr %1247, align 1, !tbaa !9
  br label %1238, !llvm.loop !50

1248:                                             ; preds = %1238
  %1249 = load i32, ptr %12, align 4, !tbaa !13
  store i32 %1249, ptr %10, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  br label %1250

1250:                                             ; preds = %1248, %1205, %1202, %1190
  br label %1926

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

1254:                                             ; preds = %1251
  %1255 = load ptr, ptr %4, align 8, !tbaa !5
  %1256 = getelementptr inbounds %struct.sqlite3_str, ptr %1255, i32 0, i32 4
  %1257 = load i32, ptr %1256, align 8, !tbaa !51
  %1258 = load ptr, ptr %6, align 8, !tbaa !5
  %1259 = getelementptr inbounds %struct.__va_list_tag, ptr %1258, i32 0, i32 0
  %1260 = load i32, ptr %1259, align 8
  %1261 = icmp ule i32 %1260, 40
  br i1 %1261, label %1262, label %1267

1262:                                             ; preds = %1254
  %1263 = getelementptr inbounds %struct.__va_list_tag, ptr %1258, i32 0, i32 3
  %1264 = load ptr, ptr %1263, align 8
  %1265 = getelementptr i8, ptr %1264, i32 %1260
  %1266 = add i32 %1260, 8
  store i32 %1266, ptr %1259, align 8
  br label %1271

1267:                                             ; preds = %1254
  %1268 = getelementptr inbounds %struct.__va_list_tag, ptr %1258, i32 0, i32 2
  %1269 = load ptr, ptr %1268, align 8
  %1270 = getelementptr i8, ptr %1269, i32 8
  store ptr %1270, ptr %1268, align 8
  br label %1271

1271:                                             ; preds = %1267, %1262
  %1272 = phi ptr [ %1265, %1262 ], [ %1269, %1267 ]
  %1273 = load ptr, ptr %1272, align 8, !tbaa !5
  store i32 %1257, ptr %1273, align 4, !tbaa !13
  br label %1274

1274:                                             ; preds = %1271, %1251
  store i32 0, ptr %12, align 4, !tbaa !13
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1926

1275:                                             ; preds = %368
  %1276 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 37, ptr %1276, align 16, !tbaa !9
  %1277 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1277, ptr %8, align 8, !tbaa !5
  store i32 1, ptr %10, align 4, !tbaa !13
  br label %1926

1278:                                             ; preds = %368
  %1279 = load i8, ptr %22, align 1, !tbaa !9
  %1280 = icmp ne i8 %1279, 0
  br i1 %1280, label %1281, label %1322

1281:                                             ; preds = %1278
  %1282 = load ptr, ptr %36, align 8, !tbaa !5
  %1283 = call ptr @getTextArg(ptr noundef %1282)
  store ptr %1283, ptr %8, align 8, !tbaa !5
  store i32 1, ptr %10, align 4, !tbaa !13
  %1284 = load ptr, ptr %8, align 8, !tbaa !5
  %1285 = icmp ne ptr %1284, null
  br i1 %1285, label %1286, label %1319

1286:                                             ; preds = %1281
  %1287 = load ptr, ptr %8, align 8, !tbaa !5
  %1288 = getelementptr inbounds i8, ptr %1287, i32 1
  store ptr %1288, ptr %8, align 8, !tbaa !5
  %1289 = load i8, ptr %1287, align 1, !tbaa !9
  %1290 = sext i8 %1289 to i32
  store i32 %1290, ptr %7, align 4, !tbaa !13
  %1291 = trunc i32 %1290 to i8
  %1292 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 %1291, ptr %1292, align 16, !tbaa !9
  %1293 = load i32, ptr %7, align 4, !tbaa !13
  %1294 = and i32 %1293, 192
  %1295 = icmp eq i32 %1294, 192
  br i1 %1295, label %1296, label %1318

1296:                                             ; preds = %1286
  br label %1297

1297:                                             ; preds = %1309, %1296
  %1298 = load i32, ptr %10, align 4, !tbaa !13
  %1299 = icmp slt i32 %1298, 4
  br i1 %1299, label %1300, label %1307

1300:                                             ; preds = %1297
  %1301 = load ptr, ptr %8, align 8, !tbaa !5
  %1302 = getelementptr inbounds i8, ptr %1301, i64 0
  %1303 = load i8, ptr %1302, align 1, !tbaa !9
  %1304 = sext i8 %1303 to i32
  %1305 = and i32 %1304, 192
  %1306 = icmp eq i32 %1305, 128
  br label %1307

1307:                                             ; preds = %1300, %1297
  %1308 = phi i1 [ false, %1297 ], [ %1306, %1300 ]
  br i1 %1308, label %1309, label %1317

1309:                                             ; preds = %1307
  %1310 = load ptr, ptr %8, align 8, !tbaa !5
  %1311 = getelementptr inbounds i8, ptr %1310, i32 1
  store ptr %1311, ptr %8, align 8, !tbaa !5
  %1312 = load i8, ptr %1310, align 1, !tbaa !9
  %1313 = load i32, ptr %10, align 4, !tbaa !13
  %1314 = add nsw i32 %1313, 1
  store i32 %1314, ptr %10, align 4, !tbaa !13
  %1315 = sext i32 %1313 to i64
  %1316 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 %1315
  store i8 %1312, ptr %1316, align 1, !tbaa !9
  br label %1297, !llvm.loop !52

1317:                                             ; preds = %1307
  br label %1318

1318:                                             ; preds = %1317, %1286
  br label %1321

1319:                                             ; preds = %1281
  %1320 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 0, ptr %1320, align 16, !tbaa !9
  br label %1321

1321:                                             ; preds = %1319, %1318
  br label %1427

1322:                                             ; preds = %1278
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #5
  %1323 = load ptr, ptr %6, align 8, !tbaa !5
  %1324 = getelementptr inbounds %struct.__va_list_tag, ptr %1323, i32 0, i32 0
  %1325 = load i32, ptr %1324, align 8
  %1326 = icmp ule i32 %1325, 40
  br i1 %1326, label %1327, label %1332

1327:                                             ; preds = %1322
  %1328 = getelementptr inbounds %struct.__va_list_tag, ptr %1323, i32 0, i32 3
  %1329 = load ptr, ptr %1328, align 8
  %1330 = getelementptr i8, ptr %1329, i32 %1325
  %1331 = add i32 %1325, 8
  store i32 %1331, ptr %1324, align 8
  br label %1336

1332:                                             ; preds = %1322
  %1333 = getelementptr inbounds %struct.__va_list_tag, ptr %1323, i32 0, i32 2
  %1334 = load ptr, ptr %1333, align 8
  %1335 = getelementptr i8, ptr %1334, i32 8
  store ptr %1335, ptr %1333, align 8
  br label %1336

1336:                                             ; preds = %1332, %1327
  %1337 = phi ptr [ %1330, %1327 ], [ %1334, %1332 ]
  %1338 = load i32, ptr %1337, align 4, !tbaa !13
  store i32 %1338, ptr %57, align 4, !tbaa !13
  %1339 = load i32, ptr %57, align 4, !tbaa !13
  %1340 = icmp ult i32 %1339, 128
  br i1 %1340, label %1341, label %1346

1341:                                             ; preds = %1336
  %1342 = load i32, ptr %57, align 4, !tbaa !13
  %1343 = and i32 %1342, 255
  %1344 = trunc i32 %1343 to i8
  %1345 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 %1344, ptr %1345, align 16, !tbaa !9
  store i32 1, ptr %10, align 4, !tbaa !13
  br label %1426

1346:                                             ; preds = %1336
  %1347 = load i32, ptr %57, align 4, !tbaa !13
  %1348 = icmp ult i32 %1347, 2048
  br i1 %1348, label %1349, label %1365

1349:                                             ; preds = %1346
  %1350 = load i32, ptr %57, align 4, !tbaa !13
  %1351 = lshr i32 %1350, 6
  %1352 = and i32 %1351, 31
  %1353 = trunc i32 %1352 to i8
  %1354 = zext i8 %1353 to i32
  %1355 = add nsw i32 192, %1354
  %1356 = trunc i32 %1355 to i8
  %1357 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 %1356, ptr %1357, align 16, !tbaa !9
  %1358 = load i32, ptr %57, align 4, !tbaa !13
  %1359 = and i32 %1358, 63
  %1360 = trunc i32 %1359 to i8
  %1361 = zext i8 %1360 to i32
  %1362 = add nsw i32 128, %1361
  %1363 = trunc i32 %1362 to i8
  %1364 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 1
  store i8 %1363, ptr %1364, align 1, !tbaa !9
  store i32 2, ptr %10, align 4, !tbaa !13
  br label %1425

1365:                                             ; preds = %1346
  %1366 = load i32, ptr %57, align 4, !tbaa !13
  %1367 = icmp ult i32 %1366, 65536
  br i1 %1367, label %1368, label %1392

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

1392:                                             ; preds = %1365
  %1393 = load i32, ptr %57, align 4, !tbaa !13
  %1394 = lshr i32 %1393, 18
  %1395 = and i32 %1394, 7
  %1396 = trunc i32 %1395 to i8
  %1397 = zext i8 %1396 to i32
  %1398 = add nsw i32 240, %1397
  %1399 = trunc i32 %1398 to i8
  %1400 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 %1399, ptr %1400, align 16, !tbaa !9
  %1401 = load i32, ptr %57, align 4, !tbaa !13
  %1402 = lshr i32 %1401, 12
  %1403 = and i32 %1402, 63
  %1404 = trunc i32 %1403 to i8
  %1405 = zext i8 %1404 to i32
  %1406 = add nsw i32 128, %1405
  %1407 = trunc i32 %1406 to i8
  %1408 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 1
  store i8 %1407, ptr %1408, align 1, !tbaa !9
  %1409 = load i32, ptr %57, align 4, !tbaa !13
  %1410 = lshr i32 %1409, 6
  %1411 = and i32 %1410, 63
  %1412 = trunc i32 %1411 to i8
  %1413 = zext i8 %1412 to i32
  %1414 = add nsw i32 128, %1413
  %1415 = trunc i32 %1414 to i8
  %1416 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 2
  store i8 %1415, ptr %1416, align 2, !tbaa !9
  %1417 = load i32, ptr %57, align 4, !tbaa !13
  %1418 = and i32 %1417, 63
  %1419 = trunc i32 %1418 to i8
  %1420 = zext i8 %1419 to i32
  %1421 = add nsw i32 128, %1420
  %1422 = trunc i32 %1421 to i8
  %1423 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 3
  store i8 %1422, ptr %1423, align 1, !tbaa !9
  store i32 4, ptr %10, align 4, !tbaa !13
  br label %1424

1424:                                             ; preds = %1392, %1368
  br label %1425

1425:                                             ; preds = %1424, %1349
  br label %1426

1426:                                             ; preds = %1425, %1341
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  br label %1427

1427:                                             ; preds = %1426, %1321
  %1428 = load i32, ptr %9, align 4, !tbaa !13
  %1429 = icmp sgt i32 %1428, 1
  br i1 %1429, label %1430, label %1454

1430:                                             ; preds = %1427
  %1431 = load i32, ptr %9, align 4, !tbaa !13
  %1432 = sub nsw i32 %1431, 1
  %1433 = load i32, ptr %12, align 4, !tbaa !13
  %1434 = sub nsw i32 %1433, %1432
  store i32 %1434, ptr %12, align 4, !tbaa !13
  %1435 = load i32, ptr %12, align 4, !tbaa !13
  %1436 = icmp sgt i32 %1435, 1
  br i1 %1436, label %1437, label %1444

1437:                                             ; preds = %1430
  %1438 = load i8, ptr %13, align 1, !tbaa !9
  %1439 = icmp ne i8 %1438, 0
  br i1 %1439, label %1444, label %1440

1440:                                             ; preds = %1437
  %1441 = load ptr, ptr %4, align 8, !tbaa !5
  %1442 = load i32, ptr %12, align 4, !tbaa !13
  %1443 = sub nsw i32 %1442, 1
  call void @sqlite3_str_appendchar(ptr noundef %1441, i32 noundef %1443, i8 noundef signext 32)
  store i32 0, ptr %12, align 4, !tbaa !13
  br label %1444

1444:                                             ; preds = %1440, %1437, %1430
  br label %1445

1445:                                             ; preds = %1449, %1444
  %1446 = load i32, ptr %9, align 4, !tbaa !13
  %1447 = add nsw i32 %1446, -1
  store i32 %1447, ptr %9, align 4, !tbaa !13
  %1448 = icmp sgt i32 %1446, 1
  br i1 %1448, label %1449, label %1453

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

1453:                                             ; preds = %1445
  br label %1454

1454:                                             ; preds = %1453, %1427
  %1455 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1455, ptr %8, align 8, !tbaa !5
  store i8 1, ptr %16, align 1, !tbaa !9
  br label %1607

1456:                                             ; preds = %368, %368
  %1457 = load i8, ptr %22, align 1, !tbaa !9
  %1458 = icmp ne i8 %1457, 0
  br i1 %1458, label %1459, label %1462

1459:                                             ; preds = %1456
  %1460 = load ptr, ptr %36, align 8, !tbaa !5
  %1461 = call ptr @getTextArg(ptr noundef %1460)
  store ptr %1461, ptr %8, align 8, !tbaa !5
  store i8 5, ptr %21, align 1, !tbaa !9
  br label %1479

1462:                                             ; preds = %1456
  %1463 = load ptr, ptr %6, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.__va_list_tag, ptr %1463, i32 0, i32 0
  %1465 = load i32, ptr %1464, align 8
  %1466 = icmp ule i32 %1465, 40
  br i1 %1466, label %1467, label %1472

1467:                                             ; preds = %1462
  %1468 = getelementptr inbounds %struct.__va_list_tag, ptr %1463, i32 0, i32 3
  %1469 = load ptr, ptr %1468, align 8
  %1470 = getelementptr i8, ptr %1469, i32 %1465
  %1471 = add i32 %1465, 8
  store i32 %1471, ptr %1464, align 8
  br label %1476

1472:                                             ; preds = %1462
  %1473 = getelementptr inbounds %struct.__va_list_tag, ptr %1463, i32 0, i32 2
  %1474 = load ptr, ptr %1473, align 8
  %1475 = getelementptr i8, ptr %1474, i32 8
  store ptr %1475, ptr %1473, align 8
  br label %1476

1476:                                             ; preds = %1472, %1467
  %1477 = phi ptr [ %1470, %1467 ], [ %1474, %1472 ]
  %1478 = load ptr, ptr %1477, align 8, !tbaa !5
  store ptr %1478, ptr %8, align 8, !tbaa !5
  br label %1479

1479:                                             ; preds = %1476, %1459
  %1480 = load ptr, ptr %8, align 8, !tbaa !5
  %1481 = icmp eq ptr %1480, null
  br i1 %1481, label %1482, label %1483

1482:                                             ; preds = %1479
  store ptr @.str.3, ptr %8, align 8, !tbaa !5
  br label %1535

1483:                                             ; preds = %1479
  %1484 = load i8, ptr %21, align 1, !tbaa !9
  %1485 = zext i8 %1484 to i32
  %1486 = icmp eq i32 %1485, 6
  br i1 %1486, label %1487, label %1534

1487:                                             ; preds = %1483
  %1488 = load ptr, ptr %4, align 8, !tbaa !5
  %1489 = getelementptr inbounds %struct.sqlite3_str, ptr %1488, i32 0, i32 4
  %1490 = load i32, ptr %1489, align 8, !tbaa !51
  %1491 = icmp eq i32 %1490, 0
  br i1 %1491, label %1492, label %1532

1492:                                             ; preds = %1487
  %1493 = load ptr, ptr %4, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.sqlite3_str, ptr %1493, i32 0, i32 3
  %1495 = load i32, ptr %1494, align 4, !tbaa !54
  %1496 = icmp ne i32 %1495, 0
  br i1 %1496, label %1497, label %1532

1497:                                             ; preds = %1492
  %1498 = load i32, ptr %12, align 4, !tbaa !13
  %1499 = icmp eq i32 %1498, 0
  br i1 %1499, label %1500, label %1532

1500:                                             ; preds = %1497
  %1501 = load i32, ptr %9, align 4, !tbaa !13
  %1502 = icmp slt i32 %1501, 0
  br i1 %1502, label %1503, label %1532

1503:                                             ; preds = %1500
  %1504 = load ptr, ptr %4, align 8, !tbaa !5
  %1505 = getelementptr inbounds %struct.sqlite3_str, ptr %1504, i32 0, i32 5
  %1506 = load i8, ptr %1505, align 4, !tbaa !55
  %1507 = zext i8 %1506 to i32
  %1508 = icmp eq i32 %1507, 0
  br i1 %1508, label %1509, label %1532

1509:                                             ; preds = %1503
  %1510 = load ptr, ptr %8, align 8, !tbaa !5
  %1511 = load ptr, ptr %4, align 8, !tbaa !5
  %1512 = getelementptr inbounds %struct.sqlite3_str, ptr %1511, i32 0, i32 1
  store ptr %1510, ptr %1512, align 8, !tbaa !56
  %1513 = load ptr, ptr %4, align 8, !tbaa !5
  %1514 = getelementptr inbounds %struct.sqlite3_str, ptr %1513, i32 0, i32 0
  %1515 = load ptr, ptr %1514, align 8, !tbaa !57
  %1516 = load ptr, ptr %8, align 8, !tbaa !5
  %1517 = call i32 @sqlite3DbMallocSize(ptr noundef %1515, ptr noundef %1516)
  %1518 = load ptr, ptr %4, align 8, !tbaa !5
  %1519 = getelementptr inbounds %struct.sqlite3_str, ptr %1518, i32 0, i32 2
  store i32 %1517, ptr %1519, align 8, !tbaa !58
  %1520 = load ptr, ptr %8, align 8, !tbaa !5
  %1521 = call i64 @strlen(ptr noundef %1520) #6
  %1522 = trunc i64 %1521 to i32
  %1523 = and i32 2147483647, %1522
  %1524 = load ptr, ptr %4, align 8, !tbaa !5
  %1525 = getelementptr inbounds %struct.sqlite3_str, ptr %1524, i32 0, i32 4
  store i32 %1523, ptr %1525, align 8, !tbaa !51
  %1526 = load ptr, ptr %4, align 8, !tbaa !5
  %1527 = getelementptr inbounds %struct.sqlite3_str, ptr %1526, i32 0, i32 6
  %1528 = load i8, ptr %1527, align 1, !tbaa !10
  %1529 = zext i8 %1528 to i32
  %1530 = or i32 %1529, 4
  %1531 = trunc i32 %1530 to i8
  store i8 %1531, ptr %1527, align 1, !tbaa !10
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1926

1532:                                             ; preds = %1503, %1500, %1497, %1492, %1487
  %1533 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1533, ptr %29, align 8, !tbaa !5
  br label %1534

1534:                                             ; preds = %1532, %1483
  br label %1535

1535:                                             ; preds = %1534, %1482
  %1536 = load i32, ptr %9, align 4, !tbaa !13
  %1537 = icmp sge i32 %1536, 0
  br i1 %1537, label %1538, label %1601

1538:                                             ; preds = %1535
  %1539 = load i8, ptr %16, align 1, !tbaa !9
  %1540 = icmp ne i8 %1539, 0
  br i1 %1540, label %1541, label %1580

1541:                                             ; preds = %1538
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  %1542 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1542, ptr %58, align 8, !tbaa !5
  br label %1543

1543:                                             ; preds = %1572, %1541
  %1544 = load i32, ptr %9, align 4, !tbaa !13
  %1545 = add nsw i32 %1544, -1
  store i32 %1545, ptr %9, align 4, !tbaa !13
  %1546 = icmp sgt i32 %1544, 0
  br i1 %1546, label %1547, label %1553

1547:                                             ; preds = %1543
  %1548 = load ptr, ptr %58, align 8, !tbaa !5
  %1549 = getelementptr inbounds i8, ptr %1548, i64 0
  %1550 = load i8, ptr %1549, align 1, !tbaa !9
  %1551 = zext i8 %1550 to i32
  %1552 = icmp ne i32 %1551, 0
  br label %1553

1553:                                             ; preds = %1547, %1543
  %1554 = phi i1 [ false, %1543 ], [ %1552, %1547 ]
  br i1 %1554, label %1555, label %1573

1555:                                             ; preds = %1553
  %1556 = load ptr, ptr %58, align 8, !tbaa !5
  %1557 = getelementptr inbounds i8, ptr %1556, i32 1
  store ptr %1557, ptr %58, align 8, !tbaa !5
  %1558 = load i8, ptr %1556, align 1, !tbaa !9
  %1559 = zext i8 %1558 to i32
  %1560 = icmp sge i32 %1559, 192
  br i1 %1560, label %1561, label %1572

1561:                                             ; preds = %1555
  br label %1562

1562:                                             ; preds = %1568, %1561
  %1563 = load ptr, ptr %58, align 8, !tbaa !5
  %1564 = load i8, ptr %1563, align 1, !tbaa !9
  %1565 = zext i8 %1564 to i32
  %1566 = and i32 %1565, 192
  %1567 = icmp eq i32 %1566, 128
  br i1 %1567, label %1568, label %1571

1568:                                             ; preds = %1562
  %1569 = load ptr, ptr %58, align 8, !tbaa !5
  %1570 = getelementptr inbounds i8, ptr %1569, i32 1
  store ptr %1570, ptr %58, align 8, !tbaa !5
  br label %1562, !llvm.loop !59

1571:                                             ; preds = %1562
  br label %1572

1572:                                             ; preds = %1571, %1555
  br label %1543, !llvm.loop !60

1573:                                             ; preds = %1553
  %1574 = load ptr, ptr %58, align 8, !tbaa !5
  %1575 = load ptr, ptr %8, align 8, !tbaa !5
  %1576 = ptrtoint ptr %1574 to i64
  %1577 = ptrtoint ptr %1575 to i64
  %1578 = sub i64 %1576, %1577
  %1579 = trunc i64 %1578 to i32
  store i32 %1579, ptr %10, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  br label %1600

1580:                                             ; preds = %1538
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1581

1581:                                             ; preds = %1596, %1580
  %1582 = load i32, ptr %10, align 4, !tbaa !13
  %1583 = load i32, ptr %9, align 4, !tbaa !13
  %1584 = icmp slt i32 %1582, %1583
  br i1 %1584, label %1585, label %1593

1585:                                             ; preds = %1581
  %1586 = load ptr, ptr %8, align 8, !tbaa !5
  %1587 = load i32, ptr %10, align 4, !tbaa !13
  %1588 = sext i32 %1587 to i64
  %1589 = getelementptr inbounds i8, ptr %1586, i64 %1588
  %1590 = load i8, ptr %1589, align 1, !tbaa !9
  %1591 = sext i8 %1590 to i32
  %1592 = icmp ne i32 %1591, 0
  br label %1593

1593:                                             ; preds = %1585, %1581
  %1594 = phi i1 [ false, %1581 ], [ %1592, %1585 ]
  br i1 %1594, label %1595, label %1599

1595:                                             ; preds = %1593
  br label %1596

1596:                                             ; preds = %1595
  %1597 = load i32, ptr %10, align 4, !tbaa !13
  %1598 = add nsw i32 %1597, 1
  store i32 %1598, ptr %10, align 4, !tbaa !13
  br label %1581, !llvm.loop !61

1599:                                             ; preds = %1593
  br label %1600

1600:                                             ; preds = %1599, %1573
  br label %1606

1601:                                             ; preds = %1535
  %1602 = load ptr, ptr %8, align 8, !tbaa !5
  %1603 = call i64 @strlen(ptr noundef %1602) #6
  %1604 = trunc i64 %1603 to i32
  %1605 = and i32 2147483647, %1604
  store i32 %1605, ptr %10, align 4, !tbaa !13
  br label %1606

1606:                                             ; preds = %1601, %1600
  br label %1607

1607:                                             ; preds = %1817, %1606, %1454
  %1608 = load i8, ptr %16, align 1, !tbaa !9
  %1609 = zext i8 %1608 to i32
  %1610 = icmp ne i32 %1609, 0
  br i1 %1610, label %1611, label %1635

1611:                                             ; preds = %1607
  %1612 = load i32, ptr %12, align 4, !tbaa !13
  %1613 = icmp sgt i32 %1612, 0
  br i1 %1613, label %1614, label %1635

1614:                                             ; preds = %1611
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #5
  %1615 = load i32, ptr %10, align 4, !tbaa !13
  %1616 = sub nsw i32 %1615, 1
  store i32 %1616, ptr %59, align 4, !tbaa !13
  br label %1617

1617:                                             ; preds = %1633, %1614
  %1618 = load i32, ptr %59, align 4, !tbaa !13
  %1619 = icmp sge i32 %1618, 0
  br i1 %1619, label %1620, label %1634

1620:                                             ; preds = %1617
  %1621 = load ptr, ptr %8, align 8, !tbaa !5
  %1622 = load i32, ptr %59, align 4, !tbaa !13
  %1623 = add nsw i32 %1622, -1
  store i32 %1623, ptr %59, align 4, !tbaa !13
  %1624 = sext i32 %1622 to i64
  %1625 = getelementptr inbounds i8, ptr %1621, i64 %1624
  %1626 = load i8, ptr %1625, align 1, !tbaa !9
  %1627 = sext i8 %1626 to i32
  %1628 = and i32 %1627, 192
  %1629 = icmp eq i32 %1628, 128
  br i1 %1629, label %1630, label %1633

1630:                                             ; preds = %1620
  %1631 = load i32, ptr %12, align 4, !tbaa !13
  %1632 = add nsw i32 %1631, 1
  store i32 %1632, ptr %12, align 4, !tbaa !13
  br label %1633

1633:                                             ; preds = %1630, %1620
  br label %1617, !llvm.loop !62

1634:                                             ; preds = %1617
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  br label %1635

1635:                                             ; preds = %1634, %1611, %1607
  br label %1926

1636:                                             ; preds = %368, %368, %368
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #5
  %1637 = load i8, ptr %21, align 1, !tbaa !9
  %1638 = zext i8 %1637 to i32
  %1639 = icmp eq i32 %1638, 14
  %1640 = zext i1 %1639 to i64
  %1641 = select i1 %1639, i32 34, i32 39
  %1642 = trunc i32 %1641 to i8
  store i8 %1642, ptr %67, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #5
  %1643 = load i8, ptr %22, align 1, !tbaa !9
  %1644 = icmp ne i8 %1643, 0
  br i1 %1644, label %1645, label %1648

1645:                                             ; preds = %1636
  %1646 = load ptr, ptr %36, align 8, !tbaa !5
  %1647 = call ptr @getTextArg(ptr noundef %1646)
  store ptr %1647, ptr %68, align 8, !tbaa !5
  br label %1665

1648:                                             ; preds = %1636
  %1649 = load ptr, ptr %6, align 8, !tbaa !5
  %1650 = getelementptr inbounds %struct.__va_list_tag, ptr %1649, i32 0, i32 0
  %1651 = load i32, ptr %1650, align 8
  %1652 = icmp ule i32 %1651, 40
  br i1 %1652, label %1653, label %1658

1653:                                             ; preds = %1648
  %1654 = getelementptr inbounds %struct.__va_list_tag, ptr %1649, i32 0, i32 3
  %1655 = load ptr, ptr %1654, align 8
  %1656 = getelementptr i8, ptr %1655, i32 %1651
  %1657 = add i32 %1651, 8
  store i32 %1657, ptr %1650, align 8
  br label %1662

1658:                                             ; preds = %1648
  %1659 = getelementptr inbounds %struct.__va_list_tag, ptr %1649, i32 0, i32 2
  %1660 = load ptr, ptr %1659, align 8
  %1661 = getelementptr i8, ptr %1660, i32 8
  store ptr %1661, ptr %1659, align 8
  br label %1662

1662:                                             ; preds = %1658, %1653
  %1663 = phi ptr [ %1656, %1653 ], [ %1660, %1658 ]
  %1664 = load ptr, ptr %1663, align 8, !tbaa !5
  store ptr %1664, ptr %68, align 8, !tbaa !5
  br label %1665

1665:                                             ; preds = %1662, %1645
  %1666 = load ptr, ptr %68, align 8, !tbaa !5
  %1667 = icmp eq ptr %1666, null
  %1668 = zext i1 %1667 to i32
  store i32 %1668, ptr %64, align 4, !tbaa !13
  %1669 = load i32, ptr %64, align 4, !tbaa !13
  %1670 = icmp ne i32 %1669, 0
  br i1 %1670, label %1671, label %1677

1671:                                             ; preds = %1665
  %1672 = load i8, ptr %21, align 1, !tbaa !9
  %1673 = zext i8 %1672 to i32
  %1674 = icmp eq i32 %1673, 10
  %1675 = zext i1 %1674 to i64
  %1676 = select i1 %1674, ptr @.str.4, ptr @.str.5
  store ptr %1676, ptr %68, align 8, !tbaa !5
  br label %1677

1677:                                             ; preds = %1671, %1665
  %1678 = load i32, ptr %9, align 4, !tbaa !13
  store i32 %1678, ptr %62, align 4, !tbaa !13
  store i32 0, ptr %63, align 4, !tbaa !13
  store i32 0, ptr %60, align 4, !tbaa !13
  br label %1679

1679:                                             ; preds = %1726, %1677
  %1680 = load i32, ptr %62, align 4, !tbaa !13
  %1681 = icmp ne i32 %1680, 0
  br i1 %1681, label %1682, label %1690

1682:                                             ; preds = %1679
  %1683 = load ptr, ptr %68, align 8, !tbaa !5
  %1684 = load i32, ptr %60, align 4, !tbaa !13
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds i8, ptr %1683, i64 %1685
  %1687 = load i8, ptr %1686, align 1, !tbaa !9
  store i8 %1687, ptr %66, align 1, !tbaa !9
  %1688 = sext i8 %1687 to i32
  %1689 = icmp ne i32 %1688, 0
  br label %1690

1690:                                             ; preds = %1682, %1679
  %1691 = phi i1 [ false, %1679 ], [ %1689, %1682 ]
  br i1 %1691, label %1692, label %1731

1692:                                             ; preds = %1690
  %1693 = load i8, ptr %66, align 1, !tbaa !9
  %1694 = sext i8 %1693 to i32
  %1695 = load i8, ptr %67, align 1, !tbaa !9
  %1696 = sext i8 %1695 to i32
  %1697 = icmp eq i32 %1694, %1696
  br i1 %1697, label %1698, label %1701

1698:                                             ; preds = %1692
  %1699 = load i32, ptr %63, align 4, !tbaa !13
  %1700 = add nsw i32 %1699, 1
  store i32 %1700, ptr %63, align 4, !tbaa !13
  br label %1701

1701:                                             ; preds = %1698, %1692
  %1702 = load i8, ptr %16, align 1, !tbaa !9
  %1703 = zext i8 %1702 to i32
  %1704 = icmp ne i32 %1703, 0
  br i1 %1704, label %1705, label %1725

1705:                                             ; preds = %1701
  %1706 = load i8, ptr %66, align 1, !tbaa !9
  %1707 = sext i8 %1706 to i32
  %1708 = and i32 %1707, 192
  %1709 = icmp eq i32 %1708, 192
  br i1 %1709, label %1710, label %1725

1710:                                             ; preds = %1705
  br label %1711

1711:                                             ; preds = %1721, %1710
  %1712 = load ptr, ptr %68, align 8, !tbaa !5
  %1713 = load i32, ptr %60, align 4, !tbaa !13
  %1714 = add nsw i32 %1713, 1
  %1715 = sext i32 %1714 to i64
  %1716 = getelementptr inbounds i8, ptr %1712, i64 %1715
  %1717 = load i8, ptr %1716, align 1, !tbaa !9
  %1718 = sext i8 %1717 to i32
  %1719 = and i32 %1718, 192
  %1720 = icmp eq i32 %1719, 128
  br i1 %1720, label %1721, label %1724

1721:                                             ; preds = %1711
  %1722 = load i32, ptr %60, align 4, !tbaa !13
  %1723 = add nsw i32 %1722, 1
  store i32 %1723, ptr %60, align 4, !tbaa !13
  br label %1711, !llvm.loop !63

1724:                                             ; preds = %1711
  br label %1725

1725:                                             ; preds = %1724, %1705, %1701
  br label %1726

1726:                                             ; preds = %1725
  %1727 = load i32, ptr %60, align 4, !tbaa !13
  %1728 = add nsw i32 %1727, 1
  store i32 %1728, ptr %60, align 4, !tbaa !13
  %1729 = load i32, ptr %62, align 4, !tbaa !13
  %1730 = add nsw i32 %1729, -1
  store i32 %1730, ptr %62, align 4, !tbaa !13
  br label %1679, !llvm.loop !64

1731:                                             ; preds = %1690
  %1732 = load i32, ptr %64, align 4, !tbaa !13
  %1733 = icmp ne i32 %1732, 0
  br i1 %1733, label %1738, label %1734

1734:                                             ; preds = %1731
  %1735 = load i8, ptr %21, align 1, !tbaa !9
  %1736 = zext i8 %1735 to i32
  %1737 = icmp eq i32 %1736, 10
  br label %1738

1738:                                             ; preds = %1734, %1731
  %1739 = phi i1 [ false, %1731 ], [ %1737, %1734 ]
  %1740 = zext i1 %1739 to i32
  store i32 %1740, ptr %65, align 4, !tbaa !13
  %1741 = load i32, ptr %60, align 4, !tbaa !13
  %1742 = add nsw i32 %1741, 3
  %1743 = load i32, ptr %63, align 4, !tbaa !13
  %1744 = add nsw i32 %1743, %1742
  store i32 %1744, ptr %63, align 4, !tbaa !13
  %1745 = load i32, ptr %63, align 4, !tbaa !13
  %1746 = icmp sgt i32 %1745, 70
  br i1 %1746, label %1747, label %1756

1747:                                             ; preds = %1738
  %1748 = load ptr, ptr %4, align 8, !tbaa !5
  %1749 = load i32, ptr %63, align 4, !tbaa !13
  %1750 = sext i32 %1749 to i64
  %1751 = call ptr @printfTempBuf(ptr noundef %1748, i64 noundef %1750)
  store ptr %1751, ptr %29, align 8, !tbaa !5
  store ptr %1751, ptr %8, align 8, !tbaa !5
  %1752 = load ptr, ptr %8, align 8, !tbaa !5
  %1753 = icmp eq ptr %1752, null
  br i1 %1753, label %1754, label %1755

1754:                                             ; preds = %1747
  store i32 1, ptr %42, align 4
  br label %1817

1755:                                             ; preds = %1747
  br label %1758

1756:                                             ; preds = %1738
  %1757 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1757, ptr %8, align 8, !tbaa !5
  br label %1758

1758:                                             ; preds = %1756, %1755
  store i32 0, ptr %61, align 4, !tbaa !13
  %1759 = load i32, ptr %65, align 4, !tbaa !13
  %1760 = icmp ne i32 %1759, 0
  br i1 %1760, label %1761, label %1768

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

1768:                                             ; preds = %1761, %1758
  %1769 = load i32, ptr %60, align 4, !tbaa !13
  store i32 %1769, ptr %62, align 4, !tbaa !13
  store i32 0, ptr %60, align 4, !tbaa !13
  br label %1770

1770:                                             ; preds = %1798, %1768
  %1771 = load i32, ptr %60, align 4, !tbaa !13
  %1772 = load i32, ptr %62, align 4, !tbaa !13
  %1773 = icmp slt i32 %1771, %1772
  br i1 %1773, label %1774, label %1801

1774:                                             ; preds = %1770
  %1775 = load ptr, ptr %68, align 8, !tbaa !5
  %1776 = load i32, ptr %60, align 4, !tbaa !13
  %1777 = sext i32 %1776 to i64
  %1778 = getelementptr inbounds i8, ptr %1775, i64 %1777
  %1779 = load i8, ptr %1778, align 1, !tbaa !9
  store i8 %1779, ptr %66, align 1, !tbaa !9
  %1780 = load ptr, ptr %8, align 8, !tbaa !5
  %1781 = load i32, ptr %61, align 4, !tbaa !13
  %1782 = add nsw i32 %1781, 1
  store i32 %1782, ptr %61, align 4, !tbaa !13
  %1783 = sext i32 %1781 to i64
  %1784 = getelementptr inbounds i8, ptr %1780, i64 %1783
  store i8 %1779, ptr %1784, align 1, !tbaa !9
  %1785 = load i8, ptr %66, align 1, !tbaa !9
  %1786 = sext i8 %1785 to i32
  %1787 = load i8, ptr %67, align 1, !tbaa !9
  %1788 = sext i8 %1787 to i32
  %1789 = icmp eq i32 %1786, %1788
  br i1 %1789, label %1790, label %1797

1790:                                             ; preds = %1774
  %1791 = load i8, ptr %66, align 1, !tbaa !9
  %1792 = load ptr, ptr %8, align 8, !tbaa !5
  %1793 = load i32, ptr %61, align 4, !tbaa !13
  %1794 = add nsw i32 %1793, 1
  store i32 %1794, ptr %61, align 4, !tbaa !13
  %1795 = sext i32 %1793 to i64
  %1796 = getelementptr inbounds i8, ptr %1792, i64 %1795
  store i8 %1791, ptr %1796, align 1, !tbaa !9
  br label %1797

1797:                                             ; preds = %1790, %1774
  br label %1798

1798:                                             ; preds = %1797
  %1799 = load i32, ptr %60, align 4, !tbaa !13
  %1800 = add nsw i32 %1799, 1
  store i32 %1800, ptr %60, align 4, !tbaa !13
  br label %1770, !llvm.loop !65

1801:                                             ; preds = %1770
  %1802 = load i32, ptr %65, align 4, !tbaa !13
  %1803 = icmp ne i32 %1802, 0
  br i1 %1803, label %1804, label %1811

1804:                                             ; preds = %1801
  %1805 = load i8, ptr %67, align 1, !tbaa !9
  %1806 = load ptr, ptr %8, align 8, !tbaa !5
  %1807 = load i32, ptr %61, align 4, !tbaa !13
  %1808 = add nsw i32 %1807, 1
  store i32 %1808, ptr %61, align 4, !tbaa !13
  %1809 = sext i32 %1807 to i64
  %1810 = getelementptr inbounds i8, ptr %1806, i64 %1809
  store i8 %1805, ptr %1810, align 1, !tbaa !9
  br label %1811

1811:                                             ; preds = %1804, %1801
  %1812 = load ptr, ptr %8, align 8, !tbaa !5
  %1813 = load i32, ptr %61, align 4, !tbaa !13
  %1814 = sext i32 %1813 to i64
  %1815 = getelementptr inbounds i8, ptr %1812, i64 %1814
  store i8 0, ptr %1815, align 1, !tbaa !9
  %1816 = load i32, ptr %61, align 4, !tbaa !13
  store i32 %1816, ptr %10, align 4, !tbaa !13
  store i32 59, ptr %42, align 4
  br label %1817

1817:                                             ; preds = %1811, %1754
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  %1818 = load i32, ptr %42, align 4
  switch i32 %1818, label %1965 [
    i32 59, label %1607
  ]

1819:                                             ; preds = %368
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #5
  %1820 = load ptr, ptr %4, align 8, !tbaa !5
  %1821 = getelementptr inbounds %struct.sqlite3_str, ptr %1820, i32 0, i32 6
  %1822 = load i8, ptr %1821, align 1, !tbaa !10
  %1823 = zext i8 %1822 to i32
  %1824 = and i32 %1823, 1
  %1825 = icmp eq i32 %1824, 0
  br i1 %1825, label %1826, label %1827

1826:                                             ; preds = %1819
  store i32 1, ptr %42, align 4
  br label %1860

1827:                                             ; preds = %1819
  %1828 = load ptr, ptr %6, align 8, !tbaa !5
  %1829 = getelementptr inbounds %struct.__va_list_tag, ptr %1828, i32 0, i32 0
  %1830 = load i32, ptr %1829, align 8
  %1831 = icmp ule i32 %1830, 40
  br i1 %1831, label %1832, label %1837

1832:                                             ; preds = %1827
  %1833 = getelementptr inbounds %struct.__va_list_tag, ptr %1828, i32 0, i32 3
  %1834 = load ptr, ptr %1833, align 8
  %1835 = getelementptr i8, ptr %1834, i32 %1830
  %1836 = add i32 %1830, 8
  store i32 %1836, ptr %1829, align 8
  br label %1841

1837:                                             ; preds = %1827
  %1838 = getelementptr inbounds %struct.__va_list_tag, ptr %1828, i32 0, i32 2
  %1839 = load ptr, ptr %1838, align 8
  %1840 = getelementptr i8, ptr %1839, i32 8
  store ptr %1840, ptr %1838, align 8
  br label %1841

1841:                                             ; preds = %1837, %1832
  %1842 = phi ptr [ %1835, %1832 ], [ %1839, %1837 ]
  %1843 = load ptr, ptr %1842, align 8, !tbaa !5
  store ptr %1843, ptr %69, align 8, !tbaa !5
  %1844 = load ptr, ptr %69, align 8, !tbaa !5
  %1845 = icmp ne ptr %1844, null
  br i1 %1845, label %1846, label %1859

1846:                                             ; preds = %1841
  %1847 = load ptr, ptr %69, align 8, !tbaa !5
  %1848 = getelementptr inbounds %struct.Token, ptr %1847, i32 0, i32 1
  %1849 = load i32, ptr %1848, align 8, !tbaa !66
  %1850 = icmp ne i32 %1849, 0
  br i1 %1850, label %1851, label %1859

1851:                                             ; preds = %1846
  %1852 = load ptr, ptr %4, align 8, !tbaa !5
  %1853 = load ptr, ptr %69, align 8, !tbaa !5
  %1854 = getelementptr inbounds %struct.Token, ptr %1853, i32 0, i32 0
  %1855 = load ptr, ptr %1854, align 8, !tbaa !68
  %1856 = load ptr, ptr %69, align 8, !tbaa !5
  %1857 = getelementptr inbounds %struct.Token, ptr %1856, i32 0, i32 1
  %1858 = load i32, ptr %1857, align 8, !tbaa !66
  call void @sqlite3_str_append(ptr noundef %1852, ptr noundef %1855, i32 noundef %1858)
  br label %1859

1859:                                             ; preds = %1851, %1846, %1841
  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 %1860

1860:                                             ; preds = %1859, %1826
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  %1861 = load i32, ptr %42, align 4
  switch i32 %1861, label %1965 [
    i32 17, label %1926
  ]

1862:                                             ; preds = %368
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  %1863 = load ptr, ptr %4, align 8, !tbaa !5
  %1864 = getelementptr inbounds %struct.sqlite3_str, ptr %1863, i32 0, i32 6
  %1865 = load i8, ptr %1864, align 1, !tbaa !10
  %1866 = zext i8 %1865 to i32
  %1867 = and i32 %1866, 1
  %1868 = icmp eq i32 %1867, 0
  br i1 %1868, label %1869, label %1870

1869:                                             ; preds = %1862
  store i32 1, ptr %42, align 4
  br label %1923

1870:                                             ; preds = %1862
  %1871 = load ptr, ptr %6, align 8, !tbaa !5
  %1872 = getelementptr inbounds %struct.__va_list_tag, ptr %1871, i32 0, i32 0
  %1873 = load i32, ptr %1872, align 8
  %1874 = icmp ule i32 %1873, 40
  br i1 %1874, label %1875, label %1880

1875:                                             ; preds = %1870
  %1876 = getelementptr inbounds %struct.__va_list_tag, ptr %1871, i32 0, i32 3
  %1877 = load ptr, ptr %1876, align 8
  %1878 = getelementptr i8, ptr %1877, i32 %1873
  %1879 = add i32 %1873, 8
  store i32 %1879, ptr %1872, align 8
  br label %1884

1880:                                             ; preds = %1870
  %1881 = getelementptr inbounds %struct.__va_list_tag, ptr %1871, i32 0, i32 2
  %1882 = load ptr, ptr %1881, align 8
  %1883 = getelementptr i8, ptr %1882, i32 8
  store ptr %1883, ptr %1881, align 8
  br label %1884

1884:                                             ; preds = %1880, %1875
  %1885 = phi ptr [ %1878, %1875 ], [ %1882, %1880 ]
  %1886 = load ptr, ptr %1885, align 8, !tbaa !5
  store ptr %1886, ptr %70, align 8, !tbaa !5
  %1887 = load ptr, ptr %6, align 8, !tbaa !5
  %1888 = getelementptr inbounds %struct.__va_list_tag, ptr %1887, i32 0, i32 0
  %1889 = load i32, ptr %1888, align 8
  %1890 = icmp ule i32 %1889, 40
  br i1 %1890, label %1891, label %1896

1891:                                             ; preds = %1884
  %1892 = getelementptr inbounds %struct.__va_list_tag, ptr %1887, i32 0, i32 3
  %1893 = load ptr, ptr %1892, align 8
  %1894 = getelementptr i8, ptr %1893, i32 %1889
  %1895 = add i32 %1889, 8
  store i32 %1895, ptr %1888, align 8
  br label %1900

1896:                                             ; preds = %1884
  %1897 = getelementptr inbounds %struct.__va_list_tag, ptr %1887, i32 0, i32 2
  %1898 = load ptr, ptr %1897, align 8
  %1899 = getelementptr i8, ptr %1898, i32 8
  store ptr %1899, ptr %1897, align 8
  br label %1900

1900:                                             ; preds = %1896, %1891
  %1901 = phi ptr [ %1894, %1891 ], [ %1898, %1896 ]
  %1902 = load i32, ptr %1901, align 4, !tbaa !13
  store i32 %1902, ptr %71, align 4, !tbaa !13
  %1903 = load ptr, ptr %70, align 8, !tbaa !5
  %1904 = getelementptr inbounds %struct.SrcList, ptr %1903, i32 0, i32 2
  %1905 = load i32, ptr %71, align 4, !tbaa !13
  %1906 = sext i32 %1905 to i64
  %1907 = getelementptr inbounds [1 x %struct.SrcList_item], ptr %1904, i64 0, i64 %1906
  store ptr %1907, ptr %72, align 8, !tbaa !5
  %1908 = load ptr, ptr %72, align 8, !tbaa !5
  %1909 = getelementptr inbounds %struct.SrcList_item, ptr %1908, i32 0, i32 1
  %1910 = load ptr, ptr %1909, align 8, !tbaa !69
  %1911 = icmp ne ptr %1910, null
  br i1 %1911, label %1912, label %1918

1912:                                             ; preds = %1900
  %1913 = load ptr, ptr %4, align 8, !tbaa !5
  %1914 = load ptr, ptr %72, align 8, !tbaa !5
  %1915 = getelementptr inbounds %struct.SrcList_item, ptr %1914, i32 0, i32 1
  %1916 = load ptr, ptr %1915, align 8, !tbaa !69
  call void @sqlite3_str_appendall(ptr noundef %1913, ptr noundef %1916)
  %1917 = load ptr, ptr %4, align 8, !tbaa !5
  call void @sqlite3_str_append(ptr noundef %1917, ptr noundef @.str.6, i32 noundef 1)
  br label %1918

1918:                                             ; preds = %1912, %1900
  %1919 = load ptr, ptr %4, align 8, !tbaa !5
  %1920 = load ptr, ptr %72, align 8, !tbaa !5
  %1921 = getelementptr inbounds %struct.SrcList_item, ptr %1920, i32 0, i32 2
  %1922 = load ptr, ptr %1921, align 8, !tbaa !72
  call void @sqlite3_str_appendall(ptr noundef %1919, ptr noundef %1922)
  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 %1923

1923:                                             ; preds = %1918, %1869
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  %1924 = load i32, ptr %42, align 4
  switch i32 %1924, label %1965 [
    i32 17, label %1926
  ]

1925:                                             ; preds = %368
  store i32 1, ptr %42, align 4
  br label %1965

1926:                                             ; preds = %1923, %1860, %1635, %1509, %1275, %1274, %1250, %956, %863, %752
  %1927 = load i32, ptr %10, align 4, !tbaa !13
  %1928 = load i32, ptr %12, align 4, !tbaa !13
  %1929 = sub nsw i32 %1928, %1927
  store i32 %1929, ptr %12, align 4, !tbaa !13
  %1930 = load i32, ptr %12, align 4, !tbaa !13
  %1931 = icmp sgt i32 %1930, 0
  br i1 %1931, label %1932, label %1948

1932:                                             ; preds = %1926
  %1933 = load i8, ptr %13, align 1, !tbaa !9
  %1934 = icmp ne i8 %1933, 0
  br i1 %1934, label %1938, label %1935

1935:                                             ; preds = %1932
  %1936 = load ptr, ptr %4, align 8, !tbaa !5
  %1937 = load i32, ptr %12, align 4, !tbaa !13
  call void @sqlite3_str_appendchar(ptr noundef %1936, i32 noundef %1937, i8 noundef signext 32)
  br label %1938

1938:                                             ; preds = %1935, %1932
  %1939 = load ptr, ptr %4, align 8, !tbaa !5
  %1940 = load ptr, ptr %8, align 8, !tbaa !5
  %1941 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %1939, ptr noundef %1940, i32 noundef %1941)
  %1942 = load i8, ptr %13, align 1, !tbaa !9
  %1943 = icmp ne i8 %1942, 0
  br i1 %1943, label %1944, label %1947

1944:                                             ; preds = %1938
  %1945 = load ptr, ptr %4, align 8, !tbaa !5
  %1946 = load i32, ptr %12, align 4, !tbaa !13
  call void @sqlite3_str_appendchar(ptr noundef %1945, i32 noundef %1946, i8 noundef signext 32)
  br label %1947

1947:                                             ; preds = %1944, %1938
  br label %1952

1948:                                             ; preds = %1926
  %1949 = load ptr, ptr %4, align 8, !tbaa !5
  %1950 = load ptr, ptr %8, align 8, !tbaa !5
  %1951 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %1949, ptr noundef %1950, i32 noundef %1951)
  br label %1952

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

1955:                                             ; preds = %1952
  %1956 = load ptr, ptr %4, align 8, !tbaa !5
  %1957 = getelementptr inbounds %struct.sqlite3_str, ptr %1956, i32 0, i32 0
  %1958 = load ptr, ptr %1957, align 8, !tbaa !57
  %1959 = load ptr, ptr %29, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %1958, ptr noundef %1959)
  store ptr null, ptr %29, align 8, !tbaa !5
  br label %1960

1960:                                             ; preds = %1955, %1952
  br label %1961

1961:                                             ; preds = %1960
  %1962 = load ptr, ptr %5, align 8, !tbaa !5
  %1963 = getelementptr inbounds i8, ptr %1962, i32 1
  store ptr %1963, ptr %5, align 8, !tbaa !5
  br label %98, !llvm.loop !73

1964:                                             ; preds = %144, %136, %98
  store i32 0, ptr %42, align 4
  br label %1965

1965:                                             ; preds = %1964, %1925, %1923, %1860, %1817, %1035, %581
  call void @llvm.lifetime.end.p0(i64 70, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  %1966 = load i32, ptr %42, align 4
  switch i32 %1966, label %1968 [
    i32 0, label %1967
    i32 1, label %1967
  ]

1967:                                             ; preds = %1965, %1965
  ret void

1968:                                             ; preds = %1965, %956
  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: 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: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare x86_fp80 @llvm.fmuladd.f80(x86_fp80, x86_fp80, x86_fp80) #3

; Function Attrs: nounwind uwtable
declare hidden i32 @sqlite3IsNaN(double noundef) #1

; 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) #4

; 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { 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 #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, !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, !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
@arRound = external hidden local_unnamed_addr constant [10 x double], align 16
@.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) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 70, ptr nonnull %6) #6
  %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
  %.0618 = 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 = %1019, %26
  %.0501 = phi ptr [ null, %26 ], [ %.29, %1019 ]
  %.0 = phi ptr [ %1, %26 ], [ %1020, %1019 ]
  %86 = load i8, ptr %.0, align 1, !tbaa !12
  switch i8 %86, label %.preheader896 [
    i8 0, label %.thread813
    i8 37, label %95
  ]

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

.critedge:                                        ; preds = %.preheader896, %.preheader896
  %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 %.thread813, label %95

95:                                               ; preds = %85, %.critedge
  %.1502 = phi ptr [ %.0, %.critedge ], [ %.0501, %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 %.preheader895

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

.preheader895:                                    ; preds = %95, %197
  %.0601 = phi i8 [ %.1602.ph, %197 ], [ 0, %95 ]
  %.0586 = phi i8 [ %.1587.ph, %197 ], [ 0, %95 ]
  %.0583 = phi i8 [ %.1584.ph, %197 ], [ 0, %95 ]
  %.0580 = phi i8 [ %.1581.ph, %197 ], [ 0, %95 ]
  %.0575 = phi i8 [ %.1576.ph, %197 ], [ 0, %95 ]
  %.0569 = phi i8 [ %.2571.ph, %197 ], [ 0, %95 ]
  %.0542 = phi i32 [ %.3545.ph, %197 ], [ 0, %95 ]
  %.0512 = phi i32 [ %.4516.ph, %197 ], [ -1, %95 ]
  %.0495.in = phi i8 [ %199, %197 ], [ %97, %95 ]
  %.3 = phi ptr [ %198, %197 ], [ %96, %95 ]
  %.0495 = sext i8 %.0495.in to i32
  switch i8 %.0495.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 = %.preheader895
  br label %197

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

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

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

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

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

106:                                              ; preds = %.preheader895
  %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
  %.1589 = phi i8 [ 2, %110 ], [ 1, %106 ]
  %.1496.in = phi i8 [ %112, %110 ], [ %108, %106 ]
  %.4 = phi ptr [ %111, %110 ], [ %107, %106 ]
  %.1496 = sext i8 %.1496.in to i32
  br label %.critedge9

114:                                              ; preds = %.preheader895, %.preheader895, %.preheader895, %.preheader895, %.preheader895, %.preheader895, %.preheader895, %.preheader895, %.preheader895
  %.0617921 = add nsw i32 %.0495, -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.ph924, label %._crit_edge925

.lr.ph924:                                        ; preds = %114, %.lr.ph924
  %120 = phi i32 [ %126, %.lr.ph924 ], [ %117, %114 ]
  %121 = phi ptr [ %124, %.lr.ph924 ], [ %115, %114 ]
  %.0617922 = phi i32 [ %.0617, %.lr.ph924 ], [ %.0617921, %114 ]
  %122 = mul i32 %.0617922, 10
  %123 = add i32 %120, %122
  %.0617 = 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.ph924, label %._crit_edge925, !llvm.loop !13

._crit_edge925:                                   ; preds = %.lr.ph924, %114
  %.5.lcssa = phi ptr [ %.3, %114 ], [ %121, %.lr.ph924 ]
  %.0617.lcssa = phi i32 [ %.0617921, %114 ], [ %.0617, %.lr.ph924 ]
  %.lcssa900 = phi ptr [ %115, %114 ], [ %124, %.lr.ph924 ]
  %.lcssa899 = phi i8 [ %116, %114 ], [ %125, %.lr.ph924 ]
  %.lcssa898 = phi i32 [ %117, %114 ], [ %126, %.lr.ph924 ]
  %129 = and i32 %.0617.lcssa, 2147483647
  switch i8 %.lcssa899, label %.critedge9 [
    i8 108, label %197
    i8 46, label %197
  ]

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

131:                                              ; preds = %130
  %132 = call i64 @getIntArg(ptr noundef %.0618)
  %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
  %.1543 = phi i32 [ %133, %131 ], [ %147, %145 ]
  %149 = icmp slt i32 %.1543, 0
  %.not727 = icmp eq i32 %.1543, -2147483648
  %150 = sub nsw i32 0, %.1543
  %151 = select i1 %.not727, i32 0, i32 %150
  %.1570 = select i1 %149, i8 1, i8 %.0569
  %.2544 = select i1 %149, i32 %151, i32 %.1543
  %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.exit964 [
    i8 108, label %197
    i8 46, label %197
  ]

154:                                              ; preds = %.preheader895
  %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 %.preheader878

.preheader878:                                    ; preds = %154
  %.2497915 = 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 %.0618)
  %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
  %.1513 = phi i32 [ %163, %161 ], [ %177, %175 ]
  %179 = icmp slt i32 %.1513, 0
  %.not725 = icmp eq i32 %.1513, -2147483648
  %180 = sub nsw i32 0, %.1513
  %181 = select i1 %.not725, i32 -1, i32 %180
  %.2514 = select i1 %179, i32 %181, i32 %.1513
  %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 = %.preheader878, %.lr.ph
  %.2497918 = phi i32 [ %.2497, %.lr.ph ], [ %.2497915, %.preheader878 ]
  %.7917 = phi ptr [ %188, %.lr.ph ], [ %155, %.preheader878 ]
  %.0616916 = phi i32 [ %187, %.lr.ph ], [ 0, %.preheader878 ]
  %185 = mul i32 %.0616916, 10
  %186 = add i32 %185, -48
  %187 = add i32 %186, %.2497918
  %188 = getelementptr inbounds i8, ptr %.7917, i64 1
  %189 = load i8, ptr %188, align 1, !tbaa !12
  %.2497 = 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, %.preheader878
  %.0616.lcssa = phi i32 [ 0, %.preheader878 ], [ %187, %.lr.ph ]
  %.7.lcssa = phi ptr [ %155, %.preheader878 ], [ %188, %.lr.ph ]
  %.2497.lcssa = phi i32 [ %.2497915, %.preheader878 ], [ %.2497, %.lr.ph ]
  %192 = and i32 %.0616.lcssa, 2147483647
  br label %193

193:                                              ; preds = %._crit_edge, %178
  %.3515 = phi i32 [ %.2514, %178 ], [ %192, %._crit_edge ]
  %.3498 = phi i32 [ %184, %178 ], [ %.2497.lcssa, %._crit_edge ]
  %.8 = phi ptr [ %182, %178 ], [ %.7.lcssa, %._crit_edge ]
  %194 = icmp eq i32 %.3498, 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_edge925, %._crit_edge925, %195, %148, %148, %105, %104, %103, %102, %101, %100, %.preheader895
  %.1602.ph = phi i8 [ %.0601, %148 ], [ %.0601, %.preheader895 ], [ %.0601, %100 ], [ %.0601, %101 ], [ %.0601, %102 ], [ %.0601, %103 ], [ %.0601, %104 ], [ 44, %105 ], [ %.0601, %148 ], [ %.0601, %195 ], [ %.0601, %._crit_edge925 ], [ %.0601, %._crit_edge925 ]
  %.1587.ph = phi i8 [ %.0586, %148 ], [ %.0586, %.preheader895 ], [ %.0586, %100 ], [ %.0586, %101 ], [ %.0586, %102 ], [ %.0586, %103 ], [ 1, %104 ], [ %.0586, %105 ], [ %.0586, %148 ], [ %.0586, %195 ], [ %.0586, %._crit_edge925 ], [ %.0586, %._crit_edge925 ]
  %.1584.ph = phi i8 [ %.0583, %148 ], [ %.0583, %.preheader895 ], [ %.0583, %100 ], [ %.0583, %101 ], [ %.0583, %102 ], [ 1, %103 ], [ %.0583, %104 ], [ %.0583, %105 ], [ %.0583, %148 ], [ %.0583, %195 ], [ %.0583, %._crit_edge925 ], [ %.0583, %._crit_edge925 ]
  %.1581.ph = phi i8 [ %.0580, %148 ], [ %.0580, %.preheader895 ], [ %.0580, %100 ], [ %.0580, %101 ], [ 1, %102 ], [ %.0580, %103 ], [ %.0580, %104 ], [ %.0580, %105 ], [ %.0580, %148 ], [ %.0580, %195 ], [ %.0580, %._crit_edge925 ], [ %.0580, %._crit_edge925 ]
  %.1576.ph = phi i8 [ %.0575, %148 ], [ %.0575, %.preheader895 ], [ %.0495.in, %100 ], [ %.0495.in, %101 ], [ %.0575, %102 ], [ %.0575, %103 ], [ %.0575, %104 ], [ %.0575, %105 ], [ %.0575, %148 ], [ %.0575, %195 ], [ %.0575, %._crit_edge925 ], [ %.0575, %._crit_edge925 ]
  %.2571.ph = phi i8 [ %.1570, %148 ], [ 1, %.preheader895 ], [ %.0569, %100 ], [ %.0569, %101 ], [ %.0569, %102 ], [ %.0569, %103 ], [ %.0569, %104 ], [ %.0569, %105 ], [ %.1570, %148 ], [ %.0569, %195 ], [ %.0569, %._crit_edge925 ], [ %.0569, %._crit_edge925 ]
  %.3545.ph = phi i32 [ %.2544, %148 ], [ %.0542, %.preheader895 ], [ %.0542, %100 ], [ %.0542, %101 ], [ %.0542, %102 ], [ %.0542, %103 ], [ %.0542, %104 ], [ %.0542, %105 ], [ %.2544, %148 ], [ %.0542, %195 ], [ %129, %._crit_edge925 ], [ %129, %._crit_edge925 ]
  %.4516.ph = phi i32 [ %.0512, %148 ], [ %.0512, %.preheader895 ], [ %.0512, %100 ], [ %.0512, %101 ], [ %.0512, %102 ], [ %.0512, %103 ], [ %.0512, %104 ], [ %.0512, %105 ], [ %.0512, %148 ], [ %.3515, %195 ], [ %.0512, %._crit_edge925 ], [ %.0512, %._crit_edge925 ]
  %.9.ph = phi ptr [ %.3, %148 ], [ %.3, %.preheader895 ], [ %.3, %100 ], [ %.3, %101 ], [ %.3, %102 ], [ %.3, %103 ], [ %.3, %104 ], [ %.3, %105 ], [ %.3, %148 ], [ %196, %195 ], [ %.5.lcssa, %._crit_edge925 ], [ %.5.lcssa, %._crit_edge925 ]
  %198 = getelementptr inbounds i8, ptr %.9.ph, i64 1
  %199 = load i8, ptr %198, align 1, !tbaa !12
  %.not729 = icmp eq i8 %199, 0
  br i1 %.not729, label %.critedge9, label %.preheader895, !llvm.loop !17

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

.critedge9:                                       ; preds = %197, %193, %._crit_edge925, %.preheader895, %.critedge9.loopexit.split.loop.exit964, %113
  %.4516810 = phi i32 [ %.0512, %113 ], [ %.0512, %.critedge9.loopexit.split.loop.exit964 ], [ %.4516.ph, %197 ], [ %.3515, %193 ], [ %.0512, %._crit_edge925 ], [ %.0512, %.preheader895 ]
  %.3545808 = phi i32 [ %.0542, %113 ], [ %.2544, %.critedge9.loopexit.split.loop.exit964 ], [ %.3545.ph, %197 ], [ %.0542, %193 ], [ %129, %._crit_edge925 ], [ %.0542, %.preheader895 ]
  %.2571806 = phi i8 [ %.0569, %113 ], [ %.1570, %.critedge9.loopexit.split.loop.exit964 ], [ %.2571.ph, %197 ], [ %.0569, %193 ], [ %.0569, %._crit_edge925 ], [ %.0569, %.preheader895 ]
  %.1576805 = phi i8 [ %.0575, %113 ], [ %.0575, %.critedge9.loopexit.split.loop.exit964 ], [ %.1576.ph, %197 ], [ %.0575, %193 ], [ %.0575, %._crit_edge925 ], [ %.0575, %.preheader895 ]
  %.1581802 = phi i8 [ %.0580, %113 ], [ %.0580, %.critedge9.loopexit.split.loop.exit964 ], [ %.1581.ph, %197 ], [ %.0580, %193 ], [ %.0580, %._crit_edge925 ], [ %.0580, %.preheader895 ]
  %.1584800 = phi i8 [ %.0583, %113 ], [ %.0583, %.critedge9.loopexit.split.loop.exit964 ], [ %.1584.ph, %197 ], [ %.0583, %193 ], [ %.0583, %._crit_edge925 ], [ %.0583, %.preheader895 ]
  %.1587798 = phi i8 [ %.0586, %113 ], [ %.0586, %.critedge9.loopexit.split.loop.exit964 ], [ %.1587.ph, %197 ], [ %.0586, %193 ], [ %.0586, %._crit_edge925 ], [ %.0586, %.preheader895 ]
  %.2590797 = phi i8 [ %.1589, %113 ], [ 0, %.critedge9.loopexit.split.loop.exit964 ], [ 0, %.preheader895 ], [ 0, %._crit_edge925 ], [ 0, %193 ], [ 0, %197 ]
  %.1602795 = phi i8 [ %.0601, %113 ], [ %.0601, %.critedge9.loopexit.split.loop.exit964 ], [ %.1602.ph, %197 ], [ %.0601, %193 ], [ %.0601, %._crit_edge925 ], [ %.0601, %.preheader895 ]
  %.5500 = phi i32 [ %.1496, %113 ], [ %201, %.critedge9.loopexit.split.loop.exit964 ], [ 0, %197 ], [ %.3498, %193 ], [ %.lcssa898, %._crit_edge925 ], [ %.0495, %.preheader895 ]
  %.10 = phi ptr [ %.4, %113 ], [ %200, %.critedge9.loopexit.split.loop.exit964 ], [ %198, %197 ], [ %.8, %193 ], [ %.lcssa900, %._crit_edge925 ], [ %.3, %.preheader895 ]
  %202 = icmp eq i32 %.5500, %40
  br i1 %202, label %247, label %203

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
  %.lcssa1102 = 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 %.lcssa1102, i64 3
  %249 = load i8, ptr %248, align 1, !tbaa !18
  switch i8 %249, label %.thread813 [
    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 %678
    i8 7, label %694
    i8 8, label %695
    i8 5, label %773
    i8 6, label %773
    i8 9, label %862
    i8 10, label %862
    i8 14, label %862
    i8 11, label %950
    i8 12, label %972
  ]

250:                                              ; preds = %247
  br label %252

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

252:                                              ; preds = %250, %251, %247
  %.2603 = phi i8 [ %.1602795, %247 ], [ 0, %250 ], [ 0, %251 ]
  %.4592 = phi i8 [ %.2590797, %247 ], [ 2, %250 ], [ %.2590797, %251 ]
  %253 = getelementptr inbounds i8, ptr %.lcssa1102, i64 2
  %254 = load i8, ptr %253, align 1, !tbaa !20
  %255 = and i8 %254, 1
  %.not755 = icmp eq i8 %255, 0
  br i1 %.not755, label %301, label %256

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

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

259:                                              ; preds = %256
  %260 = load i32, ptr %2, align 8
  %261 = icmp ult i32 %260, 41
  switch i8 %.4592, 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
  %.0615 = phi i64 [ %258, %257 ], [ %273, %271 ], [ %285, %283 ], [ %298, %295 ]
  %300 = icmp slt i64 %.0615, 0
  %spec.select = select i1 %300, i8 45, i8 %.1576805
  %spec.select874 = call i64 @llvm.abs.i64(i64 %.0615, i1 false)
  br label %344

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

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

304:                                              ; preds = %301
  %305 = load i32, ptr %2, align 8
  %306 = icmp ult i32 %305, 41
  switch i8 %.4592, 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
  %.1659 = phi i8 [ 0, %340 ], [ 0, %328 ], [ 0, %316 ], [ 0, %302 ], [ %spec.select, %299 ]
  %.3656 = phi i64 [ %343, %340 ], [ %330, %328 ], [ %318, %316 ], [ %303, %302 ], [ %spec.select874, %299 ]
  %345 = icmp eq i64 %.3656, 0
  %.not760 = icmp eq i8 %.1587798, 0
  br i1 %.not760, label %349, label %346

346:                                              ; preds = %344
  %347 = icmp ne i8 %.1659, 0
  %.neg = sext i1 %347 to i32
  %348 = add i32 %.3545808, %.neg
  %spec.select771 = call i32 @llvm.smax.i32(i32 %.4516810, i32 %348)
  br label %349

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

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

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

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

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

365:                                              ; preds = %360
  %366 = urem i64 %.3656, 10
  %367 = udiv i64 %.3656, 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.cond1375 = select i1 %368, i1 true, i1 %371
  %.0607 = select i1 %or.cond1375, i32 0, i32 %369
  %372 = shl nuw nsw i32 %.0607, 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
  %.2503 = phi ptr [ %381, %365 ], [ %363, %360 ]
  %.25031148 = ptrtoint ptr %.2503 to i64
  %383 = getelementptr inbounds i8, ptr %.lcssa1102, 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 %.lcssa1102, i64 1
  %388 = load i8, ptr %387, align 1, !tbaa !26
  %389 = zext i8 %388 to i64
  %scevgep1151 = getelementptr i8, ptr %.2503, i64 -2
  %390 = add i32 %.5517, -1
  %391 = trunc i64 %.25031148 to i32
  %392 = add i32 %390, %391
  %393 = trunc i64 %.06511149 to i32
  %394 = add i32 %.2649, %393
  %395 = sub i32 %392, %394
  br label %396

396:                                              ; preds = %396, %382
  %indvars.iv1154 = phi i32 [ %indvars.iv.next1155, %396 ], [ %395, %382 ]
  %indvars.iv1152 = phi ptr [ %scevgep1153, %396 ], [ %scevgep1151, %382 ]
  %indvar = phi i64 [ %indvar.next, %396 ], [ 0, %382 ]
  %.4657 = phi i64 [ %401, %396 ], [ %.3656, %382 ]
  %.3504 = phi ptr [ %400, %396 ], [ %.2503, %382 ]
  %397 = urem i64 %.4657, %389
  %398 = getelementptr inbounds i8, ptr %386, i64 %397
  %399 = load i8, ptr %398, align 1, !tbaa !12
  %400 = getelementptr inbounds i8, ptr %.3504, i64 -1
  store i8 %399, ptr %400, align 1, !tbaa !12
  %401 = udiv i64 %.4657, %389
  %.not763 = icmp ult i64 %.4657, %389
  %indvar.next = add i64 %indvar, 1
  %scevgep1153 = getelementptr i8, ptr %indvars.iv1152, i64 -1
  %indvars.iv.next1155 = add i32 %indvars.iv1154, -1
  br i1 %.not763, 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 %.5517, %406
  br i1 %407, label %.lr.ph1054.preheader, label %._crit_edge1055

.lr.ph1054.preheader:                             ; preds = %402
  %408 = sub i64 -2, %indvar
  %scevgep1147 = getelementptr i8, ptr %.2503, 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
  %scevgep1150 = getelementptr i8, ptr %scevgep1147, i64 %412
  %413 = add nuw nsw i64 %411, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %scevgep1150, i8 48, i64 %413, i1 false), !tbaa !12
  %414 = zext i32 %indvars.iv1154 to i64
  %415 = sub nsw i64 0, %414
  %scevgep1156 = getelementptr i8, ptr %indvars.iv1152, i64 %415
  br label %._crit_edge1055

._crit_edge1055:                                  ; preds = %.lr.ph1054.preheader, %402
  %.1527.lcssa = phi i32 [ %406, %402 ], [ %.5517, %.lr.ph1054.preheader ]
  %.4505.lcssa = phi ptr [ %400, %402 ], [ %scevgep1156, %.lr.ph1054.preheader ]
  %.not764 = icmp eq i8 %.2603, 0
  br i1 %.not764, label %.loopexit880, label %416

416:                                              ; preds = %._crit_edge1055
  %417 = add nsw i32 %.1527.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 %.4505.lcssa, i64 %420
  %422 = icmp sgt i32 %.1527.lcssa, 3
  br i1 %422, label %.lr.ph1062.preheader, label %.loopexit880

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

.lr.ph1062:                                       ; preds = %.lr.ph1062.preheader, %438
  %.15391060 = phi i32 [ %439, %438 ], [ 0, %.lr.ph1062.preheader ]
  %.05971059 = phi i32 [ %.1598, %438 ], [ %424, %.lr.ph1062.preheader ]
  %.05991058 = phi i32 [ %.1600, %438 ], [ %418, %.lr.ph1062.preheader ]
  %425 = add nsw i32 %.15391060, %.05991058
  %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 %.15391060 to i64
  %430 = getelementptr inbounds i8, ptr %421, i64 %429
  store i8 %428, ptr %430, align 1, !tbaa !12
  %431 = add nsw i32 %.05971059, -1
  %432 = icmp eq i32 %431, 0
  br i1 %432, label %433, label %438

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

438:                                              ; preds = %.lr.ph1062, %433
  %.1600 = phi i32 [ %437, %433 ], [ %.05991058, %.lr.ph1062 ]
  %.1598 = phi i32 [ 3, %433 ], [ %431, %.lr.ph1062 ]
  %.2540 = phi i32 [ %434, %433 ], [ %.15391060, %.lr.ph1062 ]
  %439 = add nsw i32 %.2540, 1
  %440 = icmp sgt i32 %.1600, 0
  br i1 %440, label %.lr.ph1062, label %.loopexit880, !llvm.loop !28

.loopexit880:                                     ; preds = %438, %416, %._crit_edge1055
  %.5506 = phi ptr [ %.4505.lcssa, %._crit_edge1055 ], [ %421, %416 ], [ %421, %438 ]
  %.not765 = icmp eq i8 %.1659, 0
  br i1 %.not765, label %443, label %441

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

443:                                              ; preds = %441, %.loopexit880
  %.6507 = phi ptr [ %442, %441 ], [ %.5506, %.loopexit880 ]
  %.not766873 = icmp eq i8 %.1581802, 0
  %.not766 = select i1 %345, i1 true, i1 %.not766873
  br i1 %.not766, label %.loopexit879, label %444

444:                                              ; preds = %443
  %445 = getelementptr inbounds i8, ptr %.lcssa1102, i64 5
  %446 = load i8, ptr %445, align 1, !tbaa !29
  %.not767 = icmp eq i8 %446, 0
  br i1 %.not767, label %.loopexit879, 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
  %.not7681063 = icmp eq i8 %450, 0
  br i1 %.not7681063, label %.loopexit879, label %.lr.ph1067

.lr.ph1067:                                       ; preds = %447, %.lr.ph1067
  %451 = phi i8 [ %454, %.lr.ph1067 ], [ %450, %447 ]
  %.75081065 = phi ptr [ %452, %.lr.ph1067 ], [ %.6507, %447 ]
  %.05961064 = phi ptr [ %453, %.lr.ph1067 ], [ %449, %447 ]
  %452 = getelementptr inbounds i8, ptr %.75081065, i64 -1
  store i8 %451, ptr %452, align 1, !tbaa !12
  %453 = getelementptr inbounds i8, ptr %.05961064, i64 1
  %454 = load i8, ptr %453, align 1, !tbaa !12
  %.not768 = icmp eq i8 %454, 0
  br i1 %.not768, label %.loopexit879, label %.lr.ph1067, !llvm.loop !30

.loopexit879:                                     ; preds = %.lr.ph1067, %447, %444, %443
  %.8509 = phi ptr [ %.6507, %444 ], [ %.6507, %443 ], [ %.6507, %447 ], [ %452, %.lr.ph1067 ]
  %455 = ptrtoint ptr %.8509 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 %.0618)
  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 %.4516810, 0
  %477 = call i32 @llvm.smin.i32(i32 %.4516810, i32 100000000)
  %spec.store.select33 = select i1 %476, i32 6, i32 %477
  %478 = fcmp olt double %storemerge.in, 0.000000e+00
  %479 = fneg x86_fp80 %storemerge
  %storemerge869 = select i1 %478, x86_fp80 %479, x86_fp80 %storemerge
  %.2660 = select i1 %478, i8 45, i8 %.1576805
  store x86_fp80 %storemerge869, ptr %4, align 16, !tbaa !33
  %480 = icmp eq i8 %249, 3
  %481 = icmp sgt i32 %spec.store.select33, 0
  %or.cond11 = and i1 %480, %481
  %482 = sext i1 %or.cond11 to i32
  %spec.select772 = add nsw i32 %spec.store.select33, %482
  %483 = and i32 %spec.select772, 4095
  %.lhs.trunc = trunc nuw nsw i32 %483 to i16
  %484 = urem i16 %.lhs.trunc, 10
  %485 = zext nneg i16 %484 to i64
  %486 = getelementptr inbounds [10 x double], ptr @arRound, i64 0, i64 %485
  %487 = load double, ptr %486, align 8, !tbaa !31
  %488 = icmp ugt i32 %483, 9
  br i1 %488, label %.lr.ph1014, label %._crit_edge1015

.lr.ph1014:                                       ; preds = %475, %.lr.ph1014
  %.35411012 = phi i32 [ %490, %.lr.ph1014 ], [ %483, %475 ]
  %.06211011 = phi double [ %489, %.lr.ph1014 ], [ %487, %475 ]
  %489 = fmul double %.06211011, 1.000000e-10
  %490 = add nsw i32 %.35411012, -10
  %491 = icmp ugt i32 %.35411012, 19
  br i1 %491, label %.lr.ph1014, label %._crit_edge1015, !llvm.loop !35

._crit_edge1015:                                  ; preds = %.lr.ph1014, %475
  %.0621.lcssa = phi double [ %487, %475 ], [ %489, %.lr.ph1014 ]
  %492 = icmp eq i8 %249, 1
  br i1 %492, label %493, label %507

493:                                              ; preds = %._crit_edge1015
  %494 = fptrunc x86_fp80 %storemerge869 to double
  %495 = bitcast double %494 to i64
  %496 = lshr i64 %495, 52
  %497 = trunc nuw nsw i64 %496 to i16
  %498 = and i16 %497, 2047
  %.lhs.trunc863 = add nsw i16 %498, -1023
  %499 = sdiv i16 %.lhs.trunc863, 3
  %.sext = sext i16 %499 to i32
  %500 = add nsw i32 %spec.select772, %.sext
  %501 = icmp slt i32 %500, 15
  %502 = fpext double %.0621.lcssa to x86_fp80
  %503 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %storemerge869, x86_fp80 0xK3FCBACF02F8F133A6800, x86_fp80 %502)
  %504 = fptrunc x86_fp80 %503 to double
  %.1622 = select i1 %501, double %504, double %.0621.lcssa
  %505 = fpext double %.1622 to x86_fp80
  %506 = fadd x86_fp80 %storemerge869, %505
  store x86_fp80 %506, ptr %4, align 16, !tbaa !33
  br label %507

507:                                              ; preds = %493, %._crit_edge1015
  %508 = phi x86_fp80 [ %506, %493 ], [ %storemerge869, %._crit_edge1015 ]
  %.2623 = phi double [ %.1622, %493 ], [ %.0621.lcssa, %._crit_edge1015 ]
  %509 = fptrunc x86_fp80 %508 to double
  %510 = call i32 @sqlite3IsNaN(double noundef %509)
  %.not747 = icmp eq i32 %510, 0
  br i1 %.not747, label %511, label %.critedge28.thread

511:                                              ; preds = %507
  %512 = load x86_fp80, ptr %4, align 16, !tbaa !33
  %513 = fcmp ogt x86_fp80 %512, 0xK00000000000000000000
  br i1 %513, label %.preheader888, label %.thread816

.preheader888:                                    ; preds = %511
  %514 = fcmp ult x86_fp80 %512, 0xK414B924D692CA61BE800
  br i1 %514, label %.preheader887.preheader, label %.preheader888.1, !llvm.loop !36

.preheader888.1:                                  ; preds = %.preheader888
  %515 = fcmp ult x86_fp80 %512, 0xK4297A738C6BEBB12D2EC
  br i1 %515, label %.preheader887.preheader, label %.preheader888.2, !llvm.loop !36

.preheader888.2:                                  ; preds = %.preheader888.1
  %516 = fcmp ult x86_fp80 %512, 0xK43E3BF21E44003ACDFBE
  br i1 %516, label %.preheader887.preheader, label %.preheader888.3, !llvm.loop !36

.preheader888.3:                                  ; preds = %.preheader888.2
  %517 = fcmp ult x86_fp80 %512, 0xK452FDA763FC8CB9FFDCF
  br i1 %517, label %.preheader887.preheader, label %.preheader888.4, !llvm.loop !36

.preheader888.4:                                  ; preds = %.preheader888.3
  br label %.preheader887.preheader

.preheader887.preheader:                          ; preds = %.preheader888.4, %.preheader888.3, %.preheader888.2, %.preheader888.1, %.preheader888
  %.0628.lcssa = phi i32 [ 0, %.preheader888 ], [ 100, %.preheader888.1 ], [ 200, %.preheader888.2 ], [ 300, %.preheader888.3 ], [ 400, %.preheader888.4 ]
  %.0577.lcssa = phi x86_fp80 [ 0xK3FFF8000000000000000, %.preheader888 ], [ 0xK414B924D692CA61BE800, %.preheader888.1 ], [ 0xK4297A738C6BEBB12D2EC, %.preheader888.2 ], [ 0xK43E3BF21E44003ACDFBE, %.preheader888.3 ], [ 0xK452FDA763FC8CB9FFDCF, %.preheader888.4 ]
  br label %.preheader887

.preheader887:                                    ; preds = %.preheader887.preheader, %.preheader887
  %.1629 = phi i32 [ %522, %.preheader887 ], [ %.0628.lcssa, %.preheader887.preheader ]
  %.1578 = phi x86_fp80 [ %518, %.preheader887 ], [ %.0577.lcssa, %.preheader887.preheader ]
  %518 = fmul x86_fp80 %.1578, 0xK40209502F90000000000
  %519 = fcmp oge x86_fp80 %512, %518
  %520 = icmp ult i32 %.1629, 351
  %521 = select i1 %519, i1 %520, i1 false
  %522 = add nuw nsw i32 %.1629, 10
  br i1 %521, label %.preheader887, label %.preheader886, !llvm.loop !37

.preheader886:                                    ; preds = %.preheader887, %.preheader886
  %.2630 = phi i32 [ %527, %.preheader886 ], [ %.1629, %.preheader887 ]
  %.2579 = phi x86_fp80 [ %523, %.preheader886 ], [ %.1578, %.preheader887 ]
  %523 = fmul x86_fp80 %.2579, 0xK4002A000000000000000
  %524 = fcmp oge x86_fp80 %512, %523
  %525 = icmp ult i32 %.2630, 351
  %526 = select i1 %524, i1 %525, i1 false
  %527 = add nuw nsw i32 %.2630, 1
  br i1 %526, label %.preheader886, label %528, !llvm.loop !38

528:                                              ; preds = %.preheader886
  %529 = fdiv x86_fp80 %512, %.2579
  store x86_fp80 %529, ptr %4, align 16, !tbaa !33
  %530 = fcmp olt x86_fp80 %529, 0xK3FE4ABCC77118461D000
  br i1 %530, label %.lr.ph1019, label %thread-pre-split

.lr.ph1019:                                       ; preds = %528, %.lr.ph1019
  %.36311017 = phi i32 [ %533, %.lr.ph1019 ], [ %.2630, %528 ]
  %531 = phi x86_fp80 [ %532, %.lr.ph1019 ], [ %529, %528 ]
  %532 = fmul x86_fp80 %531, 0xK4019BEBC200000000000
  %533 = add nsw i32 %.36311017, -8
  %534 = fcmp olt x86_fp80 %532, 0xK3FE4ABCC77118461D000
  br i1 %534, label %.lr.ph1019, label %.thread-pre-split_crit_edge, !llvm.loop !39

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

thread-pre-split:                                 ; preds = %.thread-pre-split_crit_edge, %528
  %.pr = phi x86_fp80 [ %532, %.thread-pre-split_crit_edge ], [ %529, %528 ]
  %.3631.lcssa = phi i32 [ %533, %.thread-pre-split_crit_edge ], [ %.2630, %528 ]
  %535 = fcmp olt x86_fp80 %.pr, 0xK3FFF8000000000000000
  br i1 %535, label %.lr.ph1023, label %540

.lr.ph1023:                                       ; preds = %thread-pre-split, %.lr.ph1023
  %.46321022 = phi i32 [ %538, %.lr.ph1023 ], [ %.3631.lcssa, %thread-pre-split ]
  %536 = phi x86_fp80 [ %537, %.lr.ph1023 ], [ %.pr, %thread-pre-split ]
  %537 = fmul x86_fp80 %536, 0xK4002A000000000000000
  %538 = add nsw i32 %.46321022, -1
  %539 = fcmp olt x86_fp80 %537, 0xK3FFF8000000000000000
  br i1 %539, label %.lr.ph1023, label %._crit_edge1024, !llvm.loop !40

._crit_edge1024:                                  ; preds = %.lr.ph1023
  store x86_fp80 %537, ptr %4, align 16, !tbaa !33
  br label %540

540:                                              ; preds = %._crit_edge1024, %thread-pre-split
  %541 = phi x86_fp80 [ %537, %._crit_edge1024 ], [ %.pr, %thread-pre-split ]
  %.4632.lcssa = phi i32 [ %538, %._crit_edge1024 ], [ %.3631.lcssa, %thread-pre-split ]
  %542 = icmp sgt i32 %.4632.lcssa, 350
  br i1 %542, label %543, label %.thread816

543:                                              ; preds = %540
  store i8 %.2660, ptr %6, align 16, !tbaa !12
  %544 = icmp ne i8 %.2660, 0
  %545 = zext i1 %544 to i64
  %546 = getelementptr inbounds i8, ptr %6, i64 %545
  store i32 %38, ptr %546, align 1
  %547 = select i1 %544, i32 4, i32 3
  br label %.critedge28.thread

.thread816:                                       ; preds = %540, %511
  %548 = phi x86_fp80 [ %512, %511 ], [ %541, %540 ]
  %.5633 = phi i32 [ 0, %511 ], [ %.4632.lcssa, %540 ]
  br i1 %492, label %.thread821, label %549

549:                                              ; preds = %.thread816
  %550 = fpext double %.2623 to x86_fp80
  %551 = fadd x86_fp80 %548, %550
  store x86_fp80 %551, ptr %4, align 16, !tbaa !33
  %552 = fcmp ult x86_fp80 %551, 0xK4002A000000000000000
  br i1 %552, label %556, label %553

553:                                              ; preds = %549
  %554 = fmul x86_fp80 %551, 0xK3FFBCCCCCCCCCCCCD000
  store x86_fp80 %554, ptr %4, align 16, !tbaa !33
  %555 = add nsw i32 %.5633, 1
  br label %556

556:                                              ; preds = %549, %553
  %.6634 = phi i32 [ %555, %553 ], [ %.5633, %549 ]
  br i1 %480, label %557, label %.thread821

557:                                              ; preds = %556
  %.not749 = icmp eq i8 %.1581802, 0
  %558 = zext i1 %.not749 to i8
  %559 = icmp slt i32 %.6634, -4
  %560 = icmp sgt i32 %.6634, %spec.select772
  %or.cond = or i1 %559, %560
  %spec.select779 = select i1 %or.cond, i8 2, i8 1
  %561 = select i1 %or.cond, i32 0, i32 %.6634
  %spec.select780 = sub nsw i32 %spec.select772, %561
  br label %.thread821

.thread821:                                       ; preds = %.thread816, %557, %556
  %.6634823 = phi i32 [ %.6634, %556 ], [ %.6634, %557 ], [ %.5633, %.thread816 ]
  %.0619 = phi i8 [ %.1584800, %556 ], [ %558, %557 ], [ %.1584800, %.thread816 ]
  %.1605 = phi i8 [ %249, %556 ], [ %spec.select779, %557 ], [ 1, %.thread816 ]
  %.7519 = phi i32 [ %spec.select772, %556 ], [ %spec.select780, %557 ], [ %spec.select772, %.thread816 ]
  %562 = icmp eq i8 %.1605, 2
  %..6634 = select i1 %562, i32 0, i32 %.6634823
  %563 = call i32 @llvm.smax.i32(i32 %..6634, i32 0)
  %564 = zext nneg i32 %563 to i64
  %565 = sext i32 %.7519 to i64
  %566 = zext nneg i32 %.3545808 to i64
  %567 = add nsw i64 %565, %566
  %568 = add nsw i64 %567, %564
  %569 = icmp sgt i64 %568, 55
  br i1 %569, label %570, label %574

570:                                              ; preds = %.thread821
  %571 = add nuw nsw i64 %568, 15
  %572 = call ptr @printfTempBuf(ptr noundef %0, i64 noundef %571)
  %573 = icmp eq ptr %572, null
  br i1 %573, label %.thread813, label %574

574:                                              ; preds = %570, %.thread821
  %.3640.ph = phi ptr [ null, %.thread821 ], [ %572, %570 ]
  %.11.ph = phi ptr [ %6, %.thread821 ], [ %572, %570 ]
  %575 = zext nneg i8 %.1584800 to i32
  %576 = mul nuw nsw i32 %575, 10
  %577 = add nuw nsw i32 %576, 16
  store i32 %577, ptr %5, align 4, !tbaa !15
  %578 = icmp sgt i32 %.7519, 0
  %579 = zext i1 %578 to i8
  %580 = or i8 %.1581802, %579
  %581 = or i8 %580, %.1584800
  %.not750 = icmp eq i8 %.2660, 0
  br i1 %.not750, label %584, label %582

582:                                              ; preds = %574
  %583 = getelementptr inbounds i8, ptr %.11.ph, i64 1
  store i8 %.2660, ptr %.11.ph, align 1, !tbaa !12
  br label %584

584:                                              ; preds = %582, %574
  %.12 = phi ptr [ %583, %582 ], [ %.11.ph, %574 ]
  %585 = icmp slt i32 %..6634, 0
  br i1 %585, label %586, label %.preheader884

586:                                              ; preds = %584
  %587 = getelementptr inbounds i8, ptr %.12, i64 1
  store i8 48, ptr %.12, align 1, !tbaa !12
  br label %.loopexit885

.preheader884:                                    ; preds = %584, %.preheader884
  %.131028 = phi ptr [ %589, %.preheader884 ], [ %.12, %584 ]
  %.16251027 = phi i32 [ %590, %.preheader884 ], [ %..6634, %584 ]
  %588 = call signext i8 @et_getdigit(ptr noundef nonnull %4, ptr noundef nonnull %5)
  %589 = getelementptr inbounds i8, ptr %.131028, i64 1
  store i8 %588, ptr %.131028, align 1, !tbaa !12
  %590 = add nsw i32 %.16251027, -1
  %.not1203 = icmp eq i32 %.16251027, 0
  br i1 %.not1203, label %.loopexit885, label %.preheader884, !llvm.loop !41

.loopexit885:                                     ; preds = %.preheader884, %586
  %.2626 = phi i32 [ %.6634823, %586 ], [ -1, %.preheader884 ]
  %.14 = phi ptr [ %587, %586 ], [ %589, %.preheader884 ]
  %.not751 = icmp eq i8 %581, 0
  br i1 %.not751, label %593, label %591

591:                                              ; preds = %.loopexit885
  %592 = getelementptr inbounds i8, ptr %.14, i64 1
  store i8 46, ptr %.14, align 1, !tbaa !12
  br label %593

593:                                              ; preds = %591, %.loopexit885
  %.15 = phi ptr [ %592, %591 ], [ %.14, %.loopexit885 ]
  %594 = icmp slt i32 %.2626, -1
  br i1 %594, label %.lr.ph1033.preheader, label %.preheader883

.lr.ph1033.preheader:                             ; preds = %593
  %595 = sub nuw nsw i32 -2, %.2626
  %596 = zext nneg i32 %595 to i64
  %597 = add nuw nsw i64 %596, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %.15, i8 48, i64 %597, i1 false), !tbaa !12
  %598 = add i32 %.7519, 1
  %scevgep = getelementptr i8, ptr %.15, i64 1
  %scevgep1137 = getelementptr i8, ptr %scevgep, i64 %596
  %599 = add i32 %598, %.2626
  br label %.preheader883

.preheader883:                                    ; preds = %.lr.ph1033.preheader, %593
  %.8520.lcssa = phi i32 [ %.7519, %593 ], [ %599, %.lr.ph1033.preheader ]
  %.16.lcssa = phi ptr [ %.15, %593 ], [ %scevgep1137, %.lr.ph1033.preheader ]
  %600 = icmp sgt i32 %.8520.lcssa, 0
  br i1 %600, label %.lr.ph1038, label %._crit_edge1039

.lr.ph1038:                                       ; preds = %.preheader883, %.lr.ph1038
  %.171037 = phi ptr [ %603, %.lr.ph1038 ], [ %.16.lcssa, %.preheader883 ]
  %.95211036 = phi i32 [ %601, %.lr.ph1038 ], [ %.8520.lcssa, %.preheader883 ]
  %601 = add nsw i32 %.95211036, -1
  %602 = call signext i8 @et_getdigit(ptr noundef nonnull %4, ptr noundef nonnull %5)
  %603 = getelementptr inbounds i8, ptr %.171037, i64 1
  store i8 %602, ptr %.171037, align 1, !tbaa !12
  %604 = icmp ugt i32 %.95211036, 1
  br i1 %604, label %.lr.ph1038, label %._crit_edge1039, !llvm.loop !42

._crit_edge1039:                                  ; preds = %.lr.ph1038, %.preheader883
  %.17.lcssa = phi ptr [ %.16.lcssa, %.preheader883 ], [ %603, %.lr.ph1038 ]
  %605 = icmp ne i8 %.0619, 0
  %606 = icmp ne i8 %581, 0
  %or.cond14 = select i1 %605, i1 %606, i1 false
  br i1 %or.cond14, label %.preheader881, label %.loopexit882

.preheader881:                                    ; preds = %._crit_edge1039, %609
  %.18 = phi ptr [ %607, %609 ], [ %.17.lcssa, %._crit_edge1039 ]
  %607 = getelementptr inbounds i8, ptr %.18, i64 -1
  %608 = load i8, ptr %607, align 1, !tbaa !12
  switch i8 %608, label %.loopexit882 [
    i8 48, label %609
    i8 46, label %610
  ]

609:                                              ; preds = %.preheader881
  store i8 0, ptr %607, align 1, !tbaa !12
  br label %.preheader881, !llvm.loop !43

610:                                              ; preds = %.preheader881
  %.not752 = icmp eq i8 %.1584800, 0
  br i1 %.not752, label %613, label %611

611:                                              ; preds = %610
  %612 = getelementptr inbounds i8, ptr %.18, i64 1
  store i8 48, ptr %.18, align 1, !tbaa !12
  br label %.loopexit882

613:                                              ; preds = %610
  store i8 0, ptr %607, align 1, !tbaa !12
  br label %.loopexit882

.loopexit882:                                     ; preds = %.preheader881, %613, %611, %._crit_edge1039
  %.19 = phi ptr [ %612, %611 ], [ %607, %613 ], [ %.17.lcssa, %._crit_edge1039 ], [ %.18, %.preheader881 ]
  br i1 %562, label %614, label %636

614:                                              ; preds = %.loopexit882
  %615 = getelementptr inbounds i8, ptr %.lcssa1102, i64 4
  %616 = load i8, ptr %615, align 1, !tbaa !25
  %617 = zext i8 %616 to i64
  %618 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %617
  %619 = load i8, ptr %618, align 1, !tbaa !12
  %620 = getelementptr inbounds i8, ptr %.19, i64 1
  store i8 %619, ptr %.19, align 1, !tbaa !12
  %621 = icmp slt i32 %.6634823, 0
  %spec.select1201 = select i1 %621, i8 45, i8 43
  %spec.select1202 = call i32 @llvm.abs.i32(i32 %.6634823, i1 true)
  store i8 %spec.select1201, ptr %620, align 1
  %.20 = getelementptr inbounds i8, ptr %.19, i64 2
  %622 = icmp ugt i32 %spec.select1202, 99
  br i1 %622, label %623, label %629

623:                                              ; preds = %614
  %624 = udiv i32 %spec.select1202, 100
  %625 = trunc i32 %624 to i8
  %626 = add i8 %625, 48
  %627 = getelementptr inbounds i8, ptr %.19, i64 3
  store i8 %626, ptr %.20, align 1, !tbaa !12
  %628 = urem i32 %spec.select1202, 100
  br label %629

629:                                              ; preds = %623, %614
  %.8636 = phi i32 [ %628, %623 ], [ %spec.select1202, %614 ]
  %.21 = phi ptr [ %627, %623 ], [ %.20, %614 ]
  %.lhs.trunc864 = trunc nuw i32 %.8636 to i8
  %630 = udiv i8 %.lhs.trunc864, 10
  %631 = or disjoint i8 %630, 48
  %632 = getelementptr inbounds i8, ptr %.21, i64 1
  store i8 %631, ptr %.21, align 1, !tbaa !12
  %633 = urem i8 %.lhs.trunc864, 10
  %634 = or disjoint i8 %633, 48
  %635 = getelementptr inbounds i8, ptr %.21, i64 2
  store i8 %634, ptr %632, align 1, !tbaa !12
  br label %636

636:                                              ; preds = %629, %.loopexit882
  %.22 = phi ptr [ %635, %629 ], [ %.19, %.loopexit882 ]
  store i8 0, ptr %.22, align 1, !tbaa !12
  %637 = ptrtoint ptr %.22 to i64
  %638 = ptrtoint ptr %.11.ph to i64
  %639 = sub i64 %637, %638
  %640 = trunc i64 %639 to i32
  %641 = icmp ne i8 %.1587798, 0
  %642 = icmp eq i8 %.2571806, 0
  %or.cond16.not872 = select i1 %641, i1 %642, i1 false
  %643 = icmp sgt i32 %.3545808, %640
  %or.cond773 = select i1 %or.cond16.not872, i1 %643, i1 false
  br i1 %or.cond773, label %644, label %.critedge28.thread

644:                                              ; preds = %636
  %.not7531041 = icmp slt i32 %640, 0
  br i1 %.not7531041, label %._crit_edge1045, label %iter.check

iter.check:                                       ; preds = %644
  %645 = sub nsw i32 %.3545808, %640
  %646 = sext i32 %.3545808 to i64
  %647 = sext i32 %645 to i64
  %648 = add nsw i64 %646, 1
  %smin1250 = call i64 @llvm.smin.i64(i64 %647, i64 %646)
  %649 = sub i64 %648, %smin1250
  %min.iters.check = icmp ult i64 %649, 4
  br i1 %min.iters.check, label %.lr.ph1044.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %iter.check
  %smin = call i64 @llvm.smin.i64(i64 %647, i64 %646)
  %650 = sub i64 %646, %smin
  %scevgep1245 = getelementptr i8, ptr %.11.ph, i64 %646
  %651 = sub i64 0, %650
  %652 = getelementptr i8, ptr %scevgep1245, i64 %651
  %653 = icmp ugt ptr %652, %scevgep1245
  %654 = and i64 %639, 2147483647
  %scevgep1246 = getelementptr i8, ptr %.11.ph, i64 %654
  %655 = sub i64 0, %650
  %656 = getelementptr i8, ptr %scevgep1246, i64 %655
  %657 = icmp ugt ptr %656, %scevgep1246
  %658 = or i1 %653, %657
  br i1 %658, label %.lr.ph1044.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %659 = and i64 %639, 2147483647
  %660 = sub nsw i64 %659, %646
  %diff.check = icmp ult i64 %660, 16
  br i1 %diff.check, label %.lr.ph1044.preheader, label %vector.main.loop.iter.check

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

vector.ph:                                        ; preds = %vector.main.loop.iter.check
  %n.vec = and i64 %649, -16
  %invariant.gep = getelementptr i8, ptr %.11.ph, i64 -15
  %invariant.gep1367 = 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 %646, %index
  %661 = sub nsw i64 %offset.idx, %647
  %gep = getelementptr i8, ptr %invariant.gep, i64 %661
  %wide.load = load <16 x i8>, ptr %gep, align 1, !tbaa !12
  %gep1368 = getelementptr i8, ptr %invariant.gep1367, i64 %offset.idx
  store <16 x i8> %wide.load, ptr %gep1368, align 1, !tbaa !12
  %index.next = add nuw i64 %index, 16
  %662 = icmp eq i64 %index.next, %n.vec
  br i1 %662, label %middle.block, label %vector.body, !llvm.loop !44

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

vec.epilog.iter.check:                            ; preds = %middle.block
  %ind.end1255 = sub i64 %646, %n.vec
  %n.vec.remaining = and i64 %649, 12
  %min.epilog.iters.check = icmp eq i64 %n.vec.remaining, 0
  br i1 %min.epilog.iters.check, label %.lr.ph1044.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.vec1254 = and i64 %649, -4
  %ind.end = sub i64 %646, %n.vec1254
  %invariant.gep1369 = getelementptr i8, ptr %.11.ph, i64 -3
  %invariant.gep1371 = 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
  %index1256 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next1261, %vec.epilog.vector.body ]
  %offset.idx1257 = sub i64 %646, %index1256
  %663 = sub nsw i64 %offset.idx1257, %647
  %gep1370 = getelementptr i8, ptr %invariant.gep1369, i64 %663
  %wide.load1258 = load <4 x i8>, ptr %gep1370, align 1, !tbaa !12
  %gep1372 = getelementptr i8, ptr %invariant.gep1371, i64 %offset.idx1257
  store <4 x i8> %wide.load1258, ptr %gep1372, align 1, !tbaa !12
  %index.next1261 = add nuw i64 %index1256, 4
  %664 = icmp eq i64 %index.next1261, %n.vec1254
  br i1 %664, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !47

vec.epilog.middle.block:                          ; preds = %vec.epilog.vector.body
  %cmp.n1262 = icmp eq i64 %649, %n.vec1254
  br i1 %cmp.n1262, label %._crit_edge1045, label %.lr.ph1044.preheader

.lr.ph1044.preheader:                             ; preds = %vec.epilog.middle.block, %vector.memcheck, %vector.scevcheck, %iter.check, %vec.epilog.iter.check
  %indvars.iv1140.ph = phi i64 [ %646, %iter.check ], [ %646, %vector.memcheck ], [ %646, %vector.scevcheck ], [ %ind.end1255, %vec.epilog.iter.check ], [ %ind.end, %vec.epilog.middle.block ]
  br label %.lr.ph1044

.lr.ph1044:                                       ; preds = %.lr.ph1044.preheader, %.lr.ph1044
  %indvars.iv1140 = phi i64 [ %indvars.iv.next1141, %.lr.ph1044 ], [ %indvars.iv1140.ph, %.lr.ph1044.preheader ]
  %665 = sub nsw i64 %indvars.iv1140, %647
  %666 = getelementptr inbounds i8, ptr %.11.ph, i64 %665
  %667 = load i8, ptr %666, align 1, !tbaa !12
  %668 = getelementptr inbounds i8, ptr %.11.ph, i64 %indvars.iv1140
  store i8 %667, ptr %668, align 1, !tbaa !12
  %indvars.iv.next1141 = add nsw i64 %indvars.iv1140, -1
  %.not753.not = icmp sgt i64 %indvars.iv1140, %647
  br i1 %.not753.not, label %.lr.ph1044, label %._crit_edge1045, !llvm.loop !48

._crit_edge1045:                                  ; preds = %.lr.ph1044, %middle.block, %vec.epilog.middle.block, %644
  %.not7541046 = icmp eq i32 %.3545808, %640
  br i1 %.not7541046, label %.critedge28.thread, label %.lr.ph1050.preheader

.lr.ph1050.preheader:                             ; preds = %._crit_edge1045
  %669 = icmp ne i8 %.2660, 0
  %670 = zext i1 %669 to i64
  %scevgep1143 = getelementptr i8, ptr %.11.ph, i64 %670
  %671 = add i32 %.3545808, -1
  %672 = trunc i64 %638 to i32
  %673 = add i32 %671, %672
  %674 = trunc i64 %637 to i32
  %675 = sub i32 %673, %674
  %676 = zext i32 %675 to i64
  %677 = add nuw nsw i64 %676, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %scevgep1143, i8 48, i64 %677, i1 false), !tbaa !12
  br label %.critedge28.thread

678:                                              ; preds = %247
  br i1 %.not, label %679, label %.critedge28.thread

679:                                              ; preds = %678
  %680 = load i32, ptr %29, align 8, !tbaa !49
  %681 = load i32, ptr %2, align 8
  %682 = icmp ult i32 %681, 41
  br i1 %682, label %683, label %688

683:                                              ; preds = %679
  %684 = load ptr, ptr %28, align 8
  %685 = zext nneg i32 %681 to i64
  %686 = getelementptr i8, ptr %684, i64 %685
  %687 = add nuw nsw i32 %681, 8
  store i32 %687, ptr %2, align 8
  br label %691

688:                                              ; preds = %679
  %689 = load ptr, ptr %27, align 8
  %690 = getelementptr i8, ptr %689, i64 8
  store ptr %690, ptr %27, align 8
  br label %691

691:                                              ; preds = %688, %683
  %692 = phi ptr [ %686, %683 ], [ %689, %688 ]
  %693 = load ptr, ptr %692, align 8, !tbaa !11
  store i32 %680, ptr %693, align 4, !tbaa !15
  br label %.critedge28.thread

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

695:                                              ; preds = %247
  br i1 %.not, label %712, label %696

696:                                              ; preds = %695
  %697 = call ptr @getTextArg(ptr noundef %.0618)
  %.not744 = icmp eq ptr %697, null
  br i1 %.not744, label %711, label %698

698:                                              ; preds = %696
  %699 = load i8, ptr %697, align 1, !tbaa !12
  store i8 %699, ptr %6, align 16, !tbaa !12
  %700 = icmp ugt i8 %699, -65
  br i1 %700, label %.preheader891.preheader, label %.critedge18

.preheader891.preheader:                          ; preds = %698
  %.23 = getelementptr inbounds i8, ptr %697, i64 1
  %701 = load i8, ptr %.23, align 1, !tbaa !12
  %702 = and i8 %701, -64
  %703 = icmp eq i8 %702, -128
  br i1 %703, label %.preheader891.1, label %.critedge18

.preheader891.1:                                  ; preds = %.preheader891.preheader
  store i8 %701, ptr %34, align 1, !tbaa !12
  %.23.1 = getelementptr inbounds i8, ptr %697, i64 2
  %704 = load i8, ptr %.23.1, align 1, !tbaa !12
  %705 = and i8 %704, -64
  %706 = icmp eq i8 %705, -128
  br i1 %706, label %.preheader891.2, label %.critedge18

.preheader891.2:                                  ; preds = %.preheader891.1
  store i8 %704, ptr %35, align 2, !tbaa !12
  %.23.2 = getelementptr inbounds i8, ptr %697, i64 3
  %707 = load i8, ptr %.23.2, align 1, !tbaa !12
  %708 = and i8 %707, -64
  %709 = icmp eq i8 %708, -128
  br i1 %709, label %710, label %.critedge18

710:                                              ; preds = %.preheader891.2
  store i8 %707, ptr %36, align 1, !tbaa !12
  br label %.critedge18

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

712:                                              ; preds = %695
  %713 = load i32, ptr %2, align 8
  %714 = icmp ult i32 %713, 41
  br i1 %714, label %715, label %720

715:                                              ; preds = %712
  %716 = load ptr, ptr %28, align 8
  %717 = zext nneg i32 %713 to i64
  %718 = getelementptr i8, ptr %716, i64 %717
  %719 = add nuw nsw i32 %713, 8
  store i32 %719, ptr %2, align 8
  br label %723

720:                                              ; preds = %712
  %721 = load ptr, ptr %27, align 8
  %722 = getelementptr i8, ptr %721, i64 8
  store ptr %722, ptr %27, align 8
  br label %723

723:                                              ; preds = %720, %715
  %724 = phi ptr [ %718, %715 ], [ %721, %720 ]
  %725 = load i32, ptr %724, align 4, !tbaa !15
  %726 = icmp ult i32 %725, 128
  br i1 %726, label %727, label %729

727:                                              ; preds = %723
  %728 = trunc nuw nsw i32 %725 to i8
  store i8 %728, ptr %6, align 16, !tbaa !12
  br label %.critedge18

729:                                              ; preds = %723
  %730 = icmp ult i32 %725, 2048
  br i1 %730, label %731, label %738

731:                                              ; preds = %729
  %732 = lshr i32 %725, 6
  %733 = trunc nuw i32 %732 to i8
  %734 = or disjoint i8 %733, -64
  store i8 %734, ptr %6, align 16, !tbaa !12
  %735 = trunc i32 %725 to i8
  %736 = and i8 %735, 63
  %737 = or disjoint i8 %736, -128
  store i8 %737, ptr %34, align 1, !tbaa !12
  br label %.critedge18

738:                                              ; preds = %729
  %739 = icmp ult i32 %725, 65536
  br i1 %739, label %740, label %751

740:                                              ; preds = %738
  %741 = lshr i32 %725, 12
  %742 = trunc nuw i32 %741 to i8
  %743 = or disjoint i8 %742, -32
  store i8 %743, ptr %6, align 16, !tbaa !12
  %744 = lshr i32 %725, 6
  %745 = trunc i32 %744 to i8
  %746 = and i8 %745, 63
  %747 = or disjoint i8 %746, -128
  store i8 %747, ptr %34, align 1, !tbaa !12
  %748 = trunc i32 %725 to i8
  %749 = and i8 %748, 63
  %750 = or disjoint i8 %749, -128
  store i8 %750, ptr %35, align 2, !tbaa !12
  br label %.critedge18

751:                                              ; preds = %738
  %752 = lshr i32 %725, 18
  %753 = lshr i32 %725, 12
  %754 = lshr i32 %725, 6
  %755 = trunc i32 %752 to i8
  %756 = insertelement <4 x i8> poison, i8 %755, i64 0
  %757 = trunc i32 %753 to i8
  %758 = insertelement <4 x i8> %756, i8 %757, i64 1
  %759 = trunc i32 %754 to i8
  %760 = insertelement <4 x i8> %758, i8 %759, i64 2
  %761 = trunc i32 %725 to i8
  %762 = insertelement <4 x i8> %760, i8 %761, i64 3
  %763 = and <4 x i8> %762, <i8 7, i8 63, i8 63, i8 63>
  %764 = or disjoint <4 x i8> %763, <i8 -16, i8 -128, i8 -128, i8 -128>
  store <4 x i8> %764, ptr %6, align 16, !tbaa !12
  br label %.critedge18

.critedge18:                                      ; preds = %.preheader891.preheader, %.preheader891.1, %.preheader891.2, %710, %727, %740, %751, %731, %711, %698
  %.5531 = phi i32 [ 1, %698 ], [ 1, %711 ], [ 1, %727 ], [ 2, %731 ], [ 3, %740 ], [ 4, %751 ], [ 1, %.preheader891.preheader ], [ 2, %.preheader891.1 ], [ 3, %.preheader891.2 ], [ 4, %710 ]
  %765 = icmp sgt i32 %.4516810, 1
  br i1 %765, label %766, label %.critedge28

766:                                              ; preds = %.critedge18
  %reass.sub = sub i32 %.3545808, %.4516810
  %767 = add i32 %reass.sub, 1
  %768 = icmp slt i32 %767, 2
  %769 = icmp ne i8 %.2571806, 0
  %or.cond20 = select i1 %768, i1 true, i1 %769
  br i1 %or.cond20, label %.lr.ph1006.preheader, label %770

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

.lr.ph1006.preheader:                             ; preds = %766, %770
  %.4546 = phi i32 [ %767, %766 ], [ 0, %770 ]
  br label %.lr.ph1006

.lr.ph1006:                                       ; preds = %.lr.ph1006.preheader, %.lr.ph1006
  %.105221004 = phi i32 [ %771, %.lr.ph1006 ], [ %.4516810, %.lr.ph1006.preheader ]
  %771 = add nsw i32 %.105221004, -1
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef nonnull %6, i32 noundef %.5531)
  %772 = icmp ugt i32 %.105221004, 2
  br i1 %772, label %.lr.ph1006, label %.critedge28, !llvm.loop !50

773:                                              ; preds = %247, %247
  br i1 %.not, label %774, label %.thread831

774:                                              ; preds = %773
  %775 = load i32, ptr %2, align 8
  %776 = icmp ult i32 %775, 41
  br i1 %776, label %777, label %782

777:                                              ; preds = %774
  %778 = load ptr, ptr %28, align 8
  %779 = zext nneg i32 %775 to i64
  %780 = getelementptr i8, ptr %778, i64 %779
  %781 = add nuw nsw i32 %775, 8
  store i32 %781, ptr %2, align 8
  br label %785

782:                                              ; preds = %774
  %783 = load ptr, ptr %27, align 8
  %784 = getelementptr i8, ptr %783, i64 8
  store ptr %784, ptr %27, align 8
  br label %785

785:                                              ; preds = %777, %782
  %786 = phi ptr [ %780, %777 ], [ %783, %782 ]
  %787 = load ptr, ptr %786, align 8, !tbaa !11
  %788 = icmp eq ptr %787, null
  br i1 %788, label %.thread836, label %791

.thread831:                                       ; preds = %773
  %789 = call ptr @getTextArg(ptr noundef %.0618)
  %790 = icmp eq ptr %789, null
  %spec.select868 = select i1 %790, ptr @.str.3, ptr %789
  br label %.thread836

791:                                              ; preds = %785
  %792 = icmp eq i8 %249, 6
  br i1 %792, label %793, label %.thread836

793:                                              ; preds = %791
  %794 = load i32, ptr %29, align 8, !tbaa !49
  %795 = icmp eq i32 %794, 0
  br i1 %795, label %796, label %.thread836

796:                                              ; preds = %793
  %797 = load i32, ptr %30, align 4, !tbaa !51
  %798 = icmp ne i32 %797, 0
  %799 = icmp eq i32 %.3545808, 0
  %or.cond22 = select i1 %798, i1 %799, i1 false
  %800 = icmp slt i32 %.4516810, 0
  %or.cond24 = select i1 %or.cond22, i1 %800, i1 false
  br i1 %or.cond24, label %801, label %.thread836

801:                                              ; preds = %796
  %802 = load i8, ptr %31, align 4, !tbaa !52
  %803 = icmp eq i8 %802, 0
  br i1 %803, label %804, label %.thread839

804:                                              ; preds = %801
  store ptr %787, ptr %32, align 8, !tbaa !53
  %805 = load ptr, ptr %0, align 8, !tbaa !54
  %806 = call i32 @sqlite3DbMallocSize(ptr noundef %805, ptr noundef nonnull %787)
  store i32 %806, ptr %33, align 8, !tbaa !55
  %807 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %787) #7
  %808 = trunc i64 %807 to i32
  %809 = and i32 %808, 2147483647
  store i32 %809, ptr %29, align 8, !tbaa !49
  %810 = load i8, ptr %7, align 1, !tbaa !5
  %811 = or i8 %810, 4
  store i8 %811, ptr %7, align 1, !tbaa !5
  br label %.critedge28.thread

.thread836:                                       ; preds = %.thread831, %793, %796, %785, %791
  %.4641 = phi ptr [ null, %791 ], [ null, %785 ], [ %787, %796 ], [ %787, %793 ], [ null, %.thread831 ]
  %.25 = phi ptr [ %787, %791 ], [ @.str.3, %785 ], [ %787, %796 ], [ %787, %793 ], [ %spec.select868, %.thread831 ]
  %812 = icmp sgt i32 %.4516810, -1
  br i1 %812, label %813, label %.thread839

813:                                              ; preds = %.thread836
  %.not740 = icmp eq i8 %.1584800, 0
  %.not1071 = icmp eq i32 %.4516810, 0
  br i1 %.not740, label %.preheader892, label %.preheader894

.preheader894:                                    ; preds = %813
  br i1 %.not1071, label %.critedge26, label %.lr.ph995

.preheader892:                                    ; preds = %813
  br i1 %.not1071, label %.critedge28.thread, label %.lr.ph1000.preheader

.lr.ph1000.preheader:                             ; preds = %.preheader892
  %wide.trip.count1128 = zext nneg i32 %.4516810 to i64
  br label %.lr.ph1000

.lr.ph995:                                        ; preds = %.preheader894, %.loopexit
  %.in = phi i32 [ %814, %.loopexit ], [ %.4516810, %.preheader894 ]
  %.0566994 = phi ptr [ %.2568, %.loopexit ], [ %.25, %.preheader894 ]
  %814 = add nsw i32 %.in, -1
  %815 = load i8, ptr %.0566994, align 1, !tbaa !12
  %.not742 = icmp eq i8 %815, 0
  br i1 %.not742, label %.critedge26, label %816

816:                                              ; preds = %.lr.ph995
  %817 = getelementptr inbounds i8, ptr %.0566994, i64 1
  %818 = icmp ugt i8 %815, -65
  br i1 %818, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %816, %.preheader
  %.1567 = phi ptr [ %822, %.preheader ], [ %817, %816 ]
  %819 = load i8, ptr %.1567, align 1, !tbaa !12
  %820 = and i8 %819, -64
  %821 = icmp eq i8 %820, -128
  %822 = getelementptr inbounds i8, ptr %.1567, i64 1
  br i1 %821, label %.preheader, label %.loopexit, !llvm.loop !56

.loopexit:                                        ; preds = %.preheader, %816
  %.2568 = phi ptr [ %817, %816 ], [ %.1567, %.preheader ]
  %823 = icmp sgt i32 %.in, 1
  br i1 %823, label %.lr.ph995, label %.critedge26, !llvm.loop !57

.critedge26:                                      ; preds = %.lr.ph995, %.loopexit, %.preheader894
  %.0566.lcssa = phi ptr [ %.25, %.preheader894 ], [ %.2568, %.loopexit ], [ %.0566994, %.lr.ph995 ]
  %824 = ptrtoint ptr %.0566.lcssa to i64
  %825 = ptrtoint ptr %.25 to i64
  %826 = sub i64 %824, %825
  %827 = trunc i64 %826 to i32
  br label %.critedge28

.lr.ph1000:                                       ; preds = %.lr.ph1000.preheader, %830
  %indvars.iv1125 = phi i64 [ 0, %.lr.ph1000.preheader ], [ %indvars.iv.next1126, %830 ]
  %828 = getelementptr inbounds i8, ptr %.25, i64 %indvars.iv1125
  %829 = load i8, ptr %828, align 1, !tbaa !12
  %.not741 = icmp eq i8 %829, 0
  br i1 %.not741, label %.critedge28.thread.loopexit1158.split.loop.exit1199, label %830

830:                                              ; preds = %.lr.ph1000
  %indvars.iv.next1126 = add nuw nsw i64 %indvars.iv1125, 1
  %exitcond1129.not = icmp eq i64 %indvars.iv.next1126, %wide.trip.count1128
  br i1 %exitcond1129.not, label %.critedge28.thread, label %.lr.ph1000, !llvm.loop !58

.thread839:                                       ; preds = %801, %.thread836
  %.25843 = phi ptr [ %.25, %.thread836 ], [ %787, %801 ]
  %.4641842 = phi ptr [ %.4641, %.thread836 ], [ %787, %801 ]
  %831 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.25843) #7
  %832 = trunc i64 %831 to i32
  %833 = and i32 %832, 2147483647
  br label %.critedge28

.critedge28:                                      ; preds = %.lr.ph1006, %.thread850, %.critedge18, %.thread839, %.critedge26
  %.5642 = phi ptr [ %.4641, %.critedge26 ], [ %.4641842, %.thread839 ], [ null, %.critedge18 ], [ %.6643, %.thread850 ], [ null, %.lr.ph1006 ]
  %.2585 = phi i8 [ 1, %.critedge26 ], [ %.1584800, %.thread839 ], [ 1, %.critedge18 ], [ %.1584800, %.thread850 ], [ 1, %.lr.ph1006 ]
  %.6548 = phi i32 [ %.3545808, %.critedge26 ], [ %.3545808, %.thread839 ], [ %.3545808, %.critedge18 ], [ %.3545808, %.thread850 ], [ %.4546, %.lr.ph1006 ]
  %.7533 = phi i32 [ %827, %.critedge26 ], [ %833, %.thread839 ], [ %.5531, %.critedge18 ], [ %.3560, %.thread850 ], [ %.5531, %.lr.ph1006 ]
  %.26 = phi ptr [ %.25, %.critedge26 ], [ %.25843, %.thread839 ], [ %6, %.critedge18 ], [ %.27, %.thread850 ], [ %6, %.lr.ph1006 ]
  %834 = icmp ne i8 %.2585, 0
  %835 = icmp sgt i32 %.6548, 0
  %or.cond30 = select i1 %834, i1 %835, i1 false
  %836 = icmp sgt i32 %.7533, 0
  %or.cond1069 = select i1 %or.cond30, i1 %836, i1 false
  br i1 %or.cond1069, label %.lr.ph1009.preheader, label %.critedge28.thread

.lr.ph1009.preheader:                             ; preds = %.critedge28
  %837 = zext nneg i32 %.7533 to i64
  %min.iters.check1264 = icmp ult i32 %.7533, 8
  br i1 %min.iters.check1264, label %.lr.ph1009.preheader1280, label %vector.ph1265

vector.ph1265:                                    ; preds = %.lr.ph1009.preheader
  %n.vec1267 = and i64 %837, 2147483640
  %ind.end1268 = and i64 %837, 7
  %838 = insertelement <4 x i32> <i32 poison, i32 0, i32 0, i32 0>, i32 %.6548, i64 0
  br label %vector.body1270

vector.body1270:                                  ; preds = %vector.body1270, %vector.ph1265
  %index1271 = phi i64 [ 0, %vector.ph1265 ], [ %index.next1278, %vector.body1270 ]
  %vec.phi = phi <4 x i32> [ %838, %vector.ph1265 ], [ %852, %vector.body1270 ]
  %vec.phi1272 = phi <4 x i32> [ zeroinitializer, %vector.ph1265 ], [ %853, %vector.body1270 ]
  %839 = xor i64 %index1271, -1
  %840 = add i64 %839, %837
  %841 = getelementptr inbounds i8, ptr %.26, i64 %840
  %842 = getelementptr inbounds i8, ptr %841, i64 -3
  %843 = getelementptr inbounds i8, ptr %841, i64 -7
  %wide.load1274 = load <4 x i8>, ptr %842, align 1, !tbaa !12
  %wide.load1276 = load <4 x i8>, ptr %843, align 1, !tbaa !12
  %844 = and <4 x i8> %wide.load1274, <i8 -64, i8 -64, i8 -64, i8 -64>
  %845 = shufflevector <4 x i8> %844, <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  %846 = and <4 x i8> %wide.load1276, <i8 -64, i8 -64, i8 -64, i8 -64>
  %847 = shufflevector <4 x i8> %846, <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  %848 = icmp eq <4 x i8> %845, <i8 -128, i8 -128, i8 -128, i8 -128>
  %849 = icmp eq <4 x i8> %847, <i8 -128, i8 -128, i8 -128, i8 -128>
  %850 = zext <4 x i1> %848 to <4 x i32>
  %851 = zext <4 x i1> %849 to <4 x i32>
  %852 = add <4 x i32> %vec.phi, %850
  %853 = add <4 x i32> %vec.phi1272, %851
  %index.next1278 = add nuw i64 %index1271, 8
  %854 = icmp eq i64 %index.next1278, %n.vec1267
  br i1 %854, label %middle.block1263, label %vector.body1270, !llvm.loop !59

middle.block1263:                                 ; preds = %vector.body1270
  %bin.rdx = add <4 x i32> %853, %852
  %855 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %bin.rdx)
  %cmp.n1279 = icmp eq i64 %n.vec1267, %837
  br i1 %cmp.n1279, label %.critedge28.thread, label %.lr.ph1009.preheader1280

.lr.ph1009.preheader1280:                         ; preds = %middle.block1263, %.lr.ph1009.preheader
  %indvars.iv1134.ph = phi i64 [ %837, %.lr.ph1009.preheader ], [ %ind.end1268, %middle.block1263 ]
  %.75491008.ph = phi i32 [ %.6548, %.lr.ph1009.preheader ], [ %855, %middle.block1263 ]
  br label %.lr.ph1009

.lr.ph1009:                                       ; preds = %.lr.ph1009.preheader1280, %.lr.ph1009
  %indvars.iv1134 = phi i64 [ %indvars.iv.next1135, %.lr.ph1009 ], [ %indvars.iv1134.ph, %.lr.ph1009.preheader1280 ]
  %.75491008 = phi i32 [ %spec.select774, %.lr.ph1009 ], [ %.75491008.ph, %.lr.ph1009.preheader1280 ]
  %indvars.iv.next1135 = add nsw i64 %indvars.iv1134, -1
  %856 = getelementptr inbounds i8, ptr %.26, i64 %indvars.iv.next1135
  %857 = load i8, ptr %856, align 1, !tbaa !12
  %858 = and i8 %857, -64
  %859 = icmp eq i8 %858, -128
  %860 = zext i1 %859 to i32
  %spec.select774 = add nuw nsw i32 %.75491008, %860
  %861 = icmp ugt i64 %indvars.iv1134, 1
  br i1 %861, label %.lr.ph1009, label %.critedge28.thread, !llvm.loop !60

862:                                              ; preds = %247, %247, %247
  %863 = icmp eq i8 %249, 14
  %864 = select i1 %863, i8 34, i8 39
  br i1 %.not, label %867, label %865

865:                                              ; preds = %862
  %866 = call ptr @getTextArg(ptr noundef %.0618)
  br label %881

867:                                              ; preds = %862
  %868 = load i32, ptr %2, align 8
  %869 = icmp ult i32 %868, 41
  br i1 %869, label %870, label %875

870:                                              ; preds = %867
  %871 = load ptr, ptr %28, align 8
  %872 = zext nneg i32 %868 to i64
  %873 = getelementptr i8, ptr %871, i64 %872
  %874 = add nuw nsw i32 %868, 8
  store i32 %874, ptr %2, align 8
  br label %878

875:                                              ; preds = %867
  %876 = load ptr, ptr %27, align 8
  %877 = getelementptr i8, ptr %876, i64 8
  store ptr %877, ptr %27, align 8
  br label %878

878:                                              ; preds = %875, %870
  %879 = phi ptr [ %873, %870 ], [ %876, %875 ]
  %880 = load ptr, ptr %879, align 8, !tbaa !11
  br label %881

881:                                              ; preds = %878, %865
  %.0524 = phi ptr [ %866, %865 ], [ %880, %878 ]
  %882 = icmp ne ptr %.0524, null
  %883 = icmp eq i8 %249, 10
  %884 = select i1 %883, ptr @.str.4, ptr @.str.5
  %.1525 = select i1 %882, ptr %.0524, ptr %884
  %.not736977 = icmp eq i32 %.4516810, 0
  br i1 %.not736977, label %.critedge32, label %.lr.ph982

.lr.ph982:                                        ; preds = %881
  %.not738 = icmp ne i8 %.1584800, 0
  br label %885

885:                                              ; preds = %.lr.ph982, %.loopexit877
  %.0554980 = phi i32 [ 0, %.lr.ph982 ], [ %spec.select775, %.loopexit877 ]
  %.0556979 = phi i32 [ %.4516810, %.lr.ph982 ], [ %899, %.loopexit877 ]
  %.0561978 = phi i32 [ 0, %.lr.ph982 ], [ %898, %.loopexit877 ]
  %886 = sext i32 %.0561978 to i64
  %887 = getelementptr inbounds i8, ptr %.1525, i64 %886
  %888 = load i8, ptr %887, align 1, !tbaa !12
  %.not737 = icmp eq i8 %888, 0
  br i1 %.not737, label %.critedge32, label %889

889:                                              ; preds = %885
  %890 = icmp eq i8 %888, %864
  %891 = zext i1 %890 to i32
  %spec.select775 = add nuw nsw i32 %.0554980, %891
  %892 = icmp ugt i8 %888, -65
  %or.cond776 = and i1 %.not738, %892
  br i1 %or.cond776, label %.preheader876, label %.loopexit877

.preheader876:                                    ; preds = %889, %.preheader876
  %indvars.iv = phi i64 [ %indvars.iv.next, %.preheader876 ], [ %886, %889 ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %893 = getelementptr inbounds i8, ptr %.1525, i64 %indvars.iv.next
  %894 = load i8, ptr %893, align 1, !tbaa !12
  %895 = and i8 %894, -64
  %896 = icmp eq i8 %895, -128
  br i1 %896, label %.preheader876, label %.loopexit877.loopexit, !llvm.loop !61

.loopexit877.loopexit:                            ; preds = %.preheader876
  %897 = trunc nsw i64 %indvars.iv to i32
  br label %.loopexit877

.loopexit877:                                     ; preds = %.loopexit877.loopexit, %889
  %.2563 = phi i32 [ %.0561978, %889 ], [ %897, %.loopexit877.loopexit ]
  %898 = add nsw i32 %.2563, 1
  %899 = add nsw i32 %.0556979, -1
  %.not736 = icmp eq i32 %899, 0
  br i1 %.not736, label %.critedge32, label %885, !llvm.loop !62

.critedge32:                                      ; preds = %885, %.loopexit877, %881
  %.0561.lcssa = phi i32 [ 0, %881 ], [ %898, %.loopexit877 ], [ %.0561978, %885 ]
  %.0554.lcssa = phi i32 [ 0, %881 ], [ %spec.select775, %.loopexit877 ], [ %.0554980, %885 ]
  %900 = and i1 %883, %882
  %901 = add nsw i32 %.0561.lcssa, 3
  %902 = add nsw i32 %901, %.0554.lcssa
  %903 = icmp sgt i32 %902, 70
  br i1 %903, label %904, label %908

904:                                              ; preds = %.critedge32
  %905 = zext nneg i32 %902 to i64
  %906 = call ptr @printfTempBuf(ptr noundef %0, i64 noundef %905)
  %907 = icmp eq ptr %906, null
  br i1 %907, label %.thread813, label %908

908:                                              ; preds = %.critedge32, %904
  %.6643 = phi ptr [ %906, %904 ], [ null, %.critedge32 ]
  %.27 = phi ptr [ %906, %904 ], [ %6, %.critedge32 ]
  br i1 %900, label %909, label %910

909:                                              ; preds = %908
  store i8 39, ptr %.27, align 1, !tbaa !12
  br label %910

910:                                              ; preds = %909, %908
  %.0557 = phi i32 [ 1, %909 ], [ 0, %908 ]
  %911 = icmp sgt i32 %.0561.lcssa, 0
  br i1 %911, label %.lr.ph991.preheader, label %._crit_edge992

.lr.ph991.preheader:                              ; preds = %910
  %wide.trip.count = zext nneg i32 %.0561.lcssa to i64
  %xtraiter = and i64 %wide.trip.count, 1
  %912 = icmp eq i32 %.0561.lcssa, 1
  br i1 %912, label %._crit_edge992.loopexit.unr-lcssa, label %.lr.ph991.preheader.new

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

.lr.ph991:                                        ; preds = %933, %.lr.ph991.preheader.new
  %indvars.iv1122 = phi i64 [ 0, %.lr.ph991.preheader.new ], [ %indvars.iv.next1123.1, %933 ]
  %.1558989 = phi i32 [ %.0557, %.lr.ph991.preheader.new ], [ %.2559.1, %933 ]
  %niter = phi i64 [ 0, %.lr.ph991.preheader.new ], [ %niter.next.1, %933 ]
  %913 = getelementptr inbounds i8, ptr %.1525, i64 %indvars.iv1122
  %914 = load i8, ptr %913, align 1, !tbaa !12
  %915 = add nsw i32 %.1558989, 1
  %916 = sext i32 %.1558989 to i64
  %917 = getelementptr inbounds i8, ptr %.27, i64 %916
  store i8 %914, ptr %917, align 1, !tbaa !12
  %918 = icmp eq i8 %914, %864
  br i1 %918, label %919, label %.lr.ph991.1

919:                                              ; preds = %.lr.ph991
  %920 = add nsw i32 %.1558989, 2
  %921 = sext i32 %915 to i64
  %922 = getelementptr inbounds i8, ptr %.27, i64 %921
  store i8 %864, ptr %922, align 1, !tbaa !12
  br label %.lr.ph991.1

.lr.ph991.1:                                      ; preds = %.lr.ph991, %919
  %.2559 = phi i32 [ %920, %919 ], [ %915, %.lr.ph991 ]
  %indvars.iv.next1123 = or disjoint i64 %indvars.iv1122, 1
  %923 = getelementptr inbounds i8, ptr %.1525, i64 %indvars.iv.next1123
  %924 = load i8, ptr %923, align 1, !tbaa !12
  %925 = add nsw i32 %.2559, 1
  %926 = sext i32 %.2559 to i64
  %927 = getelementptr inbounds i8, ptr %.27, i64 %926
  store i8 %924, ptr %927, align 1, !tbaa !12
  %928 = icmp eq i8 %924, %864
  br i1 %928, label %929, label %933

929:                                              ; preds = %.lr.ph991.1
  %930 = add nsw i32 %.2559, 2
  %931 = sext i32 %925 to i64
  %932 = getelementptr inbounds i8, ptr %.27, i64 %931
  store i8 %864, ptr %932, align 1, !tbaa !12
  br label %933

933:                                              ; preds = %929, %.lr.ph991.1
  %.2559.1 = phi i32 [ %930, %929 ], [ %925, %.lr.ph991.1 ]
  %indvars.iv.next1123.1 = add nuw nsw i64 %indvars.iv1122, 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_edge992.loopexit.unr-lcssa, label %.lr.ph991, !llvm.loop !63

._crit_edge992.loopexit.unr-lcssa:                ; preds = %933, %.lr.ph991.preheader
  %.2559.lcssa.ph = phi i32 [ poison, %.lr.ph991.preheader ], [ %.2559.1, %933 ]
  %indvars.iv1122.unr = phi i64 [ 0, %.lr.ph991.preheader ], [ %indvars.iv.next1123.1, %933 ]
  %.1558989.unr = phi i32 [ %.0557, %.lr.ph991.preheader ], [ %.2559.1, %933 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge992, label %.lr.ph991.epil

.lr.ph991.epil:                                   ; preds = %._crit_edge992.loopexit.unr-lcssa
  %934 = getelementptr inbounds i8, ptr %.1525, i64 %indvars.iv1122.unr
  %935 = load i8, ptr %934, align 1, !tbaa !12
  %936 = add nsw i32 %.1558989.unr, 1
  %937 = sext i32 %.1558989.unr to i64
  %938 = getelementptr inbounds i8, ptr %.27, i64 %937
  store i8 %935, ptr %938, align 1, !tbaa !12
  %939 = icmp eq i8 %935, %864
  br i1 %939, label %940, label %._crit_edge992

940:                                              ; preds = %.lr.ph991.epil
  %941 = add nsw i32 %.1558989.unr, 2
  %942 = sext i32 %936 to i64
  %943 = getelementptr inbounds i8, ptr %.27, i64 %942
  store i8 %864, ptr %943, align 1, !tbaa !12
  br label %._crit_edge992

._crit_edge992:                                   ; preds = %._crit_edge992.loopexit.unr-lcssa, %940, %.lr.ph991.epil, %910
  %.1558.lcssa = phi i32 [ %.0557, %910 ], [ %.2559.lcssa.ph, %._crit_edge992.loopexit.unr-lcssa ], [ %941, %940 ], [ %936, %.lr.ph991.epil ]
  br i1 %900, label %944, label %.thread850

944:                                              ; preds = %._crit_edge992
  %945 = add nsw i32 %.1558.lcssa, 1
  %946 = sext i32 %.1558.lcssa to i64
  %947 = getelementptr inbounds i8, ptr %.27, i64 %946
  store i8 39, ptr %947, align 1, !tbaa !12
  br label %.thread850

.thread850:                                       ; preds = %._crit_edge992, %944
  %.3560 = phi i32 [ %945, %944 ], [ %.1558.lcssa, %._crit_edge992 ]
  %948 = sext i32 %.3560 to i64
  %949 = getelementptr inbounds i8, ptr %.27, i64 %948
  store i8 0, ptr %949, align 1, !tbaa !12
  br label %.critedge28

950:                                              ; preds = %247
  %951 = load i8, ptr %7, align 1, !tbaa !5
  %952 = and i8 %951, 1
  %.not734 = icmp eq i8 %952, 0
  br i1 %.not734, label %.thread813, label %953

953:                                              ; preds = %950
  %954 = load i32, ptr %2, align 8
  %955 = icmp ult i32 %954, 41
  br i1 %955, label %956, label %961

956:                                              ; preds = %953
  %957 = load ptr, ptr %28, align 8
  %958 = zext nneg i32 %954 to i64
  %959 = getelementptr i8, ptr %957, i64 %958
  %960 = add nuw nsw i32 %954, 8
  store i32 %960, ptr %2, align 8
  br label %964

961:                                              ; preds = %953
  %962 = load ptr, ptr %27, align 8
  %963 = getelementptr i8, ptr %962, i64 8
  store ptr %963, ptr %27, align 8
  br label %964

964:                                              ; preds = %961, %956
  %965 = phi ptr [ %959, %956 ], [ %962, %961 ]
  %966 = load ptr, ptr %965, align 8, !tbaa !11
  %.not732 = icmp eq ptr %966, null
  br i1 %.not732, label %.critedge28.thread, label %967

967:                                              ; preds = %964
  %968 = getelementptr inbounds i8, ptr %966, i64 8
  %969 = load i32, ptr %968, align 8, !tbaa !64
  %.not733 = icmp eq i32 %969, 0
  br i1 %.not733, label %.critedge28.thread, label %970

970:                                              ; preds = %967
  %971 = load ptr, ptr %966, align 8, !tbaa !66
  call void @sqlite3_str_append(ptr noundef nonnull %0, ptr noundef %971, i32 noundef %969)
  br label %.critedge28.thread

972:                                              ; preds = %247
  %973 = load i8, ptr %7, align 1, !tbaa !5
  %974 = and i8 %973, 1
  %.not731 = icmp eq i8 %974, 0
  br i1 %.not731, label %.thread813, label %975

975:                                              ; preds = %972
  %976 = load i32, ptr %2, align 8
  %977 = icmp ult i32 %976, 41
  br i1 %977, label %981, label %.thread

.thread:                                          ; preds = %975
  %978 = load ptr, ptr %27, align 8
  %979 = getelementptr i8, ptr %978, i64 8
  store ptr %979, ptr %27, align 8
  %980 = load ptr, ptr %978, align 8, !tbaa !11
  br label %993

981:                                              ; preds = %975
  %982 = load ptr, ptr %28, align 8
  %983 = zext nneg i32 %976 to i64
  %984 = getelementptr i8, ptr %982, i64 %983
  %985 = add nuw nsw i32 %976, 8
  store i32 %985, ptr %2, align 8
  %986 = load ptr, ptr %984, align 8, !tbaa !11
  %987 = icmp ult i32 %976, 33
  br i1 %987, label %988, label %993

988:                                              ; preds = %981
  %989 = load ptr, ptr %28, align 8
  %990 = zext nneg i32 %985 to i64
  %991 = getelementptr i8, ptr %989, i64 %990
  %992 = add nuw nsw i32 %976, 16
  store i32 %992, ptr %2, align 8
  br label %997

993:                                              ; preds = %.thread, %981
  %994 = phi ptr [ %980, %.thread ], [ %986, %981 ]
  %995 = load ptr, ptr %27, align 8
  %996 = getelementptr i8, ptr %995, i64 8
  store ptr %996, ptr %27, align 8
  br label %997

997:                                              ; preds = %993, %988
  %998 = phi ptr [ %986, %988 ], [ %994, %993 ]
  %999 = phi ptr [ %991, %988 ], [ %995, %993 ]
  %1000 = load i32, ptr %999, align 4, !tbaa !15
  %1001 = getelementptr inbounds i8, ptr %998, i64 8
  %1002 = sext i32 %1000 to i64
  %1003 = getelementptr inbounds [1 x %struct.SrcList_item], ptr %1001, i64 0, i64 %1002
  %1004 = getelementptr inbounds i8, ptr %1003, i64 8
  %1005 = load ptr, ptr %1004, align 8, !tbaa !67
  %.not730 = icmp eq ptr %1005, null
  br i1 %.not730, label %1007, label %1006

1006:                                             ; preds = %997
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef nonnull %1005)
  call void @sqlite3_str_append(ptr noundef nonnull %0, ptr noundef nonnull @.str.6, i32 noundef 1)
  br label %1007

1007:                                             ; preds = %997, %1006
  %1008 = getelementptr inbounds i8, ptr %1003, i64 16
  %1009 = load ptr, ptr %1008, align 8, !tbaa !70
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef %1009)
  br label %.critedge28.thread

.critedge28.thread.loopexit1158.split.loop.exit1199: ; preds = %.lr.ph1000
  %1010 = trunc nuw nsw i64 %indvars.iv1125 to i32
  br label %.critedge28.thread

.critedge28.thread:                               ; preds = %830, %.lr.ph1009, %middle.block1263, %.critedge28.thread.loopexit1158.split.loop.exit1199, %.lr.ph1050.preheader, %.preheader892, %._crit_edge1045, %970, %967, %964, %1007, %543, %678, %691, %507, %.critedge28, %636, %804, %694, %.loopexit879
  %.8645 = phi ptr [ null, %1007 ], [ %.5642, %.critedge28 ], [ null, %804 ], [ null, %694 ], [ null, %543 ], [ %.3640.ph, %636 ], [ %.1638, %.loopexit879 ], [ null, %507 ], [ null, %691 ], [ null, %678 ], [ null, %964 ], [ null, %967 ], [ null, %970 ], [ %.3640.ph, %._crit_edge1045 ], [ %.4641, %.preheader892 ], [ %.3640.ph, %.lr.ph1050.preheader ], [ %.4641, %.critedge28.thread.loopexit1158.split.loop.exit1199 ], [ %.5642, %middle.block1263 ], [ %.5642, %.lr.ph1009 ], [ %.4641, %830 ]
  %.11553 = phi i32 [ 0, %1007 ], [ %.6548, %.critedge28 ], [ 0, %804 ], [ %.3545808, %694 ], [ %.3545808, %543 ], [ %.3545808, %636 ], [ %.3545808, %.loopexit879 ], [ %.3545808, %507 ], [ 0, %691 ], [ 0, %678 ], [ 0, %964 ], [ 0, %967 ], [ 0, %970 ], [ %.3545808, %._crit_edge1045 ], [ %.3545808, %.preheader892 ], [ %.3545808, %.lr.ph1050.preheader ], [ %.3545808, %.critedge28.thread.loopexit1158.split.loop.exit1199 ], [ %855, %middle.block1263 ], [ %spec.select774, %.lr.ph1009 ], [ %.3545808, %830 ]
  %.11537 = phi i32 [ 0, %1007 ], [ %.7533, %.critedge28 ], [ 0, %804 ], [ 1, %694 ], [ %547, %543 ], [ %640, %636 ], [ %457, %.loopexit879 ], [ 3, %507 ], [ 0, %691 ], [ 0, %678 ], [ 0, %964 ], [ 0, %967 ], [ 0, %970 ], [ %.3545808, %._crit_edge1045 ], [ 0, %.preheader892 ], [ %.3545808, %.lr.ph1050.preheader ], [ %1010, %.critedge28.thread.loopexit1158.split.loop.exit1199 ], [ %.7533, %middle.block1263 ], [ %.7533, %.lr.ph1009 ], [ %.4516810, %830 ]
  %.29 = phi ptr [ %.1502, %1007 ], [ %.26, %.critedge28 ], [ %787, %804 ], [ %6, %694 ], [ %6, %543 ], [ %.11.ph, %636 ], [ %.8509, %.loopexit879 ], [ @.str.1, %507 ], [ %.1502, %691 ], [ %.1502, %678 ], [ %.1502, %964 ], [ %.1502, %967 ], [ %.1502, %970 ], [ %.11.ph, %._crit_edge1045 ], [ %.25, %.preheader892 ], [ %.11.ph, %.lr.ph1050.preheader ], [ %.25, %.critedge28.thread.loopexit1158.split.loop.exit1199 ], [ %.26, %middle.block1263 ], [ %.26, %.lr.ph1009 ], [ %.25, %830 ]
  %1011 = sub nsw i32 %.11553, %.11537
  %1012 = icmp sgt i32 %1011, 0
  br i1 %1012, label %1013, label %1015

1013:                                             ; preds = %.critedge28.thread
  %.not769 = icmp eq i8 %.2571806, 0
  br i1 %.not769, label %1014, label %.critedge778

1014:                                             ; preds = %1013
  call void @sqlite3_str_appendchar(ptr noundef %0, i32 noundef %1011, i8 noundef signext 32)
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.29, i32 noundef %.11537)
  br label %1016

.critedge778:                                     ; preds = %1013
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.29, i32 noundef %.11537)
  call void @sqlite3_str_appendchar(ptr noundef %0, i32 noundef %1011, i8 noundef signext 32)
  br label %1016

1015:                                             ; preds = %.critedge28.thread
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.29, i32 noundef %.11537)
  br label %1016

1016:                                             ; preds = %1014, %.critedge778, %1015
  %.not770 = icmp eq ptr %.8645, null
  br i1 %.not770, label %1019, label %1017

1017:                                             ; preds = %1016
  %1018 = load ptr, ptr %0, align 8, !tbaa !54
  call void @sqlite3DbFree(ptr noundef %1018, ptr noundef nonnull %.8645)
  br label %1019

1019:                                             ; preds = %1016, %1017
  %1020 = getelementptr inbounds i8, ptr %.10, i64 1
  br label %85, !llvm.loop !71

.thread813:                                       ; preds = %972, %950, %904, %570, %.critedge, %85, %247, %357, %245, %99
  call void @llvm.lifetime.end.p0(i64 70, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #6
  ret void
}

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

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare x86_fp80 @llvm.fmuladd.f80(x86_fp80, x86_fp80, x86_fp80) #2

; 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 #3

; 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.smin.i32(i32, i32) #4

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

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

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

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

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

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

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

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !8, i64 29}
!6 = !{!"sqlite3_str", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !8, i64 28, !8, i64 29}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!8, !8, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!10, !10, i64 0}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = !{!19, !8, i64 3}
!19 = !{!"et_info", !8, i64 0, !8, i64 1, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 5}
!20 = !{!19, !8, i64 2}
!21 = !{!22, !22, i64 0}
!22 = !{!"long long", !8, i64 0}
!23 = !{!24, !24, i64 0}
!24 = !{!"long", !8, i64 0}
!25 = !{!19, !8, i64 4}
!26 = !{!19, !8, i64 1}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = !{!19, !8, i64 5}
!30 = distinct !{!30, !14}
!31 = !{!32, !32, i64 0}
!32 = !{!"double", !8, i64 0}
!33 = !{!34, !34, i64 0}
!34 = !{!"long double", !8, i64 0}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!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, !46}
!45 = !{!"llvm.loop.isvectorized", i32 1}
!46 = !{!"llvm.loop.unroll.runtime.disable"}
!47 = distinct !{!47, !14, !45, !46}
!48 = distinct !{!48, !14, !45}
!49 = !{!6, !10, i64 24}
!50 = distinct !{!50, !14}
!51 = !{!6, !10, i64 20}
!52 = !{!6, !8, i64 28}
!53 = !{!6, !7, i64 8}
!54 = !{!6, !7, i64 0}
!55 = !{!6, !10, i64 16}
!56 = distinct !{!56, !14}
!57 = distinct !{!57, !14}
!58 = distinct !{!58, !14}
!59 = distinct !{!59, !14, !45, !46}
!60 = distinct !{!60, !14, !46, !45}
!61 = distinct !{!61, !14}
!62 = distinct !{!62, !14}
!63 = distinct !{!63, !14}
!64 = !{!65, !10, i64 8}
!65 = !{!"Token", !7, i64 0, !10, i64 8}
!66 = !{!65, !7, i64 0}
!67 = !{!68, !7, i64 8}
!68 = !{!"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, !69, i64 60, !10, i64 64, !7, i64 72, !7, i64 80, !22, i64 88, !8, i64 96, !7, i64 104}
!69 = !{!"", !8, i64 0, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1}
!70 = !{!68, !7, i64 16}
!71 = distinct !{!71, !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