; LLVM IR from HassenSaidi/IC_sqlite :: src (sqlite3)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.et_info = type { i8, i8, i8, i8, i8, i8 }
%struct.sqlite3_str = type { ptr, ptr, i32, i32, i32, i8, i8 }
%struct.__va_list_tag = type { i32, i32, ptr, ptr }
%struct.Token = type { ptr, i32 }
%struct.SrcList = type { i32, i32, [1 x %struct.SrcList_item] }
%struct.SrcList_item = type { ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, %struct.anon, i32, ptr, ptr, i64, %union.anon.1, ptr }
%struct.anon = type { i8, i8, [2 x i8] }
%union.anon.1 = 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 = %1958, %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 %1961

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 %1961

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 %1961

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 %1922 [
    i32 13, label %371
    i32 15, label %372
    i32 0, label %372
    i32 16, label %373
    i32 1, label %760
    i32 2, label %760
    i32 3, label %760
    i32 4, label %1248
    i32 7, label %1272
    i32 8, label %1275
    i32 5, label %1453
    i32 6, label %1453
    i32 9, label %1633
    i32 10, label %1633
    i32 14, label %1633
    i32 11, label %1816
    i32 12, label %1859
  ]

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 %459

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 %455

450:                                              ; preds = %447
  %451 = load i64, ptr %40, align 8, !tbaa !24
  %452 = xor i64 %451, -1
  store i64 %452, ptr %24, align 8, !tbaa !24
  %453 = load i64, ptr %24, align 8, !tbaa !24
  %454 = add i64 %453, 1
  store i64 %454, ptr %24, align 8, !tbaa !24
  store i8 45, ptr %23, align 1, !tbaa !9
  br label %458

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

580:                                              ; preds = %578
  br label %581

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

799:                                              ; preds = %793
  %800 = load i8, ptr %14, align 1, !tbaa !9
  store i8 %800, ptr %23, align 1, !tbaa !9
  br label %801

801:                                              ; preds = %799, %796
  %802 = load i8, ptr %21, align 1, !tbaa !9
  %803 = zext i8 %802 to i32
  %804 = icmp eq i32 %803, 3
  br i1 %804, label %805, label %811

805:                                              ; preds = %801
  %806 = load i32, ptr %9, align 4, !tbaa !13
  %807 = icmp sgt i32 %806, 0
  br i1 %807, label %808, label %811

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

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

819:                                              ; preds = %822, %811
  %820 = load i32, ptr %11, align 4, !tbaa !13
  %821 = icmp sge i32 %820, 10
  br i1 %821, label %822, label %827

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

827:                                              ; preds = %819
  %828 = load i8, ptr %21, align 1, !tbaa !9
  %829 = zext i8 %828 to i32
  %830 = icmp eq i32 %829, 1
  br i1 %830, label %831, label %855

831:                                              ; preds = %827
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  %832 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %833 = fptrunc x86_fp80 %832 to double
  store double %833, 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)
  %834 = load i64, ptr %51, align 8, !tbaa !24
  %835 = lshr i64 %834, 52
  %836 = and i64 %835, 2047
  %837 = trunc i64 %836 to i32
  %838 = add nsw i32 -1023, %837
  store i32 %838, ptr %52, align 4, !tbaa !13
  %839 = load i32, ptr %9, align 4, !tbaa !13
  %840 = load i32, ptr %52, align 4, !tbaa !13
  %841 = sdiv i32 %840, 3
  %842 = add nsw i32 %839, %841
  %843 = icmp slt i32 %842, 15
  br i1 %843, label %844, label %850

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

850:                                              ; preds = %844, %831
  %851 = load double, ptr %33, align 8, !tbaa !37
  %852 = fpext double %851 to x86_fp80
  %853 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %854 = fadd x86_fp80 %853, %852
  store x86_fp80 %854, 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 %855

855:                                              ; preds = %850, %827
  store i32 0, ptr %30, align 4, !tbaa !13
  %856 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %857 = fptrunc x86_fp80 %856 to double
  %858 = call i32 @sqlite3IsNaN(double noundef %857)
  %859 = icmp ne i32 %858, 0
  br i1 %859, label %860, label %861

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

861:                                              ; preds = %855
  %862 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %863 = fcmp ogt x86_fp80 %862, 0xK00000000000000000000
  br i1 %863, label %864, label %956

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

865:                                              ; preds = %875, %864
  %866 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %867 = load x86_fp80, ptr %53, align 16, !tbaa !35
  %868 = fmul x86_fp80 0xK414B924D692CA61BE800, %867
  %869 = fcmp oge x86_fp80 %866, %868
  br i1 %869, label %870, label %873

870:                                              ; preds = %865
  %871 = load i32, ptr %30, align 4, !tbaa !13
  %872 = icmp sle i32 %871, 350
  br label %873

873:                                              ; preds = %870, %865
  %874 = phi i1 [ false, %865 ], [ %872, %870 ]
  br i1 %874, label %875, label %880

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

880:                                              ; preds = %873
  br label %881

881:                                              ; preds = %891, %880
  %882 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %883 = load x86_fp80, ptr %53, align 16, !tbaa !35
  %884 = fmul x86_fp80 0xK40209502F90000000000, %883
  %885 = fcmp oge x86_fp80 %882, %884
  br i1 %885, label %886, label %889

886:                                              ; preds = %881
  %887 = load i32, ptr %30, align 4, !tbaa !13
  %888 = icmp sle i32 %887, 350
  br label %889

889:                                              ; preds = %886, %881
  %890 = phi i1 [ false, %881 ], [ %888, %886 ]
  br i1 %890, label %891, label %896

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

896:                                              ; preds = %889
  br label %897

897:                                              ; preds = %907, %896
  %898 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %899 = load x86_fp80, ptr %53, align 16, !tbaa !35
  %900 = fmul x86_fp80 0xK4002A000000000000000, %899
  %901 = fcmp oge x86_fp80 %898, %900
  br i1 %901, label %902, label %905

902:                                              ; preds = %897
  %903 = load i32, ptr %30, align 4, !tbaa !13
  %904 = icmp sle i32 %903, 350
  br label %905

905:                                              ; preds = %902, %897
  %906 = phi i1 [ false, %897 ], [ %904, %902 ]
  br i1 %906, label %907, label %912

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

912:                                              ; preds = %905
  %913 = load x86_fp80, ptr %53, align 16, !tbaa !35
  %914 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %915 = fdiv x86_fp80 %914, %913
  store x86_fp80 %915, ptr %25, align 16, !tbaa !35
  br label %916

916:                                              ; preds = %919, %912
  %917 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %918 = fcmp olt x86_fp80 %917, 0xK3FE4ABCC77118461D000
  br i1 %918, label %919, label %924

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

924:                                              ; preds = %916
  br label %925

925:                                              ; preds = %928, %924
  %926 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %927 = fcmp olt x86_fp80 %926, 0xK3FFF8000000000000000
  br i1 %927, label %928, label %933

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

933:                                              ; preds = %925
  %934 = load i32, ptr %30, align 4, !tbaa !13
  %935 = icmp sgt i32 %934, 350
  br i1 %935, label %936, label %952

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

952:                                              ; preds = %933
  store i32 0, ptr %42, align 4
  br label %953

953:                                              ; preds = %952, %936
  call void @llvm.lifetime.end.p0(i64 16, ptr %53) #5
  %954 = load i32, ptr %42, align 4
  switch i32 %954, label %1965 [
    i32 0, label %955
    i32 17, label %1923
  ]

955:                                              ; preds = %953
  br label %956

956:                                              ; preds = %955, %861
  %957 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %957, ptr %8, align 8, !tbaa !5
  %958 = load i8, ptr %21, align 1, !tbaa !9
  %959 = zext i8 %958 to i32
  %960 = icmp ne i32 %959, 1
  br i1 %960, label %961, label %974

961:                                              ; preds = %956
  %962 = load double, ptr %33, align 8, !tbaa !37
  %963 = fpext double %962 to x86_fp80
  %964 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %965 = fadd x86_fp80 %964, %963
  store x86_fp80 %965, ptr %25, align 16, !tbaa !35
  %966 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %967 = fcmp oge x86_fp80 %966, 0xK4002A000000000000000
  br i1 %967, label %968, label %973

968:                                              ; preds = %961
  %969 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %970 = fmul x86_fp80 %969, 0xK3FFBCCCCCCCCCCCCD000
  store x86_fp80 %970, ptr %25, align 16, !tbaa !35
  %971 = load i32, ptr %30, align 4, !tbaa !13
  %972 = add nsw i32 %971, 1
  store i32 %972, ptr %30, align 4, !tbaa !13
  br label %973

973:                                              ; preds = %968, %961
  br label %974

974:                                              ; preds = %973, %956
  %975 = load i8, ptr %21, align 1, !tbaa !9
  %976 = zext i8 %975 to i32
  %977 = icmp eq i32 %976, 3
  br i1 %977, label %978, label %996

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

986:                                              ; preds = %978
  %987 = load i32, ptr %30, align 4, !tbaa !13
  %988 = load i32, ptr %9, align 4, !tbaa !13
  %989 = icmp sgt i32 %987, %988
  br i1 %989, label %990, label %991

990:                                              ; preds = %986, %978
  store i8 2, ptr %21, align 1, !tbaa !9
  br label %995

991:                                              ; preds = %986
  %992 = load i32, ptr %9, align 4, !tbaa !13
  %993 = load i32, ptr %30, align 4, !tbaa !13
  %994 = sub nsw i32 %992, %993
  store i32 %994, ptr %9, align 4, !tbaa !13
  store i8 1, ptr %21, align 1, !tbaa !9
  br label %995

995:                                              ; preds = %991, %990
  br label %998

996:                                              ; preds = %974
  %997 = load i8, ptr %16, align 1, !tbaa !9
  store i8 %997, ptr %35, align 1, !tbaa !9
  br label %998

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

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

1003:                                             ; preds = %998
  %1004 = load i32, ptr %30, align 4, !tbaa !13
  store i32 %1004, ptr %31, align 4, !tbaa !13
  br label %1005

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

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

1010:                                             ; preds = %1005
  br label %1011

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

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

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

1030:                                             ; preds = %1023
  br label %1031

1031:                                             ; preds = %1030, %1011
  store i32 0, ptr %42, align 4
  br label %1032

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

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

1053:                                             ; preds = %1034
  %1054 = load i8, ptr %23, align 1, !tbaa !9
  %1055 = load ptr, ptr %8, align 8, !tbaa !5
  %1056 = getelementptr inbounds i8, ptr %1055, i32 1
  store ptr %1056, ptr %8, align 8, !tbaa !5
  store i8 %1054, ptr %1055, align 1, !tbaa !9
  br label %1057

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

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

1063:                                             ; preds = %1057
  br label %1064

1064:                                             ; preds = %1071, %1063
  %1065 = load i32, ptr %31, align 4, !tbaa !13
  %1066 = icmp sge i32 %1065, 0
  br i1 %1066, label %1067, label %1074

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

1071:                                             ; preds = %1067
  %1072 = load i32, ptr %31, align 4, !tbaa !13
  %1073 = add nsw i32 %1072, -1
  store i32 %1073, ptr %31, align 4, !tbaa !13
  br label %1064, !llvm.loop !45

1074:                                             ; preds = %1064
  br label %1075

1075:                                             ; preds = %1074, %1060
  %1076 = load i8, ptr %34, align 1, !tbaa !9
  %1077 = icmp ne i8 %1076, 0
  br i1 %1077, label %1078, label %1081

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

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

