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

; 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.StrAccum = type { ptr, 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, i8, i32, ptr, ptr, i64, %union.anon, ptr }
%struct.anon = type { i8, i8, [2 x i8] }
%union.anon = type { ptr }

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

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

72:                                               ; preds = %3
  %73 = load ptr, ptr %6, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.__va_list_tag, ptr %73, i32 0, i32 0
  %75 = load i32, ptr %74, align 8
  %76 = icmp ule i32 %75, 40
  br i1 %76, label %77, label %82

77:                                               ; preds = %72
  %78 = getelementptr inbounds %struct.__va_list_tag, ptr %73, i32 0, i32 3
  %79 = load ptr, ptr %78, align 8
  %80 = getelementptr i8, ptr %79, i32 %75
  %81 = add i32 %75, 8
  store i32 %81, ptr %74, align 8
  br label %86

82:                                               ; preds = %72
  %83 = getelementptr inbounds %struct.__va_list_tag, ptr %73, i32 0, i32 2
  %84 = load ptr, ptr %83, align 8
  %85 = getelementptr i8, ptr %84, i32 8
  store ptr %85, ptr %83, align 8
  br label %86

86:                                               ; preds = %82, %77
  %87 = phi ptr [ %80, %77 ], [ %84, %82 ]
  %88 = load ptr, ptr %87, align 8, !tbaa !5
  store ptr %88, ptr %36, align 8, !tbaa !5
  store i8 1, ptr %22, align 1, !tbaa !9
  br label %90

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

90:                                               ; preds = %89, %86
  br label %91

91:                                               ; preds = %1654, %90
  %92 = load ptr, ptr %5, align 8, !tbaa !5
  %93 = load i8, ptr %92, align 1, !tbaa !9
  %94 = sext i8 %93 to i32
  store i32 %94, ptr %7, align 4, !tbaa !13
  %95 = icmp ne i32 %94, 0
  br i1 %95, label %96, label %1657

96:                                               ; preds = %91
  %97 = load i32, ptr %7, align 4, !tbaa !13
  %98 = icmp ne i32 %97, 37
  br i1 %98, label %99, label %131

99:                                               ; preds = %96
  %100 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %100, ptr %8, align 8, !tbaa !5
  br label %101

101:                                              ; preds = %114, %99
  %102 = load ptr, ptr %5, align 8, !tbaa !5
  %103 = getelementptr inbounds i8, ptr %102, i32 1
  store ptr %103, ptr %5, align 8, !tbaa !5
  br label %104

104:                                              ; preds = %101
  %105 = load ptr, ptr %5, align 8, !tbaa !5
  %106 = load i8, ptr %105, align 1, !tbaa !9
  %107 = sext i8 %106 to i32
  %108 = icmp ne i32 %107, 0
  br i1 %108, label %109, label %114

109:                                              ; preds = %104
  %110 = load ptr, ptr %5, align 8, !tbaa !5
  %111 = load i8, ptr %110, align 1, !tbaa !9
  %112 = sext i8 %111 to i32
  %113 = icmp ne i32 %112, 37
  br label %114

114:                                              ; preds = %109, %104
  %115 = phi i1 [ false, %104 ], [ %113, %109 ]
  br i1 %115, label %101, label %116, !llvm.loop !14

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

129:                                              ; preds = %116
  br label %1657

130:                                              ; preds = %116
  br label %131

131:                                              ; preds = %130, %96
  %132 = load ptr, ptr %5, align 8, !tbaa !5
  %133 = getelementptr inbounds i8, ptr %132, i32 1
  store ptr %133, ptr %5, align 8, !tbaa !5
  %134 = load i8, ptr %133, align 1, !tbaa !9
  %135 = sext i8 %134 to i32
  store i32 %135, ptr %7, align 4, !tbaa !13
  %136 = icmp eq i32 %135, 0
  br i1 %136, label %137, label %139

137:                                              ; preds = %131
  %138 = load ptr, ptr %4, align 8, !tbaa !5
  call void @sqlite3StrAccumAppend(ptr noundef %138, ptr noundef @.str, i32 noundef 1)
  br label %1657

139:                                              ; preds = %131
  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
  br label %140

140:                                              ; preds = %160, %139
  %141 = load i32, ptr %7, align 4, !tbaa !13
  switch i32 %141, label %149 [
    i32 45, label %142
    i32 43, label %143
    i32 32, label %144
    i32 35, label %145
    i32 33, label %146
    i32 48, label %147
    i32 44, label %148
  ]

142:                                              ; preds = %140
  store i8 1, ptr %13, align 1, !tbaa !9
  br label %150

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

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

145:                                              ; preds = %140
  store i8 1, ptr %15, align 1, !tbaa !9
  br label %150

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

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

148:                                              ; preds = %140
  store i8 44, ptr %20, align 1, !tbaa !9
  br label %150

149:                                              ; preds = %140
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %150

150:                                              ; preds = %149, %148, %147, %146, %145, %144, %143, %142
  br label %151

151:                                              ; preds = %150
  %152 = load i8, ptr %19, align 1, !tbaa !9
  %153 = icmp ne i8 %152, 0
  br i1 %153, label %160, label %154

154:                                              ; preds = %151
  %155 = load ptr, ptr %5, align 8, !tbaa !5
  %156 = getelementptr inbounds i8, ptr %155, i32 1
  store ptr %156, ptr %5, align 8, !tbaa !5
  %157 = load i8, ptr %156, align 1, !tbaa !9
  %158 = sext i8 %157 to i32
  store i32 %158, ptr %7, align 4, !tbaa !13
  %159 = icmp ne i32 %158, 0
  br label %160

160:                                              ; preds = %154, %151
  %161 = phi i1 [ false, %151 ], [ %159, %154 ]
  br i1 %161, label %140, label %162, !llvm.loop !16

162:                                              ; preds = %160
  %163 = load i32, ptr %7, align 4, !tbaa !13
  %164 = icmp eq i32 %163, 42
  br i1 %164, label %165, label %206

165:                                              ; preds = %162
  %166 = load i8, ptr %22, align 1, !tbaa !9
  %167 = icmp ne i8 %166, 0
  br i1 %167, label %168, label %172

168:                                              ; preds = %165
  %169 = load ptr, ptr %36, align 8, !tbaa !5
  %170 = call i64 @getIntArg(ptr noundef %169)
  %171 = trunc i64 %170 to i32
  store i32 %171, ptr %12, align 4, !tbaa !13
  br label %189

172:                                              ; preds = %165
  %173 = load ptr, ptr %6, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.__va_list_tag, ptr %173, i32 0, i32 0
  %175 = load i32, ptr %174, align 8
  %176 = icmp ule i32 %175, 40
  br i1 %176, label %177, label %182

177:                                              ; preds = %172
  %178 = getelementptr inbounds %struct.__va_list_tag, ptr %173, i32 0, i32 3
  %179 = load ptr, ptr %178, align 8
  %180 = getelementptr i8, ptr %179, i32 %175
  %181 = add i32 %175, 8
  store i32 %181, ptr %174, align 8
  br label %186

182:                                              ; preds = %172
  %183 = getelementptr inbounds %struct.__va_list_tag, ptr %173, i32 0, i32 2
  %184 = load ptr, ptr %183, align 8
  %185 = getelementptr i8, ptr %184, i32 8
  store ptr %185, ptr %183, align 8
  br label %186

186:                                              ; preds = %182, %177
  %187 = phi ptr [ %180, %177 ], [ %184, %182 ]
  %188 = load i32, ptr %187, align 4, !tbaa !13
  store i32 %188, ptr %12, align 4, !tbaa !13
  br label %189

189:                                              ; preds = %186, %168
  %190 = load i32, ptr %12, align 4, !tbaa !13
  %191 = icmp slt i32 %190, 0
  br i1 %191, label %192, label %201

192:                                              ; preds = %189
  store i8 1, ptr %13, align 1, !tbaa !9
  %193 = load i32, ptr %12, align 4, !tbaa !13
  %194 = icmp sge i32 %193, -2147483647
  br i1 %194, label %195, label %198

195:                                              ; preds = %192
  %196 = load i32, ptr %12, align 4, !tbaa !13
  %197 = sub nsw i32 0, %196
  br label %199

198:                                              ; preds = %192
  br label %199

199:                                              ; preds = %198, %195
  %200 = phi i32 [ %197, %195 ], [ 0, %198 ]
  store i32 %200, ptr %12, align 4, !tbaa !13
  br label %201

201:                                              ; preds = %199, %189
  %202 = load ptr, ptr %5, align 8, !tbaa !5
  %203 = getelementptr inbounds i8, ptr %202, i32 1
  store ptr %203, ptr %5, align 8, !tbaa !5
  %204 = load i8, ptr %203, align 1, !tbaa !9
  %205 = sext i8 %204 to i32
  store i32 %205, ptr %7, align 4, !tbaa !13
  br label %228

206:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  store i32 0, ptr %38, align 4, !tbaa !13
  br label %207

207:                                              ; preds = %215, %206
  %208 = load i32, ptr %7, align 4, !tbaa !13
  %209 = icmp sge i32 %208, 48
  br i1 %209, label %210, label %213

210:                                              ; preds = %207
  %211 = load i32, ptr %7, align 4, !tbaa !13
  %212 = icmp sle i32 %211, 57
  br label %213

213:                                              ; preds = %210, %207
  %214 = phi i1 [ false, %207 ], [ %212, %210 ]
  br i1 %214, label %215, label %225

215:                                              ; preds = %213
  %216 = load i32, ptr %38, align 4, !tbaa !13
  %217 = mul i32 %216, 10
  %218 = load i32, ptr %7, align 4, !tbaa !13
  %219 = add i32 %217, %218
  %220 = sub i32 %219, 48
  store i32 %220, ptr %38, align 4, !tbaa !13
  %221 = load ptr, ptr %5, align 8, !tbaa !5
  %222 = getelementptr inbounds i8, ptr %221, i32 1
  store ptr %222, ptr %5, align 8, !tbaa !5
  %223 = load i8, ptr %222, align 1, !tbaa !9
  %224 = sext i8 %223 to i32
  store i32 %224, ptr %7, align 4, !tbaa !13
  br label %207, !llvm.loop !17

225:                                              ; preds = %213
  %226 = load i32, ptr %38, align 4, !tbaa !13
  %227 = and i32 %226, 2147483647
  store i32 %227, ptr %12, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  br label %228

228:                                              ; preds = %225, %201
  %229 = load i32, ptr %7, align 4, !tbaa !13
  %230 = icmp eq i32 %229, 46
  br i1 %230, label %231, label %302

231:                                              ; preds = %228
  %232 = load ptr, ptr %5, align 8, !tbaa !5
  %233 = getelementptr inbounds i8, ptr %232, i32 1
  store ptr %233, ptr %5, align 8, !tbaa !5
  %234 = load i8, ptr %233, align 1, !tbaa !9
  %235 = sext i8 %234 to i32
  store i32 %235, ptr %7, align 4, !tbaa !13
  %236 = load i32, ptr %7, align 4, !tbaa !13
  %237 = icmp eq i32 %236, 42
  br i1 %237, label %238, label %279

238:                                              ; preds = %231
  %239 = load i8, ptr %22, align 1, !tbaa !9
  %240 = icmp ne i8 %239, 0
  br i1 %240, label %241, label %245

241:                                              ; preds = %238
  %242 = load ptr, ptr %36, align 8, !tbaa !5
  %243 = call i64 @getIntArg(ptr noundef %242)
  %244 = trunc i64 %243 to i32
  store i32 %244, ptr %9, align 4, !tbaa !13
  br label %262

245:                                              ; preds = %238
  %246 = load ptr, ptr %6, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.__va_list_tag, ptr %246, i32 0, i32 0
  %248 = load i32, ptr %247, align 8
  %249 = icmp ule i32 %248, 40
  br i1 %249, label %250, label %255

250:                                              ; preds = %245
  %251 = getelementptr inbounds %struct.__va_list_tag, ptr %246, i32 0, i32 3
  %252 = load ptr, ptr %251, align 8
  %253 = getelementptr i8, ptr %252, i32 %248
  %254 = add i32 %248, 8
  store i32 %254, ptr %247, align 8
  br label %259

255:                                              ; preds = %245
  %256 = getelementptr inbounds %struct.__va_list_tag, ptr %246, i32 0, i32 2
  %257 = load ptr, ptr %256, align 8
  %258 = getelementptr i8, ptr %257, i32 8
  store ptr %258, ptr %256, align 8
  br label %259

259:                                              ; preds = %255, %250
  %260 = phi ptr [ %253, %250 ], [ %257, %255 ]
  %261 = load i32, ptr %260, align 4, !tbaa !13
  store i32 %261, ptr %9, align 4, !tbaa !13
  br label %262

262:                                              ; preds = %259, %241
  %263 = load ptr, ptr %5, align 8, !tbaa !5
  %264 = getelementptr inbounds i8, ptr %263, i32 1
  store ptr %264, ptr %5, align 8, !tbaa !5
  %265 = load i8, ptr %264, align 1, !tbaa !9
  %266 = sext i8 %265 to i32
  store i32 %266, ptr %7, align 4, !tbaa !13
  %267 = load i32, ptr %9, align 4, !tbaa !13
  %268 = icmp slt i32 %267, 0
  br i1 %268, label %269, label %278

269:                                              ; preds = %262
  %270 = load i32, ptr %9, align 4, !tbaa !13
  %271 = icmp sge i32 %270, -2147483647
  br i1 %271, label %272, label %275

272:                                              ; preds = %269
  %273 = load i32, ptr %9, align 4, !tbaa !13
  %274 = sub nsw i32 0, %273
  br label %276

275:                                              ; preds = %269
  br label %276

276:                                              ; preds = %275, %272
  %277 = phi i32 [ %274, %272 ], [ -1, %275 ]
  store i32 %277, ptr %9, align 4, !tbaa !13
  br label %278

278:                                              ; preds = %276, %262
  br label %301

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

280:                                              ; preds = %288, %279
  %281 = load i32, ptr %7, align 4, !tbaa !13
  %282 = icmp sge i32 %281, 48
  br i1 %282, label %283, label %286

283:                                              ; preds = %280
  %284 = load i32, ptr %7, align 4, !tbaa !13
  %285 = icmp sle i32 %284, 57
  br label %286

286:                                              ; preds = %283, %280
  %287 = phi i1 [ false, %280 ], [ %285, %283 ]
  br i1 %287, label %288, label %298

288:                                              ; preds = %286
  %289 = load i32, ptr %39, align 4, !tbaa !13
  %290 = mul i32 %289, 10
  %291 = load i32, ptr %7, align 4, !tbaa !13
  %292 = add i32 %290, %291
  %293 = sub i32 %292, 48
  store i32 %293, ptr %39, align 4, !tbaa !13
  %294 = load ptr, ptr %5, align 8, !tbaa !5
  %295 = getelementptr inbounds i8, ptr %294, i32 1
  store ptr %295, ptr %5, align 8, !tbaa !5
  %296 = load i8, ptr %295, align 1, !tbaa !9
  %297 = sext i8 %296 to i32
  store i32 %297, ptr %7, align 4, !tbaa !13
  br label %280, !llvm.loop !18

298:                                              ; preds = %286
  %299 = load i32, ptr %39, align 4, !tbaa !13
  %300 = and i32 %299, 2147483647
  store i32 %300, ptr %9, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  br label %301

301:                                              ; preds = %298, %278
  br label %303

302:                                              ; preds = %228
  store i32 -1, ptr %9, align 4, !tbaa !13
  br label %303

303:                                              ; preds = %302, %301
  %304 = load i32, ptr %7, align 4, !tbaa !13
  %305 = icmp eq i32 %304, 108
  br i1 %305, label %306, label %319

306:                                              ; preds = %303
  store i8 1, ptr %18, align 1, !tbaa !9
  %307 = load ptr, ptr %5, align 8, !tbaa !5
  %308 = getelementptr inbounds i8, ptr %307, i32 1
  store ptr %308, ptr %5, align 8, !tbaa !5
  %309 = load i8, ptr %308, align 1, !tbaa !9
  %310 = sext i8 %309 to i32
  store i32 %310, ptr %7, align 4, !tbaa !13
  %311 = load i32, ptr %7, align 4, !tbaa !13
  %312 = icmp eq i32 %311, 108
  br i1 %312, label %313, label %318

313:                                              ; preds = %306
  store i8 2, ptr %18, align 1, !tbaa !9
  %314 = load ptr, ptr %5, align 8, !tbaa !5
  %315 = getelementptr inbounds i8, ptr %314, i32 1
  store ptr %315, ptr %5, align 8, !tbaa !5
  %316 = load i8, ptr %315, align 1, !tbaa !9
  %317 = sext i8 %316 to i32
  store i32 %317, ptr %7, align 4, !tbaa !13
  br label %318

318:                                              ; preds = %313, %306
  br label %320

319:                                              ; preds = %303
  store i8 0, ptr %18, align 1, !tbaa !9
  br label %320

320:                                              ; preds = %319, %318
  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 %321

321:                                              ; preds = %341, %320
  %322 = load i32, ptr %11, align 4, !tbaa !13
  %323 = icmp slt i32 %322, 23
  br i1 %323, label %324, label %344

324:                                              ; preds = %321
  %325 = load i32, ptr %7, align 4, !tbaa !13
  %326 = load i32, ptr %11, align 4, !tbaa !13
  %327 = sext i32 %326 to i64
  %328 = getelementptr inbounds [23 x %struct.et_info], ptr @fmtinfo, i64 0, i64 %327
  %329 = getelementptr inbounds %struct.et_info, ptr %328, i32 0, i32 0
  %330 = load i8, ptr %329, align 2, !tbaa !19
  %331 = sext i8 %330 to i32
  %332 = icmp eq i32 %325, %331
  br i1 %332, label %333, label %340

333:                                              ; preds = %324
  %334 = load i32, ptr %11, align 4, !tbaa !13
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds [23 x %struct.et_info], ptr @fmtinfo, i64 0, i64 %335
  store ptr %336, ptr %26, align 8, !tbaa !5
  %337 = load ptr, ptr %26, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.et_info, ptr %337, i32 0, i32 3
  %339 = load i8, ptr %338, align 1, !tbaa !21
  store i8 %339, ptr %21, align 1, !tbaa !9
  br label %344

340:                                              ; preds = %324
  br label %341

341:                                              ; preds = %340
  %342 = load i32, ptr %11, align 4, !tbaa !13
  %343 = add nsw i32 %342, 1
  store i32 %343, ptr %11, align 4, !tbaa !13
  br label %321, !llvm.loop !22

344:                                              ; preds = %333, %321
  %345 = load i8, ptr %21, align 1, !tbaa !9
  %346 = zext i8 %345 to i32
  switch i32 %346, label %1618 [
    i32 13, label %347
    i32 15, label %348
    i32 0, label %348
    i32 16, label %349
    i32 1, label %734
    i32 2, label %734
    i32 3, label %734
    i32 4, label %1204
    i32 7, label %1228
    i32 8, label %1231
    i32 5, label %1292
    i32 6, label %1292
    i32 9, label %1353
    i32 10, label %1353
    i32 14, label %1353
    i32 11, label %1512
    i32 12, label %1555
  ]

347:                                              ; preds = %344
  store i8 2, ptr %18, align 1, !tbaa !9
  br label %348

348:                                              ; preds = %347, %344, %344
  store i8 0, ptr %20, align 1, !tbaa !9
  br label %349

349:                                              ; preds = %348, %344
  %350 = load ptr, ptr %26, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.et_info, ptr %350, i32 0, i32 2
  %352 = load i8, ptr %351, align 1, !tbaa !23
  %353 = zext i8 %352 to i32
  %354 = and i32 %353, 1
  %355 = icmp ne i32 %354, 0
  br i1 %355, label %356, label %438

356:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #4
  %357 = load i8, ptr %22, align 1, !tbaa !9
  %358 = icmp ne i8 %357, 0
  br i1 %358, label %359, label %362

359:                                              ; preds = %356
  %360 = load ptr, ptr %36, align 8, !tbaa !5
  %361 = call i64 @getIntArg(ptr noundef %360)
  store i64 %361, ptr %40, align 8, !tbaa !24
  br label %423

362:                                              ; preds = %356
  %363 = load i8, ptr %18, align 1, !tbaa !9
  %364 = icmp ne i8 %363, 0
  br i1 %364, label %365, label %404

365:                                              ; preds = %362
  %366 = load i8, ptr %18, align 1, !tbaa !9
  %367 = zext i8 %366 to i32
  %368 = icmp eq i32 %367, 2
  br i1 %368, label %369, label %386

369:                                              ; preds = %365
  %370 = load ptr, ptr %6, align 8, !tbaa !5
  %371 = getelementptr inbounds %struct.__va_list_tag, ptr %370, i32 0, i32 0
  %372 = load i32, ptr %371, align 8
  %373 = icmp ule i32 %372, 40
  br i1 %373, label %374, label %379

374:                                              ; preds = %369
  %375 = getelementptr inbounds %struct.__va_list_tag, ptr %370, i32 0, i32 3
  %376 = load ptr, ptr %375, align 8
  %377 = getelementptr i8, ptr %376, i32 %372
  %378 = add i32 %372, 8
  store i32 %378, ptr %371, align 8
  br label %383

379:                                              ; preds = %369
  %380 = getelementptr inbounds %struct.__va_list_tag, ptr %370, i32 0, i32 2
  %381 = load ptr, ptr %380, align 8
  %382 = getelementptr i8, ptr %381, i32 8
  store ptr %382, ptr %380, align 8
  br label %383

383:                                              ; preds = %379, %374
  %384 = phi ptr [ %377, %374 ], [ %381, %379 ]
  %385 = load i64, ptr %384, align 8, !tbaa !24
  store i64 %385, ptr %40, align 8, !tbaa !24
  br label %403

386:                                              ; preds = %365
  %387 = load ptr, ptr %6, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.__va_list_tag, ptr %387, i32 0, i32 0
  %389 = load i32, ptr %388, align 8
  %390 = icmp ule i32 %389, 40
  br i1 %390, label %391, label %396

391:                                              ; preds = %386
  %392 = getelementptr inbounds %struct.__va_list_tag, ptr %387, i32 0, i32 3
  %393 = load ptr, ptr %392, align 8
  %394 = getelementptr i8, ptr %393, i32 %389
  %395 = add i32 %389, 8
  store i32 %395, ptr %388, align 8
  br label %400

396:                                              ; preds = %386
  %397 = getelementptr inbounds %struct.__va_list_tag, ptr %387, i32 0, i32 2
  %398 = load ptr, ptr %397, align 8
  %399 = getelementptr i8, ptr %398, i32 8
  store ptr %399, ptr %397, align 8
  br label %400

400:                                              ; preds = %396, %391
  %401 = phi ptr [ %394, %391 ], [ %398, %396 ]
  %402 = load i64, ptr %401, align 8, !tbaa !26
  store i64 %402, ptr %40, align 8, !tbaa !24
  br label %403

403:                                              ; preds = %400, %383
  br label %422

404:                                              ; preds = %362
  %405 = load ptr, ptr %6, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.__va_list_tag, ptr %405, i32 0, i32 0
  %407 = load i32, ptr %406, align 8
  %408 = icmp ule i32 %407, 40
  br i1 %408, label %409, label %414

409:                                              ; preds = %404
  %410 = getelementptr inbounds %struct.__va_list_tag, ptr %405, i32 0, i32 3
  %411 = load ptr, ptr %410, align 8
  %412 = getelementptr i8, ptr %411, i32 %407
  %413 = add i32 %407, 8
  store i32 %413, ptr %406, align 8
  br label %418

414:                                              ; preds = %404
  %415 = getelementptr inbounds %struct.__va_list_tag, ptr %405, i32 0, i32 2
  %416 = load ptr, ptr %415, align 8
  %417 = getelementptr i8, ptr %416, i32 8
  store ptr %417, ptr %415, align 8
  br label %418

418:                                              ; preds = %414, %409
  %419 = phi ptr [ %412, %409 ], [ %416, %414 ]
  %420 = load i32, ptr %419, align 4, !tbaa !13
  %421 = sext i32 %420 to i64
  store i64 %421, ptr %40, align 8, !tbaa !24
  br label %422

422:                                              ; preds = %418, %403
  br label %423

423:                                              ; preds = %422, %359
  %424 = load i64, ptr %40, align 8, !tbaa !24
  %425 = icmp slt i64 %424, 0
  br i1 %425, label %426, label %434

426:                                              ; preds = %423
  %427 = load i64, ptr %40, align 8, !tbaa !24
  %428 = icmp eq i64 %427, -9223372036854775808
  br i1 %428, label %429, label %430

429:                                              ; preds = %426
  store i64 -9223372036854775808, ptr %24, align 8, !tbaa !24
  br label %433

430:                                              ; preds = %426
  %431 = load i64, ptr %40, align 8, !tbaa !24
  %432 = sub nsw i64 0, %431
  store i64 %432, ptr %24, align 8, !tbaa !24
  br label %433

433:                                              ; preds = %430, %429
  store i8 45, ptr %23, align 1, !tbaa !9
  br label %437

434:                                              ; preds = %423
  %435 = load i64, ptr %40, align 8, !tbaa !24
  store i64 %435, ptr %24, align 8, !tbaa !24
  %436 = load i8, ptr %14, align 1, !tbaa !9
  store i8 %436, ptr %23, align 1, !tbaa !9
  br label %437

437:                                              ; preds = %434, %433
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  br label %506

438:                                              ; preds = %349
  %439 = load i8, ptr %22, align 1, !tbaa !9
  %440 = icmp ne i8 %439, 0
  br i1 %440, label %441, label %444

441:                                              ; preds = %438
  %442 = load ptr, ptr %36, align 8, !tbaa !5
  %443 = call i64 @getIntArg(ptr noundef %442)
  store i64 %443, ptr %24, align 8, !tbaa !24
  br label %505

444:                                              ; preds = %438
  %445 = load i8, ptr %18, align 1, !tbaa !9
  %446 = icmp ne i8 %445, 0
  br i1 %446, label %447, label %486

447:                                              ; preds = %444
  %448 = load i8, ptr %18, align 1, !tbaa !9
  %449 = zext i8 %448 to i32
  %450 = icmp eq i32 %449, 2
  br i1 %450, label %451, label %468

451:                                              ; preds = %447
  %452 = load ptr, ptr %6, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.__va_list_tag, ptr %452, i32 0, i32 0
  %454 = load i32, ptr %453, align 8
  %455 = icmp ule i32 %454, 40
  br i1 %455, label %456, label %461