1084:                                             ; preds = %1090, %1081
  %1085 = load i32, ptr %31, align 4, !tbaa !13
  %1086 = icmp slt i32 %1085, 0
  br i1 %1086, label %1087, label %1095

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

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

1095:                                             ; preds = %1084
  br label %1096

1096:                                             ; preds = %1100, %1095
  %1097 = load i32, ptr %9, align 4, !tbaa !13
  %1098 = add nsw i32 %1097, -1
  store i32 %1098, ptr %9, align 4, !tbaa !13
  %1099 = icmp sgt i32 %1097, 0
  br i1 %1099, label %1100, label %1104

1100:                                             ; preds = %1096
  %1101 = call signext i8 @et_getdigit(ptr noundef %25, ptr noundef %32)
  %1102 = load ptr, ptr %8, align 8, !tbaa !5
  %1103 = getelementptr inbounds i8, ptr %1102, i32 1
  store ptr %1103, ptr %8, align 8, !tbaa !5
  store i8 %1101, ptr %1102, align 1, !tbaa !9
  br label %1096, !llvm.loop !47

1104:                                             ; preds = %1096
  %1105 = load i8, ptr %35, align 1, !tbaa !9
  %1106 = zext i8 %1105 to i32
  %1107 = icmp ne i32 %1106, 0
  br i1 %1107, label %1108, label %1139

1108:                                             ; preds = %1104
  %1109 = load i8, ptr %34, align 1, !tbaa !9
  %1110 = zext i8 %1109 to i32
  %1111 = icmp ne i32 %1110, 0
  br i1 %1111, label %1112, label %1139

1112:                                             ; preds = %1108
  br label %1113

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

1119:                                             ; preds = %1113
  %1120 = load ptr, ptr %8, align 8, !tbaa !5
  %1121 = getelementptr inbounds i8, ptr %1120, i32 -1
  store ptr %1121, ptr %8, align 8, !tbaa !5
  store i8 0, ptr %1121, align 1, !tbaa !9
  br label %1113, !llvm.loop !48

1122:                                             ; preds = %1113
  %1123 = load ptr, ptr %8, align 8, !tbaa !5
  %1124 = getelementptr inbounds i8, ptr %1123, i64 -1
  %1125 = load i8, ptr %1124, align 1, !tbaa !9
  %1126 = sext i8 %1125 to i32
  %1127 = icmp eq i32 %1126, 46
  br i1 %1127, label %1128, label %1138

1128:                                             ; preds = %1122
  %1129 = load i8, ptr %16, align 1, !tbaa !9
  %1130 = icmp ne i8 %1129, 0
  br i1 %1130, label %1131, label %1134

1131:                                             ; preds = %1128
  %1132 = load ptr, ptr %8, align 8, !tbaa !5
  %1133 = getelementptr inbounds i8, ptr %1132, i32 1
  store ptr %1133, ptr %8, align 8, !tbaa !5
  store i8 48, ptr %1132, align 1, !tbaa !9
  br label %1137

1134:                                             ; preds = %1128
  %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 0, ptr %1136, align 1, !tbaa !9
  br label %1137

1137:                                             ; preds = %1134, %1131
  br label %1138

1138:                                             ; preds = %1137, %1122
  br label %1139

1139:                                             ; preds = %1138, %1108, %1104
  %1140 = load i8, ptr %21, align 1, !tbaa !9
  %1141 = zext i8 %1140 to i32
  %1142 = icmp eq i32 %1141, 2
  br i1 %1142, label %1143, label %1187

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

1154:                                             ; preds = %1143
  %1155 = load ptr, ptr %8, align 8, !tbaa !5
  %1156 = getelementptr inbounds i8, ptr %1155, i32 1
  store ptr %1156, ptr %8, align 8, !tbaa !5
  store i8 45, ptr %1155, align 1, !tbaa !9
  %1157 = load i32, ptr %30, align 4, !tbaa !13
  %1158 = sub nsw i32 0, %1157
  store i32 %1158, ptr %30, align 4, !tbaa !13
  br label %1162

1159:                                             ; preds = %1143
  %1160 = load ptr, ptr %8, align 8, !tbaa !5
  %1161 = getelementptr inbounds i8, ptr %1160, i32 1
  store ptr %1161, ptr %8, align 8, !tbaa !5
  store i8 43, ptr %1160, align 1, !tbaa !9
  br label %1162

1162:                                             ; preds = %1159, %1154
  %1163 = load i32, ptr %30, align 4, !tbaa !13
  %1164 = icmp sge i32 %1163, 100
  br i1 %1164, label %1165, label %1174

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

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

1187:                                             ; preds = %1174, %1139
  %1188 = load ptr, ptr %8, align 8, !tbaa !5
  store i8 0, ptr %1188, align 1, !tbaa !9
  %1189 = load ptr, ptr %8, align 8, !tbaa !5
  %1190 = load ptr, ptr %27, align 8, !tbaa !5
  %1191 = ptrtoint ptr %1189 to i64
  %1192 = ptrtoint ptr %1190 to i64
  %1193 = sub i64 %1191, %1192
  %1194 = trunc i64 %1193 to i32
  store i32 %1194, ptr %10, align 4, !tbaa !13
  %1195 = load ptr, ptr %27, align 8, !tbaa !5
  store ptr %1195, ptr %8, align 8, !tbaa !5
  %1196 = load i8, ptr %17, align 1, !tbaa !9
  %1197 = zext i8 %1196 to i32
  %1198 = icmp ne i32 %1197, 0
  br i1 %1198, label %1199, label %1247

1199:                                             ; preds = %1187
  %1200 = load i8, ptr %13, align 1, !tbaa !9
  %1201 = icmp ne i8 %1200, 0
  br i1 %1201, label %1247, label %1202

1202:                                             ; preds = %1199
  %1203 = load i32, ptr %10, align 4, !tbaa !13
  %1204 = load i32, ptr %12, align 4, !tbaa !13
  %1205 = icmp slt i32 %1203, %1204
  br i1 %1205, label %1206, label %1247

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

1211:                                             ; preds = %1227, %1206
  %1212 = load i32, ptr %55, align 4, !tbaa !13
  %1213 = load i32, ptr %56, align 4, !tbaa !13
  %1214 = icmp sge i32 %1212, %1213
  br i1 %1214, label %1215, label %1230

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

1227:                                             ; preds = %1215
  %1228 = load i32, ptr %55, align 4, !tbaa !13
  %1229 = add nsw i32 %1228, -1
  store i32 %1229, ptr %55, align 4, !tbaa !13
  br label %1211, !llvm.loop !49

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

1235:                                             ; preds = %1239, %1230
  %1236 = load i32, ptr %56, align 4, !tbaa !13
  %1237 = add nsw i32 %1236, -1
  store i32 %1237, ptr %56, align 4, !tbaa !13
  %1238 = icmp ne i32 %1236, 0
  br i1 %1238, label %1239, label %1245

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

1245:                                             ; preds = %1235
  %1246 = load i32, ptr %12, align 4, !tbaa !13
  store i32 %1246, 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 %1247

1247:                                             ; preds = %1245, %1202, %1199, %1187
  br label %1923

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

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

1259:                                             ; preds = %1251
  %1260 = getelementptr inbounds %struct.__va_list_tag, ptr %1255, i32 0, i32 3
  %1261 = load ptr, ptr %1260, align 8
  %1262 = getelementptr i8, ptr %1261, i32 %1257
  %1263 = add i32 %1257, 8
  store i32 %1263, ptr %1256, align 8
  br label %1268

1264:                                             ; preds = %1251
  %1265 = getelementptr inbounds %struct.__va_list_tag, ptr %1255, i32 0, i32 2
  %1266 = load ptr, ptr %1265, align 8
  %1267 = getelementptr i8, ptr %1266, i32 8
  store ptr %1267, ptr %1265, align 8
  br label %1268

1268:                                             ; preds = %1264, %1259
  %1269 = phi ptr [ %1262, %1259 ], [ %1266, %1264 ]
  %1270 = load ptr, ptr %1269, align 8, !tbaa !5
  store i32 %1254, ptr %1270, align 4, !tbaa !13
  br label %1271

1271:                                             ; preds = %1268, %1248
  store i32 0, ptr %12, align 4, !tbaa !13
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1923

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

1275:                                             ; preds = %368
  %1276 = load i8, ptr %22, align 1, !tbaa !9
  %1277 = icmp ne i8 %1276, 0
  br i1 %1277, label %1278, label %1319

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

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

1293:                                             ; preds = %1283
  br label %1294

1294:                                             ; preds = %1306, %1293
  %1295 = load i32, ptr %10, align 4, !tbaa !13
  %1296 = icmp slt i32 %1295, 4
  br i1 %1296, label %1297, label %1304

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

1304:                                             ; preds = %1297, %1294
  %1305 = phi i1 [ false, %1294 ], [ %1303, %1297 ]
  br i1 %1305, label %1306, label %1314

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

1314:                                             ; preds = %1304
  br label %1315

1315:                                             ; preds = %1314, %1283
  br label %1318

1316:                                             ; preds = %1278
  %1317 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 0, ptr %1317, align 16, !tbaa !9
  br label %1318

1318:                                             ; preds = %1316, %1315
  br label %1424

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

1324:                                             ; preds = %1319
  %1325 = getelementptr inbounds %struct.__va_list_tag, ptr %1320, i32 0, i32 3
  %1326 = load ptr, ptr %1325, align 8
  %1327 = getelementptr i8, ptr %1326, i32 %1322
  %1328 = add i32 %1322, 8
  store i32 %1328, ptr %1321, align 8
  br label %1333

1329:                                             ; preds = %1319
  %1330 = getelementptr inbounds %struct.__va_list_tag, ptr %1320, i32 0, i32 2
  %1331 = load ptr, ptr %1330, align 8
  %1332 = getelementptr i8, ptr %1331, i32 8
  store ptr %1332, ptr %1330, align 8
  br label %1333

1333:                                             ; preds = %1329, %1324
  %1334 = phi ptr [ %1327, %1324 ], [ %1331, %1329 ]
  %1335 = load i32, ptr %1334, align 4, !tbaa !13
  store i32 %1335, ptr %57, align 4, !tbaa !13
  %1336 = load i32, ptr %57, align 4, !tbaa !13
  %1337 = icmp ult i32 %1336, 128
  br i1 %1337, label %1338, label %1343

1338:                                             ; preds = %1333
  %1339 = load i32, ptr %57, align 4, !tbaa !13
  %1340 = and i32 %1339, 255
  %1341 = trunc i32 %1340 to i8
  %1342 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 %1341, ptr %1342, align 16, !tbaa !9
  store i32 1, ptr %10, align 4, !tbaa !13
  br label %1423

1343:                                             ; preds = %1333
  %1344 = load i32, ptr %57, align 4, !tbaa !13
  %1345 = icmp ult i32 %1344, 2048
  br i1 %1345, label %1346, label %1362

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

1362:                                             ; preds = %1343
  %1363 = load i32, ptr %57, align 4, !tbaa !13
  %1364 = icmp ult i32 %1363, 65536
  br i1 %1364, label %1365, label %1389

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

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

1421:                                             ; preds = %1389, %1365
  br label %1422

1422:                                             ; preds = %1421, %1346
  br label %1423

1423:                                             ; preds = %1422, %1338
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  br label %1424

1424:                                             ; preds = %1423, %1318
  %1425 = load i32, ptr %9, align 4, !tbaa !13
  %1426 = icmp sgt i32 %1425, 1
  br i1 %1426, label %1427, label %1451