456:                                              ; preds = %451
  %457 = getelementptr inbounds %struct.__va_list_tag, ptr %452, i32 0, i32 3
  %458 = load ptr, ptr %457, align 8
  %459 = getelementptr i8, ptr %458, i32 %454
  %460 = add i32 %454, 8
  store i32 %460, ptr %453, align 8
  br label %465

461:                                              ; preds = %451
  %462 = getelementptr inbounds %struct.__va_list_tag, ptr %452, i32 0, i32 2
  %463 = load ptr, ptr %462, align 8
  %464 = getelementptr i8, ptr %463, i32 8
  store ptr %464, ptr %462, align 8
  br label %465

465:                                              ; preds = %461, %456
  %466 = phi ptr [ %459, %456 ], [ %463, %461 ]
  %467 = load i64, ptr %466, align 8, !tbaa !24
  store i64 %467, ptr %24, align 8, !tbaa !24
  br label %485

468:                                              ; preds = %447
  %469 = load ptr, ptr %6, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.__va_list_tag, ptr %469, i32 0, i32 0
  %471 = load i32, ptr %470, align 8
  %472 = icmp ule i32 %471, 40
  br i1 %472, label %473, label %478

473:                                              ; preds = %468
  %474 = getelementptr inbounds %struct.__va_list_tag, ptr %469, i32 0, i32 3
  %475 = load ptr, ptr %474, align 8
  %476 = getelementptr i8, ptr %475, i32 %471
  %477 = add i32 %471, 8
  store i32 %477, ptr %470, align 8
  br label %482

478:                                              ; preds = %468
  %479 = getelementptr inbounds %struct.__va_list_tag, ptr %469, i32 0, i32 2
  %480 = load ptr, ptr %479, align 8
  %481 = getelementptr i8, ptr %480, i32 8
  store ptr %481, ptr %479, align 8
  br label %482

482:                                              ; preds = %478, %473
  %483 = phi ptr [ %476, %473 ], [ %480, %478 ]
  %484 = load i64, ptr %483, align 8, !tbaa !26
  store i64 %484, ptr %24, align 8, !tbaa !24
  br label %485

485:                                              ; preds = %482, %465
  br label %504

486:                                              ; preds = %444
  %487 = load ptr, ptr %6, align 8, !tbaa !5
  %488 = getelementptr inbounds %struct.__va_list_tag, ptr %487, i32 0, i32 0
  %489 = load i32, ptr %488, align 8
  %490 = icmp ule i32 %489, 40
  br i1 %490, label %491, label %496

491:                                              ; preds = %486
  %492 = getelementptr inbounds %struct.__va_list_tag, ptr %487, i32 0, i32 3
  %493 = load ptr, ptr %492, align 8
  %494 = getelementptr i8, ptr %493, i32 %489
  %495 = add i32 %489, 8
  store i32 %495, ptr %488, align 8
  br label %500

496:                                              ; preds = %486
  %497 = getelementptr inbounds %struct.__va_list_tag, ptr %487, i32 0, i32 2
  %498 = load ptr, ptr %497, align 8
  %499 = getelementptr i8, ptr %498, i32 8
  store ptr %499, ptr %497, align 8
  br label %500

500:                                              ; preds = %496, %491
  %501 = phi ptr [ %494, %491 ], [ %498, %496 ]
  %502 = load i32, ptr %501, align 4, !tbaa !13
  %503 = zext i32 %502 to i64
  store i64 %503, ptr %24, align 8, !tbaa !24
  br label %504

504:                                              ; preds = %500, %485
  br label %505

505:                                              ; preds = %504, %441
  store i8 0, ptr %23, align 1, !tbaa !9
  br label %506

506:                                              ; preds = %505, %437
  %507 = load i64, ptr %24, align 8, !tbaa !24
  %508 = icmp eq i64 %507, 0
  br i1 %508, label %509, label %510

509:                                              ; preds = %506
  store i8 0, ptr %15, align 1, !tbaa !9
  br label %510

510:                                              ; preds = %509, %506
  %511 = load i8, ptr %17, align 1, !tbaa !9
  %512 = zext i8 %511 to i32
  %513 = icmp ne i32 %512, 0
  br i1 %513, label %514, label %530

514:                                              ; preds = %510
  %515 = load i32, ptr %9, align 4, !tbaa !13
  %516 = load i32, ptr %12, align 4, !tbaa !13
  %517 = load i8, ptr %23, align 1, !tbaa !9
  %518 = sext i8 %517 to i32
  %519 = icmp ne i32 %518, 0
  %520 = zext i1 %519 to i32
  %521 = sub nsw i32 %516, %520
  %522 = icmp slt i32 %515, %521
  br i1 %522, label %523, label %530

523:                                              ; preds = %514
  %524 = load i32, ptr %12, align 4, !tbaa !13
  %525 = load i8, ptr %23, align 1, !tbaa !9
  %526 = sext i8 %525 to i32
  %527 = icmp ne i32 %526, 0
  %528 = zext i1 %527 to i32
  %529 = sub nsw i32 %524, %528
  store i32 %529, ptr %9, align 4, !tbaa !13
  br label %530

530:                                              ; preds = %523, %514, %510
  %531 = load i32, ptr %9, align 4, !tbaa !13
  %532 = icmp slt i32 %531, 37
  br i1 %532, label %533, label %535

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

535:                                              ; preds = %530
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #4
  %536 = load i32, ptr %9, align 4, !tbaa !13
  %537 = sext i32 %536 to i64
  %538 = add i64 %537, 10
  %539 = load i32, ptr %9, align 4, !tbaa !13
  %540 = sdiv i32 %539, 3
  %541 = sext i32 %540 to i64
  %542 = add i64 %538, %541
  store i64 %542, ptr %41, align 8, !tbaa !24
  %543 = load i64, ptr %41, align 8, !tbaa !24
  %544 = call ptr @sqlite3Malloc(i64 noundef %543)
  store ptr %544, ptr %29, align 8, !tbaa !5
  store ptr %544, ptr %27, align 8, !tbaa !5
  %545 = load ptr, ptr %27, align 8, !tbaa !5
  %546 = icmp eq ptr %545, null
  br i1 %546, label %547, label %549

547:                                              ; preds = %535
  %548 = load ptr, ptr %4, align 8, !tbaa !5
  call void @setStrAccumError(ptr noundef %548, i8 noundef zeroext 1)
  store i32 1, ptr %42, align 4
  br label %552

549:                                              ; preds = %535
  %550 = load i64, ptr %41, align 8, !tbaa !24
  %551 = trunc i64 %550 to i32
  store i32 %551, ptr %28, align 4, !tbaa !13
  store i32 0, ptr %42, align 4
  br label %552

552:                                              ; preds = %549, %547
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  %553 = load i32, ptr %42, align 4
  switch i32 %553, label %1658 [
    i32 0, label %554
  ]

554:                                              ; preds = %552
  br label %555

555:                                              ; preds = %554, %533
  %556 = load ptr, ptr %27, align 8, !tbaa !5
  %557 = load i32, ptr %28, align 4, !tbaa !13
  %558 = sub nsw i32 %557, 1
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds i8, ptr %556, i64 %559
  store ptr %560, ptr %8, align 8, !tbaa !5
  %561 = load i8, ptr %21, align 1, !tbaa !9
  %562 = zext i8 %561 to i32
  %563 = icmp eq i32 %562, 15
  br i1 %563, label %564, label %592

564:                                              ; preds = %555
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #4
  %565 = load i64, ptr %24, align 8, !tbaa !24
  %566 = urem i64 %565, 10
  %567 = trunc i64 %566 to i32
  store i32 %567, ptr %43, align 4, !tbaa !13
  %568 = load i32, ptr %43, align 4, !tbaa !13
  %569 = icmp sge i32 %568, 4
  br i1 %569, label %575, label %570

570:                                              ; preds = %564
  %571 = load i64, ptr %24, align 8, !tbaa !24
  %572 = udiv i64 %571, 10
  %573 = urem i64 %572, 10
  %574 = icmp eq i64 %573, 1
  br i1 %574, label %575, label %576

575:                                              ; preds = %570, %564
  store i32 0, ptr %43, align 4, !tbaa !13
  br label %576

576:                                              ; preds = %575, %570
  %577 = load i32, ptr %43, align 4, !tbaa !13
  %578 = mul nsw i32 %577, 2
  %579 = add nsw i32 %578, 1
  %580 = sext i32 %579 to i64
  %581 = getelementptr inbounds [9 x i8], ptr @sqlite3VXPrintf.zOrd, i64 0, i64 %580
  %582 = load i8, ptr %581, align 1, !tbaa !9
  %583 = load ptr, ptr %8, align 8, !tbaa !5
  %584 = getelementptr inbounds i8, ptr %583, i32 -1
  store ptr %584, ptr %8, align 8, !tbaa !5
  store i8 %582, ptr %584, align 1, !tbaa !9
  %585 = load i32, ptr %43, align 4, !tbaa !13
  %586 = mul nsw i32 %585, 2
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds [9 x i8], ptr @sqlite3VXPrintf.zOrd, i64 0, i64 %587
  %589 = load i8, ptr %588, align 1, !tbaa !9
  %590 = load ptr, ptr %8, align 8, !tbaa !5
  %591 = getelementptr inbounds i8, ptr %590, i32 -1
  store ptr %591, ptr %8, align 8, !tbaa !5
  store i8 %589, ptr %591, align 1, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  br label %592

592:                                              ; preds = %576, %555
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #4
  %593 = load ptr, ptr %26, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.et_info, ptr %593, i32 0, i32 4
  %595 = load i8, ptr %594, align 1, !tbaa !28
  %596 = zext i8 %595 to i64
  %597 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %596
  store ptr %597, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #4
  %598 = load ptr, ptr %26, align 8, !tbaa !5
  %599 = getelementptr inbounds %struct.et_info, ptr %598, i32 0, i32 1
  %600 = load i8, ptr %599, align 1, !tbaa !29
  store i8 %600, ptr %45, align 1, !tbaa !9
  br label %601

601:                                              ; preds = %615, %592
  %602 = load ptr, ptr %44, align 8, !tbaa !5
  %603 = load i64, ptr %24, align 8, !tbaa !24
  %604 = load i8, ptr %45, align 1, !tbaa !9
  %605 = zext i8 %604 to i64
  %606 = urem i64 %603, %605
  %607 = getelementptr inbounds i8, ptr %602, 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 i64, ptr %24, align 8, !tbaa !24
  %612 = load i8, ptr %45, align 1, !tbaa !9
  %613 = zext i8 %612 to i64
  %614 = udiv i64 %611, %613
  store i64 %614, ptr %24, align 8, !tbaa !24
  br label %615

615:                                              ; preds = %601
  %616 = load i64, ptr %24, align 8, !tbaa !24
  %617 = icmp ugt i64 %616, 0
  br i1 %617, label %601, label %618, !llvm.loop !30

618:                                              ; preds = %615
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  %619 = load ptr, ptr %27, align 8, !tbaa !5
  %620 = load i32, ptr %28, align 4, !tbaa !13
  %621 = sub nsw i32 %620, 1
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds i8, ptr %619, i64 %622
  %624 = load ptr, ptr %8, align 8, !tbaa !5
  %625 = ptrtoint ptr %623 to i64
  %626 = ptrtoint ptr %624 to i64
  %627 = sub i64 %625, %626
  %628 = trunc i64 %627 to i32
  store i32 %628, ptr %10, align 4, !tbaa !13
  br label %629

629:                                              ; preds = %633, %618
  %630 = load i32, ptr %9, align 4, !tbaa !13
  %631 = load i32, ptr %10, align 4, !tbaa !13
  %632 = icmp sgt i32 %630, %631
  br i1 %632, label %633, label %638

633:                                              ; preds = %629
  %634 = load ptr, ptr %8, align 8, !tbaa !5
  %635 = getelementptr inbounds i8, ptr %634, i32 -1
  store ptr %635, ptr %8, align 8, !tbaa !5
  store i8 48, ptr %635, align 1, !tbaa !9
  %636 = load i32, ptr %10, align 4, !tbaa !13
  %637 = add nsw i32 %636, 1
  store i32 %637, ptr %10, align 4, !tbaa !13
  br label %629, !llvm.loop !31

638:                                              ; preds = %629
  %639 = load i8, ptr %20, align 1, !tbaa !9
  %640 = icmp ne i8 %639, 0
  br i1 %640, label %641, label %687

641:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #4
  %642 = load i32, ptr %10, align 4, !tbaa !13
  %643 = sub nsw i32 %642, 1
  %644 = sdiv i32 %643, 3
  store i32 %644, ptr %46, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #4
  %645 = load i32, ptr %10, align 4, !tbaa !13
  %646 = sub nsw i32 %645, 1
  %647 = srem i32 %646, 3
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr %47, align 4, !tbaa !13
  %649 = load i32, ptr %46, align 4, !tbaa !13
  %650 = load ptr, ptr %8, align 8, !tbaa !5
  %651 = sext i32 %649 to i64
  %652 = sub i64 0, %651
  %653 = getelementptr inbounds i8, ptr %650, i64 %652
  store ptr %653, ptr %8, align 8, !tbaa !5
  store i32 0, ptr %11, align 4, !tbaa !13
  br label %654

654:                                              ; preds = %683, %641
  %655 = load i32, ptr %46, align 4, !tbaa !13
  %656 = icmp sgt i32 %655, 0
  br i1 %656, label %657, label %686

657:                                              ; preds = %654
  %658 = load ptr, ptr %8, align 8, !tbaa !5
  %659 = load i32, ptr %11, align 4, !tbaa !13
  %660 = load i32, ptr %46, align 4, !tbaa !13
  %661 = add nsw i32 %659, %660
  %662 = sext i32 %661 to i64
  %663 = getelementptr inbounds i8, ptr %658, i64 %662
  %664 = load i8, ptr %663, align 1, !tbaa !9
  %665 = load ptr, ptr %8, align 8, !tbaa !5
  %666 = load i32, ptr %11, align 4, !tbaa !13
  %667 = sext i32 %666 to i64
  %668 = getelementptr inbounds i8, ptr %665, i64 %667
  store i8 %664, ptr %668, align 1, !tbaa !9
  %669 = load i32, ptr %47, align 4, !tbaa !13
  %670 = add nsw i32 %669, -1
  store i32 %670, ptr %47, align 4, !tbaa !13
  %671 = load i32, ptr %47, align 4, !tbaa !13
  %672 = icmp eq i32 %671, 0
  br i1 %672, label %673, label %682

673:                                              ; preds = %657
  %674 = load i8, ptr %20, align 1, !tbaa !9
  %675 = load ptr, ptr %8, align 8, !tbaa !5
  %676 = load i32, ptr %11, align 4, !tbaa !13
  %677 = add nsw i32 %676, 1
  store i32 %677, ptr %11, align 4, !tbaa !13
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds i8, ptr %675, i64 %678
  store i8 %674, ptr %679, align 1, !tbaa !9
  %680 = load i32, ptr %46, align 4, !tbaa !13
  %681 = add nsw i32 %680, -1
  store i32 %681, ptr %46, align 4, !tbaa !13
  store i32 3, ptr %47, align 4, !tbaa !13
  br label %682

682:                                              ; preds = %673, %657
  br label %683

683:                                              ; preds = %682
  %684 = load i32, ptr %11, align 4, !tbaa !13
  %685 = add nsw i32 %684, 1
  store i32 %685, ptr %11, align 4, !tbaa !13
  br label %654, !llvm.loop !32

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

687:                                              ; preds = %686, %638
  %688 = load i8, ptr %23, align 1, !tbaa !9
  %689 = icmp ne i8 %688, 0
  br i1 %689, label %690, label %694

690:                                              ; preds = %687
  %691 = load i8, ptr %23, align 1, !tbaa !9
  %692 = load ptr, ptr %8, align 8, !tbaa !5
  %693 = getelementptr inbounds i8, ptr %692, i32 -1
  store ptr %693, ptr %8, align 8, !tbaa !5
  store i8 %691, ptr %693, align 1, !tbaa !9
  br label %694

694:                                              ; preds = %690, %687
  %695 = load i8, ptr %15, align 1, !tbaa !9
  %696 = zext i8 %695 to i32
  %697 = icmp ne i32 %696, 0
  br i1 %697, label %698, label %723

698:                                              ; preds = %694
  %699 = load ptr, ptr %26, align 8, !tbaa !5
  %700 = getelementptr inbounds %struct.et_info, ptr %699, i32 0, i32 5
  %701 = load i8, ptr %700, align 1, !tbaa !33
  %702 = zext i8 %701 to i32
  %703 = icmp ne i32 %702, 0
  br i1 %703, label %704, label %723

704:                                              ; preds = %698
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #4
  %705 = load ptr, ptr %26, align 8, !tbaa !5
  %706 = getelementptr inbounds %struct.et_info, ptr %705, i32 0, i32 5
  %707 = load i8, ptr %706, align 1, !tbaa !33
  %708 = zext i8 %707 to i64
  %709 = getelementptr inbounds [7 x i8], ptr @aPrefix, i64 0, i64 %708
  store ptr %709, ptr %48, align 8, !tbaa !5
  br label %710

710:                                              ; preds = %719, %704
  %711 = load ptr, ptr %48, align 8, !tbaa !5
  %712 = load i8, ptr %711, align 1, !tbaa !9
  store i8 %712, ptr %49, align 1, !tbaa !9
  %713 = sext i8 %712 to i32
  %714 = icmp ne i32 %713, 0
  br i1 %714, label %715, label %722

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

719:                                              ; preds = %715
  %720 = load ptr, ptr %48, align 8, !tbaa !5
  %721 = getelementptr inbounds i8, ptr %720, i32 1
  store ptr %721, ptr %48, align 8, !tbaa !5
  br label %710, !llvm.loop !34

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

723:                                              ; preds = %722, %698, %694
  %724 = load ptr, ptr %27, align 8, !tbaa !5
  %725 = load i32, ptr %28, align 4, !tbaa !13
  %726 = sub nsw i32 %725, 1
  %727 = sext i32 %726 to i64
  %728 = getelementptr inbounds i8, ptr %724, i64 %727
  %729 = load ptr, ptr %8, align 8, !tbaa !5
  %730 = ptrtoint ptr %728 to i64
  %731 = ptrtoint ptr %729 to i64
  %732 = sub i64 %730, %731
  %733 = trunc i64 %732 to i32
  store i32 %733, ptr %10, align 4, !tbaa !13
  br label %1619

734:                                              ; preds = %344, %344, %344
  %735 = load i8, ptr %22, align 1, !tbaa !9
  %736 = icmp ne i8 %735, 0
  br i1 %736, label %737, label %741

737:                                              ; preds = %734
  %738 = load ptr, ptr %36, align 8, !tbaa !5
  %739 = call double @getDoubleArg(ptr noundef %738)
  %740 = fpext double %739 to x86_fp80
  store x86_fp80 %740, ptr %25, align 16, !tbaa !35
  br label %759

741:                                              ; preds = %734
  %742 = load ptr, ptr %6, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.__va_list_tag, ptr %742, i32 0, i32 1
  %744 = load i32, ptr %743, align 4
  %745 = icmp ule i32 %744, 160
  br i1 %745, label %746, label %751

746:                                              ; preds = %741
  %747 = getelementptr inbounds %struct.__va_list_tag, ptr %742, i32 0, i32 3
  %748 = load ptr, ptr %747, align 8
  %749 = getelementptr i8, ptr %748, i32 %744
  %750 = add i32 %744, 16
  store i32 %750, ptr %743, align 4
  br label %755

751:                                              ; preds = %741
  %752 = getelementptr inbounds %struct.__va_list_tag, ptr %742, i32 0, i32 2
  %753 = load ptr, ptr %752, align 8
  %754 = getelementptr i8, ptr %753, i32 8
  store ptr %754, ptr %752, align 8
  br label %755

755:                                              ; preds = %751, %746
  %756 = phi ptr [ %749, %746 ], [ %753, %751 ]
  %757 = load double, ptr %756, align 8, !tbaa !37
  %758 = fpext double %757 to x86_fp80
  store x86_fp80 %758, ptr %25, align 16, !tbaa !35
  br label %759

759:                                              ; preds = %755, %737
  %760 = load i32, ptr %9, align 4, !tbaa !13
  %761 = icmp slt i32 %760, 0
  br i1 %761, label %762, label %763

762:                                              ; preds = %759
  store i32 6, ptr %9, align 4, !tbaa !13
  br label %763

763:                                              ; preds = %762, %759
  %764 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %765 = fcmp olt x86_fp80 %764, 0xK00000000000000000000
  br i1 %765, label %766, label %769

766:                                              ; preds = %763
  %767 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %768 = fneg x86_fp80 %767
  store x86_fp80 %768, ptr %25, align 16, !tbaa !35
  store i8 45, ptr %23, align 1, !tbaa !9
  br label %771

769:                                              ; preds = %763
  %770 = load i8, ptr %14, align 1, !tbaa !9
  store i8 %770, ptr %23, align 1, !tbaa !9
  br label %771

771:                                              ; preds = %769, %766
  %772 = load i8, ptr %21, align 1, !tbaa !9
  %773 = zext i8 %772 to i32
  %774 = icmp eq i32 %773, 3
  br i1 %774, label %775, label %781

775:                                              ; preds = %771
  %776 = load i32, ptr %9, align 4, !tbaa !13
  %777 = icmp sgt i32 %776, 0
  br i1 %777, label %778, label %781

778:                                              ; preds = %775
  %779 = load i32, ptr %9, align 4, !tbaa !13
  %780 = add nsw i32 %779, -1
  store i32 %780, ptr %9, align 4, !tbaa !13
  br label %781

781:                                              ; preds = %778, %775, %771
  %782 = load i32, ptr %9, align 4, !tbaa !13
  %783 = and i32 %782, 4095
  store i32 %783, ptr %11, align 4, !tbaa !13
  store double 5.000000e-01, ptr %33, align 8, !tbaa !37
  br label %784

784:                                              ; preds = %788, %781
  %785 = load i32, ptr %11, align 4, !tbaa !13
  %786 = icmp sgt i32 %785, 0
  br i1 %786, label %787, label %793

787:                                              ; preds = %784
  br label %788

788:                                              ; preds = %787
  %789 = load i32, ptr %11, align 4, !tbaa !13
  %790 = add nsw i32 %789, -1
  store i32 %790, ptr %11, align 4, !tbaa !13
  %791 = load double, ptr %33, align 8, !tbaa !37
  %792 = fmul double %791, 1.000000e-01
  store double %792, ptr %33, align 8, !tbaa !37
  br label %784, !llvm.loop !39

793:                                              ; preds = %784
  %794 = load i8, ptr %21, align 1, !tbaa !9
  %795 = zext i8 %794 to i32
  %796 = icmp eq i32 %795, 1
  br i1 %796, label %797, label %802

797:                                              ; preds = %793
  %798 = load double, ptr %33, align 8, !tbaa !37
  %799 = fpext double %798 to x86_fp80
  %800 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %801 = fadd x86_fp80 %800, %799
  store x86_fp80 %801, ptr %25, align 16, !tbaa !35
  br label %802

802:                                              ; preds = %797, %793
  store i32 0, ptr %30, align 4, !tbaa !13
  %803 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %804 = fptrunc x86_fp80 %803 to double
  %805 = call i32 @sqlite3IsNaN(double noundef %804)
  %806 = icmp ne i32 %805, 0
  br i1 %806, label %807, label %808

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

808:                                              ; preds = %802
  %809 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %810 = fcmp ogt x86_fp80 %809, 0xK00000000000000000000
  br i1 %810, label %811, label %903

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

812:                                              ; preds = %822, %811
  %813 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %814 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %815 = fmul x86_fp80 0xK414B924D692CA61BE800, %814
  %816 = fcmp oge x86_fp80 %813, %815
  br i1 %816, label %817, label %820

817:                                              ; preds = %812
  %818 = load i32, ptr %30, align 4, !tbaa !13
  %819 = icmp sle i32 %818, 350
  br label %820

820:                                              ; preds = %817, %812
  %821 = phi i1 [ false, %812 ], [ %819, %817 ]
  br i1 %821, label %822, label %827

822:                                              ; preds = %820
  %823 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %824 = fmul x86_fp80 %823, 0xK414B924D692CA61BE800
  store x86_fp80 %824, ptr %50, align 16, !tbaa !35
  %825 = load i32, ptr %30, align 4, !tbaa !13
  %826 = add nsw i32 %825, 100
  store i32 %826, ptr %30, align 4, !tbaa !13
  br label %812, !llvm.loop !40

827:                                              ; preds = %820
  br label %828

828:                                              ; preds = %838, %827
  %829 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %830 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %831 = fmul x86_fp80 0xK40209502F90000000000, %830
  %832 = fcmp oge x86_fp80 %829, %831
  br i1 %832, label %833, label %836

833:                                              ; preds = %828
  %834 = load i32, ptr %30, align 4, !tbaa !13
  %835 = icmp sle i32 %834, 350
  br label %836

836:                                              ; preds = %833, %828
  %837 = phi i1 [ false, %828 ], [ %835, %833 ]
  br i1 %837, label %838, label %843

838:                                              ; preds = %836
  %839 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %840 = fmul x86_fp80 %839, 0xK40209502F90000000000
  store x86_fp80 %840, ptr %50, align 16, !tbaa !35
  %841 = load i32, ptr %30, align 4, !tbaa !13
  %842 = add nsw i32 %841, 10
  store i32 %842, ptr %30, align 4, !tbaa !13
  br label %828, !llvm.loop !41

843:                                              ; preds = %836
  br label %844

844:                                              ; preds = %854, %843
  %845 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %846 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %847 = fmul x86_fp80 0xK4002A000000000000000, %846
  %848 = fcmp oge x86_fp80 %845, %847
  br i1 %848, label %849, label %852

849:                                              ; preds = %844
  %850 = load i32, ptr %30, align 4, !tbaa !13
  %851 = icmp sle i32 %850, 350
  br label %852

852:                                              ; preds = %849, %844
  %853 = phi i1 [ false, %844 ], [ %851, %849 ]
  br i1 %853, label %854, label %859

854:                                              ; preds = %852
  %855 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %856 = fmul x86_fp80 %855, 0xK4002A000000000000000
  store x86_fp80 %856, ptr %50, align 16, !tbaa !35
  %857 = load i32, ptr %30, align 4, !tbaa !13
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr %30, align 4, !tbaa !13
  br label %844, !llvm.loop !42

859:                                              ; preds = %852
  %860 = load x86_fp80, ptr %50, align 16, !tbaa !35
  %861 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %862 = fdiv x86_fp80 %861, %860
  store x86_fp80 %862, ptr %25, align 16, !tbaa !35
  br label %863

863:                                              ; preds = %866, %859
  %864 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %865 = fcmp olt x86_fp80 %864, 0xK3FE4ABCC77118461D000
  br i1 %865, label %866, label %871

866:                                              ; preds = %863
  %867 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %868 = fmul x86_fp80 %867, 0xK4019BEBC200000000000
  store x86_fp80 %868, ptr %25, align 16, !tbaa !35
  %869 = load i32, ptr %30, align 4, !tbaa !13
  %870 = sub nsw i32 %869, 8
  store i32 %870, ptr %30, align 4, !tbaa !13
  br label %863, !llvm.loop !43

871:                                              ; preds = %863
  br label %872

872:                                              ; preds = %875, %871
  %873 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %874 = fcmp olt x86_fp80 %873, 0xK3FFF8000000000000000
  br i1 %874, label %875, label %880

875:                                              ; preds = %872
  %876 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %877 = fmul x86_fp80 %876, 0xK4002A000000000000000
  store x86_fp80 %877, ptr %25, align 16, !tbaa !35
  %878 = load i32, ptr %30, align 4, !tbaa !13
  %879 = add nsw i32 %878, -1
  store i32 %879, ptr %30, align 4, !tbaa !13
  br label %872, !llvm.loop !44

880:                                              ; preds = %872
  %881 = load i32, ptr %30, align 4, !tbaa !13
  %882 = icmp sgt i32 %881, 350
  br i1 %882, label %883, label %899

883:                                              ; preds = %880
  %884 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %884, ptr %8, align 8, !tbaa !5
  %885 = load i8, ptr %23, align 1, !tbaa !9
  %886 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 %885, ptr %886, align 16, !tbaa !9
  %887 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  %888 = load i8, ptr %23, align 1, !tbaa !9
  %889 = sext i8 %888 to i32
  %890 = icmp ne i32 %889, 0
  %891 = zext i1 %890 to i32
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds i8, ptr %887, i64 %892
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %893, ptr align 1 @.str.2, i64 4, i1 false)
  %894 = load i8, ptr %23, align 1, !tbaa !9
  %895 = sext i8 %894 to i32
  %896 = icmp ne i32 %895, 0
  %897 = zext i1 %896 to i32
  %898 = add nsw i32 3, %897
  store i32 %898, ptr %10, align 4, !tbaa !13
  store i32 17, ptr %42, align 4
  br label %900

899:                                              ; preds = %880
  store i32 0, ptr %42, align 4
  br label %900

900:                                              ; preds = %899, %883
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #4
  %901 = load i32, ptr %42, align 4
  switch i32 %901, label %1661 [
    i32 0, label %902
    i32 17, label %1619
  ]

902:                                              ; preds = %900
  br label %903

903:                                              ; preds = %902, %808
  %904 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %904, ptr %8, align 8, !tbaa !5
  %905 = load i8, ptr %21, align 1, !tbaa !9
  %906 = zext i8 %905 to i32
  %907 = icmp ne i32 %906, 1
  br i1 %907, label %908, label %921

908:                                              ; preds = %903
  %909 = load double, ptr %33, align 8, !tbaa !37
  %910 = fpext double %909 to x86_fp80
  %911 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %912 = fadd x86_fp80 %911, %910
  store x86_fp80 %912, ptr %25, align 16, !tbaa !35
  %913 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %914 = fcmp oge x86_fp80 %913, 0xK4002A000000000000000
  br i1 %914, label %915, label %920

915:                                              ; preds = %908
  %916 = load x86_fp80, ptr %25, align 16, !tbaa !35
  %917 = fmul x86_fp80 %916, 0xK3FFBCCCCCCCCCCCCD000
  store x86_fp80 %917, ptr %25, align 16, !tbaa !35
  %918 = load i32, ptr %30, align 4, !tbaa !13
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr %30, align 4, !tbaa !13
  br label %920

920:                                              ; preds = %915, %908
  br label %921

921:                                              ; preds = %920, %903
  %922 = load i8, ptr %21, align 1, !tbaa !9
  %923 = zext i8 %922 to i32
  %924 = icmp eq i32 %923, 3
  br i1 %924, label %925, label %943

925:                                              ; preds = %921
  %926 = load i8, ptr %15, align 1, !tbaa !9
  %927 = icmp ne i8 %926, 0
  %928 = xor i1 %927, true
  %929 = zext i1 %928 to i32
  %930 = trunc i32 %929 to i8
  store i8 %930, ptr %35, align 1, !tbaa !9
  %931 = load i32, ptr %30, align 4, !tbaa !13
  %932 = icmp slt i32 %931, -4
  br i1 %932, label %937, label %933

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

937:                                              ; preds = %933, %925
  store i8 2, ptr %21, align 1, !tbaa !9
  br label %942

938:                                              ; preds = %933
  %939 = load i32, ptr %9, align 4, !tbaa !13
  %940 = load i32, ptr %30, align 4, !tbaa !13
  %941 = sub nsw i32 %939, %940
  store i32 %941, ptr %9, align 4, !tbaa !13
  store i8 1, ptr %21, align 1, !tbaa !9
  br label %942

942:                                              ; preds = %938, %937
  br label %945

943:                                              ; preds = %921
  %944 = load i8, ptr %16, align 1, !tbaa !9
  store i8 %944, ptr %35, align 1, !tbaa !9
  br label %945

945:                                              ; preds = %943, %942
  %946 = load i8, ptr %21, align 1, !tbaa !9
  %947 = zext i8 %946 to i32
  %948 = icmp eq i32 %947, 2
  br i1 %948, label %949, label %950

949:                                              ; preds = %945
  store i32 0, ptr %31, align 4, !tbaa !13
  br label %952

950:                                              ; preds = %945
  %951 = load i32, ptr %30, align 4, !tbaa !13
  store i32 %951, ptr %31, align 4, !tbaa !13
  br label %952

952:                                              ; preds = %950, %949
  %953 = load i32, ptr %31, align 4, !tbaa !13
  %954 = icmp sgt i32 %953, 0
  br i1 %954, label %955, label %957

955:                                              ; preds = %952
  %956 = load i32, ptr %31, align 4, !tbaa !13
  br label %958

957:                                              ; preds = %952
  br label %958

958:                                              ; preds = %957, %955
  %959 = phi i32 [ %956, %955 ], [ 0, %957 ]
  %960 = sext i32 %959 to i64
  %961 = load i32, ptr %9, align 4, !tbaa !13
  %962 = sext i32 %961 to i64
  %963 = add nsw i64 %960, %962
  %964 = load i32, ptr %12, align 4, !tbaa !13
  %965 = sext i32 %964 to i64
  %966 = add nsw i64 %963, %965
  %967 = icmp sgt i64 %966, 55
  br i1 %967, label %968, label %990

968:                                              ; preds = %958
  %969 = load i32, ptr %31, align 4, !tbaa !13
  %970 = icmp sgt i32 %969, 0
  br i1 %970, label %971, label %973

971:                                              ; preds = %968
  %972 = load i32, ptr %31, align 4, !tbaa !13
  br label %974

973:                                              ; preds = %968
  br label %974

974:                                              ; preds = %973, %971
  %975 = phi i32 [ %972, %971 ], [ 0, %973 ]
  %976 = sext i32 %975 to i64
  %977 = load i32, ptr %9, align 4, !tbaa !13
  %978 = sext i32 %977 to i64
  %979 = add nsw i64 %976, %978
  %980 = load i32, ptr %12, align 4, !tbaa !13
  %981 = sext i32 %980 to i64
  %982 = add nsw i64 %979, %981
  %983 = add nsw i64 %982, 15
  %984 = call ptr @sqlite3Malloc(i64 noundef %983)
  store ptr %984, ptr %29, align 8, !tbaa !5
  store ptr %984, ptr %8, align 8, !tbaa !5
  %985 = load ptr, ptr %8, align 8, !tbaa !5
  %986 = icmp eq ptr %985, null
  br i1 %986, label %987, label %989

987:                                              ; preds = %974
  %988 = load ptr, ptr %4, align 8, !tbaa !5
  call void @setStrAccumError(ptr noundef %988, i8 noundef zeroext 1)
  store i32 1, ptr %42, align 4
  br label %1658

989:                                              ; preds = %974
  br label %990

990:                                              ; preds = %989, %958
  %991 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %991, ptr %27, align 8, !tbaa !5
  %992 = load i8, ptr %16, align 1, !tbaa !9
  %993 = zext i8 %992 to i32
  %994 = mul nsw i32 %993, 10
  %995 = add nsw i32 16, %994
  store i32 %995, ptr %32, align 4, !tbaa !13
  %996 = load i32, ptr %9, align 4, !tbaa !13
  %997 = icmp sgt i32 %996, 0
  %998 = zext i1 %997 to i64
  %999 = select i1 %997, i32 1, i32 0
  %1000 = load i8, ptr %15, align 1, !tbaa !9
  %1001 = zext i8 %1000 to i32
  %1002 = or i32 %999, %1001
  %1003 = load i8, ptr %16, align 1, !tbaa !9
  %1004 = zext i8 %1003 to i32
  %1005 = or i32 %1002, %1004
  %1006 = trunc i32 %1005 to i8
  store i8 %1006, ptr %34, align 1, !tbaa !9
  %1007 = load i8, ptr %23, align 1, !tbaa !9
  %1008 = icmp ne i8 %1007, 0
  br i1 %1008, label %1009, label %1013

1009:                                             ; preds = %990
  %1010 = load i8, ptr %23, align 1, !tbaa !9
  %1011 = load ptr, ptr %8, align 8, !tbaa !5
  %1012 = getelementptr inbounds i8, ptr %1011, i32 1
  store ptr %1012, ptr %8, align 8, !tbaa !5
  store i8 %1010, ptr %1011, align 1, !tbaa !9
  br label %1013

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

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

1019:                                             ; preds = %1013
  br label %1020

1020:                                             ; preds = %1027, %1019
  %1021 = load i32, ptr %31, align 4, !tbaa !13
  %1022 = icmp sge i32 %1021, 0
  br i1 %1022, label %1023, label %1030

1023:                                             ; preds = %1020
  %1024 = call signext i8 @et_getdigit(ptr noundef %25, ptr noundef %32)
  %1025 = load ptr, ptr %8, align 8, !tbaa !5
  %1026 = getelementptr inbounds i8, ptr %1025, i32 1
  store ptr %1026, ptr %8, align 8, !tbaa !5
  store i8 %1024, ptr %1025, align 1, !tbaa !9
  br label %1027

1027:                                             ; preds = %1023
  %1028 = load i32, ptr %31, align 4, !tbaa !13
  %1029 = add nsw i32 %1028, -1
  store i32 %1029, ptr %31, align 4, !tbaa !13
  br label %1020, !llvm.loop !45

1030:                                             ; preds = %1020
  br label %1031

1031:                                             ; preds = %1030, %1016
  %1032 = load i8, ptr %34, align 1, !tbaa !9
  %1033 = icmp ne i8 %1032, 0
  br i1 %1033, label %1034, label %1037

1034:                                             ; preds = %1031
  %1035 = load ptr, ptr %8, align 8, !tbaa !5
  %1036 = getelementptr inbounds i8, ptr %1035, i32 1
  store ptr %1036, ptr %8, align 8, !tbaa !5
  store i8 46, ptr %1035, align 1, !tbaa !9
  br label %1037

1037:                                             ; preds = %1034, %1031
  %1038 = load i32, ptr %31, align 4, !tbaa !13
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr %31, align 4, !tbaa !13
  br label %1040

1040:                                             ; preds = %1046, %1037
  %1041 = load i32, ptr %31, align 4, !tbaa !13
  %1042 = icmp slt i32 %1041, 0
  br i1 %1042, label %1043, label %1051

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

1046:                                             ; preds = %1043
  %1047 = load i32, ptr %9, align 4, !tbaa !13
  %1048 = add nsw i32 %1047, -1
  store i32 %1048, ptr %9, align 4, !tbaa !13
  %1049 = load i32, ptr %31, align 4, !tbaa !13
  %1050 = add nsw i32 %1049, 1
  store i32 %1050, ptr %31, align 4, !tbaa !13
  br label %1040, !llvm.loop !46

1051:                                             ; preds = %1040
  br label %1052

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

1056:                                             ; preds = %1052
  %1057 = call signext i8 @et_getdigit(ptr noundef %25, ptr noundef %32)
  %1058 = load ptr, ptr %8, align 8, !tbaa !5
  %1059 = getelementptr inbounds i8, ptr %1058, i32 1
  store ptr %1059, ptr %8, align 8, !tbaa !5
  store i8 %1057, ptr %1058, align 1, !tbaa !9
  br label %1052, !llvm.loop !47

1060:                                             ; preds = %1052
  %1061 = load i8, ptr %35, align 1, !tbaa !9
  %1062 = zext i8 %1061 to i32
  %1063 = icmp ne i32 %1062, 0
  br i1 %1063, label %1064, label %1095

1064:                                             ; preds = %1060
  %1065 = load i8, ptr %34, align 1, !tbaa !9
  %1066 = zext i8 %1065 to i32
  %1067 = icmp ne i32 %1066, 0
  br i1 %1067, label %1068, label %1095

1068:                                             ; preds = %1064
  br label %1069

1069:                                             ; preds = %1075, %1068
  %1070 = load ptr, ptr %8, align 8, !tbaa !5
  %1071 = getelementptr inbounds i8, ptr %1070, i64 -1
  %1072 = load i8, ptr %1071, align 1, !tbaa !9
  %1073 = sext i8 %1072 to i32
  %1074 = icmp eq i32 %1073, 48
  br i1 %1074, label %1075, label %1078

1075:                                             ; preds = %1069
  %1076 = load ptr, ptr %8, align 8, !tbaa !5
  %1077 = getelementptr inbounds i8, ptr %1076, i32 -1
  store ptr %1077, ptr %8, align 8, !tbaa !5
  store i8 0, ptr %1077, align 1, !tbaa !9
  br label %1069, !llvm.loop !48

1078:                                             ; preds = %1069
  %1079 = load ptr, ptr %8, align 8, !tbaa !5
  %1080 = getelementptr inbounds i8, ptr %1079, i64 -1
  %1081 = load i8, ptr %1080, align 1, !tbaa !9
  %1082 = sext i8 %1081 to i32
  %1083 = icmp eq i32 %1082, 46
  br i1 %1083, label %1084, label %1094

1084:                                             ; preds = %1078
  %1085 = load i8, ptr %16, align 1, !tbaa !9
  %1086 = icmp ne i8 %1085, 0
  br i1 %1086, label %1087, label %1090

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

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

1093:                                             ; preds = %1090, %1087
  br label %1094

1094:                                             ; preds = %1093, %1078
  br label %1095

1095:                                             ; preds = %1094, %1064, %1060
  %1096 = load i8, ptr %21, align 1, !tbaa !9
  %1097 = zext i8 %1096 to i32
  %1098 = icmp eq i32 %1097, 2
  br i1 %1098, label %1099, label %1143

1099:                                             ; preds = %1095
  %1100 = load ptr, ptr %26, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.et_info, ptr %1100, i32 0, i32 4
  %1102 = load i8, ptr %1101, align 1, !tbaa !28
  %1103 = zext i8 %1102 to i64
  %1104 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %1103
  %1105 = load i8, ptr %1104, align 1, !tbaa !9
  %1106 = load ptr, ptr %8, align 8, !tbaa !5
  %1107 = getelementptr inbounds i8, ptr %1106, i32 1
  store ptr %1107, ptr %8, align 8, !tbaa !5
  store i8 %1105, ptr %1106, align 1, !tbaa !9
  %1108 = load i32, ptr %30, align 4, !tbaa !13
  %1109 = icmp slt i32 %1108, 0
  br i1 %1109, label %1110, label %1115

1110:                                             ; preds = %1099
  %1111 = load ptr, ptr %8, align 8, !tbaa !5
  %1112 = getelementptr inbounds i8, ptr %1111, i32 1
  store ptr %1112, ptr %8, align 8, !tbaa !5
  store i8 45, ptr %1111, align 1, !tbaa !9
  %1113 = load i32, ptr %30, align 4, !tbaa !13
  %1114 = sub nsw i32 0, %1113
  store i32 %1114, ptr %30, align 4, !tbaa !13
  br label %1118

1115:                                             ; preds = %1099
  %1116 = load ptr, ptr %8, align 8, !tbaa !5
  %1117 = getelementptr inbounds i8, ptr %1116, i32 1
  store ptr %1117, ptr %8, align 8, !tbaa !5
  store i8 43, ptr %1116, align 1, !tbaa !9
  br label %1118

1118:                                             ; preds = %1115, %1110
  %1119 = load i32, ptr %30, align 4, !tbaa !13
  %1120 = icmp sge i32 %1119, 100
  br i1 %1120, label %1121, label %1130

1121:                                             ; preds = %1118
  %1122 = load i32, ptr %30, align 4, !tbaa !13
  %1123 = sdiv i32 %1122, 100
  %1124 = add nsw i32 %1123, 48
  %1125 = trunc i32 %1124 to i8
  %1126 = load ptr, ptr %8, align 8, !tbaa !5
  %1127 = getelementptr inbounds i8, ptr %1126, i32 1
  store ptr %1127, ptr %8, align 8, !tbaa !5
  store i8 %1125, ptr %1126, align 1, !tbaa !9
  %1128 = load i32, ptr %30, align 4, !tbaa !13
  %1129 = srem i32 %1128, 100
  store i32 %1129, ptr %30, align 4, !tbaa !13
  br label %1130

1130:                                             ; preds = %1121, %1118
  %1131 = load i32, ptr %30, align 4, !tbaa !13
  %1132 = sdiv i32 %1131, 10
  %1133 = add nsw i32 %1132, 48
  %1134 = trunc i32 %1133 to i8
  %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 %1134, ptr %1135, align 1, !tbaa !9
  %1137 = load i32, ptr %30, align 4, !tbaa !13
  %1138 = srem i32 %1137, 10
  %1139 = add nsw i32 %1138, 48
  %1140 = trunc i32 %1139 to i8
  %1141 = load ptr, ptr %8, align 8, !tbaa !5
  %1142 = getelementptr inbounds i8, ptr %1141, i32 1
  store ptr %1142, ptr %8, align 8, !tbaa !5
  store i8 %1140, ptr %1141, align 1, !tbaa !9
  br label %1143

1143:                                             ; preds = %1130, %1095
  %1144 = load ptr, ptr %8, align 8, !tbaa !5
  store i8 0, ptr %1144, align 1, !tbaa !9
  %1145 = load ptr, ptr %8, align 8, !tbaa !5
  %1146 = load ptr, ptr %27, align 8, !tbaa !5
  %1147 = ptrtoint ptr %1145 to i64
  %1148 = ptrtoint ptr %1146 to i64
  %1149 = sub i64 %1147, %1148
  %1150 = trunc i64 %1149 to i32
  store i32 %1150, ptr %10, align 4, !tbaa !13
  %1151 = load ptr, ptr %27, align 8, !tbaa !5
  store ptr %1151, ptr %8, align 8, !tbaa !5
  %1152 = load i8, ptr %17, align 1, !tbaa !9
  %1153 = zext i8 %1152 to i32
  %1154 = icmp ne i32 %1153, 0
  br i1 %1154, label %1155, label %1203

1155:                                             ; preds = %1143
  %1156 = load i8, ptr %13, align 1, !tbaa !9
  %1157 = icmp ne i8 %1156, 0
  br i1 %1157, label %1203, label %1158

1158:                                             ; preds = %1155
  %1159 = load i32, ptr %10, align 4, !tbaa !13
  %1160 = load i32, ptr %12, align 4, !tbaa !13
  %1161 = icmp slt i32 %1159, %1160
  br i1 %1161, label %1162, label %1203

1162:                                             ; preds = %1158
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  %1163 = load i32, ptr %12, align 4, !tbaa !13
  %1164 = load i32, ptr %10, align 4, !tbaa !13
  %1165 = sub nsw i32 %1163, %1164
  store i32 %1165, ptr %52, align 4, !tbaa !13
  %1166 = load i32, ptr %12, align 4, !tbaa !13
  store i32 %1166, ptr %51, align 4, !tbaa !13
  br label %1167

1167:                                             ; preds = %1183, %1162
  %1168 = load i32, ptr %51, align 4, !tbaa !13
  %1169 = load i32, ptr %52, align 4, !tbaa !13
  %1170 = icmp sge i32 %1168, %1169
  br i1 %1170, label %1171, label %1186

1171:                                             ; preds = %1167
  %1172 = load ptr, ptr %8, align 8, !tbaa !5
  %1173 = load i32, ptr %51, align 4, !tbaa !13
  %1174 = load i32, ptr %52, align 4, !tbaa !13
  %1175 = sub nsw i32 %1173, %1174
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds i8, ptr %1172, i64 %1176
  %1178 = load i8, ptr %1177, align 1, !tbaa !9
  %1179 = load ptr, ptr %8, align 8, !tbaa !5
  %1180 = load i32, ptr %51, align 4, !tbaa !13
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds i8, ptr %1179, i64 %1181
  store i8 %1178, ptr %1182, align 1, !tbaa !9
  br label %1183

1183:                                             ; preds = %1171
  %1184 = load i32, ptr %51, align 4, !tbaa !13
  %1185 = add nsw i32 %1184, -1
  store i32 %1185, ptr %51, align 4, !tbaa !13
  br label %1167, !llvm.loop !49

1186:                                             ; preds = %1167
  %1187 = load i8, ptr %23, align 1, !tbaa !9
  %1188 = sext i8 %1187 to i32
  %1189 = icmp ne i32 %1188, 0
  %1190 = zext i1 %1189 to i32
  store i32 %1190, ptr %51, align 4, !tbaa !13
  br label %1191

1191:                                             ; preds = %1195, %1186
  %1192 = load i32, ptr %52, align 4, !tbaa !13
  %1193 = add nsw i32 %1192, -1
  store i32 %1193, ptr %52, align 4, !tbaa !13
  %1194 = icmp ne i32 %1192, 0
  br i1 %1194, label %1195, label %1201

1195:                                             ; preds = %1191
  %1196 = load ptr, ptr %8, align 8, !tbaa !5
  %1197 = load i32, ptr %51, align 4, !tbaa !13
  %1198 = add nsw i32 %1197, 1
  store i32 %1198, ptr %51, align 4, !tbaa !13
  %1199 = sext i32 %1197 to i64
  %1200 = getelementptr inbounds i8, ptr %1196, i64 %1199
  store i8 48, ptr %1200, align 1, !tbaa !9
  br label %1191, !llvm.loop !50

1201:                                             ; preds = %1191
  %1202 = load i32, ptr %12, align 4, !tbaa !13
  store i32 %1202, ptr %10, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  br label %1203

1203:                                             ; preds = %1201, %1158, %1155, %1143
  br label %1619

1204:                                             ; preds = %344
  %1205 = load i8, ptr %22, align 1, !tbaa !9
  %1206 = icmp ne i8 %1205, 0
  br i1 %1206, label %1227, label %1207

1207:                                             ; preds = %1204
  %1208 = load ptr, ptr %4, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.StrAccum, ptr %1208, i32 0, i32 3
  %1210 = load i32, ptr %1209, align 8, !tbaa !51
  %1211 = load ptr, ptr %6, align 8, !tbaa !5
  %1212 = getelementptr inbounds %struct.__va_list_tag, ptr %1211, i32 0, i32 0
  %1213 = load i32, ptr %1212, align 8
  %1214 = icmp ule i32 %1213, 40
  br i1 %1214, label %1215, label %1220

1215:                                             ; preds = %1207
  %1216 = getelementptr inbounds %struct.__va_list_tag, ptr %1211, i32 0, i32 3
  %1217 = load ptr, ptr %1216, align 8
  %1218 = getelementptr i8, ptr %1217, i32 %1213
  %1219 = add i32 %1213, 8
  store i32 %1219, ptr %1212, align 8
  br label %1224

1220:                                             ; preds = %1207
  %1221 = getelementptr inbounds %struct.__va_list_tag, ptr %1211, i32 0, i32 2
  %1222 = load ptr, ptr %1221, align 8
  %1223 = getelementptr i8, ptr %1222, i32 8
  store ptr %1223, ptr %1221, align 8
  br label %1224

1224:                                             ; preds = %1220, %1215
  %1225 = phi ptr [ %1218, %1215 ], [ %1222, %1220 ]
  %1226 = load ptr, ptr %1225, align 8, !tbaa !5
  store i32 %1210, ptr %1226, align 4, !tbaa !13
  br label %1227

1227:                                             ; preds = %1224, %1204
  store i32 0, ptr %12, align 4, !tbaa !13
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1619

1228:                                             ; preds = %344
  %1229 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 37, ptr %1229, align 16, !tbaa !9
  %1230 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1230, ptr %8, align 8, !tbaa !5
  store i32 1, ptr %10, align 4, !tbaa !13
  br label %1619

1231:                                             ; preds = %344
  %1232 = load i8, ptr %22, align 1, !tbaa !9
  %1233 = icmp ne i8 %1232, 0
  br i1 %1233, label %1234, label %1247

1234:                                             ; preds = %1231
  %1235 = load ptr, ptr %36, align 8, !tbaa !5
  %1236 = call ptr @getTextArg(ptr noundef %1235)
  store ptr %1236, ptr %8, align 8, !tbaa !5
  %1237 = load ptr, ptr %8, align 8, !tbaa !5
  %1238 = icmp ne ptr %1237, null
  br i1 %1238, label %1239, label %1244

1239:                                             ; preds = %1234
  %1240 = load ptr, ptr %8, align 8, !tbaa !5
  %1241 = getelementptr inbounds i8, ptr %1240, i64 0
  %1242 = load i8, ptr %1241, align 1, !tbaa !9
  %1243 = sext i8 %1242 to i32
  br label %1245

1244:                                             ; preds = %1234
  br label %1245

1245:                                             ; preds = %1244, %1239
  %1246 = phi i32 [ %1243, %1239 ], [ 0, %1244 ]
  store i32 %1246, ptr %7, align 4, !tbaa !13
  br label %1264

1247:                                             ; preds = %1231
  %1248 = load ptr, ptr %6, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.__va_list_tag, ptr %1248, i32 0, i32 0
  %1250 = load i32, ptr %1249, align 8
  %1251 = icmp ule i32 %1250, 40
  br i1 %1251, label %1252, label %1257