1427:                                             ; preds = %1424
  %1428 = load i32, ptr %9, align 4, !tbaa !13
  %1429 = sub nsw i32 %1428, 1
  %1430 = load i32, ptr %12, align 4, !tbaa !13
  %1431 = sub nsw i32 %1430, %1429
  store i32 %1431, ptr %12, align 4, !tbaa !13
  %1432 = load i32, ptr %12, align 4, !tbaa !13
  %1433 = icmp sgt i32 %1432, 1
  br i1 %1433, label %1434, label %1441

1434:                                             ; preds = %1427
  %1435 = load i8, ptr %13, align 1, !tbaa !9
  %1436 = icmp ne i8 %1435, 0
  br i1 %1436, label %1441, label %1437

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

1441:                                             ; preds = %1437, %1434, %1427
  br label %1442

1442:                                             ; preds = %1446, %1441
  %1443 = load i32, ptr %9, align 4, !tbaa !13
  %1444 = add nsw i32 %1443, -1
  store i32 %1444, ptr %9, align 4, !tbaa !13
  %1445 = icmp sgt i32 %1443, 1
  br i1 %1445, label %1446, label %1450

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

1450:                                             ; preds = %1442
  br label %1451

1451:                                             ; preds = %1450, %1424
  %1452 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1452, ptr %8, align 8, !tbaa !5
  store i8 1, ptr %16, align 1, !tbaa !9
  br label %1604

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

1456:                                             ; preds = %1453
  %1457 = load ptr, ptr %36, align 8, !tbaa !5
  %1458 = call ptr @getTextArg(ptr noundef %1457)
  store ptr %1458, ptr %8, align 8, !tbaa !5
  store i8 5, ptr %21, align 1, !tbaa !9
  br label %1476

1459:                                             ; preds = %1453
  %1460 = load ptr, ptr %6, align 8, !tbaa !5
  %1461 = getelementptr inbounds %struct.__va_list_tag, ptr %1460, i32 0, i32 0
  %1462 = load i32, ptr %1461, align 8
  %1463 = icmp ule i32 %1462, 40
  br i1 %1463, label %1464, label %1469

1464:                                             ; preds = %1459
  %1465 = getelementptr inbounds %struct.__va_list_tag, ptr %1460, i32 0, i32 3
  %1466 = load ptr, ptr %1465, align 8
  %1467 = getelementptr i8, ptr %1466, i32 %1462
  %1468 = add i32 %1462, 8
  store i32 %1468, ptr %1461, align 8
  br label %1473

1469:                                             ; preds = %1459
  %1470 = getelementptr inbounds %struct.__va_list_tag, ptr %1460, i32 0, i32 2
  %1471 = load ptr, ptr %1470, align 8
  %1472 = getelementptr i8, ptr %1471, i32 8
  store ptr %1472, ptr %1470, align 8
  br label %1473

1473:                                             ; preds = %1469, %1464
  %1474 = phi ptr [ %1467, %1464 ], [ %1471, %1469 ]
  %1475 = load ptr, ptr %1474, align 8, !tbaa !5
  store ptr %1475, ptr %8, align 8, !tbaa !5
  br label %1476

1476:                                             ; preds = %1473, %1456
  %1477 = load ptr, ptr %8, align 8, !tbaa !5
  %1478 = icmp eq ptr %1477, null
  br i1 %1478, label %1479, label %1480

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

1480:                                             ; preds = %1476
  %1481 = load i8, ptr %21, align 1, !tbaa !9
  %1482 = zext i8 %1481 to i32
  %1483 = icmp eq i32 %1482, 6
  br i1 %1483, label %1484, label %1531

1484:                                             ; preds = %1480
  %1485 = load ptr, ptr %4, align 8, !tbaa !5
  %1486 = getelementptr inbounds %struct.sqlite3_str, ptr %1485, i32 0, i32 4
  %1487 = load i32, ptr %1486, align 8, !tbaa !51
  %1488 = icmp eq i32 %1487, 0
  br i1 %1488, label %1489, label %1529

1489:                                             ; preds = %1484
  %1490 = load ptr, ptr %4, align 8, !tbaa !5
  %1491 = getelementptr inbounds %struct.sqlite3_str, ptr %1490, i32 0, i32 3
  %1492 = load i32, ptr %1491, align 4, !tbaa !54
  %1493 = icmp ne i32 %1492, 0
  br i1 %1493, label %1494, label %1529

1494:                                             ; preds = %1489
  %1495 = load i32, ptr %12, align 4, !tbaa !13
  %1496 = icmp eq i32 %1495, 0
  br i1 %1496, label %1497, label %1529

1497:                                             ; preds = %1494
  %1498 = load i32, ptr %9, align 4, !tbaa !13
  %1499 = icmp slt i32 %1498, 0
  br i1 %1499, label %1500, label %1529

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

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

1529:                                             ; preds = %1500, %1497, %1494, %1489, %1484
  %1530 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1530, ptr %29, align 8, !tbaa !5
  br label %1531

1531:                                             ; preds = %1529, %1480
  br label %1532

1532:                                             ; preds = %1531, %1479
  %1533 = load i32, ptr %9, align 4, !tbaa !13
  %1534 = icmp sge i32 %1533, 0
  br i1 %1534, label %1535, label %1598

1535:                                             ; preds = %1532
  %1536 = load i8, ptr %16, align 1, !tbaa !9
  %1537 = icmp ne i8 %1536, 0
  br i1 %1537, label %1538, label %1577

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

1540:                                             ; preds = %1569, %1538
  %1541 = load i32, ptr %9, align 4, !tbaa !13
  %1542 = add nsw i32 %1541, -1
  store i32 %1542, ptr %9, align 4, !tbaa !13
  %1543 = icmp sgt i32 %1541, 0
  br i1 %1543, label %1544, label %1550

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

1550:                                             ; preds = %1544, %1540
  %1551 = phi i1 [ false, %1540 ], [ %1549, %1544 ]
  br i1 %1551, label %1552, label %1570

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

1558:                                             ; preds = %1552
  br label %1559

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

1565:                                             ; preds = %1559
  %1566 = load ptr, ptr %58, align 8, !tbaa !5
  %1567 = getelementptr inbounds i8, ptr %1566, i32 1
  store ptr %1567, ptr %58, align 8, !tbaa !5
  br label %1559, !llvm.loop !59

1568:                                             ; preds = %1559
  br label %1569

1569:                                             ; preds = %1568, %1552
  br label %1540, !llvm.loop !60

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

1577:                                             ; preds = %1535
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1578

1578:                                             ; preds = %1593, %1577
  %1579 = load i32, ptr %10, align 4, !tbaa !13
  %1580 = load i32, ptr %9, align 4, !tbaa !13
  %1581 = icmp slt i32 %1579, %1580
  br i1 %1581, label %1582, label %1590

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

1590:                                             ; preds = %1582, %1578
  %1591 = phi i1 [ false, %1578 ], [ %1589, %1582 ]
  br i1 %1591, label %1592, label %1596

1592:                                             ; preds = %1590
  br label %1593

1593:                                             ; preds = %1592
  %1594 = load i32, ptr %10, align 4, !tbaa !13
  %1595 = add nsw i32 %1594, 1
  store i32 %1595, ptr %10, align 4, !tbaa !13
  br label %1578, !llvm.loop !61

1596:                                             ; preds = %1590
  br label %1597

1597:                                             ; preds = %1596, %1570
  br label %1603

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

1603:                                             ; preds = %1598, %1597
  br label %1604

1604:                                             ; preds = %1814, %1603, %1451
  %1605 = load i8, ptr %16, align 1, !tbaa !9
  %1606 = zext i8 %1605 to i32
  %1607 = icmp ne i32 %1606, 0
  br i1 %1607, label %1608, label %1632

1608:                                             ; preds = %1604
  %1609 = load i32, ptr %12, align 4, !tbaa !13
  %1610 = icmp sgt i32 %1609, 0
  br i1 %1610, label %1611, label %1632

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

1614:                                             ; preds = %1630, %1611
  %1615 = load i32, ptr %59, align 4, !tbaa !13
  %1616 = icmp sge i32 %1615, 0
  br i1 %1616, label %1617, label %1631

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

1627:                                             ; preds = %1617
  %1628 = load i32, ptr %12, align 4, !tbaa !13
  %1629 = add nsw i32 %1628, 1
  store i32 %1629, ptr %12, align 4, !tbaa !13
  br label %1630

1630:                                             ; preds = %1627, %1617
  br label %1614, !llvm.loop !62

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

1632:                                             ; preds = %1631, %1608, %1604
  br label %1923

1633:                                             ; 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
  %1634 = load i8, ptr %21, align 1, !tbaa !9
  %1635 = zext i8 %1634 to i32
  %1636 = icmp eq i32 %1635, 14
  %1637 = zext i1 %1636 to i64
  %1638 = select i1 %1636, i32 34, i32 39
  %1639 = trunc i32 %1638 to i8
  store i8 %1639, ptr %67, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #5
  %1640 = load i8, ptr %22, align 1, !tbaa !9
  %1641 = icmp ne i8 %1640, 0
  br i1 %1641, label %1642, label %1645

1642:                                             ; preds = %1633
  %1643 = load ptr, ptr %36, align 8, !tbaa !5
  %1644 = call ptr @getTextArg(ptr noundef %1643)
  store ptr %1644, ptr %68, align 8, !tbaa !5
  br label %1662

1645:                                             ; preds = %1633
  %1646 = load ptr, ptr %6, align 8, !tbaa !5
  %1647 = getelementptr inbounds %struct.__va_list_tag, ptr %1646, i32 0, i32 0
  %1648 = load i32, ptr %1647, align 8
  %1649 = icmp ule i32 %1648, 40
  br i1 %1649, label %1650, label %1655

1650:                                             ; preds = %1645
  %1651 = getelementptr inbounds %struct.__va_list_tag, ptr %1646, i32 0, i32 3
  %1652 = load ptr, ptr %1651, align 8
  %1653 = getelementptr i8, ptr %1652, i32 %1648
  %1654 = add i32 %1648, 8
  store i32 %1654, ptr %1647, align 8
  br label %1659

1655:                                             ; preds = %1645
  %1656 = getelementptr inbounds %struct.__va_list_tag, ptr %1646, i32 0, i32 2
  %1657 = load ptr, ptr %1656, align 8
  %1658 = getelementptr i8, ptr %1657, i32 8
  store ptr %1658, ptr %1656, align 8
  br label %1659

1659:                                             ; preds = %1655, %1650
  %1660 = phi ptr [ %1653, %1650 ], [ %1657, %1655 ]
  %1661 = load ptr, ptr %1660, align 8, !tbaa !5
  store ptr %1661, ptr %68, align 8, !tbaa !5
  br label %1662

1662:                                             ; preds = %1659, %1642
  %1663 = load ptr, ptr %68, align 8, !tbaa !5
  %1664 = icmp eq ptr %1663, null
  %1665 = zext i1 %1664 to i32
  store i32 %1665, ptr %64, align 4, !tbaa !13
  %1666 = load i32, ptr %64, align 4, !tbaa !13
  %1667 = icmp ne i32 %1666, 0
  br i1 %1667, label %1668, label %1674

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

1674:                                             ; preds = %1668, %1662
  %1675 = load i32, ptr %9, align 4, !tbaa !13
  store i32 %1675, 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 %1676

1676:                                             ; preds = %1723, %1674
  %1677 = load i32, ptr %62, align 4, !tbaa !13
  %1678 = icmp ne i32 %1677, 0
  br i1 %1678, label %1679, label %1687

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

1687:                                             ; preds = %1679, %1676
  %1688 = phi i1 [ false, %1676 ], [ %1686, %1679 ]
  br i1 %1688, label %1689, label %1728

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