1252:                                             ; preds = %1247
  %1253 = getelementptr inbounds %struct.__va_list_tag, ptr %1248, i32 0, i32 3
  %1254 = load ptr, ptr %1253, align 8
  %1255 = getelementptr i8, ptr %1254, i32 %1250
  %1256 = add i32 %1250, 8
  store i32 %1256, ptr %1249, align 8
  br label %1261

1257:                                             ; preds = %1247
  %1258 = getelementptr inbounds %struct.__va_list_tag, ptr %1248, i32 0, i32 2
  %1259 = load ptr, ptr %1258, align 8
  %1260 = getelementptr i8, ptr %1259, i32 8
  store ptr %1260, ptr %1258, align 8
  br label %1261

1261:                                             ; preds = %1257, %1252
  %1262 = phi ptr [ %1255, %1252 ], [ %1259, %1257 ]
  %1263 = load i32, ptr %1262, align 4, !tbaa !13
  store i32 %1263, ptr %7, align 4, !tbaa !13
  br label %1264

1264:                                             ; preds = %1261, %1245
  %1265 = load i32, ptr %9, align 4, !tbaa !13
  %1266 = icmp sgt i32 %1265, 1
  br i1 %1266, label %1267, label %1287

1267:                                             ; preds = %1264
  %1268 = load i32, ptr %9, align 4, !tbaa !13
  %1269 = sub nsw i32 %1268, 1
  %1270 = load i32, ptr %12, align 4, !tbaa !13
  %1271 = sub nsw i32 %1270, %1269
  store i32 %1271, ptr %12, align 4, !tbaa !13
  %1272 = load i32, ptr %12, align 4, !tbaa !13
  %1273 = icmp sgt i32 %1272, 1
  br i1 %1273, label %1274, label %1281

1274:                                             ; preds = %1267
  %1275 = load i8, ptr %13, align 1, !tbaa !9
  %1276 = icmp ne i8 %1275, 0
  br i1 %1276, label %1281, label %1277

1277:                                             ; preds = %1274
  %1278 = load ptr, ptr %4, align 8, !tbaa !5
  %1279 = load i32, ptr %12, align 4, !tbaa !13
  %1280 = sub nsw i32 %1279, 1
  call void @sqlite3AppendChar(ptr noundef %1278, i32 noundef %1280, i8 noundef signext 32)
  store i32 0, ptr %12, align 4, !tbaa !13
  br label %1281

1281:                                             ; preds = %1277, %1274, %1267
  %1282 = load ptr, ptr %4, align 8, !tbaa !5
  %1283 = load i32, ptr %9, align 4, !tbaa !13
  %1284 = sub nsw i32 %1283, 1
  %1285 = load i32, ptr %7, align 4, !tbaa !13
  %1286 = trunc i32 %1285 to i8
  call void @sqlite3AppendChar(ptr noundef %1282, i32 noundef %1284, i8 noundef signext %1286)
  br label %1287

1287:                                             ; preds = %1281, %1264
  store i32 1, ptr %10, align 4, !tbaa !13
  %1288 = load i32, ptr %7, align 4, !tbaa !13
  %1289 = trunc i32 %1288 to i8
  %1290 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store i8 %1289, ptr %1290, align 16, !tbaa !9
  %1291 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1291, ptr %8, align 8, !tbaa !5
  br label %1619

1292:                                             ; preds = %344, %344
  %1293 = load i8, ptr %22, align 1, !tbaa !9
  %1294 = icmp ne i8 %1293, 0
  br i1 %1294, label %1295, label %1298

1295:                                             ; preds = %1292
  %1296 = load ptr, ptr %36, align 8, !tbaa !5
  %1297 = call ptr @getTextArg(ptr noundef %1296)
  store ptr %1297, ptr %8, align 8, !tbaa !5
  store i8 5, ptr %21, align 1, !tbaa !9
  br label %1315

1298:                                             ; preds = %1292
  %1299 = load ptr, ptr %6, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.__va_list_tag, ptr %1299, i32 0, i32 0
  %1301 = load i32, ptr %1300, align 8
  %1302 = icmp ule i32 %1301, 40
  br i1 %1302, label %1303, label %1308

1303:                                             ; preds = %1298
  %1304 = getelementptr inbounds %struct.__va_list_tag, ptr %1299, i32 0, i32 3
  %1305 = load ptr, ptr %1304, align 8
  %1306 = getelementptr i8, ptr %1305, i32 %1301
  %1307 = add i32 %1301, 8
  store i32 %1307, ptr %1300, align 8
  br label %1312

1308:                                             ; preds = %1298
  %1309 = getelementptr inbounds %struct.__va_list_tag, ptr %1299, i32 0, i32 2
  %1310 = load ptr, ptr %1309, align 8
  %1311 = getelementptr i8, ptr %1310, i32 8
  store ptr %1311, ptr %1309, align 8
  br label %1312

1312:                                             ; preds = %1308, %1303
  %1313 = phi ptr [ %1306, %1303 ], [ %1310, %1308 ]
  %1314 = load ptr, ptr %1313, align 8, !tbaa !5
  store ptr %1314, ptr %8, align 8, !tbaa !5
  br label %1315

1315:                                             ; preds = %1312, %1295
  %1316 = load ptr, ptr %8, align 8, !tbaa !5
  %1317 = icmp eq ptr %1316, null
  br i1 %1317, label %1318, label %1319

1318:                                             ; preds = %1315
  store ptr @.str.3, ptr %8, align 8, !tbaa !5
  br label %1326

1319:                                             ; preds = %1315
  %1320 = load i8, ptr %21, align 1, !tbaa !9
  %1321 = zext i8 %1320 to i32
  %1322 = icmp eq i32 %1321, 6
  br i1 %1322, label %1323, label %1325

1323:                                             ; preds = %1319
  %1324 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1324, ptr %29, align 8, !tbaa !5
  br label %1325

1325:                                             ; preds = %1323, %1319
  br label %1326

1326:                                             ; preds = %1325, %1318
  %1327 = load i32, ptr %9, align 4, !tbaa !13
  %1328 = icmp sge i32 %1327, 0
  br i1 %1328, label %1329, label %1349

1329:                                             ; preds = %1326
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1330

1330:                                             ; preds = %1345, %1329
  %1331 = load i32, ptr %10, align 4, !tbaa !13
  %1332 = load i32, ptr %9, align 4, !tbaa !13
  %1333 = icmp slt i32 %1331, %1332
  br i1 %1333, label %1334, label %1342

1334:                                             ; preds = %1330
  %1335 = load ptr, ptr %8, align 8, !tbaa !5
  %1336 = load i32, ptr %10, align 4, !tbaa !13
  %1337 = sext i32 %1336 to i64
  %1338 = getelementptr inbounds i8, ptr %1335, i64 %1337
  %1339 = load i8, ptr %1338, align 1, !tbaa !9
  %1340 = sext i8 %1339 to i32
  %1341 = icmp ne i32 %1340, 0
  br label %1342

1342:                                             ; preds = %1334, %1330
  %1343 = phi i1 [ false, %1330 ], [ %1341, %1334 ]
  br i1 %1343, label %1344, label %1348

1344:                                             ; preds = %1342
  br label %1345

1345:                                             ; preds = %1344
  %1346 = load i32, ptr %10, align 4, !tbaa !13
  %1347 = add nsw i32 %1346, 1
  store i32 %1347, ptr %10, align 4, !tbaa !13
  br label %1330, !llvm.loop !52

1348:                                             ; preds = %1342
  br label %1352

1349:                                             ; preds = %1326
  %1350 = load ptr, ptr %8, align 8, !tbaa !5
  %1351 = call i32 @sqlite3Strlen30(ptr noundef %1350)
  store i32 %1351, ptr %10, align 4, !tbaa !13
  br label %1352

1352:                                             ; preds = %1349, %1348
  br label %1619

1353:                                             ; preds = %344, %344, %344
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #4
  %1354 = load i8, ptr %21, align 1, !tbaa !9
  %1355 = zext i8 %1354 to i32
  %1356 = icmp eq i32 %1355, 14
  %1357 = zext i1 %1356 to i64
  %1358 = select i1 %1356, i32 34, i32 39
  %1359 = trunc i32 %1358 to i8
  store i8 %1359, ptr %60, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #4
  %1360 = load i8, ptr %22, align 1, !tbaa !9
  %1361 = icmp ne i8 %1360, 0
  br i1 %1361, label %1362, label %1365

1362:                                             ; preds = %1353
  %1363 = load ptr, ptr %36, align 8, !tbaa !5
  %1364 = call ptr @getTextArg(ptr noundef %1363)
  store ptr %1364, ptr %61, align 8, !tbaa !5
  br label %1382

1365:                                             ; preds = %1353
  %1366 = load ptr, ptr %6, align 8, !tbaa !5
  %1367 = getelementptr inbounds %struct.__va_list_tag, ptr %1366, i32 0, i32 0
  %1368 = load i32, ptr %1367, align 8
  %1369 = icmp ule i32 %1368, 40
  br i1 %1369, label %1370, label %1375

1370:                                             ; preds = %1365
  %1371 = getelementptr inbounds %struct.__va_list_tag, ptr %1366, i32 0, i32 3
  %1372 = load ptr, ptr %1371, align 8
  %1373 = getelementptr i8, ptr %1372, i32 %1368
  %1374 = add i32 %1368, 8
  store i32 %1374, ptr %1367, align 8
  br label %1379

1375:                                             ; preds = %1365
  %1376 = getelementptr inbounds %struct.__va_list_tag, ptr %1366, i32 0, i32 2
  %1377 = load ptr, ptr %1376, align 8
  %1378 = getelementptr i8, ptr %1377, i32 8
  store ptr %1378, ptr %1376, align 8
  br label %1379

1379:                                             ; preds = %1375, %1370
  %1380 = phi ptr [ %1373, %1370 ], [ %1377, %1375 ]
  %1381 = load ptr, ptr %1380, align 8, !tbaa !5
  store ptr %1381, ptr %61, align 8, !tbaa !5
  br label %1382

1382:                                             ; preds = %1379, %1362
  %1383 = load ptr, ptr %61, align 8, !tbaa !5
  %1384 = icmp eq ptr %1383, null
  %1385 = zext i1 %1384 to i32
  store i32 %1385, ptr %57, align 4, !tbaa !13
  %1386 = load i32, ptr %57, align 4, !tbaa !13
  %1387 = icmp ne i32 %1386, 0
  br i1 %1387, label %1388, label %1394

1388:                                             ; preds = %1382
  %1389 = load i8, ptr %21, align 1, !tbaa !9
  %1390 = zext i8 %1389 to i32
  %1391 = icmp eq i32 %1390, 10
  %1392 = zext i1 %1391 to i64
  %1393 = select i1 %1391, ptr @.str.4, ptr @.str.5
  store ptr %1393, ptr %61, align 8, !tbaa !5
  br label %1394

1394:                                             ; preds = %1388, %1382
  %1395 = load i32, ptr %9, align 4, !tbaa !13
  store i32 %1395, ptr %55, align 4, !tbaa !13
  store i32 0, ptr %56, align 4, !tbaa !13
  store i32 0, ptr %53, align 4, !tbaa !13
  br label %1396

1396:                                             ; preds = %1419, %1394
  %1397 = load i32, ptr %55, align 4, !tbaa !13
  %1398 = icmp ne i32 %1397, 0
  br i1 %1398, label %1399, label %1407

1399:                                             ; preds = %1396
  %1400 = load ptr, ptr %61, align 8, !tbaa !5
  %1401 = load i32, ptr %53, align 4, !tbaa !13
  %1402 = sext i32 %1401 to i64
  %1403 = getelementptr inbounds i8, ptr %1400, i64 %1402
  %1404 = load i8, ptr %1403, align 1, !tbaa !9
  store i8 %1404, ptr %59, align 1, !tbaa !9
  %1405 = sext i8 %1404 to i32
  %1406 = icmp ne i32 %1405, 0
  br label %1407

1407:                                             ; preds = %1399, %1396
  %1408 = phi i1 [ false, %1396 ], [ %1406, %1399 ]
  br i1 %1408, label %1409, label %1424

1409:                                             ; preds = %1407
  %1410 = load i8, ptr %59, align 1, !tbaa !9
  %1411 = sext i8 %1410 to i32
  %1412 = load i8, ptr %60, align 1, !tbaa !9
  %1413 = sext i8 %1412 to i32
  %1414 = icmp eq i32 %1411, %1413
  br i1 %1414, label %1415, label %1418

1415:                                             ; preds = %1409
  %1416 = load i32, ptr %56, align 4, !tbaa !13
  %1417 = add nsw i32 %1416, 1
  store i32 %1417, ptr %56, align 4, !tbaa !13
  br label %1418

1418:                                             ; preds = %1415, %1409
  br label %1419

1419:                                             ; preds = %1418
  %1420 = load i32, ptr %53, align 4, !tbaa !13
  %1421 = add nsw i32 %1420, 1
  store i32 %1421, ptr %53, align 4, !tbaa !13
  %1422 = load i32, ptr %55, align 4, !tbaa !13
  %1423 = add nsw i32 %1422, -1
  store i32 %1423, ptr %55, align 4, !tbaa !13
  br label %1396, !llvm.loop !53

1424:                                             ; preds = %1407
  %1425 = load i32, ptr %57, align 4, !tbaa !13
  %1426 = icmp ne i32 %1425, 0
  br i1 %1426, label %1431, label %1427

1427:                                             ; preds = %1424
  %1428 = load i8, ptr %21, align 1, !tbaa !9
  %1429 = zext i8 %1428 to i32
  %1430 = icmp eq i32 %1429, 10
  br label %1431

1431:                                             ; preds = %1427, %1424
  %1432 = phi i1 [ false, %1424 ], [ %1430, %1427 ]
  %1433 = zext i1 %1432 to i32
  store i32 %1433, ptr %58, align 4, !tbaa !13
  %1434 = load i32, ptr %53, align 4, !tbaa !13
  %1435 = add nsw i32 %1434, 3
  %1436 = load i32, ptr %56, align 4, !tbaa !13
  %1437 = add nsw i32 %1436, %1435
  store i32 %1437, ptr %56, align 4, !tbaa !13
  %1438 = load i32, ptr %56, align 4, !tbaa !13
  %1439 = icmp sgt i32 %1438, 70
  br i1 %1439, label %1440, label %1449

1440:                                             ; preds = %1431
  %1441 = load i32, ptr %56, align 4, !tbaa !13
  %1442 = sext i32 %1441 to i64
  %1443 = call ptr @sqlite3Malloc(i64 noundef %1442)
  store ptr %1443, ptr %29, align 8, !tbaa !5
  store ptr %1443, ptr %8, align 8, !tbaa !5
  %1444 = load ptr, ptr %8, align 8, !tbaa !5
  %1445 = icmp eq ptr %1444, null
  br i1 %1445, label %1446, label %1448

1446:                                             ; preds = %1440
  %1447 = load ptr, ptr %4, align 8, !tbaa !5
  call void @setStrAccumError(ptr noundef %1447, i8 noundef zeroext 1)
  store i32 1, ptr %42, align 4
  br label %1510

1448:                                             ; preds = %1440
  br label %1451

1449:                                             ; preds = %1431
  %1450 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1450, ptr %8, align 8, !tbaa !5
  br label %1451

1451:                                             ; preds = %1449, %1448
  store i32 0, ptr %54, align 4, !tbaa !13
  %1452 = load i32, ptr %58, align 4, !tbaa !13
  %1453 = icmp ne i32 %1452, 0
  br i1 %1453, label %1454, label %1461

1454:                                             ; preds = %1451
  %1455 = load i8, ptr %60, align 1, !tbaa !9
  %1456 = load ptr, ptr %8, align 8, !tbaa !5
  %1457 = load i32, ptr %54, align 4, !tbaa !13
  %1458 = add nsw i32 %1457, 1
  store i32 %1458, ptr %54, align 4, !tbaa !13
  %1459 = sext i32 %1457 to i64
  %1460 = getelementptr inbounds i8, ptr %1456, i64 %1459
  store i8 %1455, ptr %1460, align 1, !tbaa !9
  br label %1461

1461:                                             ; preds = %1454, %1451
  %1462 = load i32, ptr %53, align 4, !tbaa !13
  store i32 %1462, ptr %55, align 4, !tbaa !13
  store i32 0, ptr %53, align 4, !tbaa !13
  br label %1463

1463:                                             ; preds = %1491, %1461
  %1464 = load i32, ptr %53, align 4, !tbaa !13
  %1465 = load i32, ptr %55, align 4, !tbaa !13
  %1466 = icmp slt i32 %1464, %1465
  br i1 %1466, label %1467, label %1494

1467:                                             ; preds = %1463
  %1468 = load ptr, ptr %61, align 8, !tbaa !5
  %1469 = load i32, ptr %53, align 4, !tbaa !13
  %1470 = sext i32 %1469 to i64
  %1471 = getelementptr inbounds i8, ptr %1468, i64 %1470
  %1472 = load i8, ptr %1471, align 1, !tbaa !9
  store i8 %1472, ptr %59, align 1, !tbaa !9
  %1473 = load ptr, ptr %8, align 8, !tbaa !5
  %1474 = load i32, ptr %54, align 4, !tbaa !13
  %1475 = add nsw i32 %1474, 1
  store i32 %1475, ptr %54, align 4, !tbaa !13
  %1476 = sext i32 %1474 to i64
  %1477 = getelementptr inbounds i8, ptr %1473, i64 %1476
  store i8 %1472, ptr %1477, align 1, !tbaa !9
  %1478 = load i8, ptr %59, align 1, !tbaa !9
  %1479 = sext i8 %1478 to i32
  %1480 = load i8, ptr %60, align 1, !tbaa !9
  %1481 = sext i8 %1480 to i32
  %1482 = icmp eq i32 %1479, %1481
  br i1 %1482, label %1483, label %1490

1483:                                             ; preds = %1467
  %1484 = load i8, ptr %59, align 1, !tbaa !9
  %1485 = load ptr, ptr %8, align 8, !tbaa !5
  %1486 = load i32, ptr %54, align 4, !tbaa !13
  %1487 = add nsw i32 %1486, 1
  store i32 %1487, ptr %54, align 4, !tbaa !13
  %1488 = sext i32 %1486 to i64
  %1489 = getelementptr inbounds i8, ptr %1485, i64 %1488
  store i8 %1484, ptr %1489, align 1, !tbaa !9
  br label %1490

1490:                                             ; preds = %1483, %1467
  br label %1491

1491:                                             ; preds = %1490
  %1492 = load i32, ptr %53, align 4, !tbaa !13
  %1493 = add nsw i32 %1492, 1
  store i32 %1493, ptr %53, align 4, !tbaa !13
  br label %1463, !llvm.loop !54

1494:                                             ; preds = %1463
  %1495 = load i32, ptr %58, align 4, !tbaa !13
  %1496 = icmp ne i32 %1495, 0
  br i1 %1496, label %1497, label %1504

1497:                                             ; preds = %1494
  %1498 = load i8, ptr %60, align 1, !tbaa !9
  %1499 = load ptr, ptr %8, align 8, !tbaa !5
  %1500 = load i32, ptr %54, align 4, !tbaa !13
  %1501 = add nsw i32 %1500, 1
  store i32 %1501, ptr %54, align 4, !tbaa !13
  %1502 = sext i32 %1500 to i64
  %1503 = getelementptr inbounds i8, ptr %1499, i64 %1502
  store i8 %1498, ptr %1503, align 1, !tbaa !9
  br label %1504

1504:                                             ; preds = %1497, %1494
  %1505 = load ptr, ptr %8, align 8, !tbaa !5
  %1506 = load i32, ptr %54, align 4, !tbaa !13
  %1507 = sext i32 %1506 to i64
  %1508 = getelementptr inbounds i8, ptr %1505, i64 %1507
  store i8 0, ptr %1508, align 1, !tbaa !9
  %1509 = load i32, ptr %54, align 4, !tbaa !13
  store i32 %1509, ptr %10, align 4, !tbaa !13
  store i32 17, ptr %42, align 4
  br label %1510

1510:                                             ; preds = %1504, %1446
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  %1511 = load i32, ptr %42, align 4
  switch i32 %1511, label %1658 [
    i32 17, label %1619
  ]

1512:                                             ; preds = %344
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #4
  %1513 = load ptr, ptr %4, align 8, !tbaa !5
  %1514 = getelementptr inbounds %struct.StrAccum, ptr %1513, i32 0, i32 7
  %1515 = load i8, ptr %1514, align 1, !tbaa !10
  %1516 = zext i8 %1515 to i32
  %1517 = and i32 %1516, 1
  %1518 = icmp eq i32 %1517, 0
  br i1 %1518, label %1519, label %1520

1519:                                             ; preds = %1512
  store i32 1, ptr %42, align 4
  br label %1553

1520:                                             ; preds = %1512
  %1521 = load ptr, ptr %6, align 8, !tbaa !5
  %1522 = getelementptr inbounds %struct.__va_list_tag, ptr %1521, i32 0, i32 0
  %1523 = load i32, ptr %1522, align 8
  %1524 = icmp ule i32 %1523, 40
  br i1 %1524, label %1525, label %1530

1525:                                             ; preds = %1520
  %1526 = getelementptr inbounds %struct.__va_list_tag, ptr %1521, i32 0, i32 3
  %1527 = load ptr, ptr %1526, align 8
  %1528 = getelementptr i8, ptr %1527, i32 %1523
  %1529 = add i32 %1523, 8
  store i32 %1529, ptr %1522, align 8
  br label %1534

1530:                                             ; preds = %1520
  %1531 = getelementptr inbounds %struct.__va_list_tag, ptr %1521, i32 0, i32 2
  %1532 = load ptr, ptr %1531, align 8
  %1533 = getelementptr i8, ptr %1532, i32 8
  store ptr %1533, ptr %1531, align 8
  br label %1534

1534:                                             ; preds = %1530, %1525
  %1535 = phi ptr [ %1528, %1525 ], [ %1532, %1530 ]
  %1536 = load ptr, ptr %1535, align 8, !tbaa !5
  store ptr %1536, ptr %62, align 8, !tbaa !5
  %1537 = load ptr, ptr %62, align 8, !tbaa !5
  %1538 = icmp ne ptr %1537, null
  br i1 %1538, label %1539, label %1552

1539:                                             ; preds = %1534
  %1540 = load ptr, ptr %62, align 8, !tbaa !5
  %1541 = getelementptr inbounds %struct.Token, ptr %1540, i32 0, i32 1
  %1542 = load i32, ptr %1541, align 8, !tbaa !55
  %1543 = icmp ne i32 %1542, 0
  br i1 %1543, label %1544, label %1552

1544:                                             ; preds = %1539
  %1545 = load ptr, ptr %4, align 8, !tbaa !5
  %1546 = load ptr, ptr %62, align 8, !tbaa !5
  %1547 = getelementptr inbounds %struct.Token, ptr %1546, i32 0, i32 0
  %1548 = load ptr, ptr %1547, align 8, !tbaa !57
  %1549 = load ptr, ptr %62, align 8, !tbaa !5
  %1550 = getelementptr inbounds %struct.Token, ptr %1549, i32 0, i32 1
  %1551 = load i32, ptr %1550, align 8, !tbaa !55
  call void @sqlite3StrAccumAppend(ptr noundef %1545, ptr noundef %1548, i32 noundef %1551)
  br label %1552

1552:                                             ; preds = %1544, %1539, %1534
  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 %1553

1553:                                             ; preds = %1552, %1519
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  %1554 = load i32, ptr %42, align 4
  switch i32 %1554, label %1658 [
    i32 17, label %1619
  ]

1555:                                             ; preds = %344
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #4
  %1556 = load ptr, ptr %4, align 8, !tbaa !5
  %1557 = getelementptr inbounds %struct.StrAccum, ptr %1556, i32 0, i32 7
  %1558 = load i8, ptr %1557, align 1, !tbaa !10
  %1559 = zext i8 %1558 to i32
  %1560 = and i32 %1559, 1
  %1561 = icmp eq i32 %1560, 0
  br i1 %1561, label %1562, label %1563

1562:                                             ; preds = %1555
  store i32 1, ptr %42, align 4
  br label %1616

1563:                                             ; preds = %1555
  %1564 = load ptr, ptr %6, align 8, !tbaa !5
  %1565 = getelementptr inbounds %struct.__va_list_tag, ptr %1564, i32 0, i32 0
  %1566 = load i32, ptr %1565, align 8
  %1567 = icmp ule i32 %1566, 40
  br i1 %1567, label %1568, label %1573

1568:                                             ; preds = %1563
  %1569 = getelementptr inbounds %struct.__va_list_tag, ptr %1564, i32 0, i32 3
  %1570 = load ptr, ptr %1569, align 8
  %1571 = getelementptr i8, ptr %1570, i32 %1566
  %1572 = add i32 %1566, 8
  store i32 %1572, ptr %1565, align 8
  br label %1577

1573:                                             ; preds = %1563
  %1574 = getelementptr inbounds %struct.__va_list_tag, ptr %1564, i32 0, i32 2
  %1575 = load ptr, ptr %1574, align 8
  %1576 = getelementptr i8, ptr %1575, i32 8
  store ptr %1576, ptr %1574, align 8
  br label %1577

1577:                                             ; preds = %1573, %1568
  %1578 = phi ptr [ %1571, %1568 ], [ %1575, %1573 ]
  %1579 = load ptr, ptr %1578, align 8, !tbaa !5
  store ptr %1579, ptr %63, align 8, !tbaa !5
  %1580 = load ptr, ptr %6, align 8, !tbaa !5
  %1581 = getelementptr inbounds %struct.__va_list_tag, ptr %1580, i32 0, i32 0
  %1582 = load i32, ptr %1581, align 8
  %1583 = icmp ule i32 %1582, 40
  br i1 %1583, label %1584, label %1589

1584:                                             ; preds = %1577
  %1585 = getelementptr inbounds %struct.__va_list_tag, ptr %1580, i32 0, i32 3
  %1586 = load ptr, ptr %1585, align 8
  %1587 = getelementptr i8, ptr %1586, i32 %1582
  %1588 = add i32 %1582, 8
  store i32 %1588, ptr %1581, align 8
  br label %1593

1589:                                             ; preds = %1577
  %1590 = getelementptr inbounds %struct.__va_list_tag, ptr %1580, i32 0, i32 2
  %1591 = load ptr, ptr %1590, align 8
  %1592 = getelementptr i8, ptr %1591, i32 8
  store ptr %1592, ptr %1590, align 8
  br label %1593