1695:                                             ; preds = %1689
  %1696 = load i32, ptr %63, align 4, !tbaa !13
  %1697 = add nsw i32 %1696, 1
  store i32 %1697, ptr %63, align 4, !tbaa !13
  br label %1698

1698:                                             ; preds = %1695, %1689
  %1699 = load i8, ptr %16, align 1, !tbaa !9
  %1700 = zext i8 %1699 to i32
  %1701 = icmp ne i32 %1700, 0
  br i1 %1701, label %1702, label %1722

1702:                                             ; preds = %1698
  %1703 = load i8, ptr %66, align 1, !tbaa !9
  %1704 = sext i8 %1703 to i32
  %1705 = and i32 %1704, 192
  %1706 = icmp eq i32 %1705, 192
  br i1 %1706, label %1707, label %1722

1707:                                             ; preds = %1702
  br label %1708

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

1718:                                             ; preds = %1708
  %1719 = load i32, ptr %60, align 4, !tbaa !13
  %1720 = add nsw i32 %1719, 1
  store i32 %1720, ptr %60, align 4, !tbaa !13
  br label %1708, !llvm.loop !63

1721:                                             ; preds = %1708
  br label %1722

1722:                                             ; preds = %1721, %1702, %1698
  br label %1723

1723:                                             ; preds = %1722
  %1724 = load i32, ptr %60, align 4, !tbaa !13
  %1725 = add nsw i32 %1724, 1
  store i32 %1725, ptr %60, align 4, !tbaa !13
  %1726 = load i32, ptr %62, align 4, !tbaa !13
  %1727 = add nsw i32 %1726, -1
  store i32 %1727, ptr %62, align 4, !tbaa !13
  br label %1676, !llvm.loop !64

1728:                                             ; preds = %1687
  %1729 = load i32, ptr %64, align 4, !tbaa !13
  %1730 = icmp ne i32 %1729, 0
  br i1 %1730, label %1735, label %1731

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

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

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

1751:                                             ; preds = %1744
  store i32 1, ptr %42, align 4
  br label %1814

1752:                                             ; preds = %1744
  br label %1755

1753:                                             ; preds = %1735
  %1754 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1754, ptr %8, align 8, !tbaa !5
  br label %1755

1755:                                             ; preds = %1753, %1752
  store i32 0, ptr %61, align 4, !tbaa !13
  %1756 = load i32, ptr %65, align 4, !tbaa !13
  %1757 = icmp ne i32 %1756, 0
  br i1 %1757, label %1758, label %1765

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

1765:                                             ; preds = %1758, %1755
  %1766 = load i32, ptr %60, align 4, !tbaa !13
  store i32 %1766, ptr %62, align 4, !tbaa !13
  store i32 0, ptr %60, align 4, !tbaa !13
  br label %1767

1767:                                             ; preds = %1795, %1765
  %1768 = load i32, ptr %60, align 4, !tbaa !13
  %1769 = load i32, ptr %62, align 4, !tbaa !13
  %1770 = icmp slt i32 %1768, %1769
  br i1 %1770, label %1771, label %1798

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

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

1794:                                             ; preds = %1787, %1771
  br label %1795

1795:                                             ; preds = %1794
  %1796 = load i32, ptr %60, align 4, !tbaa !13
  %1797 = add nsw i32 %1796, 1
  store i32 %1797, ptr %60, align 4, !tbaa !13
  br label %1767, !llvm.loop !65

1798:                                             ; preds = %1767
  %1799 = load i32, ptr %65, align 4, !tbaa !13
  %1800 = icmp ne i32 %1799, 0
  br i1 %1800, label %1801, label %1808

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

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

1814:                                             ; preds = %1808, %1751
  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
  %1815 = load i32, ptr %42, align 4
  switch i32 %1815, label %1962 [
    i32 59, label %1604
  ]

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

1823:                                             ; preds = %1816
  store i32 1, ptr %42, align 4
  br label %1857

1824:                                             ; preds = %1816
  %1825 = load ptr, ptr %6, align 8, !tbaa !5
  %1826 = getelementptr inbounds %struct.__va_list_tag, ptr %1825, i32 0, i32 0
  %1827 = load i32, ptr %1826, align 8
  %1828 = icmp ule i32 %1827, 40
  br i1 %1828, label %1829, label %1834

1829:                                             ; preds = %1824
  %1830 = getelementptr inbounds %struct.__va_list_tag, ptr %1825, i32 0, i32 3
  %1831 = load ptr, ptr %1830, align 8
  %1832 = getelementptr i8, ptr %1831, i32 %1827
  %1833 = add i32 %1827, 8
  store i32 %1833, ptr %1826, align 8
  br label %1838

1834:                                             ; preds = %1824
  %1835 = getelementptr inbounds %struct.__va_list_tag, ptr %1825, i32 0, i32 2
  %1836 = load ptr, ptr %1835, align 8
  %1837 = getelementptr i8, ptr %1836, i32 8
  store ptr %1837, ptr %1835, align 8
  br label %1838

1838:                                             ; preds = %1834, %1829
  %1839 = phi ptr [ %1832, %1829 ], [ %1836, %1834 ]
  %1840 = load ptr, ptr %1839, align 8, !tbaa !5
  store ptr %1840, ptr %69, align 8, !tbaa !5
  %1841 = load ptr, ptr %69, align 8, !tbaa !5
  %1842 = icmp ne ptr %1841, null
  br i1 %1842, label %1843, label %1856

1843:                                             ; preds = %1838
  %1844 = load ptr, ptr %69, align 8, !tbaa !5
  %1845 = getelementptr inbounds %struct.Token, ptr %1844, i32 0, i32 1
  %1846 = load i32, ptr %1845, align 8, !tbaa !66
  %1847 = icmp ne i32 %1846, 0
  br i1 %1847, label %1848, label %1856

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

1856:                                             ; preds = %1848, %1843, %1838
  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 %1857

1857:                                             ; preds = %1856, %1823
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  %1858 = load i32, ptr %42, align 4
  switch i32 %1858, label %1962 [
    i32 17, label %1923
  ]

1859:                                             ; 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
  %1860 = load ptr, ptr %4, align 8, !tbaa !5
  %1861 = getelementptr inbounds %struct.sqlite3_str, ptr %1860, i32 0, i32 6
  %1862 = load i8, ptr %1861, align 1, !tbaa !10
  %1863 = zext i8 %1862 to i32
  %1864 = and i32 %1863, 1
  %1865 = icmp eq i32 %1864, 0
  br i1 %1865, label %1866, label %1867

1866:                                             ; preds = %1859
  store i32 1, ptr %42, align 4
  br label %1920

1867:                                             ; preds = %1859
  %1868 = load ptr, ptr %6, align 8, !tbaa !5
  %1869 = getelementptr inbounds %struct.__va_list_tag, ptr %1868, i32 0, i32 0
  %1870 = load i32, ptr %1869, align 8
  %1871 = icmp ule i32 %1870, 40
  br i1 %1871, label %1872, label %1877

1872:                                             ; preds = %1867
  %1873 = getelementptr inbounds %struct.__va_list_tag, ptr %1868, i32 0, i32 3
  %1874 = load ptr, ptr %1873, align 8
  %1875 = getelementptr i8, ptr %1874, i32 %1870
  %1876 = add i32 %1870, 8
  store i32 %1876, ptr %1869, align 8
  br label %1881

1877:                                             ; preds = %1867
  %1878 = getelementptr inbounds %struct.__va_list_tag, ptr %1868, i32 0, i32 2
  %1879 = load ptr, ptr %1878, align 8
  %1880 = getelementptr i8, ptr %1879, i32 8
  store ptr %1880, ptr %1878, align 8
  br label %1881

1881:                                             ; preds = %1877, %1872
  %1882 = phi ptr [ %1875, %1872 ], [ %1879, %1877 ]
  %1883 = load ptr, ptr %1882, align 8, !tbaa !5
  store ptr %1883, ptr %70, align 8, !tbaa !5
  %1884 = load ptr, ptr %6, align 8, !tbaa !5
  %1885 = getelementptr inbounds %struct.__va_list_tag, ptr %1884, i32 0, i32 0
  %1886 = load i32, ptr %1885, align 8
  %1887 = icmp ule i32 %1886, 40
  br i1 %1887, label %1888, label %1893

1888:                                             ; preds = %1881
  %1889 = getelementptr inbounds %struct.__va_list_tag, ptr %1884, i32 0, i32 3
  %1890 = load ptr, ptr %1889, align 8
  %1891 = getelementptr i8, ptr %1890, i32 %1886
  %1892 = add i32 %1886, 8
  store i32 %1892, ptr %1885, align 8
  br label %1897

1893:                                             ; preds = %1881
  %1894 = getelementptr inbounds %struct.__va_list_tag, ptr %1884, i32 0, i32 2
  %1895 = load ptr, ptr %1894, align 8
  %1896 = getelementptr i8, ptr %1895, i32 8
  store ptr %1896, ptr %1894, align 8
  br label %1897

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

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

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

1920:                                             ; preds = %1915, %1866
  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
  %1921 = load i32, ptr %42, align 4
  switch i32 %1921, label %1962 [
    i32 17, label %1923
  ]

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

1923:                                             ; preds = %1920, %1857, %1632, %1506, %1272, %1271, %1247, %953, %860, %749
  %1924 = load i32, ptr %10, align 4, !tbaa !13
  %1925 = load i32, ptr %12, align 4, !tbaa !13
  %1926 = sub nsw i32 %1925, %1924
  store i32 %1926, ptr %12, align 4, !tbaa !13
  %1927 = load i32, ptr %12, align 4, !tbaa !13
  %1928 = icmp sgt i32 %1927, 0
  br i1 %1928, label %1929, label %1945

1929:                                             ; preds = %1923
  %1930 = load i8, ptr %13, align 1, !tbaa !9
  %1931 = icmp ne i8 %1930, 0
  br i1 %1931, label %1935, label %1932

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

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

1941:                                             ; preds = %1935
  %1942 = load ptr, ptr %4, align 8, !tbaa !5
  %1943 = load i32, ptr %12, align 4, !tbaa !13
  call void @sqlite3_str_appendchar(ptr noundef %1942, i32 noundef %1943, i8 noundef signext 32)
  br label %1944

1944:                                             ; preds = %1941, %1935
  br label %1949

1945:                                             ; preds = %1923
  %1946 = load ptr, ptr %4, align 8, !tbaa !5
  %1947 = load ptr, ptr %8, align 8, !tbaa !5
  %1948 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %1946, ptr noundef %1947, i32 noundef %1948)
  br label %1949

1949:                                             ; preds = %1945, %1944
  %1950 = load ptr, ptr %29, align 8, !tbaa !5
  %1951 = icmp ne ptr %1950, null
  br i1 %1951, label %1952, label %1957

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

1957:                                             ; preds = %1952, %1949
  br label %1958

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

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

1962:                                             ; preds = %1961, %1922, %1920, %1857, %1814, %1032, %578
  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
  %1963 = load i32, ptr %42, align 4
  switch i32 %1963, label %1965 [
    i32 0, label %1964
    i32 1, label %1964
  ]

1964:                                             ; preds = %1962, %1962
  ret void

1965:                                             ; preds = %1962, %953
  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.1, ptr }
%struct.anon = type { i8, i8, [2 x i8] }
%union.anon.1 = 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 %.preheader894 [
    i8 0, label %.thread812
    i8 37, label %95
  ]

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

.critedge:                                        ; preds = %.preheader894, %.preheader894
  %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 %.thread812, 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 %.preheader893

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

.preheader893:                                    ; 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 = %.preheader893
  br label %197

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

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

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

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

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

106:                                              ; preds = %.preheader893
  %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 = %.preheader893, %.preheader893, %.preheader893, %.preheader893, %.preheader893, %.preheader893, %.preheader893, %.preheader893, %.preheader893
  %.0617919 = 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.ph922, label %._crit_edge923

.lr.ph922:                                        ; preds = %114, %.lr.ph922
  %120 = phi i32 [ %126, %.lr.ph922 ], [ %117, %114 ]
  %121 = phi ptr [ %124, %.lr.ph922 ], [ %115, %114 ]
  %.0617920 = phi i32 [ %.0617, %.lr.ph922 ], [ %.0617919, %114 ]
  %122 = mul i32 %.0617920, 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.ph922, label %._crit_edge923, !llvm.loop !13

._crit_edge923:                                   ; preds = %.lr.ph922, %114
  %.5.lcssa = phi ptr [ %.3, %114 ], [ %121, %.lr.ph922 ]
  %.0617.lcssa = phi i32 [ %.0617919, %114 ], [ %.0617, %.lr.ph922 ]
  %.lcssa898 = phi ptr [ %115, %114 ], [ %124, %.lr.ph922 ]
  %.lcssa897 = phi i8 [ %116, %114 ], [ %125, %.lr.ph922 ]
  %.lcssa896 = phi i32 [ %117, %114 ], [ %126, %.lr.ph922 ]
  %129 = and i32 %.0617.lcssa, 2147483647
  switch i8 %.lcssa897, label %.critedge9 [
    i8 108, label %197
    i8 46, label %197
  ]

130:                                              ; preds = %.preheader893
  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
  %.not726 = icmp eq i32 %.1543, -2147483648
  %150 = sub nsw i32 0, %.1543
  %151 = select i1 %.not726, 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.exit962 [
    i8 108, label %197
    i8 46, label %197
  ]

154:                                              ; preds = %.preheader893
  %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 %.preheader876

.preheader876:                                    ; preds = %154
  %.2497913 = 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
  %.not724 = icmp eq i32 %.1513, -2147483648
  %180 = sub nsw i32 0, %.1513
  %181 = select i1 %.not724, 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 = %.preheader876, %.lr.ph
  %.2497916 = phi i32 [ %.2497, %.lr.ph ], [ %.2497913, %.preheader876 ]
  %.7915 = phi ptr [ %188, %.lr.ph ], [ %155, %.preheader876 ]
  %.0616914 = phi i32 [ %187, %.lr.ph ], [ 0, %.preheader876 ]
  %185 = mul i32 %.0616914, 10
  %186 = add i32 %185, -48
  %187 = add i32 %186, %.2497916
  %188 = getelementptr inbounds i8, ptr %.7915, 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, %.preheader876
  %.0616.lcssa = phi i32 [ 0, %.preheader876 ], [ %187, %.lr.ph ]
  %.7.lcssa = phi ptr [ %155, %.preheader876 ], [ %188, %.lr.ph ]
  %.2497.lcssa = phi i32 [ %.2497913, %.preheader876 ], [ %.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_edge923, %._crit_edge923, %195, %148, %148, %105, %104, %103, %102, %101, %100, %.preheader893
  %.1602.ph = phi i8 [ %.0601, %148 ], [ %.0601, %.preheader893 ], [ %.0601, %100 ], [ %.0601, %101 ], [ %.0601, %102 ], [ %.0601, %103 ], [ %.0601, %104 ], [ 44, %105 ], [ %.0601, %148 ], [ %.0601, %195 ], [ %.0601, %._crit_edge923 ], [ %.0601, %._crit_edge923 ]
  %.1587.ph = phi i8 [ %.0586, %148 ], [ %.0586, %.preheader893 ], [ %.0586, %100 ], [ %.0586, %101 ], [ %.0586, %102 ], [ %.0586, %103 ], [ 1, %104 ], [ %.0586, %105 ], [ %.0586, %148 ], [ %.0586, %195 ], [ %.0586, %._crit_edge923 ], [ %.0586, %._crit_edge923 ]
  %.1584.ph = phi i8 [ %.0583, %148 ], [ %.0583, %.preheader893 ], [ %.0583, %100 ], [ %.0583, %101 ], [ %.0583, %102 ], [ 1, %103 ], [ %.0583, %104 ], [ %.0583, %105 ], [ %.0583, %148 ], [ %.0583, %195 ], [ %.0583, %._crit_edge923 ], [ %.0583, %._crit_edge923 ]
  %.1581.ph = phi i8 [ %.0580, %148 ], [ %.0580, %.preheader893 ], [ %.0580, %100 ], [ %.0580, %101 ], [ 1, %102 ], [ %.0580, %103 ], [ %.0580, %104 ], [ %.0580, %105 ], [ %.0580, %148 ], [ %.0580, %195 ], [ %.0580, %._crit_edge923 ], [ %.0580, %._crit_edge923 ]
  %.1576.ph = phi i8 [ %.0575, %148 ], [ %.0575, %.preheader893 ], [ %.0495.in, %100 ], [ %.0495.in, %101 ], [ %.0575, %102 ], [ %.0575, %103 ], [ %.0575, %104 ], [ %.0575, %105 ], [ %.0575, %148 ], [ %.0575, %195 ], [ %.0575, %._crit_edge923 ], [ %.0575, %._crit_edge923 ]
  %.2571.ph = phi i8 [ %.1570, %148 ], [ 1, %.preheader893 ], [ %.0569, %100 ], [ %.0569, %101 ], [ %.0569, %102 ], [ %.0569, %103 ], [ %.0569, %104 ], [ %.0569, %105 ], [ %.1570, %148 ], [ %.0569, %195 ], [ %.0569, %._crit_edge923 ], [ %.0569, %._crit_edge923 ]
  %.3545.ph = phi i32 [ %.2544, %148 ], [ %.0542, %.preheader893 ], [ %.0542, %100 ], [ %.0542, %101 ], [ %.0542, %102 ], [ %.0542, %103 ], [ %.0542, %104 ], [ %.0542, %105 ], [ %.2544, %148 ], [ %.0542, %195 ], [ %129, %._crit_edge923 ], [ %129, %._crit_edge923 ]
  %.4516.ph = phi i32 [ %.0512, %148 ], [ %.0512, %.preheader893 ], [ %.0512, %100 ], [ %.0512, %101 ], [ %.0512, %102 ], [ %.0512, %103 ], [ %.0512, %104 ], [ %.0512, %105 ], [ %.0512, %148 ], [ %.3515, %195 ], [ %.0512, %._crit_edge923 ], [ %.0512, %._crit_edge923 ]
  %.9.ph = phi ptr [ %.3, %148 ], [ %.3, %.preheader893 ], [ %.3, %100 ], [ %.3, %101 ], [ %.3, %102 ], [ %.3, %103 ], [ %.3, %104 ], [ %.3, %105 ], [ %.3, %148 ], [ %196, %195 ], [ %.5.lcssa, %._crit_edge923 ], [ %.5.lcssa, %._crit_edge923 ]
  %198 = getelementptr inbounds i8, ptr %.9.ph, i64 1
  %199 = load i8, ptr %198, align 1, !tbaa !12
  %.not728 = icmp eq i8 %199, 0
  br i1 %.not728, label %.critedge9, label %.preheader893, !llvm.loop !17

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

.critedge9:                                       ; preds = %197, %193, %._crit_edge923, %.preheader893, %.critedge9.loopexit.split.loop.exit962, %113
  %.4516809 = phi i32 [ %.0512, %113 ], [ %.0512, %.critedge9.loopexit.split.loop.exit962 ], [ %.4516.ph, %197 ], [ %.3515, %193 ], [ %.0512, %._crit_edge923 ], [ %.0512, %.preheader893 ]
  %.3545807 = phi i32 [ %.0542, %113 ], [ %.2544, %.critedge9.loopexit.split.loop.exit962 ], [ %.3545.ph, %197 ], [ %.0542, %193 ], [ %129, %._crit_edge923 ], [ %.0542, %.preheader893 ]
  %.2571805 = phi i8 [ %.0569, %113 ], [ %.1570, %.critedge9.loopexit.split.loop.exit962 ], [ %.2571.ph, %197 ], [ %.0569, %193 ], [ %.0569, %._crit_edge923 ], [ %.0569, %.preheader893 ]
  %.1576804 = phi i8 [ %.0575, %113 ], [ %.0575, %.critedge9.loopexit.split.loop.exit962 ], [ %.1576.ph, %197 ], [ %.0575, %193 ], [ %.0575, %._crit_edge923 ], [ %.0575, %.preheader893 ]
  %.1581801 = phi i8 [ %.0580, %113 ], [ %.0580, %.critedge9.loopexit.split.loop.exit962 ], [ %.1581.ph, %197 ], [ %.0580, %193 ], [ %.0580, %._crit_edge923 ], [ %.0580, %.preheader893 ]
  %.1584799 = phi i8 [ %.0583, %113 ], [ %.0583, %.critedge9.loopexit.split.loop.exit962 ], [ %.1584.ph, %197 ], [ %.0583, %193 ], [ %.0583, %._crit_edge923 ], [ %.0583, %.preheader893 ]
  %.1587797 = phi i8 [ %.0586, %113 ], [ %.0586, %.critedge9.loopexit.split.loop.exit962 ], [ %.1587.ph, %197 ], [ %.0586, %193 ], [ %.0586, %._crit_edge923 ], [ %.0586, %.preheader893 ]
  %.2590796 = phi i8 [ %.1589, %113 ], [ 0, %.critedge9.loopexit.split.loop.exit962 ], [ 0, %.preheader893 ], [ 0, %._crit_edge923 ], [ 0, %193 ], [ 0, %197 ]
  %.1602794 = phi i8 [ %.0601, %113 ], [ %.0601, %.critedge9.loopexit.split.loop.exit962 ], [ %.1602.ph, %197 ], [ %.0601, %193 ], [ %.0601, %._crit_edge923 ], [ %.0601, %.preheader893 ]
  %.5500 = phi i32 [ %.1496, %113 ], [ %201, %.critedge9.loopexit.split.loop.exit962 ], [ 0, %197 ], [ %.3498, %193 ], [ %.lcssa896, %._crit_edge923 ], [ %.0495, %.preheader893 ]
  %.10 = phi ptr [ %.4, %113 ], [ %200, %.critedge9.loopexit.split.loop.exit962 ], [ %198, %197 ], [ %.8, %193 ], [ %.lcssa898, %._crit_edge923 ], [ %.3, %.preheader893 ]
  %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 %.thread812

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
  %.lcssa1100 = 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 %.lcssa1100, i64 3
  %249 = load i8, ptr %248, align 1, !tbaa !18
  switch i8 %249, label %.thread812 [
    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 [ %.1602794, %247 ], [ 0, %250 ], [ 0, %251 ]
  %.4592 = phi i8 [ %.2590796, %247 ], [ 2, %250 ], [ %.2590796, %251 ]
  %253 = getelementptr inbounds i8, ptr %.lcssa1100, i64 2
  %254 = load i8, ptr %253, align 1, !tbaa !20
  %255 = and i8 %254, 1
  %.not754 = icmp eq i8 %255, 0
  br i1 %.not754, 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
  %.0657 = select i1 %300, i8 45, i8 %.1576804
  %.0653 = 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 = %302, %316, %328, %340, %299
  %.1658 = phi i8 [ %.0657, %299 ], [ 0, %340 ], [ 0, %328 ], [ 0, %316 ], [ 0, %302 ]
  %.2655 = phi i64 [ %.0653, %299 ], [ %343, %340 ], [ %330, %328 ], [ %318, %316 ], [ %303, %302 ]
  %345 = icmp eq i64 %.2655, 0
  %.not759 = icmp eq i8 %.1587797, 0
  br i1 %.not759, label %349, label %346

346:                                              ; preds = %344
  %347 = icmp ne i8 %.1658, 0
  %.neg = sext i1 %347 to i32
  %348 = add i32 %.3545807, %.neg
  %spec.select770 = call i32 @llvm.smax.i32(i32 %.4516809, i32 %348)
  br label %349

349:                                              ; preds = %346, %344
  %.5517 = phi i32 [ %.4516809, %344 ], [ %spec.select770, %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
  %.not760 = icmp eq i8 %.2603, 0
  br i1 %.not760, 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)
  %.not761 = icmp eq ptr %358, null
  %359 = trunc nuw i64 %.0614 to i32
  br i1 %.not761, label %.thread812, 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 ]
  %.06511147 = 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 %.2655, 10
  %367 = udiv i64 %.2655, 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.cond1372 = select i1 %368, i1 true, i1 %371
  %.0607 = select i1 %or.cond1372, 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 ]
  %.25031146 = ptrtoint ptr %.2503 to i64
  %383 = getelementptr inbounds i8, ptr %.lcssa1100, 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 %.lcssa1100, i64 1
  %388 = load i8, ptr %387, align 1, !tbaa !26
  %389 = zext i8 %388 to i64
  %scevgep1149 = getelementptr i8, ptr %.2503, i64 -2
  %390 = add i32 %.5517, -1
  %391 = trunc i64 %.25031146 to i32
  %392 = add i32 %390, %391
  %393 = trunc i64 %.06511147 to i32
  %394 = add i32 %.2649, %393
  %395 = sub i32 %392, %394
  br label %396