1593:                                             ; preds = %1589, %1584
  %1594 = phi ptr [ %1587, %1584 ], [ %1591, %1589 ]
  %1595 = load i32, ptr %1594, align 4, !tbaa !13
  store i32 %1595, ptr %64, align 4, !tbaa !13
  %1596 = load ptr, ptr %63, align 8, !tbaa !5
  %1597 = getelementptr inbounds %struct.SrcList, ptr %1596, i32 0, i32 2
  %1598 = load i32, ptr %64, align 4, !tbaa !13
  %1599 = sext i32 %1598 to i64
  %1600 = getelementptr inbounds [1 x %struct.SrcList_item], ptr %1597, i64 0, i64 %1599
  store ptr %1600, ptr %65, align 8, !tbaa !5
  %1601 = load ptr, ptr %65, align 8, !tbaa !5
  %1602 = getelementptr inbounds %struct.SrcList_item, ptr %1601, i32 0, i32 1
  %1603 = load ptr, ptr %1602, align 8, !tbaa !58
  %1604 = icmp ne ptr %1603, null
  br i1 %1604, label %1605, label %1611

1605:                                             ; preds = %1593
  %1606 = load ptr, ptr %4, align 8, !tbaa !5
  %1607 = load ptr, ptr %65, align 8, !tbaa !5
  %1608 = getelementptr inbounds %struct.SrcList_item, ptr %1607, i32 0, i32 1
  %1609 = load ptr, ptr %1608, align 8, !tbaa !58
  call void @sqlite3StrAccumAppendAll(ptr noundef %1606, ptr noundef %1609)
  %1610 = load ptr, ptr %4, align 8, !tbaa !5
  call void @sqlite3StrAccumAppend(ptr noundef %1610, ptr noundef @.str.6, i32 noundef 1)
  br label %1611

1611:                                             ; preds = %1605, %1593
  %1612 = load ptr, ptr %4, align 8, !tbaa !5
  %1613 = load ptr, ptr %65, align 8, !tbaa !5
  %1614 = getelementptr inbounds %struct.SrcList_item, ptr %1613, i32 0, i32 2
  %1615 = load ptr, ptr %1614, align 8, !tbaa !61
  call void @sqlite3StrAccumAppendAll(ptr noundef %1612, ptr noundef %1615)
  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 %1616

1616:                                             ; preds = %1611, %1562
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  %1617 = load i32, ptr %42, align 4
  switch i32 %1617, label %1658 [
    i32 17, label %1619
  ]

1618:                                             ; preds = %344
  store i32 1, ptr %42, align 4
  br label %1658

1619:                                             ; preds = %1616, %1553, %1510, %1352, %1287, %1228, %1227, %1203, %900, %807, %723
  %1620 = load i32, ptr %10, align 4, !tbaa !13
  %1621 = load i32, ptr %12, align 4, !tbaa !13
  %1622 = sub nsw i32 %1621, %1620
  store i32 %1622, ptr %12, align 4, !tbaa !13
  %1623 = load i32, ptr %12, align 4, !tbaa !13
  %1624 = icmp sgt i32 %1623, 0
  br i1 %1624, label %1625, label %1641

1625:                                             ; preds = %1619
  %1626 = load i8, ptr %13, align 1, !tbaa !9
  %1627 = icmp ne i8 %1626, 0
  br i1 %1627, label %1631, label %1628

1628:                                             ; preds = %1625
  %1629 = load ptr, ptr %4, align 8, !tbaa !5
  %1630 = load i32, ptr %12, align 4, !tbaa !13
  call void @sqlite3AppendChar(ptr noundef %1629, i32 noundef %1630, i8 noundef signext 32)
  br label %1631

1631:                                             ; preds = %1628, %1625
  %1632 = load ptr, ptr %4, align 8, !tbaa !5
  %1633 = load ptr, ptr %8, align 8, !tbaa !5
  %1634 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3StrAccumAppend(ptr noundef %1632, ptr noundef %1633, i32 noundef %1634)
  %1635 = load i8, ptr %13, align 1, !tbaa !9
  %1636 = icmp ne i8 %1635, 0
  br i1 %1636, label %1637, label %1640

1637:                                             ; preds = %1631
  %1638 = load ptr, ptr %4, align 8, !tbaa !5
  %1639 = load i32, ptr %12, align 4, !tbaa !13
  call void @sqlite3AppendChar(ptr noundef %1638, i32 noundef %1639, i8 noundef signext 32)
  br label %1640

1640:                                             ; preds = %1637, %1631
  br label %1645

1641:                                             ; preds = %1619
  %1642 = load ptr, ptr %4, align 8, !tbaa !5
  %1643 = load ptr, ptr %8, align 8, !tbaa !5
  %1644 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3StrAccumAppend(ptr noundef %1642, ptr noundef %1643, i32 noundef %1644)
  br label %1645

1645:                                             ; preds = %1641, %1640
  %1646 = load ptr, ptr %29, align 8, !tbaa !5
  %1647 = icmp ne ptr %1646, null
  br i1 %1647, label %1648, label %1653

1648:                                             ; preds = %1645
  %1649 = load ptr, ptr %4, align 8, !tbaa !5
  %1650 = getelementptr inbounds %struct.StrAccum, ptr %1649, i32 0, i32 0
  %1651 = load ptr, ptr %1650, align 8, !tbaa !62
  %1652 = load ptr, ptr %29, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %1651, ptr noundef %1652)
  store ptr null, ptr %29, align 8, !tbaa !5
  br label %1653

1653:                                             ; preds = %1648, %1645
  br label %1654

1654:                                             ; preds = %1653
  %1655 = load ptr, ptr %5, align 8, !tbaa !5
  %1656 = getelementptr inbounds i8, ptr %1655, i32 1
  store ptr %1656, ptr %5, align 8, !tbaa !5
  br label %91, !llvm.loop !63

1657:                                             ; preds = %137, %129, %91
  store i32 0, ptr %42, align 4
  br label %1658

1658:                                             ; preds = %1657, %1618, %1616, %1553, %1510, %987, %552
  call void @llvm.lifetime.end.p0(i64 70, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #4
  %1659 = load i32, ptr %42, align 4
  switch i32 %1659, label %1661 [
    i32 0, label %1660
    i32 1, label %1660
  ]

1660:                                             ; preds = %1658, %1658
  ret void

1661:                                             ; preds = %1658, %900
  unreachable
}

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

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

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

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

declare ptr @sqlite3Malloc(i64 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden void @setStrAccumError(ptr noundef, i8 noundef zeroext) #0

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

declare i32 @sqlite3IsNaN(double noundef) #2

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

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

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

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

declare i32 @sqlite3Strlen30(ptr noundef) #2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !7, i64 37}
!11 = !{!"StrAccum", !6, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !12, i64 28, !12, i64 32, !7, i64 36, !7, i64 37}
!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 = distinct !{!54, !15}
!55 = !{!56, !12, i64 8}
!56 = !{!"Token", !6, i64 0, !12, i64 8}
!57 = !{!56, !6, i64 0}
!58 = !{!59, !6, i64 8}
!59 = !{!"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, !60, i64 60, !7, i64 64, !12, i64 68, !6, i64 72, !6, i64 80, !25, i64 88, !7, i64 96, !6, i64 104}
!60 = !{!"", !7, i64 0, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1, !12, i64 1}
!61 = !{!59, !6, i64 16}
!62 = !{!11, !6, i64 0}
!63 = distinct !{!63, !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, i8, i32, ptr, ptr, i64, %union.anon, ptr }
%struct.anon = type { i8, i8, [2 x i8] }
%union.anon = 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
@sqlite3VXPrintf.zOrd = external hidden local_unnamed_addr constant [9 x i8], align 1
@aDigits = external hidden local_unnamed_addr constant [33 x i8], align 16
@aPrefix = external hidden local_unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @sqlite3VXPrintf(ptr noundef %0, ptr noundef %1, ptr nocapture noundef %2) local_unnamed_addr #0 {
  %4 = alloca x86_fp80, align 16
  %5 = alloca i32, align 4
  %6 = alloca [70 x i8], align 16
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 70, ptr nonnull %6) #5
  %7 = getelementptr inbounds i8, ptr %0, i64 37
  %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
  %.0502 = 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 %2, i64 4
  %31 = load i32, ptr @.str.2, align 1
  %32 = load i8, ptr @fmtinfo, align 16
  %33 = sext i8 %32 to i32
  %34 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 6), align 2
  %35 = sext i8 %34 to i32
  %36 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 12), align 4
  %37 = sext i8 %36 to i32
  %38 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 18), align 2
  %39 = sext i8 %38 to i32
  %40 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 24), align 8
  %41 = sext i8 %40 to i32
  %42 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 30), align 2
  %43 = sext i8 %42 to i32
  %44 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 36), align 4
  %45 = sext i8 %44 to i32
  %46 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 42), align 2
  %47 = sext i8 %46 to i32
  %48 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 48), align 16
  %49 = sext i8 %48 to i32
  %50 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 54), align 2
  %51 = sext i8 %50 to i32
  %52 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 60), align 4
  %53 = sext i8 %52 to i32
  %54 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 66), align 2
  %55 = sext i8 %54 to i32
  %56 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 72), align 8
  %57 = sext i8 %56 to i32
  %58 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 78), align 2
  %59 = sext i8 %58 to i32
  %60 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 84), align 4
  %61 = sext i8 %60 to i32
  %62 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 90), align 2
  %63 = sext i8 %62 to i32
  %64 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 96), align 16
  %65 = sext i8 %64 to i32
  %66 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 102), align 2
  %67 = sext i8 %66 to i32
  %68 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 108), align 4
  %69 = sext i8 %68 to i32
  %70 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 114), align 2
  %71 = sext i8 %70 to i32
  %72 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 120), align 8
  %73 = sext i8 %72 to i32
  %74 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 126), align 2
  %75 = sext i8 %74 to i32
  %76 = load i8, ptr getelementptr inbounds (i8, ptr @fmtinfo, i64 132), align 4
  %77 = sext i8 %76 to i32
  br label %78

78:                                               ; preds = %886, %26
  %.0421 = phi ptr [ null, %26 ], [ %.26, %886 ]
  %.0 = phi ptr [ %1, %26 ], [ %887, %886 ]
  %79 = load i8, ptr %.0, align 1, !tbaa !12
  switch i8 %79, label %.preheader731 [
    i8 0, label %.thread679
    i8 37, label %88
  ]

.preheader731:                                    ; preds = %78, %.preheader731
  %.1 = phi ptr [ %80, %.preheader731 ], [ %.0, %78 ]
  %80 = getelementptr inbounds i8, ptr %.1, i64 1
  %81 = load i8, ptr %80, align 1, !tbaa !12
  switch i8 %81, label %.preheader731 [
    i8 0, label %.critedge
    i8 37, label %.critedge
  ]

.critedge:                                        ; preds = %.preheader731, %.preheader731
  %82 = ptrtoint ptr %80 to i64
  %83 = ptrtoint ptr %.0 to i64
  %84 = sub i64 %82, %83
  %85 = trunc i64 %84 to i32
  call void @sqlite3StrAccumAppend(ptr noundef %0, ptr noundef nonnull %.0, i32 noundef %85)
  %86 = load i8, ptr %80, align 1, !tbaa !12
  %87 = icmp eq i8 %86, 0
  br i1 %87, label %.thread679, label %88

88:                                               ; preds = %78, %.critedge
  %.1422 = phi ptr [ %.0, %.critedge ], [ %.0421, %78 ]
  %.2 = phi ptr [ %80, %.critedge ], [ %.0, %78 ]
  %89 = getelementptr inbounds i8, ptr %.2, i64 1
  %90 = load i8, ptr %89, align 1, !tbaa !12
  %91 = icmp eq i8 %90, 0
  br i1 %91, label %92, label %.preheader730

92:                                               ; preds = %88
  call void @sqlite3StrAccumAppend(ptr noundef %0, ptr noundef nonnull @.str, i32 noundef 1)
  br label %.thread679

.preheader730:                                    ; preds = %88, %99
  %.0547 = phi i8 [ %.1548.ph, %99 ], [ 0, %88 ]
  %.0497 = phi i8 [ %.1498.ph, %99 ], [ 0, %88 ]
  %.0489 = phi i8 [ %.1490.ph, %99 ], [ 0, %88 ]
  %.0486 = phi i8 [ %.1487.ph, %99 ], [ 0, %88 ]
  %.0479 = phi i8 [ %.1480.ph, %99 ], [ 0, %88 ]
  %.0475 = phi i8 [ %.1476.ph, %99 ], [ 0, %88 ]
  %.0413.in = phi i8 [ %101, %99 ], [ %90, %88 ]
  %.3 = phi ptr [ %100, %99 ], [ %89, %88 ]
  switch i8 %.0413.in, label %.preheader729 [
    i8 45, label %99
    i8 43, label %93
    i8 32, label %94
    i8 35, label %95
    i8 33, label %96
    i8 48, label %97
    i8 44, label %98
    i8 42, label %104
  ]

93:                                               ; preds = %.preheader730
  br label %99

94:                                               ; preds = %.preheader730
  br label %99

95:                                               ; preds = %.preheader730
  br label %99

96:                                               ; preds = %.preheader730
  br label %99

97:                                               ; preds = %.preheader730
  br label %99

98:                                               ; preds = %.preheader730
  br label %99

99:                                               ; preds = %.preheader730, %98, %97, %96, %95, %94, %93
  %.1548.ph = phi i8 [ %.0547, %.preheader730 ], [ %.0547, %93 ], [ %.0547, %94 ], [ %.0547, %95 ], [ %.0547, %96 ], [ %.0547, %97 ], [ 44, %98 ]
  %.1498.ph = phi i8 [ %.0497, %.preheader730 ], [ %.0497, %93 ], [ %.0497, %94 ], [ %.0497, %95 ], [ %.0497, %96 ], [ 1, %97 ], [ %.0497, %98 ]
  %.1490.ph = phi i8 [ %.0489, %.preheader730 ], [ %.0489, %93 ], [ %.0489, %94 ], [ %.0489, %95 ], [ 1, %96 ], [ %.0489, %97 ], [ %.0489, %98 ]
  %.1487.ph = phi i8 [ %.0486, %.preheader730 ], [ %.0486, %93 ], [ %.0486, %94 ], [ 1, %95 ], [ %.0486, %96 ], [ %.0486, %97 ], [ %.0486, %98 ]
  %.1480.ph = phi i8 [ %.0479, %.preheader730 ], [ %.0413.in, %93 ], [ %.0413.in, %94 ], [ %.0479, %95 ], [ %.0479, %96 ], [ %.0479, %97 ], [ %.0479, %98 ]
  %.1476.ph = phi i8 [ 1, %.preheader730 ], [ %.0475, %93 ], [ %.0475, %94 ], [ %.0475, %95 ], [ %.0475, %96 ], [ %.0475, %97 ], [ %.0475, %98 ]
  %100 = getelementptr inbounds i8, ptr %.3, i64 1
  %101 = load i8, ptr %100, align 1, !tbaa !12
  %.not608 = icmp eq i8 %101, 0
  br i1 %.not608, label %._crit_edge, label %.preheader730, !llvm.loop !13

.preheader729:                                    ; preds = %.preheader730
  %.0413.le = sext i8 %.0413.in to i32
  %102 = add nsw i32 %.0413.le, -48
  %103 = icmp ult i32 %102, 10
  br i1 %103, label %.lr.ph, label %._crit_edge

104:                                              ; preds = %.preheader730
  br i1 %.not, label %108, label %105

105:                                              ; preds = %104
  %106 = call i64 @getIntArg(ptr noundef %.0502)
  %107 = trunc i64 %106 to i32
  br label %122

108:                                              ; preds = %104
  %109 = load i32, ptr %2, align 8
  %110 = icmp ult i32 %109, 41
  br i1 %110, label %111, label %116

111:                                              ; preds = %108
  %112 = load ptr, ptr %28, align 8
  %113 = zext nneg i32 %109 to i64
  %114 = getelementptr i8, ptr %112, i64 %113
  %115 = add nuw nsw i32 %109, 8
  store i32 %115, ptr %2, align 8
  br label %119

116:                                              ; preds = %108
  %117 = load ptr, ptr %27, align 8
  %118 = getelementptr i8, ptr %117, i64 8
  store ptr %118, ptr %27, align 8
  br label %119

119:                                              ; preds = %116, %111
  %120 = phi ptr [ %114, %111 ], [ %117, %116 ]
  %121 = load i32, ptr %120, align 4, !tbaa !15
  br label %122

122:                                              ; preds = %119, %105
  %.0452 = phi i32 [ %107, %105 ], [ %121, %119 ]
  %123 = icmp slt i32 %.0452, 0
  %.not610 = icmp eq i32 %.0452, -2147483648
  %124 = sub nsw i32 0, %.0452
  %125 = select i1 %.not610, i32 0, i32 %124
  %.2477 = select i1 %123, i8 1, i8 %.0475
  %.1453 = select i1 %123, i32 %125, i32 %.0452
  %126 = getelementptr inbounds i8, ptr %.3, i64 1
  %127 = load i8, ptr %126, align 1, !tbaa !12
  %128 = sext i8 %127 to i32
  br label %138

.lr.ph:                                           ; preds = %.preheader729, %.lr.ph
  %.5749 = phi ptr [ %132, %.lr.ph ], [ %.3, %.preheader729 ]
  %.2415748 = phi i32 [ %134, %.lr.ph ], [ %.0413.le, %.preheader729 ]
  %.0501747 = phi i32 [ %131, %.lr.ph ], [ 0, %.preheader729 ]
  %129 = mul i32 %.0501747, 10
  %130 = add nsw i32 %.2415748, -48
  %131 = add i32 %130, %129
  %132 = getelementptr inbounds i8, ptr %.5749, i64 1
  %133 = load i8, ptr %132, align 1, !tbaa !12
  %134 = sext i8 %133 to i32
  %135 = add nsw i32 %134, -48
  %136 = icmp ult i32 %135, 10
  br i1 %136, label %.lr.ph, label %._crit_edge, !llvm.loop !16

._crit_edge:                                      ; preds = %99, %.lr.ph, %.preheader729
  %.1476677920946 = phi i8 [ %.0475, %.preheader729 ], [ %.0475, %.lr.ph ], [ %.1476.ph, %99 ]
  %.1480676922945 = phi i8 [ %.0479, %.preheader729 ], [ %.0479, %.lr.ph ], [ %.1480.ph, %99 ]
  %.1487673924944 = phi i8 [ %.0486, %.preheader729 ], [ %.0486, %.lr.ph ], [ %.1487.ph, %99 ]
  %.1490671926943 = phi i8 [ %.0489, %.preheader729 ], [ %.0489, %.lr.ph ], [ %.1490.ph, %99 ]
  %.1498669928942 = phi i8 [ %.0497, %.preheader729 ], [ %.0497, %.lr.ph ], [ %.1498.ph, %99 ]
  %.1548668930941 = phi i8 [ %.0547, %.preheader729 ], [ %.0547, %.lr.ph ], [ %.1548.ph, %99 ]
  %.0501.lcssa = phi i32 [ 0, %.preheader729 ], [ %131, %.lr.ph ], [ 0, %99 ]
  %.2415.lcssa = phi i32 [ %.0413.le, %.preheader729 ], [ %134, %.lr.ph ], [ 0, %99 ]
  %.5.lcssa = phi ptr [ %.3, %.preheader729 ], [ %132, %.lr.ph ], [ %100, %99 ]
  %137 = and i32 %.0501.lcssa, 2147483647
  br label %138

138:                                              ; preds = %._crit_edge, %122
  %.1548668929 = phi i8 [ %.0547, %122 ], [ %.1548668930941, %._crit_edge ]
  %.1498669927 = phi i8 [ %.0497, %122 ], [ %.1498669928942, %._crit_edge ]
  %.1490671925 = phi i8 [ %.0489, %122 ], [ %.1490671926943, %._crit_edge ]
  %.1487673923 = phi i8 [ %.0486, %122 ], [ %.1487673924944, %._crit_edge ]
  %.1480676921 = phi i8 [ %.0479, %122 ], [ %.1480676922945, %._crit_edge ]
  %.3478 = phi i8 [ %.2477, %122 ], [ %.1476677920946, %._crit_edge ]
  %.2454 = phi i32 [ %.1453, %122 ], [ %137, %._crit_edge ]
  %.3416 = phi i32 [ %128, %122 ], [ %.2415.lcssa, %._crit_edge ]
  %.6 = phi ptr [ %126, %122 ], [ %.5.lcssa, %._crit_edge ]
  %139 = icmp eq i32 %.3416, 46
  br i1 %139, label %140, label %180

140:                                              ; preds = %138
  %141 = getelementptr inbounds i8, ptr %.6, i64 1
  %142 = load i8, ptr %141, align 1, !tbaa !12
  %143 = icmp eq i8 %142, 42
  br i1 %143, label %146, label %.preheader728

.preheader728:                                    ; preds = %140
  %.4417752 = sext i8 %142 to i32
  %144 = add i8 %142, -48
  %145 = icmp ult i8 %144, 10
  br i1 %145, label %.lr.ph756, label %._crit_edge757

146:                                              ; preds = %140
  br i1 %.not, label %150, label %147

147:                                              ; preds = %146
  %148 = call i64 @getIntArg(ptr noundef %.0502)
  %149 = trunc i64 %148 to i32
  br label %164

150:                                              ; preds = %146
  %151 = load i32, ptr %2, align 8
  %152 = icmp ult i32 %151, 41
  br i1 %152, label %153, label %158

153:                                              ; preds = %150
  %154 = load ptr, ptr %28, align 8
  %155 = zext nneg i32 %151 to i64
  %156 = getelementptr i8, ptr %154, i64 %155
  %157 = add nuw nsw i32 %151, 8
  store i32 %157, ptr %2, align 8
  br label %161

158:                                              ; preds = %150
  %159 = load ptr, ptr %27, align 8
  %160 = getelementptr i8, ptr %159, i64 8
  store ptr %160, ptr %27, align 8
  br label %161

161:                                              ; preds = %158, %153
  %162 = phi ptr [ %156, %153 ], [ %159, %158 ]
  %163 = load i32, ptr %162, align 4, !tbaa !15
  br label %164

164:                                              ; preds = %161, %147
  %.0431 = phi i32 [ %149, %147 ], [ %163, %161 ]
  %165 = getelementptr inbounds i8, ptr %.6, i64 2
  %166 = load i8, ptr %165, align 1, !tbaa !12
  %167 = sext i8 %166 to i32
  %168 = icmp slt i32 %.0431, 0
  br i1 %168, label %169, label %180

169:                                              ; preds = %164
  %.not612 = icmp eq i32 %.0431, -2147483648
  %170 = sub nsw i32 0, %.0431
  %171 = select i1 %.not612, i32 -1, i32 %170
  br label %180

.lr.ph756:                                        ; preds = %.preheader728, %.lr.ph756
  %.4417755 = phi i32 [ %.4417, %.lr.ph756 ], [ %.4417752, %.preheader728 ]
  %.7754 = phi ptr [ %175, %.lr.ph756 ], [ %141, %.preheader728 ]
  %.0500753 = phi i32 [ %174, %.lr.ph756 ], [ 0, %.preheader728 ]
  %172 = mul i32 %.0500753, 10
  %173 = add i32 %172, -48
  %174 = add i32 %173, %.4417755
  %175 = getelementptr inbounds i8, ptr %.7754, i64 1
  %176 = load i8, ptr %175, align 1, !tbaa !12
  %.4417 = sext i8 %176 to i32
  %177 = add i8 %176, -48
  %178 = icmp ult i8 %177, 10
  br i1 %178, label %.lr.ph756, label %._crit_edge757, !llvm.loop !17

._crit_edge757:                                   ; preds = %.lr.ph756, %.preheader728
  %.0500.lcssa = phi i32 [ 0, %.preheader728 ], [ %174, %.lr.ph756 ]
  %.7.lcssa = phi ptr [ %141, %.preheader728 ], [ %175, %.lr.ph756 ]
  %.4417.lcssa = phi i32 [ %.4417752, %.preheader728 ], [ %.4417, %.lr.ph756 ]
  %179 = and i32 %.0500.lcssa, 2147483647
  br label %180

180:                                              ; preds = %138, %._crit_edge757, %169, %164
  %.1432 = phi i32 [ %171, %169 ], [ %.0431, %164 ], [ %179, %._crit_edge757 ], [ -1, %138 ]
  %.5418 = phi i32 [ %167, %169 ], [ %167, %164 ], [ %.4417.lcssa, %._crit_edge757 ], [ %.3416, %138 ]
  %.8 = phi ptr [ %165, %169 ], [ %165, %164 ], [ %.7.lcssa, %._crit_edge757 ], [ %.6, %138 ]
  %181 = icmp eq i32 %.5418, 108
  br i1 %181, label %182, label %191

182:                                              ; preds = %180
  %183 = getelementptr inbounds i8, ptr %.8, i64 1
  %184 = load i8, ptr %183, align 1, !tbaa !12
  %185 = sext i8 %184 to i32
  %186 = icmp eq i8 %184, 108
  br i1 %186, label %187, label %191

187:                                              ; preds = %182
  %188 = getelementptr inbounds i8, ptr %.8, i64 2
  %189 = load i8, ptr %188, align 1, !tbaa !12
  %190 = sext i8 %189 to i32
  br label %191

191:                                              ; preds = %180, %182, %187
  %.0504 = phi i8 [ 2, %187 ], [ 1, %182 ], [ 0, %180 ]
  %.6419 = phi i32 [ %190, %187 ], [ %185, %182 ], [ %.5418, %180 ]
  %.9 = phi ptr [ %188, %187 ], [ %183, %182 ], [ %.8, %180 ]
  %192 = icmp eq i32 %.6419, %33
  br i1 %192, label %237, label %193

193:                                              ; preds = %191
  %194 = icmp eq i32 %.6419, %35
  br i1 %194, label %237, label %195

195:                                              ; preds = %193
  %196 = icmp eq i32 %.6419, %37
  br i1 %196, label %237, label %197

197:                                              ; preds = %195
  %198 = icmp eq i32 %.6419, %39
  br i1 %198, label %237, label %199

199:                                              ; preds = %197
  %200 = icmp eq i32 %.6419, %41
  br i1 %200, label %237, label %201

201:                                              ; preds = %199
  %202 = icmp eq i32 %.6419, %43
  br i1 %202, label %237, label %203

203:                                              ; preds = %201
  %204 = icmp eq i32 %.6419, %45
  br i1 %204, label %237, label %205