396:                                              ; preds = %396, %382
  %indvars.iv1152 = phi i32 [ %indvars.iv.next1153, %396 ], [ %395, %382 ]
  %indvars.iv1150 = phi ptr [ %scevgep1151, %396 ], [ %scevgep1149, %382 ]
  %indvar = phi i64 [ %indvar.next, %396 ], [ 0, %382 ]
  %.3656 = phi i64 [ %401, %396 ], [ %.2655, %382 ]
  %.3504 = phi ptr [ %400, %396 ], [ %.2503, %382 ]
  %397 = urem i64 %.3656, %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 %.3656, %389
  %.not762 = icmp ult i64 %.3656, %389
  %indvar.next = add i64 %indvar, 1
  %scevgep1151 = getelementptr i8, ptr %indvars.iv1150, i64 -1
  %indvars.iv.next1153 = add i32 %indvars.iv1152, -1
  br i1 %.not762, 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.ph1052.preheader, label %._crit_edge1053

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

._crit_edge1053:                                  ; preds = %.lr.ph1052.preheader, %402
  %.1527.lcssa = phi i32 [ %406, %402 ], [ %.5517, %.lr.ph1052.preheader ]
  %.4505.lcssa = phi ptr [ %400, %402 ], [ %scevgep1154, %.lr.ph1052.preheader ]
  %.not763 = icmp eq i8 %.2603, 0
  br i1 %.not763, label %.loopexit878, label %416

416:                                              ; preds = %._crit_edge1053
  %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.ph1060.preheader, label %.loopexit878

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

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

433:                                              ; preds = %.lr.ph1060
  %434 = add nsw i32 %.15391058, 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 %.05991056, -1
  br label %438

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

.loopexit878:                                     ; preds = %438, %416, %._crit_edge1053
  %.5506 = phi ptr [ %.4505.lcssa, %._crit_edge1053 ], [ %421, %416 ], [ %421, %438 ]
  %.not764 = icmp eq i8 %.1658, 0
  br i1 %.not764, label %443, label %441

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

443:                                              ; preds = %441, %.loopexit878
  %.6507 = phi ptr [ %442, %441 ], [ %.5506, %.loopexit878 ]
  %.not765872 = icmp eq i8 %.1581801, 0
  %.not765 = select i1 %345, i1 true, i1 %.not765872
  br i1 %.not765, label %.loopexit877, label %444

444:                                              ; preds = %443
  %445 = getelementptr inbounds i8, ptr %.lcssa1100, i64 5
  %446 = load i8, ptr %445, align 1, !tbaa !29
  %.not766 = icmp eq i8 %446, 0
  br i1 %.not766, label %.loopexit877, 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
  %.not7671061 = icmp eq i8 %450, 0
  br i1 %.not7671061, label %.loopexit877, label %.lr.ph1065

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

.loopexit877:                                     ; preds = %.lr.ph1065, %447, %444, %443
  %.8509 = phi ptr [ %.6507, %444 ], [ %.6507, %443 ], [ %.6507, %447 ], [ %452, %.lr.ph1065 ]
  %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 %.4516809, 0
  %477 = call i32 @llvm.smin.i32(i32 %.4516809, 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
  %storemerge868 = select i1 %478, x86_fp80 %479, x86_fp80 %storemerge
  %.2659 = select i1 %478, i8 45, i8 %.1576804
  store x86_fp80 %storemerge868, 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.select771 = add nsw i32 %spec.store.select33, %482
  %483 = and i32 %spec.select771, 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.ph1012, label %._crit_edge1013

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

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

493:                                              ; preds = %._crit_edge1013
  %494 = fptrunc x86_fp80 %storemerge868 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.trunc862 = add nsw i16 %498, -1023
  %499 = sdiv i16 %.lhs.trunc862, 3
  %.sext = sext i16 %499 to i32
  %500 = add nsw i32 %spec.select771, %.sext
  %501 = icmp slt i32 %500, 15
  %502 = fpext double %.0621.lcssa to x86_fp80
  %503 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %storemerge868, 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 %storemerge868, %505
  store x86_fp80 %506, ptr %4, align 16, !tbaa !33
  br label %507

507:                                              ; preds = %493, %._crit_edge1013
  %508 = phi x86_fp80 [ %506, %493 ], [ %storemerge868, %._crit_edge1013 ]
  %.2623 = phi double [ %.1622, %493 ], [ %.0621.lcssa, %._crit_edge1013 ]
  %509 = fptrunc x86_fp80 %508 to double
  %510 = call i32 @sqlite3IsNaN(double noundef %509)
  %.not746 = icmp eq i32 %510, 0
  br i1 %.not746, 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 %.preheader886, label %.thread815

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

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

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

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

.preheader886.4:                                  ; preds = %.preheader886.3
  br label %.preheader885.preheader

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

.preheader885:                                    ; preds = %.preheader885.preheader, %.preheader885
  %.1629 = phi i32 [ %522, %.preheader885 ], [ %.0628.lcssa, %.preheader885.preheader ]
  %.1578 = phi x86_fp80 [ %518, %.preheader885 ], [ %.0577.lcssa, %.preheader885.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 %.preheader885, label %.preheader884, !llvm.loop !37

.preheader884:                                    ; preds = %.preheader885, %.preheader884
  %.2630 = phi i32 [ %527, %.preheader884 ], [ %.1629, %.preheader885 ]
  %.2579 = phi x86_fp80 [ %523, %.preheader884 ], [ %.1578, %.preheader885 ]
  %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 %.preheader884, label %528, !llvm.loop !38

528:                                              ; preds = %.preheader884
  %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.ph1017, label %thread-pre-split

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

.thread-pre-split_crit_edge:                      ; preds = %.lr.ph1017
  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.ph1021, label %540

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

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

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

543:                                              ; preds = %540
  store i8 %.2659, ptr %6, align 16, !tbaa !12
  %544 = icmp ne i8 %.2659, 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

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

549:                                              ; preds = %.thread815
  %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 %.thread820

557:                                              ; preds = %556
  %.not748 = icmp eq i8 %.1581801, 0
  %558 = zext i1 %.not748 to i8
  %559 = icmp slt i32 %.6634, -4
  %560 = icmp sgt i32 %.6634, %spec.select771
  %or.cond = or i1 %559, %560
  %spec.select778 = select i1 %or.cond, i8 2, i8 1
  %561 = select i1 %or.cond, i32 0, i32 %.6634
  %spec.select779 = sub nsw i32 %spec.select771, %561
  br label %.thread820

.thread820:                                       ; preds = %.thread815, %557, %556
  %.6634822 = phi i32 [ %.6634, %556 ], [ %.6634, %557 ], [ %.5633, %.thread815 ]
  %.0619 = phi i8 [ %.1584799, %556 ], [ %558, %557 ], [ %.1584799, %.thread815 ]
  %.1605 = phi i8 [ %249, %556 ], [ %spec.select778, %557 ], [ 1, %.thread815 ]
  %.7519 = phi i32 [ %spec.select771, %556 ], [ %spec.select779, %557 ], [ %spec.select771, %.thread815 ]
  %562 = icmp eq i8 %.1605, 2
  %..6634 = select i1 %562, i32 0, i32 %.6634822
  %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 %.3545807 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 = %.thread820
  %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 %.thread812, label %574

574:                                              ; preds = %570, %.thread820
  %.3640.ph = phi ptr [ null, %.thread820 ], [ %572, %570 ]
  %.11.ph = phi ptr [ %6, %.thread820 ], [ %572, %570 ]
  %575 = zext nneg i8 %.1584799 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 %.1581801, %579
  %581 = or i8 %580, %.1584799
  %.not749 = icmp eq i8 %.2659, 0
  br i1 %.not749, label %584, label %582

582:                                              ; preds = %574
  %583 = getelementptr inbounds i8, ptr %.11.ph, i64 1
  store i8 %.2659, 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 %.preheader882

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

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

.loopexit883:                                     ; preds = %.preheader882, %586
  %.2626 = phi i32 [ %.6634822, %586 ], [ -1, %.preheader882 ]
  %.14 = phi ptr [ %587, %586 ], [ %589, %.preheader882 ]
  %.not750 = icmp eq i8 %581, 0
  br i1 %.not750, label %593, label %591

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

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

.lr.ph1031.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
  %scevgep1135 = getelementptr i8, ptr %scevgep, i64 %596
  %599 = add i32 %598, %.2626
  br label %.preheader881

.preheader881:                                    ; preds = %.lr.ph1031.preheader, %593
  %.8520.lcssa = phi i32 [ %.7519, %593 ], [ %599, %.lr.ph1031.preheader ]
  %.16.lcssa = phi ptr [ %.15, %593 ], [ %scevgep1135, %.lr.ph1031.preheader ]
  %600 = icmp sgt i32 %.8520.lcssa, 0
  br i1 %600, label %.lr.ph1036, label %._crit_edge1037

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

._crit_edge1037:                                  ; preds = %.lr.ph1036, %.preheader881
  %.17.lcssa = phi ptr [ %.16.lcssa, %.preheader881 ], [ %603, %.lr.ph1036 ]
  %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 %.preheader879, label %.loopexit880

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

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

610:                                              ; preds = %.preheader879
  %.not751 = icmp eq i8 %.1584799, 0
  br i1 %.not751, 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 %.loopexit880

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

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

614:                                              ; preds = %.loopexit880
  %615 = getelementptr inbounds i8, ptr %.lcssa1100, 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 %.6634822, 0
  %spec.select = select i1 %621, i8 45, i8 43
  %spec.select1199 = call i32 @llvm.abs.i32(i32 %.6634822, i1 true)
  store i8 %spec.select, ptr %620, align 1
  %.20 = getelementptr inbounds i8, ptr %.19, i64 2
  %622 = icmp ugt i32 %spec.select1199, 99
  br i1 %622, label %623, label %629

623:                                              ; preds = %614
  %624 = udiv i32 %spec.select1199, 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.select1199, 100
  br label %629

629:                                              ; preds = %623, %614
  %.8636 = phi i32 [ %628, %623 ], [ %spec.select1199, %614 ]
  %.21 = phi ptr [ %627, %623 ], [ %.20, %614 ]
  %.lhs.trunc863 = trunc nuw i32 %.8636 to i8
  %630 = udiv i8 %.lhs.trunc863, 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.trunc863, 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, %.loopexit880
  %.22 = phi ptr [ %635, %629 ], [ %.19, %.loopexit880 ]
  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 %.1587797, 0
  %642 = icmp eq i8 %.2571805, 0
  %or.cond16.not871 = select i1 %641, i1 %642, i1 false
  %643 = icmp sgt i32 %.3545807, %640
  %or.cond772 = select i1 %or.cond16.not871, i1 %643, i1 false
  br i1 %or.cond772, label %644, label %.critedge28.thread

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

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

vector.scevcheck:                                 ; preds = %iter.check
  %smin = call i64 @llvm.smin.i64(i64 %647, i64 %646)
  %650 = sub i64 %646, %smin
  %scevgep1242 = getelementptr i8, ptr %.11.ph, i64 %646
  %651 = sub i64 0, %650
  %652 = getelementptr i8, ptr %scevgep1242, i64 %651
  %653 = icmp ugt ptr %652, %scevgep1242
  %654 = and i64 %639, 2147483647
  %scevgep1243 = getelementptr i8, ptr %.11.ph, i64 %654
  %655 = sub i64 0, %650
  %656 = getelementptr i8, ptr %scevgep1243, i64 %655
  %657 = icmp ugt ptr %656, %scevgep1243
  %658 = or i1 %653, %657
  br i1 %658, label %.lr.ph1042.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.ph1042.preheader, label %vector.main.loop.iter.check

vector.main.loop.iter.check:                      ; preds = %vector.memcheck
  %min.iters.check1248 = icmp ult i64 %649, 16
  br i1 %min.iters.check1248, 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.gep1364 = 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
  %gep1365 = getelementptr i8, ptr %invariant.gep1364, i64 %offset.idx
  store <16 x i8> %wide.load, ptr %gep1365, 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_edge1043, label %vec.epilog.iter.check

vec.epilog.iter.check:                            ; preds = %middle.block
  %ind.end1252 = 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.ph1042.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.vec1251 = and i64 %649, -4
  %ind.end = sub i64 %646, %n.vec1251
  %invariant.gep1366 = getelementptr i8, ptr %.11.ph, i64 -3
  %invariant.gep1368 = 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
  %index1253 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next1258, %vec.epilog.vector.body ]
  %offset.idx1254 = sub i64 %646, %index1253
  %663 = sub nsw i64 %offset.idx1254, %647
  %gep1367 = getelementptr i8, ptr %invariant.gep1366, i64 %663
  %wide.load1255 = load <4 x i8>, ptr %gep1367, align 1, !tbaa !12
  %gep1369 = getelementptr i8, ptr %invariant.gep1368, i64 %offset.idx1254
  store <4 x i8> %wide.load1255, ptr %gep1369, align 1, !tbaa !12
  %index.next1258 = add nuw i64 %index1253, 4
  %664 = icmp eq i64 %index.next1258, %n.vec1251
  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.n1259 = icmp eq i64 %649, %n.vec1251
  br i1 %cmp.n1259, label %._crit_edge1043, label %.lr.ph1042.preheader

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

.lr.ph1042:                                       ; preds = %.lr.ph1042.preheader, %.lr.ph1042
  %indvars.iv1138 = phi i64 [ %indvars.iv.next1139, %.lr.ph1042 ], [ %indvars.iv1138.ph, %.lr.ph1042.preheader ]
  %665 = sub nsw i64 %indvars.iv1138, %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.iv1138
  store i8 %667, ptr %668, align 1, !tbaa !12
  %indvars.iv.next1139 = add nsw i64 %indvars.iv1138, -1
  %.not752.not = icmp sgt i64 %indvars.iv1138, %647
  br i1 %.not752.not, label %.lr.ph1042, label %._crit_edge1043, !llvm.loop !48

._crit_edge1043:                                  ; preds = %.lr.ph1042, %middle.block, %vec.epilog.middle.block, %644
  %.not7531044 = icmp eq i32 %.3545807, %640
  br i1 %.not7531044, label %.critedge28.thread, label %.lr.ph1048.preheader

.lr.ph1048.preheader:                             ; preds = %._crit_edge1043
  %669 = icmp ne i8 %.2659, 0
  %670 = zext i1 %669 to i64
  %scevgep1141 = getelementptr i8, ptr %.11.ph, i64 %670
  %671 = add i32 %.3545807, -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) %scevgep1141, 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)
  %.not743 = icmp eq ptr %697, null
  br i1 %.not743, 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 %.preheader889.preheader, label %.critedge18