205:                                              ; preds = %203
  %206 = icmp eq i32 %.6419, %47
  br i1 %206, label %237, label %207

207:                                              ; preds = %205
  %208 = icmp eq i32 %.6419, %49
  br i1 %208, label %237, label %209

209:                                              ; preds = %207
  %210 = icmp eq i32 %.6419, %51
  br i1 %210, label %237, label %211

211:                                              ; preds = %209
  %212 = icmp eq i32 %.6419, %53
  br i1 %212, label %237, label %213

213:                                              ; preds = %211
  %214 = icmp eq i32 %.6419, %55
  br i1 %214, label %237, label %215

215:                                              ; preds = %213
  %216 = icmp eq i32 %.6419, %57
  br i1 %216, label %237, label %217

217:                                              ; preds = %215
  %218 = icmp eq i32 %.6419, %59
  br i1 %218, label %237, label %219

219:                                              ; preds = %217
  %220 = icmp eq i32 %.6419, %61
  br i1 %220, label %237, label %221

221:                                              ; preds = %219
  %222 = icmp eq i32 %.6419, %63
  br i1 %222, label %237, label %223

223:                                              ; preds = %221
  %224 = icmp eq i32 %.6419, %65
  br i1 %224, label %237, label %225

225:                                              ; preds = %223
  %226 = icmp eq i32 %.6419, %67
  br i1 %226, label %237, label %227

227:                                              ; preds = %225
  %228 = icmp eq i32 %.6419, %69
  br i1 %228, label %237, label %229

229:                                              ; preds = %227
  %230 = icmp eq i32 %.6419, %71
  br i1 %230, label %237, label %231

231:                                              ; preds = %229
  %232 = icmp eq i32 %.6419, %73
  br i1 %232, label %237, label %233

233:                                              ; preds = %231
  %234 = icmp eq i32 %.6419, %75
  br i1 %234, label %237, label %235

235:                                              ; preds = %233
  %236 = icmp eq i32 %.6419, %77
  br i1 %236, label %237, label %.thread679

237:                                              ; preds = %235, %233, %231, %229, %227, %225, %223, %221, %219, %217, %215, %213, %211, %209, %207, %205, %203, %201, %199, %197, %195, %193, %191
  %.lcssa862 = phi ptr [ @fmtinfo, %191 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 6), %193 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 12), %195 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 18), %197 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 24), %199 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 30), %201 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 36), %203 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 42), %205 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 48), %207 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 54), %209 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 60), %211 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 66), %213 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 72), %215 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 78), %217 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 84), %219 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 90), %221 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 96), %223 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 102), %225 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 108), %227 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 114), %229 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 120), %231 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 126), %233 ], [ getelementptr inbounds (i8, ptr @fmtinfo, i64 132), %235 ]
  %238 = getelementptr inbounds i8, ptr %.lcssa862, i64 3
  %239 = load i8, ptr %238, align 1, !tbaa !18
  switch i8 %239, label %.thread679 [
    i8 13, label %240
    i8 15, label %241
    i8 0, label %241
    i8 16, label %242
    i8 1, label %447
    i8 2, label %447
    i8 3, label %447
    i8 4, label %662
    i8 7, label %678
    i8 8, label %679
    i8 5, label %711
    i8 6, label %711
    i8 9, label %737
    i8 10, label %737
    i8 14, label %737
    i8 11, label %817
    i8 12, label %839
  ]

240:                                              ; preds = %237
  br label %242

241:                                              ; preds = %237, %237
  br label %242

242:                                              ; preds = %240, %241, %237
  %.2549 = phi i8 [ %.1548668929, %237 ], [ 0, %240 ], [ 0, %241 ]
  %.2506 = phi i8 [ %.0504, %237 ], [ 2, %240 ], [ %.0504, %241 ]
  %243 = getelementptr inbounds i8, ptr %.lcssa862, i64 2
  %244 = load i8, ptr %243, align 1, !tbaa !20
  %245 = and i8 %244, 1
  %.not635 = icmp eq i8 %245, 0
  br i1 %.not635, label %291, label %246

246:                                              ; preds = %242
  br i1 %.not, label %249, label %247

247:                                              ; preds = %246
  %248 = call i64 @getIntArg(ptr noundef %.0502)
  br label %289

249:                                              ; preds = %246
  %250 = load i32, ptr %2, align 8
  %251 = icmp ult i32 %250, 41
  switch i8 %.2506, label %264 [
    i8 0, label %276
    i8 2, label %252
  ]

252:                                              ; preds = %249
  br i1 %251, label %253, label %258

253:                                              ; preds = %252
  %254 = load ptr, ptr %28, align 8
  %255 = zext nneg i32 %250 to i64
  %256 = getelementptr i8, ptr %254, i64 %255
  %257 = add nuw nsw i32 %250, 8
  store i32 %257, ptr %2, align 8
  br label %261

258:                                              ; preds = %252
  %259 = load ptr, ptr %27, align 8
  %260 = getelementptr i8, ptr %259, i64 8
  store ptr %260, ptr %27, align 8
  br label %261

261:                                              ; preds = %258, %253
  %262 = phi ptr [ %256, %253 ], [ %259, %258 ]
  %263 = load i64, ptr %262, align 8, !tbaa !21
  br label %289

264:                                              ; preds = %249
  br i1 %251, label %265, label %270

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

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

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

276:                                              ; preds = %249
  br i1 %251, label %277, label %282

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

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

285:                                              ; preds = %282, %277
  %286 = phi ptr [ %280, %277 ], [ %283, %282 ]
  %287 = load i32, ptr %286, align 4, !tbaa !15
  %288 = sext i32 %287 to i64
  br label %289

289:                                              ; preds = %285, %273, %261, %247
  %.0499 = phi i64 [ %248, %247 ], [ %263, %261 ], [ %275, %273 ], [ %288, %285 ]
  %290 = icmp slt i64 %.0499, 0
  %spec.select = select i1 %290, i8 45, i8 %.1480676921
  %spec.select717 = call i64 @llvm.abs.i64(i64 %.0499, i1 false)
  br label %334

291:                                              ; preds = %242
  br i1 %.not, label %294, label %292

292:                                              ; preds = %291
  %293 = call i64 @getIntArg(ptr noundef %.0502)
  br label %334

294:                                              ; preds = %291
  %295 = load i32, ptr %2, align 8
  %296 = icmp ult i32 %295, 41
  switch i8 %.2506, label %309 [
    i8 0, label %321
    i8 2, label %297
  ]

297:                                              ; preds = %294
  br i1 %296, label %298, label %303

298:                                              ; preds = %297
  %299 = load ptr, ptr %28, align 8
  %300 = zext nneg i32 %295 to i64
  %301 = getelementptr i8, ptr %299, i64 %300
  %302 = add nuw nsw i32 %295, 8
  store i32 %302, ptr %2, align 8
  br label %306

303:                                              ; preds = %297
  %304 = load ptr, ptr %27, align 8
  %305 = getelementptr i8, ptr %304, i64 8
  store ptr %305, ptr %27, align 8
  br label %306

306:                                              ; preds = %303, %298
  %307 = phi ptr [ %301, %298 ], [ %304, %303 ]
  %308 = load i64, ptr %307, align 8, !tbaa !21
  br label %334

309:                                              ; preds = %294
  br i1 %296, label %310, label %315

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

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

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

321:                                              ; preds = %294
  br i1 %296, label %322, label %327

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

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

330:                                              ; preds = %327, %322
  %331 = phi ptr [ %325, %322 ], [ %328, %327 ]
  %332 = load i32, ptr %331, align 4, !tbaa !15
  %333 = zext i32 %332 to i64
  br label %334

334:                                              ; preds = %289, %292, %306, %318, %330
  %.1541 = phi i8 [ 0, %330 ], [ 0, %318 ], [ 0, %306 ], [ 0, %292 ], [ %spec.select, %289 ]
  %.3538 = phi i64 [ %333, %330 ], [ %320, %318 ], [ %308, %306 ], [ %293, %292 ], [ %spec.select717, %289 ]
  %335 = icmp eq i64 %.3538, 0
  %.not640 = icmp eq i8 %.1498669927, 0
  br i1 %.not640, label %339, label %336

336:                                              ; preds = %334
  %337 = icmp ne i8 %.1541, 0
  %.neg = sext i1 %337 to i32
  %338 = add i32 %.2454, %.neg
  %spec.select650 = call i32 @llvm.smax.i32(i32 %.1432, i32 %338)
  br label %339

339:                                              ; preds = %336, %334
  %.2433 = phi i32 [ %.1432, %334 ], [ %spec.select650, %336 ]
  %340 = icmp slt i32 %.2433, 37
  br i1 %340, label %349, label %341

341:                                              ; preds = %339
  %narrow = add nuw i32 %.2433, 10
  %342 = zext i32 %narrow to i64
  %343 = udiv i32 %.2433, 3
  %344 = zext nneg i32 %343 to i64
  %345 = add nuw nsw i64 %342, %344
  %346 = call ptr @sqlite3Malloc(i64 noundef %345) #5
  %.not641 = icmp eq ptr %346, null
  br i1 %.not641, label %.thread682, label %347

.thread682:                                       ; preds = %341
  call void @setStrAccumError(ptr noundef %0, i8 noundef zeroext 1)
  br label %.thread679

347:                                              ; preds = %341
  %348 = trunc nuw i64 %345 to i32
  br label %349

349:                                              ; preds = %347, %339
  %.0533 = phi ptr [ %346, %347 ], [ %6, %339 ]
  %.2531 = phi i32 [ %348, %347 ], [ 70, %339 ]
  %.1522 = phi ptr [ %346, %347 ], [ null, %339 ]
  %.0533902 = ptrtoint ptr %.0533 to i64
  %350 = add nsw i32 %.2531, -1
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds i8, ptr %.0533, i64 %351
  %353 = icmp eq i8 %239, 15
  br i1 %353, label %354, label %371

354:                                              ; preds = %349
  %355 = urem i64 %.3538, 10
  %356 = udiv i64 %.3538, 10
  %357 = icmp ugt i64 %355, 3
  %358 = trunc nuw nsw i64 %355 to i32
  %359 = urem i64 %356, 10
  %360 = icmp eq i64 %359, 1
  %or.cond1122 = select i1 %357, i1 true, i1 %360
  %.0491 = select i1 %or.cond1122, i32 0, i32 %358
  %361 = shl nuw nsw i32 %.0491, 1
  %362 = or disjoint i32 %361, 1
  %363 = zext nneg i32 %362 to i64
  %364 = getelementptr inbounds [9 x i8], ptr @sqlite3VXPrintf.zOrd, i64 0, i64 %363
  %365 = load i8, ptr %364, align 1, !tbaa !12
  %366 = getelementptr inbounds i8, ptr %352, i64 -1
  store i8 %365, ptr %366, align 1, !tbaa !12
  %367 = zext nneg i32 %361 to i64
  %368 = getelementptr inbounds [9 x i8], ptr @sqlite3VXPrintf.zOrd, i64 0, i64 %367
  %369 = load i8, ptr %368, align 1, !tbaa !12
  %370 = getelementptr inbounds i8, ptr %352, i64 -2
  store i8 %369, ptr %370, align 1, !tbaa !12
  br label %371

371:                                              ; preds = %354, %349
  %.2423 = phi ptr [ %370, %354 ], [ %352, %349 ]
  %.2423901 = ptrtoint ptr %.2423 to i64
  %372 = getelementptr inbounds i8, ptr %.lcssa862, i64 4
  %373 = load i8, ptr %372, align 1, !tbaa !25
  %374 = zext i8 %373 to i64
  %375 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %374
  %376 = getelementptr inbounds i8, ptr %.lcssa862, i64 1
  %377 = load i8, ptr %376, align 1, !tbaa !26
  %378 = zext i8 %377 to i64
  %scevgep904 = getelementptr i8, ptr %.2423, i64 -2
  %379 = add nsw i32 %.2433, -1
  %380 = trunc i64 %.2423901 to i32
  %381 = add i32 %379, %380
  %382 = trunc i64 %.0533902 to i32
  %383 = add i32 %.2531, %382
  %384 = sub i32 %381, %383
  br label %385

385:                                              ; preds = %385, %371
  %indvars.iv907 = phi i32 [ %indvars.iv.next908, %385 ], [ %384, %371 ]
  %indvars.iv905 = phi ptr [ %scevgep906, %385 ], [ %scevgep904, %371 ]
  %indvar = phi i64 [ %indvar.next, %385 ], [ 0, %371 ]
  %.4539 = phi i64 [ %390, %385 ], [ %.3538, %371 ]
  %.3424 = phi ptr [ %389, %385 ], [ %.2423, %371 ]
  %386 = urem i64 %.4539, %378
  %387 = getelementptr inbounds i8, ptr %375, i64 %386
  %388 = load i8, ptr %387, align 1, !tbaa !12
  %389 = getelementptr inbounds i8, ptr %.3424, i64 -1
  store i8 %388, ptr %389, align 1, !tbaa !12
  %390 = udiv i64 %.4539, %378
  %.not642 = icmp ult i64 %.4539, %378
  %indvar.next = add i64 %indvar, 1
  %scevgep906 = getelementptr i8, ptr %indvars.iv905, i64 -1
  %indvars.iv.next908 = add i32 %indvars.iv907, -1
  br i1 %.not642, label %391, label %385, !llvm.loop !27

391:                                              ; preds = %385
  %392 = ptrtoint ptr %352 to i64
  %393 = ptrtoint ptr %389 to i64
  %394 = sub i64 %392, %393
  %395 = trunc i64 %394 to i32
  %396 = icmp sgt i32 %.2433, %395
  br i1 %396, label %.lr.ph827.preheader, label %._crit_edge828

.lr.ph827.preheader:                              ; preds = %391
  %397 = sub i64 -2, %indvar
  %scevgep900 = getelementptr i8, ptr %.2423, i64 %397
  %398 = trunc i64 %indvar to i32
  %399 = sub i32 %384, %398
  %400 = zext i32 %399 to i64
  %401 = sub nsw i64 0, %400
  %scevgep903 = getelementptr i8, ptr %scevgep900, i64 %401
  %402 = add nuw nsw i64 %400, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %scevgep903, i8 48, i64 %402, i1 false), !tbaa !12
  %403 = zext i32 %indvars.iv907 to i64
  %404 = sub nsw i64 0, %403
  %scevgep909 = getelementptr i8, ptr %indvars.iv905, i64 %404
  br label %._crit_edge828

._crit_edge828:                                   ; preds = %.lr.ph827.preheader, %391
  %.1441.lcssa = phi i32 [ %395, %391 ], [ %.2433, %.lr.ph827.preheader ]
  %.4425.lcssa = phi ptr [ %389, %391 ], [ %scevgep909, %.lr.ph827.preheader ]
  %.not643 = icmp eq i8 %.2549, 0
  br i1 %.not643, label %.loopexit718, label %405

405:                                              ; preds = %._crit_edge828
  %406 = add nsw i32 %.1441.lcssa, -1
  %407 = sdiv i32 %406, 3
  %408 = zext nneg i32 %407 to i64
  %409 = sub nsw i64 0, %408
  %410 = getelementptr inbounds i8, ptr %.4425.lcssa, i64 %409
  %411 = icmp sgt i32 %.1441.lcssa, 3
  br i1 %411, label %.lr.ph835.preheader, label %.loopexit718

.lr.ph835.preheader:                              ; preds = %405
  %412 = urem i32 %406, 3
  %413 = add nuw nsw i32 %412, 1
  br label %.lr.ph835

.lr.ph835:                                        ; preds = %.lr.ph835.preheader, %427
  %.1449833 = phi i32 [ %428, %427 ], [ 0, %.lr.ph835.preheader ]
  %.0482832 = phi i32 [ %.1483, %427 ], [ %413, %.lr.ph835.preheader ]
  %.0484831 = phi i32 [ %.1485, %427 ], [ %407, %.lr.ph835.preheader ]
  %414 = add nsw i32 %.1449833, %.0484831
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds i8, ptr %410, i64 %415
  %417 = load i8, ptr %416, align 1, !tbaa !12
  %418 = sext i32 %.1449833 to i64
  %419 = getelementptr inbounds i8, ptr %410, i64 %418
  store i8 %417, ptr %419, align 1, !tbaa !12
  %420 = add nsw i32 %.0482832, -1
  %421 = icmp eq i32 %420, 0
  br i1 %421, label %422, label %427

422:                                              ; preds = %.lr.ph835
  %423 = add nsw i32 %.1449833, 1
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds i8, ptr %410, i64 %424
  store i8 %.2549, ptr %425, align 1, !tbaa !12
  %426 = add nsw i32 %.0484831, -1
  br label %427

427:                                              ; preds = %.lr.ph835, %422
  %.1485 = phi i32 [ %426, %422 ], [ %.0484831, %.lr.ph835 ]
  %.1483 = phi i32 [ 3, %422 ], [ %420, %.lr.ph835 ]
  %.2450 = phi i32 [ %423, %422 ], [ %.1449833, %.lr.ph835 ]
  %428 = add nsw i32 %.2450, 1
  %429 = icmp sgt i32 %.1485, 0
  br i1 %429, label %.lr.ph835, label %.loopexit718, !llvm.loop !28

.loopexit718:                                     ; preds = %427, %405, %._crit_edge828
  %.5426 = phi ptr [ %.4425.lcssa, %._crit_edge828 ], [ %410, %405 ], [ %410, %427 ]
  %.not644 = icmp eq i8 %.1541, 0
  br i1 %.not644, label %432, label %430

430:                                              ; preds = %.loopexit718
  %431 = getelementptr inbounds i8, ptr %.5426, i64 -1
  store i8 %.1541, ptr %431, align 1, !tbaa !12
  br label %432

432:                                              ; preds = %430, %.loopexit718
  %.6427 = phi ptr [ %431, %430 ], [ %.5426, %.loopexit718 ]
  %.not645716 = icmp eq i8 %.1487673923, 0
  %.not645 = select i1 %335, i1 true, i1 %.not645716
  br i1 %.not645, label %.loopexit, label %433

433:                                              ; preds = %432
  %434 = getelementptr inbounds i8, ptr %.lcssa862, i64 5
  %435 = load i8, ptr %434, align 1, !tbaa !29
  %.not646 = icmp eq i8 %435, 0
  br i1 %.not646, label %.loopexit, label %436

436:                                              ; preds = %433
  %437 = zext i8 %435 to i64
  %438 = getelementptr inbounds [7 x i8], ptr @aPrefix, i64 0, i64 %437
  %439 = load i8, ptr %438, align 1, !tbaa !12
  %.not647836 = icmp eq i8 %439, 0
  br i1 %.not647836, label %.loopexit, label %.lr.ph840

.lr.ph840:                                        ; preds = %436, %.lr.ph840
  %440 = phi i8 [ %443, %.lr.ph840 ], [ %439, %436 ]
  %.7428838 = phi ptr [ %441, %.lr.ph840 ], [ %.6427, %436 ]
  %.0481837 = phi ptr [ %442, %.lr.ph840 ], [ %438, %436 ]
  %441 = getelementptr inbounds i8, ptr %.7428838, i64 -1
  store i8 %440, ptr %441, align 1, !tbaa !12
  %442 = getelementptr inbounds i8, ptr %.0481837, i64 1
  %443 = load i8, ptr %442, align 1, !tbaa !12
  %.not647 = icmp eq i8 %443, 0
  br i1 %.not647, label %.loopexit, label %.lr.ph840, !llvm.loop !30

.loopexit:                                        ; preds = %.lr.ph840, %436, %433, %432
  %.8429 = phi ptr [ %.6427, %433 ], [ %.6427, %432 ], [ %.6427, %436 ], [ %441, %.lr.ph840 ]
  %444 = ptrtoint ptr %.8429 to i64
  %445 = sub i64 %392, %444
  %446 = trunc i64 %445 to i32
  br label %.critedge15

447:                                              ; preds = %237, %237, %237
  br i1 %.not, label %450, label %448

448:                                              ; preds = %447
  %449 = call double @getDoubleArg(ptr noundef %.0502)
  br label %464

450:                                              ; preds = %447
  %451 = load i32, ptr %30, align 4
  %452 = icmp ult i32 %451, 161
  br i1 %452, label %453, label %458

453:                                              ; preds = %450
  %454 = load ptr, ptr %28, align 8
  %455 = zext nneg i32 %451 to i64
  %456 = getelementptr i8, ptr %454, i64 %455
  %457 = add nuw nsw i32 %451, 16
  store i32 %457, ptr %30, align 4
  br label %461

458:                                              ; preds = %450
  %459 = load ptr, ptr %27, align 8
  %460 = getelementptr i8, ptr %459, i64 8
  store ptr %460, ptr %27, align 8
  br label %461

461:                                              ; preds = %458, %453
  %462 = phi ptr [ %456, %453 ], [ %459, %458 ]
  %463 = load double, ptr %462, align 8, !tbaa !31
  br label %464

464:                                              ; preds = %461, %448
  %storemerge.in = phi double [ %463, %461 ], [ %449, %448 ]
  %storemerge = fpext double %storemerge.in to x86_fp80
  %465 = icmp slt i32 %.1432, 0
  %spec.store.select = select i1 %465, i32 6, i32 %.1432
  %466 = fcmp olt double %storemerge.in, 0.000000e+00
  %467 = fneg x86_fp80 %storemerge
  %storemerge712 = select i1 %466, x86_fp80 %467, x86_fp80 %storemerge
  %.2542 = select i1 %466, i8 45, i8 %.1480676921
  store x86_fp80 %storemerge712, ptr %4, align 16, !tbaa !33
  %468 = icmp eq i8 %239, 3
  %469 = icmp sgt i32 %spec.store.select, 0
  %or.cond = and i1 %468, %469
  %470 = sext i1 %or.cond to i32
  %spec.select651 = add nsw i32 %spec.store.select, %470
  %471 = and i32 %spec.select651, 4095
  %.not844 = icmp eq i32 %471, 0
  br i1 %.not844, label %._crit_edge788, label %.lr.ph787.preheader

.lr.ph787.preheader:                              ; preds = %464
  %xtraiter1072 = and i32 %spec.select651, 7
  %lcmp.mod1073.not = icmp eq i32 %xtraiter1072, 0
  br i1 %lcmp.mod1073.not, label %.lr.ph787.prol.loopexit, label %.lr.ph787.prol

.lr.ph787.prol:                                   ; preds = %.lr.ph787.preheader, %.lr.ph787.prol
  %.3451785.prol = phi i32 [ %472, %.lr.ph787.prol ], [ %471, %.lr.ph787.preheader ]
  %.0507784.prol = phi double [ %473, %.lr.ph787.prol ], [ 5.000000e-01, %.lr.ph787.preheader ]
  %prol.iter = phi i32 [ %prol.iter.next, %.lr.ph787.prol ], [ 0, %.lr.ph787.preheader ]
  %472 = add nsw i32 %.3451785.prol, -1
  %473 = fmul double %.0507784.prol, 1.000000e-01
  %prol.iter.next = add i32 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i32 %prol.iter.next, %xtraiter1072
  br i1 %prol.iter.cmp.not, label %.lr.ph787.prol.loopexit, label %.lr.ph787.prol, !llvm.loop !35

.lr.ph787.prol.loopexit:                          ; preds = %.lr.ph787.prol, %.lr.ph787.preheader
  %.3451785.unr = phi i32 [ %471, %.lr.ph787.preheader ], [ %472, %.lr.ph787.prol ]
  %.0507784.unr = phi double [ 5.000000e-01, %.lr.ph787.preheader ], [ %473, %.lr.ph787.prol ]
  %.lcssa1059.unr = phi double [ poison, %.lr.ph787.preheader ], [ %473, %.lr.ph787.prol ]
  %474 = icmp ult i32 %471, 8
  br i1 %474, label %._crit_edge788, label %.lr.ph787

.lr.ph787:                                        ; preds = %.lr.ph787.prol.loopexit, %.lr.ph787
  %.3451785 = phi i32 [ %482, %.lr.ph787 ], [ %.3451785.unr, %.lr.ph787.prol.loopexit ]
  %.0507784 = phi double [ %483, %.lr.ph787 ], [ %.0507784.unr, %.lr.ph787.prol.loopexit ]
  %475 = fmul double %.0507784, 1.000000e-01
  %476 = fmul double %475, 1.000000e-01
  %477 = fmul double %476, 1.000000e-01
  %478 = fmul double %477, 1.000000e-01
  %479 = fmul double %478, 1.000000e-01
  %480 = fmul double %479, 1.000000e-01
  %481 = fmul double %480, 1.000000e-01
  %482 = add nsw i32 %.3451785, -8
  %483 = fmul double %481, 1.000000e-01
  %484 = add i32 %.3451785, -9
  %485 = icmp ult i32 %484, -2
  br i1 %485, label %.lr.ph787, label %._crit_edge788, !llvm.loop !37

._crit_edge788:                                   ; preds = %.lr.ph787.prol.loopexit, %.lr.ph787, %464
  %.0507.lcssa = phi double [ 5.000000e-01, %464 ], [ %.lcssa1059.unr, %.lr.ph787.prol.loopexit ], [ %483, %.lr.ph787 ]
  %486 = icmp eq i8 %239, 1
  br i1 %486, label %487, label %490

487:                                              ; preds = %._crit_edge788
  %488 = fpext double %.0507.lcssa to x86_fp80
  %489 = fadd x86_fp80 %storemerge712, %488
  store x86_fp80 %489, ptr %4, align 16, !tbaa !33
  br label %490

490:                                              ; preds = %487, %._crit_edge788
  %491 = phi x86_fp80 [ %489, %487 ], [ %storemerge712, %._crit_edge788 ]
  %492 = fptrunc x86_fp80 %491 to double
  %493 = call i32 @sqlite3IsNaN(double noundef %492) #5
  %.not627 = icmp eq i32 %493, 0
  br i1 %.not627, label %494, label %.critedge15

494:                                              ; preds = %490
  %495 = load x86_fp80, ptr %4, align 16, !tbaa !33
  %496 = fcmp ogt x86_fp80 %495, 0xK00000000000000000000
  br i1 %496, label %.preheader725, label %.thread684

.preheader725:                                    ; preds = %494
  %497 = fcmp ult x86_fp80 %495, 0xK414B924D692CA61BE800
  br i1 %497, label %.preheader724.preheader, label %.preheader725.1, !llvm.loop !38

.preheader725.1:                                  ; preds = %.preheader725
  %498 = fcmp ult x86_fp80 %495, 0xK4297A738C6BEBB12D2EC
  br i1 %498, label %.preheader724.preheader, label %.preheader725.2, !llvm.loop !38