.preheader889.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 %.preheader889.1, label %.critedge18

.preheader889.1:                                  ; preds = %.preheader889.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 %.preheader889.2, label %.critedge18

.preheader889.2:                                  ; preds = %.preheader889.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 = %.preheader889.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 = %.preheader889.preheader, %.preheader889.1, %.preheader889.2, %710, %727, %740, %751, %731, %711, %698
  %.5531 = phi i32 [ 1, %698 ], [ 1, %711 ], [ 1, %727 ], [ 2, %731 ], [ 3, %740 ], [ 4, %751 ], [ 1, %.preheader889.preheader ], [ 2, %.preheader889.1 ], [ 3, %.preheader889.2 ], [ 4, %710 ]
  %765 = icmp sgt i32 %.4516809, 1
  br i1 %765, label %766, label %.critedge28

766:                                              ; preds = %.critedge18
  %reass.sub = sub i32 %.3545807, %.4516809
  %767 = add i32 %reass.sub, 1
  %768 = icmp slt i32 %767, 2
  %769 = icmp ne i8 %.2571805, 0
  %or.cond20 = select i1 %768, i1 true, i1 %769
  br i1 %or.cond20, label %.lr.ph1004.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.ph1004.preheader

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

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

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

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 %.thread835, label %791

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

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

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

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

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

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

.thread835:                                       ; preds = %.thread830, %793, %796, %785, %791
  %.4641 = phi ptr [ null, %791 ], [ null, %785 ], [ %787, %796 ], [ %787, %793 ], [ null, %.thread830 ]
  %.25 = phi ptr [ %787, %791 ], [ @.str.3, %785 ], [ %787, %796 ], [ %787, %793 ], [ %spec.select867, %.thread830 ]
  %812 = icmp sgt i32 %.4516809, -1
  br i1 %812, label %813, label %.thread838

813:                                              ; preds = %.thread835
  %.not739 = icmp eq i8 %.1584799, 0
  %.not1069 = icmp eq i32 %.4516809, 0
  br i1 %.not739, label %.preheader890, label %.preheader892

.preheader892:                                    ; preds = %813
  br i1 %.not1069, label %.critedge26, label %.lr.ph993

.preheader890:                                    ; preds = %813
  br i1 %.not1069, label %.critedge28.thread, label %.lr.ph998.preheader

.lr.ph998.preheader:                              ; preds = %.preheader890
  %wide.trip.count1126 = zext nneg i32 %.4516809 to i64
  br label %.lr.ph998

.lr.ph993:                                        ; preds = %.preheader892, %.loopexit
  %.in = phi i32 [ %814, %.loopexit ], [ %.4516809, %.preheader892 ]
  %.0566992 = phi ptr [ %.2568, %.loopexit ], [ %.25, %.preheader892 ]
  %814 = add nsw i32 %.in, -1
  %815 = load i8, ptr %.0566992, align 1, !tbaa !12
  %.not741 = icmp eq i8 %815, 0
  br i1 %.not741, label %.critedge26, label %816

816:                                              ; preds = %.lr.ph993
  %817 = getelementptr inbounds i8, ptr %.0566992, 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.ph993, label %.critedge26, !llvm.loop !57

.critedge26:                                      ; preds = %.lr.ph993, %.loopexit, %.preheader892
  %.0566.lcssa = phi ptr [ %.25, %.preheader892 ], [ %.2568, %.loopexit ], [ %.0566992, %.lr.ph993 ]
  %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.ph998:                                        ; preds = %.lr.ph998.preheader, %830
  %indvars.iv1123 = phi i64 [ 0, %.lr.ph998.preheader ], [ %indvars.iv.next1124, %830 ]
  %828 = getelementptr inbounds i8, ptr %.25, i64 %indvars.iv1123
  %829 = load i8, ptr %828, align 1, !tbaa !12
  %.not740 = icmp eq i8 %829, 0
  br i1 %.not740, label %.critedge28.thread.loopexit1156.split.loop.exit1197, label %830

830:                                              ; preds = %.lr.ph998
  %indvars.iv.next1124 = add nuw nsw i64 %indvars.iv1123, 1
  %exitcond1127.not = icmp eq i64 %indvars.iv.next1124, %wide.trip.count1126
  br i1 %exitcond1127.not, label %.critedge28.thread, label %.lr.ph998, !llvm.loop !58

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

.critedge28:                                      ; preds = %.lr.ph1004, %.thread849, %.critedge18, %.thread838, %.critedge26
  %.5642 = phi ptr [ %.4641, %.critedge26 ], [ %.4641841, %.thread838 ], [ null, %.critedge18 ], [ %.6643, %.thread849 ], [ null, %.lr.ph1004 ]
  %.2585 = phi i8 [ 1, %.critedge26 ], [ %.1584799, %.thread838 ], [ 1, %.critedge18 ], [ %.1584799, %.thread849 ], [ 1, %.lr.ph1004 ]
  %.6548 = phi i32 [ %.3545807, %.critedge26 ], [ %.3545807, %.thread838 ], [ %.3545807, %.critedge18 ], [ %.3545807, %.thread849 ], [ %.4546, %.lr.ph1004 ]
  %.7533 = phi i32 [ %827, %.critedge26 ], [ %833, %.thread838 ], [ %.5531, %.critedge18 ], [ %.3560, %.thread849 ], [ %.5531, %.lr.ph1004 ]
  %.26 = phi ptr [ %.25, %.critedge26 ], [ %.25842, %.thread838 ], [ %6, %.critedge18 ], [ %.27, %.thread849 ], [ %6, %.lr.ph1004 ]
  %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.cond1067 = select i1 %or.cond30, i1 %836, i1 false
  br i1 %or.cond1067, label %.lr.ph1007.preheader, label %.critedge28.thread

.lr.ph1007.preheader:                             ; preds = %.critedge28
  %837 = zext nneg i32 %.7533 to i64
  %min.iters.check1261 = icmp ult i32 %.7533, 8
  br i1 %min.iters.check1261, label %.lr.ph1007.preheader1277, label %vector.ph1262

vector.ph1262:                                    ; preds = %.lr.ph1007.preheader
  %n.vec1264 = and i64 %837, 2147483640
  %ind.end1265 = and i64 %837, 7
  %838 = insertelement <4 x i32> <i32 poison, i32 0, i32 0, i32 0>, i32 %.6548, i64 0
  br label %vector.body1267