.preheader725.2:                                  ; preds = %.preheader725.1
  %499 = fcmp ult x86_fp80 %495, 0xK43E3BF21E44003ACDFBE
  br i1 %499, label %.preheader724.preheader, label %.preheader725.3, !llvm.loop !38

.preheader725.3:                                  ; preds = %.preheader725.2
  %500 = fcmp ult x86_fp80 %495, 0xK452FDA763FC8CB9FFDCF
  br i1 %500, label %.preheader724.preheader, label %.preheader725.4, !llvm.loop !38

.preheader725.4:                                  ; preds = %.preheader725.3
  br label %.preheader724.preheader

.preheader724.preheader:                          ; preds = %.preheader725.4, %.preheader725.3, %.preheader725.2, %.preheader725.1, %.preheader725
  %.0512.lcssa = phi i32 [ 0, %.preheader725 ], [ 100, %.preheader725.1 ], [ 200, %.preheader725.2 ], [ 300, %.preheader725.3 ], [ 400, %.preheader725.4 ]
  %.0472.lcssa = phi x86_fp80 [ 0xK3FFF8000000000000000, %.preheader725 ], [ 0xK414B924D692CA61BE800, %.preheader725.1 ], [ 0xK4297A738C6BEBB12D2EC, %.preheader725.2 ], [ 0xK43E3BF21E44003ACDFBE, %.preheader725.3 ], [ 0xK452FDA763FC8CB9FFDCF, %.preheader725.4 ]
  br label %.preheader724

.preheader724:                                    ; preds = %.preheader724.preheader, %.preheader724
  %.1513 = phi i32 [ %505, %.preheader724 ], [ %.0512.lcssa, %.preheader724.preheader ]
  %.1473 = phi x86_fp80 [ %501, %.preheader724 ], [ %.0472.lcssa, %.preheader724.preheader ]
  %501 = fmul x86_fp80 %.1473, 0xK40209502F90000000000
  %502 = fcmp oge x86_fp80 %495, %501
  %503 = icmp ult i32 %.1513, 351
  %504 = select i1 %502, i1 %503, i1 false
  %505 = add nuw nsw i32 %.1513, 10
  br i1 %504, label %.preheader724, label %.preheader723, !llvm.loop !39

.preheader723:                                    ; preds = %.preheader724, %.preheader723
  %.2514 = phi i32 [ %510, %.preheader723 ], [ %.1513, %.preheader724 ]
  %.2474 = phi x86_fp80 [ %506, %.preheader723 ], [ %.1473, %.preheader724 ]
  %506 = fmul x86_fp80 %.2474, 0xK4002A000000000000000
  %507 = fcmp oge x86_fp80 %495, %506
  %508 = icmp ult i32 %.2514, 351
  %509 = select i1 %507, i1 %508, i1 false
  %510 = add nuw nsw i32 %.2514, 1
  br i1 %509, label %.preheader723, label %511, !llvm.loop !40

511:                                              ; preds = %.preheader723
  %512 = fdiv x86_fp80 %495, %.2474
  store x86_fp80 %512, ptr %4, align 16, !tbaa !33
  %513 = fcmp olt x86_fp80 %512, 0xK3FE4ABCC77118461D000
  br i1 %513, label %.lr.ph792, label %thread-pre-split

.lr.ph792:                                        ; preds = %511, %.lr.ph792
  %.3515790 = phi i32 [ %516, %.lr.ph792 ], [ %.2514, %511 ]
  %514 = phi x86_fp80 [ %515, %.lr.ph792 ], [ %512, %511 ]
  %515 = fmul x86_fp80 %514, 0xK4019BEBC200000000000
  %516 = add nsw i32 %.3515790, -8
  %517 = fcmp olt x86_fp80 %515, 0xK3FE4ABCC77118461D000
  br i1 %517, label %.lr.ph792, label %.thread-pre-split_crit_edge, !llvm.loop !41

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

thread-pre-split:                                 ; preds = %.thread-pre-split_crit_edge, %511
  %.pr = phi x86_fp80 [ %515, %.thread-pre-split_crit_edge ], [ %512, %511 ]
  %.3515.lcssa = phi i32 [ %516, %.thread-pre-split_crit_edge ], [ %.2514, %511 ]
  %518 = fcmp olt x86_fp80 %.pr, 0xK3FFF8000000000000000
  br i1 %518, label %.lr.ph796, label %523

.lr.ph796:                                        ; preds = %thread-pre-split, %.lr.ph796
  %.4516795 = phi i32 [ %521, %.lr.ph796 ], [ %.3515.lcssa, %thread-pre-split ]
  %519 = phi x86_fp80 [ %520, %.lr.ph796 ], [ %.pr, %thread-pre-split ]
  %520 = fmul x86_fp80 %519, 0xK4002A000000000000000
  %521 = add nsw i32 %.4516795, -1
  %522 = fcmp olt x86_fp80 %520, 0xK3FFF8000000000000000
  br i1 %522, label %.lr.ph796, label %._crit_edge797, !llvm.loop !42

._crit_edge797:                                   ; preds = %.lr.ph796
  store x86_fp80 %520, ptr %4, align 16, !tbaa !33
  br label %523

523:                                              ; preds = %._crit_edge797, %thread-pre-split
  %524 = phi x86_fp80 [ %520, %._crit_edge797 ], [ %.pr, %thread-pre-split ]
  %.4516.lcssa = phi i32 [ %521, %._crit_edge797 ], [ %.3515.lcssa, %thread-pre-split ]
  %525 = icmp sgt i32 %.4516.lcssa, 350
  br i1 %525, label %526, label %.thread684

526:                                              ; preds = %523
  store i8 %.2542, ptr %6, align 16, !tbaa !12
  %527 = icmp ne i8 %.2542, 0
  %528 = zext i1 %527 to i64
  %529 = getelementptr inbounds i8, ptr %6, i64 %528
  store i32 %31, ptr %529, align 1
  %530 = select i1 %527, i32 4, i32 3
  br label %.critedge15

.thread684:                                       ; preds = %523, %494
  %531 = phi x86_fp80 [ %495, %494 ], [ %524, %523 ]
  %.5517 = phi i32 [ 0, %494 ], [ %.4516.lcssa, %523 ]
  br i1 %486, label %.thread689, label %532

532:                                              ; preds = %.thread684
  %533 = fpext double %.0507.lcssa to x86_fp80
  %534 = fadd x86_fp80 %531, %533
  store x86_fp80 %534, ptr %4, align 16, !tbaa !33
  %535 = fcmp ult x86_fp80 %534, 0xK4002A000000000000000
  br i1 %535, label %539, label %536

536:                                              ; preds = %532
  %537 = fmul x86_fp80 %534, 0xK3FFBCCCCCCCCCCCCD000
  store x86_fp80 %537, ptr %4, align 16, !tbaa !33
  %538 = add nsw i32 %.5517, 1
  br label %539

539:                                              ; preds = %532, %536
  %.6518 = phi i32 [ %538, %536 ], [ %.5517, %532 ]
  br i1 %468, label %540, label %.thread689

540:                                              ; preds = %539
  %.not629 = icmp eq i8 %.1487673923, 0
  %541 = zext i1 %.not629 to i8
  %542 = icmp slt i32 %.6518, -4
  %543 = icmp sgt i32 %.6518, %spec.select651
  %or.cond652 = or i1 %542, %543
  %spec.select658 = select i1 %or.cond652, i8 2, i8 1
  %544 = select i1 %or.cond652, i32 0, i32 %.6518
  %spec.select659 = sub nsw i32 %spec.select651, %544
  br label %.thread689

.thread689:                                       ; preds = %.thread684, %540, %539
  %.6518691 = phi i32 [ %.6518, %539 ], [ %.6518, %540 ], [ %.5517, %.thread684 ]
  %.1545 = phi i8 [ %239, %539 ], [ %spec.select658, %540 ], [ 1, %.thread684 ]
  %.0503 = phi i8 [ %.1490671925, %539 ], [ %541, %540 ], [ %.1490671925, %.thread684 ]
  %.4435 = phi i32 [ %spec.select651, %539 ], [ %spec.select659, %540 ], [ %spec.select651, %.thread684 ]
  %545 = icmp eq i8 %.1545, 2
  %..6518 = select i1 %545, i32 0, i32 %.6518691
  %546 = call i32 @llvm.smax.i32(i32 %..6518, i32 0)
  %547 = zext nneg i32 %546 to i64
  %548 = sext i32 %.4435 to i64
  %549 = zext nneg i32 %.2454 to i64
  %550 = add nsw i64 %548, %549
  %551 = add nsw i64 %550, %547
  %552 = icmp sgt i64 %551, 55
  br i1 %552, label %553, label %558

553:                                              ; preds = %.thread689
  %554 = add nuw nsw i64 %551, 15
  %555 = call ptr @sqlite3Malloc(i64 noundef %554) #5
  %556 = icmp eq ptr %555, null
  br i1 %556, label %557, label %558

557:                                              ; preds = %553
  call void @setStrAccumError(ptr noundef %0, i8 noundef zeroext 1)
  br label %.thread679

558:                                              ; preds = %553, %.thread689
  %.2523 = phi ptr [ %555, %553 ], [ null, %.thread689 ]
  %.10 = phi ptr [ %555, %553 ], [ %6, %.thread689 ]
  %559 = zext nneg i8 %.1490671925 to i32
  %560 = mul nuw nsw i32 %559, 10
  %561 = add nuw nsw i32 %560, 16
  store i32 %561, ptr %5, align 4, !tbaa !15
  %562 = icmp sgt i32 %.4435, 0
  %563 = zext i1 %562 to i8
  %564 = or i8 %.1487673923, %563
  %565 = or i8 %564, %.1490671925
  %.not630 = icmp eq i8 %.2542, 0
  br i1 %.not630, label %568, label %566

566:                                              ; preds = %558
  %567 = getelementptr inbounds i8, ptr %.10, i64 1
  store i8 %.2542, ptr %.10, align 1, !tbaa !12
  br label %568

568:                                              ; preds = %566, %558
  %.11 = phi ptr [ %567, %566 ], [ %.10, %558 ]
  %569 = icmp slt i32 %..6518, 0
  br i1 %569, label %570, label %.preheader721

570:                                              ; preds = %568
  %571 = getelementptr inbounds i8, ptr %.11, i64 1
  store i8 48, ptr %.11, align 1, !tbaa !12
  br label %.loopexit722

.preheader721:                                    ; preds = %568, %.preheader721
  %.12801 = phi ptr [ %573, %.preheader721 ], [ %.11, %568 ]
  %.1509800 = phi i32 [ %574, %.preheader721 ], [ %..6518, %568 ]
  %572 = call signext i8 @et_getdigit(ptr noundef nonnull %4, ptr noundef nonnull %5)
  %573 = getelementptr inbounds i8, ptr %.12801, i64 1
  store i8 %572, ptr %.12801, align 1, !tbaa !12
  %574 = add nsw i32 %.1509800, -1
  %.not982 = icmp eq i32 %.1509800, 0
  br i1 %.not982, label %.loopexit722, label %.preheader721, !llvm.loop !43

.loopexit722:                                     ; preds = %.preheader721, %570
  %.2510 = phi i32 [ %.6518691, %570 ], [ -1, %.preheader721 ]
  %.13 = phi ptr [ %571, %570 ], [ %573, %.preheader721 ]
  %.not631 = icmp eq i8 %565, 0
  br i1 %.not631, label %577, label %575

575:                                              ; preds = %.loopexit722
  %576 = getelementptr inbounds i8, ptr %.13, i64 1
  store i8 46, ptr %.13, align 1, !tbaa !12
  br label %577

577:                                              ; preds = %575, %.loopexit722
  %.14 = phi ptr [ %576, %575 ], [ %.13, %.loopexit722 ]
  %578 = icmp slt i32 %.2510, -1
  br i1 %578, label %.lr.ph806.preheader, label %.preheader720

.lr.ph806.preheader:                              ; preds = %577
  %579 = sub nuw nsw i32 -2, %.2510
  %580 = zext nneg i32 %579 to i64
  %581 = add nuw nsw i64 %580, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %.14, i8 48, i64 %581, i1 false), !tbaa !12
  %582 = add i32 %.4435, 1
  %scevgep = getelementptr i8, ptr %.14, i64 1
  %scevgep890 = getelementptr i8, ptr %scevgep, i64 %580
  %583 = add i32 %582, %.2510
  br label %.preheader720

.preheader720:                                    ; preds = %.lr.ph806.preheader, %577
  %.5436.lcssa = phi i32 [ %.4435, %577 ], [ %583, %.lr.ph806.preheader ]
  %.15.lcssa = phi ptr [ %.14, %577 ], [ %scevgep890, %.lr.ph806.preheader ]
  %584 = icmp sgt i32 %.5436.lcssa, 0
  br i1 %584, label %.lr.ph811, label %._crit_edge812

.lr.ph811:                                        ; preds = %.preheader720, %.lr.ph811
  %.16810 = phi ptr [ %587, %.lr.ph811 ], [ %.15.lcssa, %.preheader720 ]
  %.6437809 = phi i32 [ %585, %.lr.ph811 ], [ %.5436.lcssa, %.preheader720 ]
  %585 = add nsw i32 %.6437809, -1
  %586 = call signext i8 @et_getdigit(ptr noundef nonnull %4, ptr noundef nonnull %5)
  %587 = getelementptr inbounds i8, ptr %.16810, i64 1
  store i8 %586, ptr %.16810, align 1, !tbaa !12
  %588 = icmp ugt i32 %.6437809, 1
  br i1 %588, label %.lr.ph811, label %._crit_edge812, !llvm.loop !44

._crit_edge812:                                   ; preds = %.lr.ph811, %.preheader720
  %.16.lcssa = phi ptr [ %.15.lcssa, %.preheader720 ], [ %587, %.lr.ph811 ]
  %589 = icmp ne i8 %.0503, 0
  %590 = icmp ne i8 %565, 0
  %or.cond9 = select i1 %589, i1 %590, i1 false
  br i1 %or.cond9, label %.preheader, label %.loopexit719

.preheader:                                       ; preds = %._crit_edge812, %593
  %.17 = phi ptr [ %591, %593 ], [ %.16.lcssa, %._crit_edge812 ]
  %591 = getelementptr inbounds i8, ptr %.17, i64 -1
  %592 = load i8, ptr %591, align 1, !tbaa !12
  switch i8 %592, label %.loopexit719 [
    i8 48, label %593
    i8 46, label %594
  ]

593:                                              ; preds = %.preheader
  store i8 0, ptr %591, align 1, !tbaa !12
  br label %.preheader, !llvm.loop !45

594:                                              ; preds = %.preheader
  %.not632 = icmp eq i8 %.1490671925, 0
  br i1 %.not632, label %597, label %595

595:                                              ; preds = %594
  %596 = getelementptr inbounds i8, ptr %.17, i64 1
  store i8 48, ptr %.17, align 1, !tbaa !12
  br label %.loopexit719

597:                                              ; preds = %594
  store i8 0, ptr %591, align 1, !tbaa !12
  br label %.loopexit719

.loopexit719:                                     ; preds = %.preheader, %597, %595, %._crit_edge812
  %.18 = phi ptr [ %596, %595 ], [ %591, %597 ], [ %.16.lcssa, %._crit_edge812 ], [ %.17, %.preheader ]
  br i1 %545, label %598, label %620

598:                                              ; preds = %.loopexit719
  %599 = getelementptr inbounds i8, ptr %.lcssa862, i64 4
  %600 = load i8, ptr %599, align 1, !tbaa !25
  %601 = zext i8 %600 to i64
  %602 = getelementptr inbounds [33 x i8], ptr @aDigits, i64 0, i64 %601
  %603 = load i8, ptr %602, align 1, !tbaa !12
  %604 = getelementptr inbounds i8, ptr %.18, i64 1
  store i8 %603, ptr %.18, align 1, !tbaa !12
  %605 = icmp slt i32 %.6518691, 0
  %spec.select980 = select i1 %605, i8 45, i8 43
  %spec.select981 = call i32 @llvm.abs.i32(i32 %.6518691, i1 true)
  store i8 %spec.select980, ptr %604, align 1
  %.19 = getelementptr inbounds i8, ptr %.18, i64 2
  %606 = icmp ugt i32 %spec.select981, 99
  br i1 %606, label %607, label %613

607:                                              ; preds = %598
  %608 = udiv i32 %spec.select981, 100
  %609 = trunc i32 %608 to i8
  %610 = add i8 %609, 48
  %611 = getelementptr inbounds i8, ptr %.18, i64 3
  store i8 %610, ptr %.19, align 1, !tbaa !12
  %612 = urem i32 %spec.select981, 100
  br label %613

613:                                              ; preds = %607, %598
  %.8520 = phi i32 [ %612, %607 ], [ %spec.select981, %598 ]
  %.20 = phi ptr [ %611, %607 ], [ %.19, %598 ]
  %.lhs.trunc = trunc nuw i32 %.8520 to i8
  %614 = udiv i8 %.lhs.trunc, 10
  %615 = or disjoint i8 %614, 48
  %616 = getelementptr inbounds i8, ptr %.20, i64 1
  store i8 %615, ptr %.20, align 1, !tbaa !12
  %617 = urem i8 %.lhs.trunc, 10
  %618 = or disjoint i8 %617, 48
  %619 = getelementptr inbounds i8, ptr %.20, i64 2
  store i8 %618, ptr %616, align 1, !tbaa !12
  br label %620

620:                                              ; preds = %613, %.loopexit719
  %.21 = phi ptr [ %619, %613 ], [ %.18, %.loopexit719 ]
  store i8 0, ptr %.21, align 1, !tbaa !12
  %621 = ptrtoint ptr %.21 to i64
  %622 = ptrtoint ptr %.10 to i64
  %623 = sub i64 %621, %622
  %624 = trunc i64 %623 to i32
  %625 = icmp ne i8 %.1498669927, 0
  %626 = icmp eq i8 %.3478, 0
  %or.cond11.not715 = select i1 %625, i1 %626, i1 false
  %627 = icmp sgt i32 %.2454, %624
  %or.cond653 = select i1 %or.cond11.not715, i1 %627, i1 false
  br i1 %or.cond653, label %628, label %.critedge15

628:                                              ; preds = %620
  %.not633814 = icmp slt i32 %624, 0
  br i1 %.not633814, label %._crit_edge818, label %iter.check

iter.check:                                       ; preds = %628
  %629 = sub nsw i32 %.2454, %624
  %630 = sext i32 %.2454 to i64
  %631 = sext i32 %629 to i64
  %632 = add nsw i64 %630, 1
  %smin1019 = call i64 @llvm.smin.i64(i64 %631, i64 %630)
  %633 = sub i64 %632, %smin1019
  %min.iters.check = icmp ult i64 %633, 4
  br i1 %min.iters.check, label %.lr.ph817.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %iter.check
  %smin = call i64 @llvm.smin.i64(i64 %631, i64 %630)
  %634 = sub i64 %630, %smin
  %scevgep1014 = getelementptr i8, ptr %.10, i64 %630
  %635 = sub i64 0, %634
  %636 = getelementptr i8, ptr %scevgep1014, i64 %635
  %637 = icmp ugt ptr %636, %scevgep1014
  %638 = and i64 %623, 2147483647
  %scevgep1015 = getelementptr i8, ptr %.10, i64 %638
  %639 = sub i64 0, %634
  %640 = getelementptr i8, ptr %scevgep1015, i64 %639
  %641 = icmp ugt ptr %640, %scevgep1015
  %642 = or i1 %637, %641
  br i1 %642, label %.lr.ph817.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %643 = and i64 %623, 2147483647
  %644 = sub nsw i64 %643, %630
  %diff.check = icmp ult i64 %644, 16
  br i1 %diff.check, label %.lr.ph817.preheader, label %vector.main.loop.iter.check

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

vector.ph:                                        ; preds = %vector.main.loop.iter.check
  %n.vec = and i64 %633, -16
  %invariant.gep = getelementptr i8, ptr %.10, i64 -15
  %invariant.gep1114 = getelementptr i8, ptr %.10, 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 %630, %index
  %645 = sub nsw i64 %offset.idx, %631
  %gep = getelementptr i8, ptr %invariant.gep, i64 %645
  %wide.load = load <16 x i8>, ptr %gep, align 1, !tbaa !12
  %gep1115 = getelementptr i8, ptr %invariant.gep1114, i64 %offset.idx
  store <16 x i8> %wide.load, ptr %gep1115, align 1, !tbaa !12
  %index.next = add nuw i64 %index, 16
  %646 = icmp eq i64 %index.next, %n.vec
  br i1 %646, label %middle.block, label %vector.body, !llvm.loop !46

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

vec.epilog.iter.check:                            ; preds = %middle.block
  %ind.end1024 = sub i64 %630, %n.vec
  %n.vec.remaining = and i64 %633, 12
  %min.epilog.iters.check = icmp eq i64 %n.vec.remaining, 0
  br i1 %min.epilog.iters.check, label %.lr.ph817.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.vec1023 = and i64 %633, -4
  %ind.end = sub i64 %630, %n.vec1023
  %invariant.gep1116 = getelementptr i8, ptr %.10, i64 -3
  %invariant.gep1118 = getelementptr i8, ptr %.10, i64 -3
  br label %vec.epilog.vector.body

vec.epilog.vector.body:                           ; preds = %vec.epilog.vector.body, %vec.epilog.ph
  %index1025 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next1030, %vec.epilog.vector.body ]
  %offset.idx1026 = sub i64 %630, %index1025
  %647 = sub nsw i64 %offset.idx1026, %631
  %gep1117 = getelementptr i8, ptr %invariant.gep1116, i64 %647
  %wide.load1027 = load <4 x i8>, ptr %gep1117, align 1, !tbaa !12
  %gep1119 = getelementptr i8, ptr %invariant.gep1118, i64 %offset.idx1026
  store <4 x i8> %wide.load1027, ptr %gep1119, align 1, !tbaa !12
  %index.next1030 = add nuw i64 %index1025, 4
  %648 = icmp eq i64 %index.next1030, %n.vec1023
  br i1 %648, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !49

vec.epilog.middle.block:                          ; preds = %vec.epilog.vector.body
  %cmp.n1031 = icmp eq i64 %633, %n.vec1023
  br i1 %cmp.n1031, label %._crit_edge818, label %.lr.ph817.preheader

.lr.ph817.preheader:                              ; preds = %vec.epilog.middle.block, %vector.memcheck, %vector.scevcheck, %iter.check, %vec.epilog.iter.check
  %indvars.iv893.ph = phi i64 [ %630, %iter.check ], [ %630, %vector.memcheck ], [ %630, %vector.scevcheck ], [ %ind.end1024, %vec.epilog.iter.check ], [ %ind.end, %vec.epilog.middle.block ]
  br label %.lr.ph817

.lr.ph817:                                        ; preds = %.lr.ph817.preheader, %.lr.ph817
  %indvars.iv893 = phi i64 [ %indvars.iv.next894, %.lr.ph817 ], [ %indvars.iv893.ph, %.lr.ph817.preheader ]
  %649 = sub nsw i64 %indvars.iv893, %631
  %650 = getelementptr inbounds i8, ptr %.10, i64 %649
  %651 = load i8, ptr %650, align 1, !tbaa !12
  %652 = getelementptr inbounds i8, ptr %.10, i64 %indvars.iv893
  store i8 %651, ptr %652, align 1, !tbaa !12
  %indvars.iv.next894 = add nsw i64 %indvars.iv893, -1
  %.not633.not = icmp sgt i64 %indvars.iv893, %631
  br i1 %.not633.not, label %.lr.ph817, label %._crit_edge818, !llvm.loop !50

._crit_edge818:                                   ; preds = %.lr.ph817, %middle.block, %vec.epilog.middle.block, %628
  %.not634819 = icmp eq i32 %.2454, %624
  br i1 %.not634819, label %.critedge15, label %.lr.ph823.preheader

.lr.ph823.preheader:                              ; preds = %._crit_edge818
  %653 = icmp ne i8 %.2542, 0
  %654 = zext i1 %653 to i64
  %scevgep896 = getelementptr i8, ptr %.10, i64 %654
  %655 = add i32 %.2454, -1
  %656 = trunc i64 %622 to i32
  %657 = add i32 %655, %656
  %658 = trunc i64 %621 to i32
  %659 = sub i32 %657, %658
  %660 = zext i32 %659 to i64
  %661 = add nuw nsw i64 %660, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %scevgep896, i8 48, i64 %661, i1 false), !tbaa !12
  br label %.critedge15

662:                                              ; preds = %237
  br i1 %.not, label %663, label %.critedge15

663:                                              ; preds = %662
  %664 = load i32, ptr %29, align 8, !tbaa !51
  %665 = load i32, ptr %2, align 8
  %666 = icmp ult i32 %665, 41
  br i1 %666, label %667, label %672

667:                                              ; preds = %663
  %668 = load ptr, ptr %28, align 8
  %669 = zext nneg i32 %665 to i64
  %670 = getelementptr i8, ptr %668, i64 %669
  %671 = add nuw nsw i32 %665, 8
  store i32 %671, ptr %2, align 8
  br label %675

672:                                              ; preds = %663
  %673 = load ptr, ptr %27, align 8
  %674 = getelementptr i8, ptr %673, i64 8
  store ptr %674, ptr %27, align 8
  br label %675

675:                                              ; preds = %672, %667
  %676 = phi ptr [ %670, %667 ], [ %673, %672 ]
  %677 = load ptr, ptr %676, align 8, !tbaa !11
  store i32 %664, ptr %677, align 4, !tbaa !15
  br label %.critedge15

678:                                              ; preds = %237
  store i8 37, ptr %6, align 16, !tbaa !12
  br label %.critedge15

679:                                              ; preds = %237
  br i1 %.not, label %685, label %680

680:                                              ; preds = %679
  %681 = call ptr @getTextArg(ptr noundef %.0502)
  %.not624 = icmp eq ptr %681, null
  br i1 %.not624, label %699, label %682

682:                                              ; preds = %680
  %683 = load i8, ptr %681, align 1, !tbaa !12
  %684 = zext i8 %683 to i32
  br label %699

685:                                              ; preds = %679
  %686 = load i32, ptr %2, align 8
  %687 = icmp ult i32 %686, 41
  br i1 %687, label %688, label %693

688:                                              ; preds = %685
  %689 = load ptr, ptr %28, align 8
  %690 = zext nneg i32 %686 to i64
  %691 = getelementptr i8, ptr %689, i64 %690
  %692 = add nuw nsw i32 %686, 8
  store i32 %692, ptr %2, align 8
  br label %696