vector.body1267:                                  ; preds = %vector.body1267, %vector.ph1262
  %index1268 = phi i64 [ 0, %vector.ph1262 ], [ %index.next1275, %vector.body1267 ]
  %vec.phi = phi <4 x i32> [ %838, %vector.ph1262 ], [ %852, %vector.body1267 ]
  %vec.phi1269 = phi <4 x i32> [ zeroinitializer, %vector.ph1262 ], [ %853, %vector.body1267 ]
  %839 = xor i64 %index1268, -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.load1271 = load <4 x i8>, ptr %842, align 1, !tbaa !12
  %wide.load1273 = load <4 x i8>, ptr %843, align 1, !tbaa !12
  %844 = and <4 x i8> %wide.load1271, <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.load1273, <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.phi1269, %851
  %index.next1275 = add nuw i64 %index1268, 8
  %854 = icmp eq i64 %index.next1275, %n.vec1264
  br i1 %854, label %middle.block1260, label %vector.body1267, !llvm.loop !59

middle.block1260:                                 ; preds = %vector.body1267
  %bin.rdx = add <4 x i32> %853, %852
  %855 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %bin.rdx)
  %cmp.n1276 = icmp eq i64 %n.vec1264, %837
  br i1 %cmp.n1276, label %.critedge28.thread, label %.lr.ph1007.preheader1277

.lr.ph1007.preheader1277:                         ; preds = %middle.block1260, %.lr.ph1007.preheader
  %indvars.iv1132.ph = phi i64 [ %837, %.lr.ph1007.preheader ], [ %ind.end1265, %middle.block1260 ]
  %.75491006.ph = phi i32 [ %.6548, %.lr.ph1007.preheader ], [ %855, %middle.block1260 ]
  br label %.lr.ph1007

.lr.ph1007:                                       ; preds = %.lr.ph1007.preheader1277, %.lr.ph1007
  %indvars.iv1132 = phi i64 [ %indvars.iv.next1133, %.lr.ph1007 ], [ %indvars.iv1132.ph, %.lr.ph1007.preheader1277 ]
  %.75491006 = phi i32 [ %spec.select773, %.lr.ph1007 ], [ %.75491006.ph, %.lr.ph1007.preheader1277 ]
  %indvars.iv.next1133 = add nsw i64 %indvars.iv1132, -1
  %856 = getelementptr inbounds i8, ptr %.26, i64 %indvars.iv.next1133
  %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.select773 = add nuw nsw i32 %.75491006, %860
  %861 = icmp ugt i64 %indvars.iv1132, 1
  br i1 %861, label %.lr.ph1007, 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
  %.not735975 = icmp eq i32 %.4516809, 0
  br i1 %.not735975, label %.critedge32, label %.lr.ph980

.lr.ph980:                                        ; preds = %881
  %.not737 = icmp ne i8 %.1584799, 0
  br label %885

885:                                              ; preds = %.lr.ph980, %.loopexit875
  %.0554978 = phi i32 [ 0, %.lr.ph980 ], [ %spec.select774, %.loopexit875 ]
  %.0556977 = phi i32 [ %.4516809, %.lr.ph980 ], [ %899, %.loopexit875 ]
  %.0561976 = phi i32 [ 0, %.lr.ph980 ], [ %898, %.loopexit875 ]
  %886 = sext i32 %.0561976 to i64
  %887 = getelementptr inbounds i8, ptr %.1525, i64 %886
  %888 = load i8, ptr %887, align 1, !tbaa !12
  %.not736 = icmp eq i8 %888, 0
  br i1 %.not736, label %.critedge32, label %889

889:                                              ; preds = %885
  %890 = icmp eq i8 %888, %864
  %891 = zext i1 %890 to i32
  %spec.select774 = add nuw nsw i32 %.0554978, %891
  %892 = icmp ugt i8 %888, -65
  %or.cond775 = and i1 %.not737, %892
  br i1 %or.cond775, label %.preheader874, label %.loopexit875

.preheader874:                                    ; preds = %889, %.preheader874
  %indvars.iv = phi i64 [ %indvars.iv.next, %.preheader874 ], [ %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 %.preheader874, label %.loopexit875.loopexit, !llvm.loop !61

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

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

.critedge32:                                      ; preds = %885, %.loopexit875, %881
  %.0561.lcssa = phi i32 [ 0, %881 ], [ %898, %.loopexit875 ], [ %.0561976, %885 ]
  %.0554.lcssa = phi i32 [ 0, %881 ], [ %spec.select774, %.loopexit875 ], [ %.0554978, %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 %.thread812, 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.ph989.preheader, label %._crit_edge990

.lr.ph989.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_edge990.loopexit.unr-lcssa, label %.lr.ph989.preheader.new

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

.lr.ph989:                                        ; preds = %933, %.lr.ph989.preheader.new
  %indvars.iv1120 = phi i64 [ 0, %.lr.ph989.preheader.new ], [ %indvars.iv.next1121.1, %933 ]
  %.1558987 = phi i32 [ %.0557, %.lr.ph989.preheader.new ], [ %.2559.1, %933 ]
  %niter = phi i64 [ 0, %.lr.ph989.preheader.new ], [ %niter.next.1, %933 ]
  %913 = getelementptr inbounds i8, ptr %.1525, i64 %indvars.iv1120
  %914 = load i8, ptr %913, align 1, !tbaa !12
  %915 = add nsw i32 %.1558987, 1
  %916 = sext i32 %.1558987 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.ph989.1

919:                                              ; preds = %.lr.ph989
  %920 = add nsw i32 %.1558987, 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.ph989.1

.lr.ph989.1:                                      ; preds = %.lr.ph989, %919
  %.2559 = phi i32 [ %920, %919 ], [ %915, %.lr.ph989 ]
  %indvars.iv.next1121 = or disjoint i64 %indvars.iv1120, 1
  %923 = getelementptr inbounds i8, ptr %.1525, i64 %indvars.iv.next1121
  %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.ph989.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.ph989.1
  %.2559.1 = phi i32 [ %930, %929 ], [ %925, %.lr.ph989.1 ]
  %indvars.iv.next1121.1 = add nuw nsw i64 %indvars.iv1120, 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_edge990.loopexit.unr-lcssa, label %.lr.ph989, !llvm.loop !63

._crit_edge990.loopexit.unr-lcssa:                ; preds = %933, %.lr.ph989.preheader
  %.2559.lcssa.ph = phi i32 [ poison, %.lr.ph989.preheader ], [ %.2559.1, %933 ]
  %indvars.iv1120.unr = phi i64 [ 0, %.lr.ph989.preheader ], [ %indvars.iv.next1121.1, %933 ]
  %.1558987.unr = phi i32 [ %.0557, %.lr.ph989.preheader ], [ %.2559.1, %933 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge990, label %.lr.ph989.epil

.lr.ph989.epil:                                   ; preds = %._crit_edge990.loopexit.unr-lcssa
  %934 = getelementptr inbounds i8, ptr %.1525, i64 %indvars.iv1120.unr
  %935 = load i8, ptr %934, align 1, !tbaa !12
  %936 = add nsw i32 %.1558987.unr, 1
  %937 = sext i32 %.1558987.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_edge990

940:                                              ; preds = %.lr.ph989.epil
  %941 = add nsw i32 %.1558987.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_edge990

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

944:                                              ; preds = %._crit_edge990
  %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 %.thread849

.thread849:                                       ; preds = %._crit_edge990, %944
  %.3560 = phi i32 [ %945, %944 ], [ %.1558.lcssa, %._crit_edge990 ]
  %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
  %.not733 = icmp eq i8 %952, 0
  br i1 %.not733, label %.thread812, 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
  %.not731 = icmp eq ptr %966, null
  br i1 %.not731, 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
  %.not732 = icmp eq i32 %969, 0
  br i1 %.not732, 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
  %.not730 = icmp eq i8 %974, 0
  br i1 %.not730, label %.thread812, 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
  %.not729 = icmp eq ptr %1005, null
  br i1 %.not729, 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.loopexit1156.split.loop.exit1197: ; preds = %.lr.ph998
  %1010 = trunc nuw nsw i64 %indvars.iv1123 to i32
  br label %.critedge28.thread

.critedge28.thread:                               ; preds = %830, %.lr.ph1007, %middle.block1260, %.critedge28.thread.loopexit1156.split.loop.exit1197, %.lr.ph1048.preheader, %.preheader890, %._crit_edge1043, %970, %967, %964, %1007, %543, %678, %691, %507, %.critedge28, %636, %804, %694, %.loopexit877
  %.8645 = phi ptr [ null, %1007 ], [ %.5642, %.critedge28 ], [ null, %804 ], [ null, %694 ], [ null, %543 ], [ %.3640.ph, %636 ], [ %.1638, %.loopexit877 ], [ null, %507 ], [ null, %691 ], [ null, %678 ], [ null, %964 ], [ null, %967 ], [ null, %970 ], [ %.3640.ph, %._crit_edge1043 ], [ %.4641, %.preheader890 ], [ %.3640.ph, %.lr.ph1048.preheader ], [ %.4641, %.critedge28.thread.loopexit1156.split.loop.exit1197 ], [ %.5642, %middle.block1260 ], [ %.5642, %.lr.ph1007 ], [ %.4641, %830 ]
  %.11553 = phi i32 [ 0, %1007 ], [ %.6548, %.critedge28 ], [ 0, %804 ], [ %.3545807, %694 ], [ %.3545807, %543 ], [ %.3545807, %636 ], [ %.3545807, %.loopexit877 ], [ %.3545807, %507 ], [ 0, %691 ], [ 0, %678 ], [ 0, %964 ], [ 0, %967 ], [ 0, %970 ], [ %.3545807, %._crit_edge1043 ], [ %.3545807, %.preheader890 ], [ %.3545807, %.lr.ph1048.preheader ], [ %.3545807, %.critedge28.thread.loopexit1156.split.loop.exit1197 ], [ %855, %middle.block1260 ], [ %spec.select773, %.lr.ph1007 ], [ %.3545807, %830 ]
  %.11537 = phi i32 [ 0, %1007 ], [ %.7533, %.critedge28 ], [ 0, %804 ], [ 1, %694 ], [ %547, %543 ], [ %640, %636 ], [ %457, %.loopexit877 ], [ 3, %507 ], [ 0, %691 ], [ 0, %678 ], [ 0, %964 ], [ 0, %967 ], [ 0, %970 ], [ %.3545807, %._crit_edge1043 ], [ 0, %.preheader890 ], [ %.3545807, %.lr.ph1048.preheader ], [ %1010, %.critedge28.thread.loopexit1156.split.loop.exit1197 ], [ %.7533, %middle.block1260 ], [ %.7533, %.lr.ph1007 ], [ %.4516809, %830 ]
  %.29 = phi ptr [ %.1502, %1007 ], [ %.26, %.critedge28 ], [ %787, %804 ], [ %6, %694 ], [ %6, %543 ], [ %.11.ph, %636 ], [ %.8509, %.loopexit877 ], [ @.str.1, %507 ], [ %.1502, %691 ], [ %.1502, %678 ], [ %.1502, %964 ], [ %.1502, %967 ], [ %.1502, %970 ], [ %.11.ph, %._crit_edge1043 ], [ %.25, %.preheader890 ], [ %.11.ph, %.lr.ph1048.preheader ], [ %.25, %.critedge28.thread.loopexit1156.split.loop.exit1197 ], [ %.26, %middle.block1260 ], [ %.26, %.lr.ph1007 ], [ %.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
  %.not768 = icmp eq i8 %.2571805, 0
  br i1 %.not768, label %1014, label %.critedge777

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

.critedge777:                                     ; 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, %.critedge777, %1015
  %.not769 = icmp eq ptr %.8645, null
  br i1 %.not769, 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

.thread812:                                       ; 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