693:                                              ; preds = %685
  %694 = load ptr, ptr %27, align 8
  %695 = getelementptr i8, ptr %694, i64 8
  store ptr %695, ptr %27, align 8
  br label %696

696:                                              ; preds = %693, %688
  %697 = phi ptr [ %691, %688 ], [ %694, %693 ]
  %698 = load i32, ptr %697, align 4, !tbaa !15
  br label %699

699:                                              ; preds = %682, %680, %696
  %.7420 = phi i32 [ %698, %696 ], [ %684, %682 ], [ 0, %680 ]
  %700 = icmp sgt i32 %.1432, 1
  br i1 %700, label %701, label %._crit_edge911

._crit_edge911:                                   ; preds = %699
  %.pre = trunc i32 %.7420 to i8
  br label %710

701:                                              ; preds = %699
  %702 = add nsw i32 %.1432, -1
  %703 = sub nsw i32 %.2454, %702
  %704 = icmp slt i32 %703, 2
  %705 = icmp ne i8 %.3478, 0
  %or.cond13 = select i1 %704, i1 true, i1 %705
  br i1 %or.cond13, label %708, label %706

706:                                              ; preds = %701
  %707 = add nsw i32 %703, -1
  call void @sqlite3AppendChar(ptr noundef %0, i32 noundef %707, i8 noundef signext 32)
  br label %708

708:                                              ; preds = %706, %701
  %.3455 = phi i32 [ %703, %701 ], [ 0, %706 ]
  %709 = trunc i32 %.7420 to i8
  call void @sqlite3AppendChar(ptr noundef %0, i32 noundef %702, i8 noundef signext %709)
  br label %710

710:                                              ; preds = %._crit_edge911, %708
  %.pre-phi = phi i8 [ %.pre, %._crit_edge911 ], [ %709, %708 ]
  %.4456 = phi i32 [ %.2454, %._crit_edge911 ], [ %.3455, %708 ]
  store i8 %.pre-phi, ptr %6, align 16, !tbaa !12
  br label %.critedge15

711:                                              ; preds = %237, %237
  br i1 %.not, label %713, label %.thread692

.thread692:                                       ; preds = %711
  %712 = call ptr @getTextArg(ptr noundef %.0502)
  br label %728

713:                                              ; preds = %711
  %714 = load i32, ptr %2, align 8
  %715 = icmp ult i32 %714, 41
  br i1 %715, label %716, label %721

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

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

724:                                              ; preds = %716, %721
  %725 = phi ptr [ %719, %716 ], [ %722, %721 ]
  %726 = load ptr, ptr %725, align 8, !tbaa !11
  %727 = icmp eq i8 %239, 6
  %spec.select711 = select i1 %727, ptr %726, ptr null
  br label %728

728:                                              ; preds = %724, %.thread692
  %.22695 = phi ptr [ %712, %.thread692 ], [ %726, %724 ]
  %729 = phi ptr [ null, %.thread692 ], [ %spec.select711, %724 ]
  %730 = icmp eq ptr %.22695, null
  %.3524 = select i1 %730, ptr null, ptr %729
  %.23 = select i1 %730, ptr @.str.3, ptr %.22695
  %731 = icmp sgt i32 %.1432, -1
  br i1 %731, label %.preheader726, label %735

.preheader726:                                    ; preds = %728
  %.not843 = icmp eq i32 %.1432, 0
  br i1 %.not843, label %.critedge15, label %.lr.ph780.preheader

.lr.ph780.preheader:                              ; preds = %.preheader726
  %wide.trip.count888 = zext nneg i32 %.1432 to i64
  br label %.lr.ph780

.lr.ph780:                                        ; preds = %.lr.ph780.preheader, %734
  %indvars.iv885 = phi i64 [ 0, %.lr.ph780.preheader ], [ %indvars.iv.next886, %734 ]
  %732 = getelementptr inbounds i8, ptr %.23, i64 %indvars.iv885
  %733 = load i8, ptr %732, align 1, !tbaa !12
  %.not622 = icmp eq i8 %733, 0
  br i1 %.not622, label %.critedge15.loopexit.split.loop.exit978, label %734

734:                                              ; preds = %.lr.ph780
  %indvars.iv.next886 = add nuw nsw i64 %indvars.iv885, 1
  %exitcond889.not = icmp eq i64 %indvars.iv.next886, %wide.trip.count888
  br i1 %exitcond889.not, label %.critedge15, label %.lr.ph780, !llvm.loop !52

735:                                              ; preds = %728
  %736 = call i32 @sqlite3Strlen30(ptr noundef nonnull %.23) #5
  br label %.critedge15

737:                                              ; preds = %237, %237, %237
  %738 = icmp eq i8 %239, 14
  %739 = select i1 %738, i8 34, i8 39
  br i1 %.not, label %742, label %740

740:                                              ; preds = %737
  %741 = call ptr @getTextArg(ptr noundef %.0502)
  br label %756

742:                                              ; preds = %737
  %743 = load i32, ptr %2, align 8
  %744 = icmp ult i32 %743, 41
  br i1 %744, label %745, label %750

745:                                              ; preds = %742
  %746 = load ptr, ptr %28, align 8
  %747 = zext nneg i32 %743 to i64
  %748 = getelementptr i8, ptr %746, i64 %747
  %749 = add nuw nsw i32 %743, 8
  store i32 %749, ptr %2, align 8
  br label %753

750:                                              ; preds = %742
  %751 = load ptr, ptr %27, align 8
  %752 = getelementptr i8, ptr %751, i64 8
  store ptr %752, ptr %27, align 8
  br label %753

753:                                              ; preds = %750, %745
  %754 = phi ptr [ %748, %745 ], [ %751, %750 ]
  %755 = load ptr, ptr %754, align 8, !tbaa !11
  br label %756

756:                                              ; preds = %753, %740
  %.0438 = phi ptr [ %741, %740 ], [ %755, %753 ]
  %757 = icmp ne ptr %.0438, null
  %758 = icmp eq i8 %239, 10
  %759 = select i1 %758, ptr @.str.4, ptr @.str.5
  %.1439 = select i1 %757, ptr %.0438, ptr %759
  %.not619762 = icmp eq i32 %.1432, 0
  br i1 %.not619762, label %.critedge17, label %.lr.ph767

.lr.ph767:                                        ; preds = %756, %762
  %indvars.iv = phi i64 [ %indvars.iv.next, %762 ], [ 0, %756 ]
  %.0460765 = phi i32 [ %spec.select655, %762 ], [ 0, %756 ]
  %.0462764 = phi i32 [ %765, %762 ], [ %.1432, %756 ]
  %760 = getelementptr inbounds i8, ptr %.1439, i64 %indvars.iv
  %761 = load i8, ptr %760, align 1, !tbaa !12
  %.not620 = icmp eq i8 %761, 0
  br i1 %.not620, label %.critedge17.loopexit.split.loop.exit975, label %762

762:                                              ; preds = %.lr.ph767
  %763 = icmp eq i8 %761, %739
  %764 = zext i1 %763 to i32
  %spec.select655 = add nuw nsw i32 %.0460765, %764
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %765 = add nsw i32 %.0462764, -1
  %.not619 = icmp eq i32 %765, 0
  br i1 %.not619, label %.critedge17, label %.lr.ph767, !llvm.loop !53

.critedge17.loopexit.split.loop.exit975:          ; preds = %.lr.ph767
  %766 = trunc nuw nsw i64 %indvars.iv to i32
  br label %.critedge17

.critedge17:                                      ; preds = %762, %.critedge17.loopexit.split.loop.exit975, %756
  %.0467.lcssa = phi i32 [ 0, %756 ], [ %766, %.critedge17.loopexit.split.loop.exit975 ], [ %.1432, %762 ]
  %.0460.lcssa = phi i32 [ 0, %756 ], [ %.0460765, %.critedge17.loopexit.split.loop.exit975 ], [ %spec.select655, %762 ]
  %767 = and i1 %758, %757
  %768 = add nuw nsw i32 %.0467.lcssa, 3
  %769 = add nuw nsw i32 %768, %.0460.lcssa
  %770 = icmp ugt i32 %769, 70
  br i1 %770, label %771, label %775

771:                                              ; preds = %.critedge17
  %772 = zext nneg i32 %769 to i64
  %773 = call ptr @sqlite3Malloc(i64 noundef %772) #5
  %774 = icmp eq ptr %773, null
  br i1 %774, label %816, label %775

775:                                              ; preds = %.critedge17, %771
  %.4525 = phi ptr [ %773, %771 ], [ null, %.critedge17 ]
  %.24 = phi ptr [ %773, %771 ], [ %6, %.critedge17 ]
  br i1 %767, label %776, label %777

776:                                              ; preds = %775
  store i8 39, ptr %.24, align 1, !tbaa !12
  br label %777

777:                                              ; preds = %776, %775
  %.0463 = phi i32 [ 1, %776 ], [ 0, %775 ]
  %.not842 = icmp eq i32 %.0467.lcssa, 0
  br i1 %.not842, label %._crit_edge777, label %.lr.ph776.preheader

.lr.ph776.preheader:                              ; preds = %777
  %wide.trip.count = zext i32 %.0467.lcssa to i64
  %xtraiter = and i64 %wide.trip.count, 1
  %778 = icmp eq i32 %.0467.lcssa, 1
  br i1 %778, label %._crit_edge777.loopexit.unr-lcssa, label %.lr.ph776.preheader.new

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

.lr.ph776:                                        ; preds = %799, %.lr.ph776.preheader.new
  %indvars.iv882 = phi i64 [ 0, %.lr.ph776.preheader.new ], [ %indvars.iv.next883.1, %799 ]
  %.1464774 = phi i32 [ %.0463, %.lr.ph776.preheader.new ], [ %.2465.1, %799 ]
  %niter = phi i64 [ 0, %.lr.ph776.preheader.new ], [ %niter.next.1, %799 ]
  %779 = getelementptr inbounds i8, ptr %.1439, i64 %indvars.iv882
  %780 = load i8, ptr %779, align 1, !tbaa !12
  %781 = add nsw i32 %.1464774, 1
  %782 = sext i32 %.1464774 to i64
  %783 = getelementptr inbounds i8, ptr %.24, i64 %782
  store i8 %780, ptr %783, align 1, !tbaa !12
  %784 = icmp eq i8 %780, %739
  br i1 %784, label %785, label %.lr.ph776.1

785:                                              ; preds = %.lr.ph776
  %786 = add nsw i32 %.1464774, 2
  %787 = sext i32 %781 to i64
  %788 = getelementptr inbounds i8, ptr %.24, i64 %787
  store i8 %739, ptr %788, align 1, !tbaa !12
  br label %.lr.ph776.1

.lr.ph776.1:                                      ; preds = %.lr.ph776, %785
  %.2465 = phi i32 [ %786, %785 ], [ %781, %.lr.ph776 ]
  %indvars.iv.next883 = or disjoint i64 %indvars.iv882, 1
  %789 = getelementptr inbounds i8, ptr %.1439, i64 %indvars.iv.next883
  %790 = load i8, ptr %789, align 1, !tbaa !12
  %791 = add nsw i32 %.2465, 1
  %792 = sext i32 %.2465 to i64
  %793 = getelementptr inbounds i8, ptr %.24, i64 %792
  store i8 %790, ptr %793, align 1, !tbaa !12
  %794 = icmp eq i8 %790, %739
  br i1 %794, label %795, label %799

795:                                              ; preds = %.lr.ph776.1
  %796 = add nsw i32 %.2465, 2
  %797 = sext i32 %791 to i64
  %798 = getelementptr inbounds i8, ptr %.24, i64 %797
  store i8 %739, ptr %798, align 1, !tbaa !12
  br label %799

799:                                              ; preds = %795, %.lr.ph776.1
  %.2465.1 = phi i32 [ %796, %795 ], [ %791, %.lr.ph776.1 ]
  %indvars.iv.next883.1 = add nuw nsw i64 %indvars.iv882, 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_edge777.loopexit.unr-lcssa, label %.lr.ph776, !llvm.loop !54

._crit_edge777.loopexit.unr-lcssa:                ; preds = %799, %.lr.ph776.preheader
  %.2465.lcssa.ph = phi i32 [ poison, %.lr.ph776.preheader ], [ %.2465.1, %799 ]
  %indvars.iv882.unr = phi i64 [ 0, %.lr.ph776.preheader ], [ %indvars.iv.next883.1, %799 ]
  %.1464774.unr = phi i32 [ %.0463, %.lr.ph776.preheader ], [ %.2465.1, %799 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge777, label %.lr.ph776.epil

.lr.ph776.epil:                                   ; preds = %._crit_edge777.loopexit.unr-lcssa
  %800 = getelementptr inbounds i8, ptr %.1439, i64 %indvars.iv882.unr
  %801 = load i8, ptr %800, align 1, !tbaa !12
  %802 = add nsw i32 %.1464774.unr, 1
  %803 = sext i32 %.1464774.unr to i64
  %804 = getelementptr inbounds i8, ptr %.24, i64 %803
  store i8 %801, ptr %804, align 1, !tbaa !12
  %805 = icmp eq i8 %801, %739
  br i1 %805, label %806, label %._crit_edge777

806:                                              ; preds = %.lr.ph776.epil
  %807 = add nsw i32 %.1464774.unr, 2
  %808 = sext i32 %802 to i64
  %809 = getelementptr inbounds i8, ptr %.24, i64 %808
  store i8 %739, ptr %809, align 1, !tbaa !12
  br label %._crit_edge777

._crit_edge777:                                   ; preds = %._crit_edge777.loopexit.unr-lcssa, %806, %.lr.ph776.epil, %777
  %.1464.lcssa = phi i32 [ %.0463, %777 ], [ %.2465.lcssa.ph, %._crit_edge777.loopexit.unr-lcssa ], [ %807, %806 ], [ %802, %.lr.ph776.epil ]
  br i1 %767, label %810, label %.thread696

810:                                              ; preds = %._crit_edge777
  %811 = add nsw i32 %.1464.lcssa, 1
  %812 = sext i32 %.1464.lcssa to i64
  %813 = getelementptr inbounds i8, ptr %.24, i64 %812
  store i8 39, ptr %813, align 1, !tbaa !12
  br label %.thread696

.thread696:                                       ; preds = %._crit_edge777, %810
  %.3466 = phi i32 [ %811, %810 ], [ %.1464.lcssa, %._crit_edge777 ]
  %814 = sext i32 %.3466 to i64
  %815 = getelementptr inbounds i8, ptr %.24, i64 %814
  store i8 0, ptr %815, align 1, !tbaa !12
  br label %.critedge15

816:                                              ; preds = %771
  call void @setStrAccumError(ptr noundef %0, i8 noundef zeroext 1)
  br label %.thread679

817:                                              ; preds = %237
  %818 = load i8, ptr %7, align 1, !tbaa !5
  %819 = and i8 %818, 1
  %.not617 = icmp eq i8 %819, 0
  br i1 %.not617, label %.thread679, label %820

820:                                              ; preds = %817
  %821 = load i32, ptr %2, align 8
  %822 = icmp ult i32 %821, 41
  br i1 %822, label %823, label %828

823:                                              ; preds = %820
  %824 = load ptr, ptr %28, align 8
  %825 = zext nneg i32 %821 to i64
  %826 = getelementptr i8, ptr %824, i64 %825
  %827 = add nuw nsw i32 %821, 8
  store i32 %827, ptr %2, align 8
  br label %831

828:                                              ; preds = %820
  %829 = load ptr, ptr %27, align 8
  %830 = getelementptr i8, ptr %829, i64 8
  store ptr %830, ptr %27, align 8
  br label %831

831:                                              ; preds = %828, %823
  %832 = phi ptr [ %826, %823 ], [ %829, %828 ]
  %833 = load ptr, ptr %832, align 8, !tbaa !11
  %.not615 = icmp eq ptr %833, null
  br i1 %.not615, label %.critedge15, label %834

834:                                              ; preds = %831
  %835 = getelementptr inbounds i8, ptr %833, i64 8
  %836 = load i32, ptr %835, align 8, !tbaa !55
  %.not616 = icmp eq i32 %836, 0
  br i1 %.not616, label %.critedge15, label %837

837:                                              ; preds = %834
  %838 = load ptr, ptr %833, align 8, !tbaa !57
  call void @sqlite3StrAccumAppend(ptr noundef nonnull %0, ptr noundef %838, i32 noundef %836)
  br label %.critedge15

839:                                              ; preds = %237
  %840 = load i8, ptr %7, align 1, !tbaa !5
  %841 = and i8 %840, 1
  %.not614 = icmp eq i8 %841, 0
  br i1 %.not614, label %.thread679, label %842

842:                                              ; preds = %839
  %843 = load i32, ptr %2, align 8
  %844 = icmp ult i32 %843, 41
  br i1 %844, label %848, label %.thread

.thread:                                          ; preds = %842
  %845 = load ptr, ptr %27, align 8
  %846 = getelementptr i8, ptr %845, i64 8
  store ptr %846, ptr %27, align 8
  %847 = load ptr, ptr %845, align 8, !tbaa !11
  br label %860

848:                                              ; preds = %842
  %849 = load ptr, ptr %28, align 8
  %850 = zext nneg i32 %843 to i64
  %851 = getelementptr i8, ptr %849, i64 %850
  %852 = add nuw nsw i32 %843, 8
  store i32 %852, ptr %2, align 8
  %853 = load ptr, ptr %851, align 8, !tbaa !11
  %854 = icmp ult i32 %843, 33
  br i1 %854, label %855, label %860

855:                                              ; preds = %848
  %856 = load ptr, ptr %28, align 8
  %857 = zext nneg i32 %852 to i64
  %858 = getelementptr i8, ptr %856, i64 %857
  %859 = add nuw nsw i32 %843, 16
  store i32 %859, ptr %2, align 8
  br label %864

860:                                              ; preds = %.thread, %848
  %861 = phi ptr [ %847, %.thread ], [ %853, %848 ]
  %862 = load ptr, ptr %27, align 8
  %863 = getelementptr i8, ptr %862, i64 8
  store ptr %863, ptr %27, align 8
  br label %864

864:                                              ; preds = %860, %855
  %865 = phi ptr [ %853, %855 ], [ %861, %860 ]
  %866 = phi ptr [ %858, %855 ], [ %862, %860 ]
  %867 = load i32, ptr %866, align 4, !tbaa !15
  %868 = getelementptr inbounds i8, ptr %865, i64 8
  %869 = sext i32 %867 to i64
  %870 = getelementptr inbounds [1 x %struct.SrcList_item], ptr %868, i64 0, i64 %869
  %871 = getelementptr inbounds i8, ptr %870, i64 8
  %872 = load ptr, ptr %871, align 8, !tbaa !58
  %.not613 = icmp eq ptr %872, null
  br i1 %.not613, label %874, label %873

873:                                              ; preds = %864
  call void @sqlite3StrAccumAppendAll(ptr noundef nonnull %0, ptr noundef nonnull %872)
  call void @sqlite3StrAccumAppend(ptr noundef nonnull %0, ptr noundef nonnull @.str.6, i32 noundef 1)
  br label %874

874:                                              ; preds = %864, %873
  %875 = getelementptr inbounds i8, ptr %870, i64 16
  %876 = load ptr, ptr %875, align 8, !tbaa !61
  call void @sqlite3StrAccumAppendAll(ptr noundef nonnull %0, ptr noundef %876)
  br label %.critedge15

.critedge15.loopexit.split.loop.exit978:          ; preds = %.lr.ph780
  %877 = trunc nuw nsw i64 %indvars.iv885 to i32
  br label %.critedge15

.critedge15:                                      ; preds = %734, %.critedge15.loopexit.split.loop.exit978, %.lr.ph823.preheader, %.preheader726, %._crit_edge818, %837, %834, %831, %874, %.thread696, %526, %662, %675, %490, %735, %620, %710, %678, %.loopexit
  %.6527 = phi ptr [ null, %874 ], [ %.3524, %735 ], [ null, %710 ], [ null, %678 ], [ null, %526 ], [ %.2523, %620 ], [ %.1522, %.loopexit ], [ null, %490 ], [ null, %675 ], [ null, %662 ], [ %.4525, %.thread696 ], [ null, %831 ], [ null, %834 ], [ null, %837 ], [ %.2523, %._crit_edge818 ], [ %.3524, %.preheader726 ], [ %.2523, %.lr.ph823.preheader ], [ %.3524, %.critedge15.loopexit.split.loop.exit978 ], [ %.3524, %734 ]
  %.7459 = phi i32 [ 0, %874 ], [ %.2454, %735 ], [ %.4456, %710 ], [ %.2454, %678 ], [ %.2454, %526 ], [ %.2454, %620 ], [ %.2454, %.loopexit ], [ %.2454, %490 ], [ 0, %675 ], [ 0, %662 ], [ %.2454, %.thread696 ], [ 0, %831 ], [ 0, %834 ], [ 0, %837 ], [ %.2454, %._crit_edge818 ], [ %.2454, %.preheader726 ], [ %.2454, %.lr.ph823.preheader ], [ %.2454, %.critedge15.loopexit.split.loop.exit978 ], [ %.2454, %734 ]
  %.7447 = phi i32 [ 0, %874 ], [ %736, %735 ], [ 1, %710 ], [ 1, %678 ], [ %530, %526 ], [ %624, %620 ], [ %446, %.loopexit ], [ 3, %490 ], [ 0, %675 ], [ 0, %662 ], [ %.3466, %.thread696 ], [ 0, %831 ], [ 0, %834 ], [ 0, %837 ], [ %.2454, %._crit_edge818 ], [ 0, %.preheader726 ], [ %.2454, %.lr.ph823.preheader ], [ %877, %.critedge15.loopexit.split.loop.exit978 ], [ %.1432, %734 ]
  %.26 = phi ptr [ %.1422, %874 ], [ %.23, %735 ], [ %6, %710 ], [ %6, %678 ], [ %6, %526 ], [ %.10, %620 ], [ %.8429, %.loopexit ], [ @.str.1, %490 ], [ %.1422, %675 ], [ %.1422, %662 ], [ %.24, %.thread696 ], [ %.1422, %831 ], [ %.1422, %834 ], [ %.1422, %837 ], [ %.10, %._crit_edge818 ], [ %.23, %.preheader726 ], [ %.10, %.lr.ph823.preheader ], [ %.23, %.critedge15.loopexit.split.loop.exit978 ], [ %.23, %734 ]
  %878 = sub nsw i32 %.7459, %.7447
  %879 = icmp sgt i32 %878, 0
  br i1 %879, label %880, label %882

880:                                              ; preds = %.critedge15
  %.not648 = icmp eq i8 %.3478, 0
  br i1 %.not648, label %881, label %.critedge657

881:                                              ; preds = %880
  call void @sqlite3AppendChar(ptr noundef %0, i32 noundef %878, i8 noundef signext 32)
  call void @sqlite3StrAccumAppend(ptr noundef %0, ptr noundef %.26, i32 noundef %.7447)
  br label %883

.critedge657:                                     ; preds = %880
  call void @sqlite3StrAccumAppend(ptr noundef %0, ptr noundef %.26, i32 noundef %.7447)
  call void @sqlite3AppendChar(ptr noundef %0, i32 noundef %878, i8 noundef signext 32)
  br label %883

882:                                              ; preds = %.critedge15
  call void @sqlite3StrAccumAppend(ptr noundef %0, ptr noundef %.26, i32 noundef %.7447)
  br label %883

883:                                              ; preds = %881, %.critedge657, %882
  %.not649 = icmp eq ptr %.6527, null
  br i1 %.not649, label %886, label %884

884:                                              ; preds = %883
  %885 = load ptr, ptr %0, align 8, !tbaa !62
  call void @sqlite3DbFree(ptr noundef %885, ptr noundef nonnull %.6527) #5
  br label %886

886:                                              ; preds = %883, %884
  %887 = getelementptr inbounds i8, ptr %.9, i64 1
  br label %78, !llvm.loop !63

.thread679:                                       ; preds = %839, %817, %.critedge, %78, %237, %235, %816, %.thread682, %92, %557
  call void @llvm.lifetime.end.p0(i64 70, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #5
  ret void
}

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

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

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

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

declare ptr @sqlite3Malloc(i64 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden void @setStrAccumError(ptr noundef, i8 noundef zeroext) local_unnamed_addr #0

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

declare i32 @sqlite3IsNaN(double noundef) local_unnamed_addr #2

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @sqlite3AppendChar(ptr noundef, i32 noundef, i8 noundef signext) local_unnamed_addr #0

declare i32 @sqlite3Strlen30(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

!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 37}
!6 = !{!"StrAccum", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !8, i64 36, !8, i64 37}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!8, !8, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!10, !10, i64 0}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = !{!19, !8, i64 3}
!19 = !{!"et_info", !8, i64 0, !8, i64 1, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 5}
!20 = !{!19, !8, i64 2}
!21 = !{!22, !22, i64 0}
!22 = !{!"long long", !8, i64 0}
!23 = !{!24, !24, i64 0}
!24 = !{!"long", !8, i64 0}
!25 = !{!19, !8, i64 4}
!26 = !{!19, !8, i64 1}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = !{!19, !8, i64 5}
!30 = distinct !{!30, !14}
!31 = !{!32, !32, i64 0}
!32 = !{!"double", !8, i64 0}
!33 = !{!34, !34, i64 0}
!34 = !{!"long double", !8, i64 0}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.unroll.disable"}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14, !47, !48}
!47 = !{!"llvm.loop.isvectorized", i32 1}
!48 = !{!"llvm.loop.unroll.runtime.disable"}
!49 = distinct !{!49, !14, !47, !48}
!50 = distinct !{!50, !14, !47}
!51 = !{!6, !10, i64 24}
!52 = distinct !{!52, !14}
!53 = distinct !{!53, !14}
!54 = distinct !{!54, !14}
!55 = !{!56, !10, i64 8}
!56 = !{!"Token", !7, i64 0, !10, i64 8}
!57 = !{!56, !7, i64 0}
!58 = !{!59, !7, i64 8}
!59 = !{!"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, !60, i64 60, !8, i64 64, !10, i64 68, !7, i64 72, !7, i64 80, !22, i64 88, !8, i64 96, !7, i64 104}
!60 = !{!"", !8, i64 0, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1}
!61 = !{!59, !7, i64 16}
!62 = !{!6, !7, i64 0}
!63 = distinct !{!63, !14}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DivRemPairsPass,EarlyCSEPass,GVNPass,GlobalDCEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass