; LLVM IR from WayneLin92/SSeqCpp :: thirdparty/sqlite3 (sqlite3)

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

%struct.et_info = type { i8, i8, i8, i8, i8, i8 }
%struct.sqlite3_str = type { ptr, ptr, i32, i32, i32, i8, i8 }
%struct.__va_list_tag = type { i32, i32, ptr, ptr }
%struct.Expr = type { i8, i8, i8, i32, %union.anon.1, ptr, ptr, %union.anon.2, i32, i32, i16, i16, %union.anon.3, ptr, %union.anon.4 }
%union.anon.1 = type { ptr }
%union.anon.2 = type { ptr }
%union.anon.3 = type { i32 }
%union.anon.4 = type { ptr }
%struct.Token = type { ptr, i32 }
%struct.SrcItem = type { ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, %struct.anon.5, i32, %union.anon.6, i64, %union.anon.7, %union.anon.8 }
%struct.anon.5 = type <{ i8, i16, i8 }>
%union.anon.6 = type { ptr }
%union.anon.7 = type { ptr }
%union.anon.8 = type { ptr }
%struct.Select = type { i8, i16, i32, i32, i32, i32, [2 x i32], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

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

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

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

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

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

86:                                               ; preds = %81
  %87 = getelementptr inbounds %struct.__va_list_tag, ptr %82, i32 0, i32 3
  %88 = load ptr, ptr %87, align 8
  %89 = getelementptr i8, ptr %88, i32 %84
  %90 = add i32 %84, 8
  store i32 %90, ptr %83, align 8
  br label %95

91:                                               ; preds = %81
  %92 = getelementptr inbounds %struct.__va_list_tag, ptr %82, i32 0, i32 2
  %93 = load ptr, ptr %92, align 8
  %94 = getelementptr i8, ptr %93, i32 8
  store ptr %94, ptr %92, align 8
  br label %95

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

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

99:                                               ; preds = %98, %95
  br label %100

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

105:                                              ; preds = %100
  %106 = load i32, ptr %7, align 4, !tbaa !13
  %107 = icmp ne i32 %106, 37
  br i1 %107, label %108, label %140

108:                                              ; preds = %105
  %109 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %109, ptr %8, align 8, !tbaa !5
  br label %110

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

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

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

123:                                              ; preds = %118, %113
  %124 = phi i1 [ false, %113 ], [ %122, %118 ]
  br i1 %124, label %110, label %125, !llvm.loop !14

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

138:                                              ; preds = %125
  br label %2089

139:                                              ; preds = %125
  br label %140

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

146:                                              ; preds = %140
  %147 = load ptr, ptr %4, align 8, !tbaa !5
  call void @sqlite3_str_append(ptr noundef %147, ptr noundef @.str, i32 noundef 1)
  br label %2089

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

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

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

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

153:                                              ; preds = %149
  store i8 32, ptr %14, align 1, !tbaa !9
  br label %334

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

155:                                              ; preds = %149
  store i8 1, ptr %16, align 1, !tbaa !9
  br label %334

156:                                              ; preds = %149
  store i8 1, ptr %17, align 1, !tbaa !9
  br label %334

157:                                              ; preds = %149
  store i8 44, ptr %20, align 1, !tbaa !9
  br label %334

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

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

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

171:                                              ; preds = %166, %159
  store i8 1, ptr %19, align 1, !tbaa !9
  br label %334

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

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

181:                                              ; preds = %175
  %182 = load i32, ptr %7, align 4, !tbaa !13
  %183 = icmp sle i32 %182, 57
  br label %184

184:                                              ; preds = %181, %175
  %185 = phi i1 [ false, %175 ], [ %183, %181 ]
  br i1 %185, label %186, label %192

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

192:                                              ; preds = %184
  %193 = load i32, ptr %38, align 4, !tbaa !13
  %194 = and i32 %193, 2147483647
  store i32 %194, ptr %12, align 4, !tbaa !13
  %195 = load i32, ptr %7, align 4, !tbaa !13
  %196 = icmp ne i32 %195, 46
  br i1 %196, label %197, label %201

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

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

201:                                              ; preds = %197, %192
  %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
  br label %204

204:                                              ; preds = %201, %200
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  br label %334

205:                                              ; preds = %149
  %206 = load i8, ptr %22, align 1, !tbaa !9
  %207 = icmp ne i8 %206, 0
  br i1 %207, label %208, label %212

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

212:                                              ; preds = %205
  %213 = load ptr, ptr %6, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.__va_list_tag, ptr %213, i32 0, i32 0
  %215 = load i32, ptr %214, align 8
  %216 = icmp ule i32 %215, 40
  br i1 %216, label %217, label %222

217:                                              ; preds = %212
  %218 = getelementptr inbounds %struct.__va_list_tag, ptr %213, i32 0, i32 3
  %219 = load ptr, ptr %218, align 8
  %220 = getelementptr i8, ptr %219, i32 %215
  %221 = add i32 %215, 8
  store i32 %221, ptr %214, align 8
  br label %226

222:                                              ; preds = %212
  %223 = getelementptr inbounds %struct.__va_list_tag, ptr %213, i32 0, i32 2
  %224 = load ptr, ptr %223, align 8
  %225 = getelementptr i8, ptr %224, i32 8
  store ptr %225, ptr %223, align 8
  br label %226

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

229:                                              ; preds = %226, %208
  %230 = load i32, ptr %12, align 4, !tbaa !13
  %231 = icmp slt i32 %230, 0
  br i1 %231, label %232, label %241

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

235:                                              ; preds = %232
  %236 = load i32, ptr %12, align 4, !tbaa !13
  %237 = sub nsw i32 0, %236
  br label %239

238:                                              ; preds = %232
  br label %239

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

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

247:                                              ; preds = %241
  %248 = load i32, ptr %7, align 4, !tbaa !13
  %249 = icmp ne i32 %248, 108
  br i1 %249, label %250, label %255

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

255:                                              ; preds = %250, %247, %241
  br label %334

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

263:                                              ; preds = %256
  %264 = load i8, ptr %22, align 1, !tbaa !9
  %265 = icmp ne i8 %264, 0
  br i1 %265, label %266, label %270

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

270:                                              ; preds = %263
  %271 = load ptr, ptr %6, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.__va_list_tag, ptr %271, i32 0, i32 0
  %273 = load i32, ptr %272, align 8
  %274 = icmp ule i32 %273, 40
  br i1 %274, label %275, label %280

275:                                              ; preds = %270
  %276 = getelementptr inbounds %struct.__va_list_tag, ptr %271, i32 0, i32 3
  %277 = load ptr, ptr %276, align 8
  %278 = getelementptr i8, ptr %277, i32 %273
  %279 = add i32 %273, 8
  store i32 %279, ptr %272, align 8
  br label %284

280:                                              ; preds = %270
  %281 = getelementptr inbounds %struct.__va_list_tag, ptr %271, i32 0, i32 2
  %282 = load ptr, ptr %281, align 8
  %283 = getelementptr i8, ptr %282, i32 8
  store ptr %283, ptr %281, align 8
  br label %284

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

287:                                              ; preds = %284, %266
  %288 = load i32, ptr %9, align 4, !tbaa !13
  %289 = icmp slt i32 %288, 0
  br i1 %289, label %290, label %299

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

293:                                              ; preds = %290
  %294 = load i32, ptr %9, align 4, !tbaa !13
  %295 = sub nsw i32 0, %294
  br label %297

296:                                              ; preds = %290
  br label %297

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

299:                                              ; preds = %297, %287
  %300 = load ptr, ptr %5, align 8, !tbaa !5
  %301 = getelementptr inbounds i8, ptr %300, i32 1
  store ptr %301, ptr %5, align 8, !tbaa !5
  %302 = load i8, ptr %301, align 1, !tbaa !9
  %303 = sext i8 %302 to i32
  store i32 %303, ptr %7, align 4, !tbaa !13
  br label %326

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

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

308:                                              ; preds = %305
  %309 = load i32, ptr %7, align 4, !tbaa !13
  %310 = icmp sle i32 %309, 57
  br label %311

311:                                              ; preds = %308, %305
  %312 = phi i1 [ false, %305 ], [ %310, %308 ]
  br i1 %312, label %313, label %323

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

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

326:                                              ; preds = %323, %299
  %327 = load i32, ptr %7, align 4, !tbaa !13
  %328 = icmp eq i32 %327, 108
  br i1 %328, label %329, label %332

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

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

333:                                              ; preds = %332, %329
  br label %334

334:                                              ; preds = %333, %255, %204, %171, %158, %157, %156, %155, %154, %153, %152, %151
  br label %335

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

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

344:                                              ; preds = %338, %335
  %345 = phi i1 [ false, %335 ], [ %343, %338 ]
  br i1 %345, label %149, label %346, !llvm.loop !18

346:                                              ; preds = %344
  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 %347

347:                                              ; preds = %367, %346
  %348 = load i32, ptr %11, align 4, !tbaa !13
  %349 = icmp slt i32 %348, 23
  br i1 %349, label %350, label %370

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

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

366:                                              ; preds = %350
  br label %367

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

370:                                              ; preds = %359, %347
  %371 = load i8, ptr %21, align 1, !tbaa !9
  %372 = zext i8 %371 to i32
  switch i32 %372, label %2050 [
    i32 13, label %373
    i32 15, label %374
    i32 0, label %374
    i32 16, label %375
    i32 1, label %762
    i32 2, label %762
    i32 3, label %762
    i32 4, label %1250
    i32 7, label %1274
    i32 8, label %1277
    i32 5, label %1515
    i32 6, label %1515
    i32 9, label %1695
    i32 10, label %1695
    i32 14, label %1695
    i32 11, label %1871
    i32 12, label %1957
  ]

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

374:                                              ; preds = %373, %370, %370
  store i8 0, ptr %20, align 1, !tbaa !9
  br label %375

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

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

385:                                              ; preds = %382
  %386 = load ptr, ptr %36, align 8, !tbaa !5
  %387 = call i64 @getIntArg(ptr noundef %386)
  store i64 %387, ptr %40, align 8, !tbaa !24
  br label %449

388:                                              ; preds = %382
  %389 = load i8, ptr %18, align 1, !tbaa !9
  %390 = icmp ne i8 %389, 0
  br i1 %390, label %391, label %430

391:                                              ; preds = %388
  %392 = load i8, ptr %18, align 1, !tbaa !9
  %393 = zext i8 %392 to i32
  %394 = icmp eq i32 %393, 2
  br i1 %394, label %395, label %412

395:                                              ; preds = %391
  %396 = load ptr, ptr %6, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.__va_list_tag, ptr %396, i32 0, i32 0
  %398 = load i32, ptr %397, align 8
  %399 = icmp ule i32 %398, 40
  br i1 %399, label %400, label %405

400:                                              ; preds = %395
  %401 = getelementptr inbounds %struct.__va_list_tag, ptr %396, i32 0, i32 3
  %402 = load ptr, ptr %401, align 8
  %403 = getelementptr i8, ptr %402, i32 %398
  %404 = add i32 %398, 8
  store i32 %404, ptr %397, align 8
  br label %409

405:                                              ; preds = %395
  %406 = getelementptr inbounds %struct.__va_list_tag, ptr %396, i32 0, i32 2
  %407 = load ptr, ptr %406, align 8
  %408 = getelementptr i8, ptr %407, i32 8
  store ptr %408, ptr %406, align 8
  br label %409

409:                                              ; preds = %405, %400
  %410 = phi ptr [ %403, %400 ], [ %407, %405 ]
  %411 = load i64, ptr %410, align 8, !tbaa !24
  store i64 %411, ptr %40, align 8, !tbaa !24
  br label %429

412:                                              ; preds = %391
  %413 = load ptr, ptr %6, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.__va_list_tag, ptr %413, i32 0, i32 0
  %415 = load i32, ptr %414, align 8
  %416 = icmp ule i32 %415, 40
  br i1 %416, label %417, label %422

417:                                              ; preds = %412
  %418 = getelementptr inbounds %struct.__va_list_tag, ptr %413, i32 0, i32 3
  %419 = load ptr, ptr %418, align 8
  %420 = getelementptr i8, ptr %419, i32 %415
  %421 = add i32 %415, 8
  store i32 %421, ptr %414, align 8
  br label %426

422:                                              ; preds = %412
  %423 = getelementptr inbounds %struct.__va_list_tag, ptr %413, i32 0, i32 2
  %424 = load ptr, ptr %423, align 8
  %425 = getelementptr i8, ptr %424, i32 8
  store ptr %425, ptr %423, align 8
  br label %426

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

429:                                              ; preds = %426, %409
  br label %448

430:                                              ; preds = %388
  %431 = load ptr, ptr %6, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.__va_list_tag, ptr %431, i32 0, i32 0
  %433 = load i32, ptr %432, align 8
  %434 = icmp ule i32 %433, 40
  br i1 %434, label %435, label %440

435:                                              ; preds = %430
  %436 = getelementptr inbounds %struct.__va_list_tag, ptr %431, i32 0, i32 3
  %437 = load ptr, ptr %436, align 8
  %438 = getelementptr i8, ptr %437, i32 %433
  %439 = add i32 %433, 8
  store i32 %439, ptr %432, align 8
  br label %444

440:                                              ; preds = %430
  %441 = getelementptr inbounds %struct.__va_list_tag, ptr %431, i32 0, i32 2
  %442 = load ptr, ptr %441, align 8
  %443 = getelementptr i8, ptr %442, i32 8
  store ptr %443, ptr %441, align 8
  br label %444

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

448:                                              ; preds = %444, %429
  br label %449

449:                                              ; preds = %448, %385
  %450 = load i64, ptr %40, align 8, !tbaa !24
  %451 = icmp slt i64 %450, 0
  br i1 %451, label %452, label %457

452:                                              ; preds = %449
  %453 = load i64, ptr %40, align 8, !tbaa !24
  %454 = xor i64 %453, -1
  store i64 %454, ptr %24, align 8, !tbaa !24
  %455 = load i64, ptr %24, align 8, !tbaa !24
  %456 = add i64 %455, 1
  store i64 %456, ptr %24, align 8, !tbaa !24
  store i8 45, ptr %23, align 1, !tbaa !9
  br label %460

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

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

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

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

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

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

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

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

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

488:                                              ; preds = %484, %479
  %489 = phi ptr [ %482, %479 ], [ %486, %484 ]
  %490 = load i64, ptr %489, align 8, !tbaa !24
  store i64 %490, ptr %24, align 8, !tbaa !24
  br label %508

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

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

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

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

508:                                              ; preds = %505, %488
  br label %527

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

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

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

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

527:                                              ; preds = %523, %508
  br label %528

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

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

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

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

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

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

553:                                              ; preds = %546, %537, %533
  %554 = load i32, ptr %9, align 4, !tbaa !13
  %555 = icmp slt i32 %554, 37
  br i1 %555, label %556, label %558

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

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

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

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

576:                                              ; preds = %570
  store i32 1, ptr %42, align 4
  br label %580

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

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

582:                                              ; preds = %580
  br label %583

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

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

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

603:                                              ; preds = %598, %592
  store i32 0, ptr %43, align 4, !tbaa !13
  br label %604

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

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

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

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

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

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

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

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

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

682:                                              ; preds = %711, %669
  %683 = load i32, ptr %46, align 4, !tbaa !13
  %684 = icmp sgt i32 %683, 0
  br i1 %684, label %685, label %714

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

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

710:                                              ; preds = %701, %685
  br label %711

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

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

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

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

722:                                              ; preds = %718, %715
  %723 = load i8, ptr %15, align 1, !tbaa !9
  %724 = zext i8 %723 to i32
  %725 = icmp ne i32 %724, 0
  br i1 %725, label %726, label %751

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

803:                                              ; preds = %801, %798
  %804 = load i8, ptr %21, align 1, !tbaa !9
  %805 = zext i8 %804 to i32
  %806 = icmp eq i32 %805, 3
  br i1 %806, label %807, label %813

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

875:                                              ; preds = %872, %867
  %876 = phi i1 [ false, %867 ], [ %874, %872 ]
  br i1 %876, label %877, label %882

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

882:                                              ; preds = %875
  br label %883

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

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

891:                                              ; preds = %888, %883
  %892 = phi i1 [ false, %883 ], [ %890, %888 ]
  br i1 %892, label %893, label %898

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

898:                                              ; preds = %891
  br label %899

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

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

907:                                              ; preds = %904, %899
  %908 = phi i1 [ false, %899 ], [ %906, %904 ]
  br i1 %908, label %909, label %914

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

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

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

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

926:                                              ; preds = %918
  br label %927

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

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

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

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

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

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

957:                                              ; preds = %955
  br label %958

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

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

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

975:                                              ; preds = %970, %963
  br label %976

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

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

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

992:                                              ; preds = %988, %980
  store i8 2, ptr %21, align 1, !tbaa !9
  br label %997

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

997:                                              ; preds = %993, %992
  br label %1000

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

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

1004:                                             ; preds = %1000
  store i32 0, ptr %31, align 4, !tbaa !13
  br label %1007

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

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

1010:                                             ; preds = %1007
  %1011 = load i32, ptr %31, align 4, !tbaa !13
  br label %1013

1012:                                             ; preds = %1007
  br label %1013

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

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

1031:                                             ; preds = %1025
  store i32 1, ptr %42, align 4
  br label %1034

1032:                                             ; preds = %1025
  br label %1033

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

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

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

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

1059:                                             ; preds = %1055, %1036
  %1060 = load i32, ptr %31, align 4, !tbaa !13
  %1061 = icmp slt i32 %1060, 0
  br i1 %1061, label %1062, label %1065

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

1065:                                             ; preds = %1059
  br label %1066

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

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

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

1076:                                             ; preds = %1066
  br label %1077

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

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

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

1086:                                             ; preds = %1092, %1083
  %1087 = load i32, ptr %31, align 4, !tbaa !13
  %1088 = icmp slt i32 %1087, 0
  br i1 %1088, label %1089, label %1097

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

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

1097:                                             ; preds = %1086
  br label %1098

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

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

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

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

1114:                                             ; preds = %1110
  br label %1115

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

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

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

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

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

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

1139:                                             ; preds = %1136, %1133
  br label %1140

1140:                                             ; preds = %1139, %1124
  br label %1141

1141:                                             ; preds = %1140, %1110, %1106
  %1142 = load i8, ptr %21, align 1, !tbaa !9
  %1143 = zext i8 %1142 to i32
  %1144 = icmp eq i32 %1143, 2
  br i1 %1144, label %1145, label %1189

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

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

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

1164:                                             ; preds = %1161, %1156
  %1165 = load i32, ptr %30, align 4, !tbaa !13
  %1166 = icmp sge i32 %1165, 100
  br i1 %1166, label %1167, label %1176

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

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

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

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

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

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

1213:                                             ; preds = %1229, %1208
  %1214 = load i32, ptr %55, align 4, !tbaa !13
  %1215 = load i32, ptr %56, align 4, !tbaa !13
  %1216 = icmp sge i32 %1214, %1215
  br i1 %1216, label %1217, label %1232

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

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

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

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

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

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

1249:                                             ; preds = %1247, %1204, %1201, %1189
  br label %2051

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

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

1261:                                             ; preds = %1253
  %1262 = getelementptr inbounds %struct.__va_list_tag, ptr %1257, i32 0, i32 3
  %1263 = load ptr, ptr %1262, align 8
  %1264 = getelementptr i8, ptr %1263, i32 %1259
  %1265 = add i32 %1259, 8
  store i32 %1265, ptr %1258, align 8
  br label %1270

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

1270:                                             ; preds = %1266, %1261
  %1271 = phi ptr [ %1264, %1261 ], [ %1268, %1266 ]
  %1272 = load ptr, ptr %1271, align 8, !tbaa !5
  store i32 %1256, ptr %1272, align 4, !tbaa !13
  br label %1273

1273:                                             ; preds = %1270, %1250
  store i32 0, ptr %12, align 4, !tbaa !13
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %2051

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

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

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

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

1295:                                             ; preds = %1285
  br label %1296

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

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

1306:                                             ; preds = %1299, %1296
  %1307 = phi i1 [ false, %1296 ], [ %1305, %1299 ]
  br i1 %1307, label %1308, label %1316

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

1316:                                             ; preds = %1306
  br label %1317

1317:                                             ; preds = %1316, %1285
  br label %1320

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

1320:                                             ; preds = %1318, %1317
  br label %1426

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

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

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

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

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

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

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

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

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

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

1423:                                             ; preds = %1391, %1367
  br label %1424

1424:                                             ; preds = %1423, %1348
  br label %1425

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

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

1429:                                             ; preds = %1426
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  store i64 1, ptr %58, align 8, !tbaa !24
  %1430 = load i32, ptr %9, align 4, !tbaa !13
  %1431 = sub nsw i32 %1430, 1
  %1432 = load i32, ptr %12, align 4, !tbaa !13
  %1433 = sub nsw i32 %1432, %1431
  store i32 %1433, ptr %12, align 4, !tbaa !13
  %1434 = load i32, ptr %12, align 4, !tbaa !13
  %1435 = icmp sgt i32 %1434, 1
  br i1 %1435, label %1436, label %1443

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

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

1443:                                             ; preds = %1439, %1436, %1429
  %1444 = load ptr, ptr %4, align 8, !tbaa !5
  %1445 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  %1446 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %1444, ptr noundef %1445, i32 noundef %1446)
  %1447 = load i32, ptr %9, align 4, !tbaa !13
  %1448 = add nsw i32 %1447, -1
  store i32 %1448, ptr %9, align 4, !tbaa !13
  br label %1449

1449:                                             ; preds = %1511, %1443
  %1450 = load i32, ptr %9, align 4, !tbaa !13
  %1451 = icmp sgt i32 %1450, 1
  br i1 %1451, label %1452, label %1512

1452:                                             ; preds = %1449
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  %1453 = load i64, ptr %58, align 8, !tbaa !24
  %1454 = load i32, ptr %9, align 4, !tbaa !13
  %1455 = sub nsw i32 %1454, 1
  %1456 = sext i32 %1455 to i64
  %1457 = icmp sgt i64 %1453, %1456
  br i1 %1457, label %1458, label %1462

1458:                                             ; preds = %1452
  %1459 = load i32, ptr %9, align 4, !tbaa !13
  %1460 = sub nsw i32 %1459, 1
  %1461 = sext i32 %1460 to i64
  store i64 %1461, ptr %58, align 8, !tbaa !24
  br label %1462

1462:                                             ; preds = %1458, %1452
  %1463 = load i32, ptr %10, align 4, !tbaa !13
  %1464 = sext i32 %1463 to i64
  %1465 = load i64, ptr %58, align 8, !tbaa !24
  %1466 = mul nsw i64 %1464, %1465
  store i64 %1466, ptr %59, align 8, !tbaa !24
  %1467 = load i64, ptr %59, align 8, !tbaa !24
  %1468 = load ptr, ptr %4, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.sqlite3_str, ptr %1468, i32 0, i32 4
  %1470 = load i32, ptr %1469, align 8, !tbaa !51
  %1471 = zext i32 %1470 to i64
  %1472 = add nsw i64 %1467, %1471
  %1473 = load ptr, ptr %4, align 8, !tbaa !5
  %1474 = getelementptr inbounds %struct.sqlite3_str, ptr %1473, i32 0, i32 2
  %1475 = load i32, ptr %1474, align 8, !tbaa !53
  %1476 = zext i32 %1475 to i64
  %1477 = icmp sge i64 %1472, %1476
  br i1 %1477, label %1478, label %1482

1478:                                             ; preds = %1462
  %1479 = load ptr, ptr %4, align 8, !tbaa !5
  %1480 = load i64, ptr %59, align 8, !tbaa !24
  %1481 = call i32 @sqlite3StrAccumEnlarge(ptr noundef %1479, i64 noundef %1480)
  br label %1482

1482:                                             ; preds = %1478, %1462
  %1483 = load ptr, ptr %4, align 8, !tbaa !5
  %1484 = getelementptr inbounds %struct.sqlite3_str, ptr %1483, i32 0, i32 5
  %1485 = load i8, ptr %1484, align 4, !tbaa !54
  %1486 = icmp ne i8 %1485, 0
  br i1 %1486, label %1487, label %1488

1487:                                             ; preds = %1482
  store i32 58, ptr %42, align 4
  br label %1509

1488:                                             ; preds = %1482
  %1489 = load ptr, ptr %4, align 8, !tbaa !5
  %1490 = load ptr, ptr %4, align 8, !tbaa !5
  %1491 = getelementptr inbounds %struct.sqlite3_str, ptr %1490, i32 0, i32 1
  %1492 = load ptr, ptr %1491, align 8, !tbaa !55
  %1493 = load ptr, ptr %4, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.sqlite3_str, ptr %1493, i32 0, i32 4
  %1495 = load i32, ptr %1494, align 8, !tbaa !51
  %1496 = zext i32 %1495 to i64
  %1497 = load i64, ptr %59, align 8, !tbaa !24
  %1498 = sub nsw i64 %1496, %1497
  %1499 = getelementptr inbounds i8, ptr %1492, i64 %1498
  %1500 = load i64, ptr %59, align 8, !tbaa !24
  %1501 = trunc i64 %1500 to i32
  call void @sqlite3_str_append(ptr noundef %1489, ptr noundef %1499, i32 noundef %1501)
  %1502 = load i64, ptr %58, align 8, !tbaa !24
  %1503 = load i32, ptr %9, align 4, !tbaa !13
  %1504 = sext i32 %1503 to i64
  %1505 = sub nsw i64 %1504, %1502
  %1506 = trunc i64 %1505 to i32
  store i32 %1506, ptr %9, align 4, !tbaa !13
  %1507 = load i64, ptr %58, align 8, !tbaa !24
  %1508 = mul nsw i64 %1507, 2
  store i64 %1508, ptr %58, align 8, !tbaa !24
  store i32 0, ptr %42, align 4
  br label %1509

1509:                                             ; preds = %1488, %1487
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  %1510 = load i32, ptr %42, align 4
  switch i32 %1510, label %2093 [
    i32 0, label %1511
    i32 58, label %1512
  ]

1511:                                             ; preds = %1509
  br label %1449, !llvm.loop !56

1512:                                             ; preds = %1509, %1449
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  br label %1513

1513:                                             ; preds = %1512, %1426
  %1514 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1514, ptr %8, align 8, !tbaa !5
  store i8 1, ptr %16, align 1, !tbaa !9
  br label %1666

1515:                                             ; preds = %370, %370
  %1516 = load i8, ptr %22, align 1, !tbaa !9
  %1517 = icmp ne i8 %1516, 0
  br i1 %1517, label %1518, label %1521

1518:                                             ; preds = %1515
  %1519 = load ptr, ptr %36, align 8, !tbaa !5
  %1520 = call ptr @getTextArg(ptr noundef %1519)
  store ptr %1520, ptr %8, align 8, !tbaa !5
  store i8 5, ptr %21, align 1, !tbaa !9
  br label %1538

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

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

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

1535:                                             ; preds = %1531, %1526
  %1536 = phi ptr [ %1529, %1526 ], [ %1533, %1531 ]
  %1537 = load ptr, ptr %1536, align 8, !tbaa !5
  store ptr %1537, ptr %8, align 8, !tbaa !5
  br label %1538

1538:                                             ; preds = %1535, %1518
  %1539 = load ptr, ptr %8, align 8, !tbaa !5
  %1540 = icmp eq ptr %1539, null
  br i1 %1540, label %1541, label %1542

1541:                                             ; preds = %1538
  store ptr @.str.3, ptr %8, align 8, !tbaa !5
  br label %1594

1542:                                             ; preds = %1538
  %1543 = load i8, ptr %21, align 1, !tbaa !9
  %1544 = zext i8 %1543 to i32
  %1545 = icmp eq i32 %1544, 6
  br i1 %1545, label %1546, label %1593

1546:                                             ; preds = %1542
  %1547 = load ptr, ptr %4, align 8, !tbaa !5
  %1548 = getelementptr inbounds %struct.sqlite3_str, ptr %1547, i32 0, i32 4
  %1549 = load i32, ptr %1548, align 8, !tbaa !51
  %1550 = icmp eq i32 %1549, 0
  br i1 %1550, label %1551, label %1591

1551:                                             ; preds = %1546
  %1552 = load ptr, ptr %4, align 8, !tbaa !5
  %1553 = getelementptr inbounds %struct.sqlite3_str, ptr %1552, i32 0, i32 3
  %1554 = load i32, ptr %1553, align 4, !tbaa !57
  %1555 = icmp ne i32 %1554, 0
  br i1 %1555, label %1556, label %1591

1556:                                             ; preds = %1551
  %1557 = load i32, ptr %12, align 4, !tbaa !13
  %1558 = icmp eq i32 %1557, 0
  br i1 %1558, label %1559, label %1591

1559:                                             ; preds = %1556
  %1560 = load i32, ptr %9, align 4, !tbaa !13
  %1561 = icmp slt i32 %1560, 0
  br i1 %1561, label %1562, label %1591

1562:                                             ; preds = %1559
  %1563 = load ptr, ptr %4, align 8, !tbaa !5
  %1564 = getelementptr inbounds %struct.sqlite3_str, ptr %1563, i32 0, i32 5
  %1565 = load i8, ptr %1564, align 4, !tbaa !54
  %1566 = zext i8 %1565 to i32
  %1567 = icmp eq i32 %1566, 0
  br i1 %1567, label %1568, label %1591

1568:                                             ; preds = %1562
  %1569 = load ptr, ptr %8, align 8, !tbaa !5
  %1570 = load ptr, ptr %4, align 8, !tbaa !5
  %1571 = getelementptr inbounds %struct.sqlite3_str, ptr %1570, i32 0, i32 1
  store ptr %1569, ptr %1571, align 8, !tbaa !55
  %1572 = load ptr, ptr %4, align 8, !tbaa !5
  %1573 = getelementptr inbounds %struct.sqlite3_str, ptr %1572, i32 0, i32 0
  %1574 = load ptr, ptr %1573, align 8, !tbaa !58
  %1575 = load ptr, ptr %8, align 8, !tbaa !5
  %1576 = call i32 @sqlite3DbMallocSize(ptr noundef %1574, ptr noundef %1575)
  %1577 = load ptr, ptr %4, align 8, !tbaa !5
  %1578 = getelementptr inbounds %struct.sqlite3_str, ptr %1577, i32 0, i32 2
  store i32 %1576, ptr %1578, align 8, !tbaa !53
  %1579 = load ptr, ptr %8, align 8, !tbaa !5
  %1580 = call i64 @strlen(ptr noundef %1579) #6
  %1581 = trunc i64 %1580 to i32
  %1582 = and i32 2147483647, %1581
  %1583 = load ptr, ptr %4, align 8, !tbaa !5
  %1584 = getelementptr inbounds %struct.sqlite3_str, ptr %1583, i32 0, i32 4
  store i32 %1582, ptr %1584, align 8, !tbaa !51
  %1585 = load ptr, ptr %4, align 8, !tbaa !5
  %1586 = getelementptr inbounds %struct.sqlite3_str, ptr %1585, i32 0, i32 6
  %1587 = load i8, ptr %1586, align 1, !tbaa !10
  %1588 = zext i8 %1587 to i32
  %1589 = or i32 %1588, 4
  %1590 = trunc i32 %1589 to i8
  store i8 %1590, ptr %1586, align 1, !tbaa !10
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %2051

1591:                                             ; preds = %1562, %1559, %1556, %1551, %1546
  %1592 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1592, ptr %29, align 8, !tbaa !5
  br label %1593

1593:                                             ; preds = %1591, %1542
  br label %1594

1594:                                             ; preds = %1593, %1541
  %1595 = load i32, ptr %9, align 4, !tbaa !13
  %1596 = icmp sge i32 %1595, 0
  br i1 %1596, label %1597, label %1660

1597:                                             ; preds = %1594
  %1598 = load i8, ptr %16, align 1, !tbaa !9
  %1599 = icmp ne i8 %1598, 0
  br i1 %1599, label %1600, label %1639

1600:                                             ; preds = %1597
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #5
  %1601 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1601, ptr %60, align 8, !tbaa !5
  br label %1602

1602:                                             ; preds = %1631, %1600
  %1603 = load i32, ptr %9, align 4, !tbaa !13
  %1604 = add nsw i32 %1603, -1
  store i32 %1604, ptr %9, align 4, !tbaa !13
  %1605 = icmp sgt i32 %1603, 0
  br i1 %1605, label %1606, label %1612

1606:                                             ; preds = %1602
  %1607 = load ptr, ptr %60, align 8, !tbaa !5
  %1608 = getelementptr inbounds i8, ptr %1607, i64 0
  %1609 = load i8, ptr %1608, align 1, !tbaa !9
  %1610 = zext i8 %1609 to i32
  %1611 = icmp ne i32 %1610, 0
  br label %1612

1612:                                             ; preds = %1606, %1602
  %1613 = phi i1 [ false, %1602 ], [ %1611, %1606 ]
  br i1 %1613, label %1614, label %1632

1614:                                             ; preds = %1612
  %1615 = load ptr, ptr %60, align 8, !tbaa !5
  %1616 = getelementptr inbounds i8, ptr %1615, i32 1
  store ptr %1616, ptr %60, align 8, !tbaa !5
  %1617 = load i8, ptr %1615, align 1, !tbaa !9
  %1618 = zext i8 %1617 to i32
  %1619 = icmp sge i32 %1618, 192
  br i1 %1619, label %1620, label %1631

1620:                                             ; preds = %1614
  br label %1621

1621:                                             ; preds = %1627, %1620
  %1622 = load ptr, ptr %60, align 8, !tbaa !5
  %1623 = load i8, ptr %1622, align 1, !tbaa !9
  %1624 = zext i8 %1623 to i32
  %1625 = and i32 %1624, 192
  %1626 = icmp eq i32 %1625, 128
  br i1 %1626, label %1627, label %1630

1627:                                             ; preds = %1621
  %1628 = load ptr, ptr %60, align 8, !tbaa !5
  %1629 = getelementptr inbounds i8, ptr %1628, i32 1
  store ptr %1629, ptr %60, align 8, !tbaa !5
  br label %1621, !llvm.loop !59

1630:                                             ; preds = %1621
  br label %1631

1631:                                             ; preds = %1630, %1614
  br label %1602, !llvm.loop !60

1632:                                             ; preds = %1612
  %1633 = load ptr, ptr %60, align 8, !tbaa !5
  %1634 = load ptr, ptr %8, align 8, !tbaa !5
  %1635 = ptrtoint ptr %1633 to i64
  %1636 = ptrtoint ptr %1634 to i64
  %1637 = sub i64 %1635, %1636
  %1638 = trunc i64 %1637 to i32
  store i32 %1638, ptr %10, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #5
  br label %1659

1639:                                             ; preds = %1597
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %1640

1640:                                             ; preds = %1655, %1639
  %1641 = load i32, ptr %10, align 4, !tbaa !13
  %1642 = load i32, ptr %9, align 4, !tbaa !13
  %1643 = icmp slt i32 %1641, %1642
  br i1 %1643, label %1644, label %1652

1644:                                             ; preds = %1640
  %1645 = load ptr, ptr %8, align 8, !tbaa !5
  %1646 = load i32, ptr %10, align 4, !tbaa !13
  %1647 = sext i32 %1646 to i64
  %1648 = getelementptr inbounds i8, ptr %1645, i64 %1647
  %1649 = load i8, ptr %1648, align 1, !tbaa !9
  %1650 = sext i8 %1649 to i32
  %1651 = icmp ne i32 %1650, 0
  br label %1652

1652:                                             ; preds = %1644, %1640
  %1653 = phi i1 [ false, %1640 ], [ %1651, %1644 ]
  br i1 %1653, label %1654, label %1658

1654:                                             ; preds = %1652
  br label %1655

1655:                                             ; preds = %1654
  %1656 = load i32, ptr %10, align 4, !tbaa !13
  %1657 = add nsw i32 %1656, 1
  store i32 %1657, ptr %10, align 4, !tbaa !13
  br label %1640, !llvm.loop !61

1658:                                             ; preds = %1652
  br label %1659

1659:                                             ; preds = %1658, %1632
  br label %1665

1660:                                             ; preds = %1594
  %1661 = load ptr, ptr %8, align 8, !tbaa !5
  %1662 = call i64 @strlen(ptr noundef %1661) #6
  %1663 = trunc i64 %1662 to i32
  %1664 = and i32 2147483647, %1663
  store i32 %1664, ptr %10, align 4, !tbaa !13
  br label %1665

1665:                                             ; preds = %1660, %1659
  br label %1666

1666:                                             ; preds = %1869, %1665, %1513
  %1667 = load i8, ptr %16, align 1, !tbaa !9
  %1668 = zext i8 %1667 to i32
  %1669 = icmp ne i32 %1668, 0
  br i1 %1669, label %1670, label %1694

1670:                                             ; preds = %1666
  %1671 = load i32, ptr %12, align 4, !tbaa !13
  %1672 = icmp sgt i32 %1671, 0
  br i1 %1672, label %1673, label %1694

1673:                                             ; preds = %1670
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #5
  %1674 = load i32, ptr %10, align 4, !tbaa !13
  %1675 = sub nsw i32 %1674, 1
  store i32 %1675, ptr %61, align 4, !tbaa !13
  br label %1676

1676:                                             ; preds = %1692, %1673
  %1677 = load i32, ptr %61, align 4, !tbaa !13
  %1678 = icmp sge i32 %1677, 0
  br i1 %1678, label %1679, label %1693

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

1689:                                             ; preds = %1679
  %1690 = load i32, ptr %12, align 4, !tbaa !13
  %1691 = add nsw i32 %1690, 1
  store i32 %1691, ptr %12, align 4, !tbaa !13
  br label %1692

1692:                                             ; preds = %1689, %1679
  br label %1676, !llvm.loop !62

1693:                                             ; preds = %1676
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  br label %1694

1694:                                             ; preds = %1693, %1670, %1666
  br label %2051

1695:                                             ; preds = %370, %370, %370
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #5
  %1696 = load i8, ptr %21, align 1, !tbaa !9
  %1697 = zext i8 %1696 to i32
  %1698 = icmp eq i32 %1697, 14
  %1699 = zext i1 %1698 to i64
  %1700 = select i1 %1698, i32 34, i32 39
  %1701 = trunc i32 %1700 to i8
  store i8 %1701, ptr %69, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  %1702 = load i8, ptr %22, align 1, !tbaa !9
  %1703 = icmp ne i8 %1702, 0
  br i1 %1703, label %1704, label %1707

1704:                                             ; preds = %1695
  %1705 = load ptr, ptr %36, align 8, !tbaa !5
  %1706 = call ptr @getTextArg(ptr noundef %1705)
  store ptr %1706, ptr %70, align 8, !tbaa !5
  br label %1724

1707:                                             ; preds = %1695
  %1708 = load ptr, ptr %6, align 8, !tbaa !5
  %1709 = getelementptr inbounds %struct.__va_list_tag, ptr %1708, i32 0, i32 0
  %1710 = load i32, ptr %1709, align 8
  %1711 = icmp ule i32 %1710, 40
  br i1 %1711, label %1712, label %1717

1712:                                             ; preds = %1707
  %1713 = getelementptr inbounds %struct.__va_list_tag, ptr %1708, i32 0, i32 3
  %1714 = load ptr, ptr %1713, align 8
  %1715 = getelementptr i8, ptr %1714, i32 %1710
  %1716 = add i32 %1710, 8
  store i32 %1716, ptr %1709, align 8
  br label %1721

1717:                                             ; preds = %1707
  %1718 = getelementptr inbounds %struct.__va_list_tag, ptr %1708, i32 0, i32 2
  %1719 = load ptr, ptr %1718, align 8
  %1720 = getelementptr i8, ptr %1719, i32 8
  store ptr %1720, ptr %1718, align 8
  br label %1721

1721:                                             ; preds = %1717, %1712
  %1722 = phi ptr [ %1715, %1712 ], [ %1719, %1717 ]
  %1723 = load ptr, ptr %1722, align 8, !tbaa !5
  store ptr %1723, ptr %70, align 8, !tbaa !5
  br label %1724

1724:                                             ; preds = %1721, %1704
  %1725 = load ptr, ptr %70, align 8, !tbaa !5
  %1726 = icmp eq ptr %1725, null
  %1727 = zext i1 %1726 to i32
  store i32 %1727, ptr %67, align 4, !tbaa !13
  %1728 = load i32, ptr %67, align 4, !tbaa !13
  %1729 = icmp ne i32 %1728, 0
  br i1 %1729, label %1730, label %1736

1730:                                             ; preds = %1724
  %1731 = load i8, ptr %21, align 1, !tbaa !9
  %1732 = zext i8 %1731 to i32
  %1733 = icmp eq i32 %1732, 10
  %1734 = zext i1 %1733 to i64
  %1735 = select i1 %1733, ptr @.str.4, ptr @.str.5
  store ptr %1735, ptr %70, align 8, !tbaa !5
  br label %1736

1736:                                             ; preds = %1730, %1724
  %1737 = load i32, ptr %9, align 4, !tbaa !13
  %1738 = sext i32 %1737 to i64
  store i64 %1738, ptr %64, align 8, !tbaa !24
  store i64 0, ptr %65, align 8, !tbaa !24
  store i64 0, ptr %62, align 8, !tbaa !24
  br label %1739

1739:                                             ; preds = %1784, %1736
  %1740 = load i64, ptr %64, align 8, !tbaa !24
  %1741 = icmp ne i64 %1740, 0
  br i1 %1741, label %1742, label %1749

1742:                                             ; preds = %1739
  %1743 = load ptr, ptr %70, align 8, !tbaa !5
  %1744 = load i64, ptr %62, align 8, !tbaa !24
  %1745 = getelementptr inbounds i8, ptr %1743, i64 %1744
  %1746 = load i8, ptr %1745, align 1, !tbaa !9
  store i8 %1746, ptr %68, align 1, !tbaa !9
  %1747 = sext i8 %1746 to i32
  %1748 = icmp ne i32 %1747, 0
  br label %1749

1749:                                             ; preds = %1742, %1739
  %1750 = phi i1 [ false, %1739 ], [ %1748, %1742 ]
  br i1 %1750, label %1751, label %1789

1751:                                             ; preds = %1749
  %1752 = load i8, ptr %68, align 1, !tbaa !9
  %1753 = sext i8 %1752 to i32
  %1754 = load i8, ptr %69, align 1, !tbaa !9
  %1755 = sext i8 %1754 to i32
  %1756 = icmp eq i32 %1753, %1755
  br i1 %1756, label %1757, label %1760

1757:                                             ; preds = %1751
  %1758 = load i64, ptr %65, align 8, !tbaa !24
  %1759 = add nsw i64 %1758, 1
  store i64 %1759, ptr %65, align 8, !tbaa !24
  br label %1760

1760:                                             ; preds = %1757, %1751
  %1761 = load i8, ptr %16, align 1, !tbaa !9
  %1762 = zext i8 %1761 to i32
  %1763 = icmp ne i32 %1762, 0
  br i1 %1763, label %1764, label %1783

1764:                                             ; preds = %1760
  %1765 = load i8, ptr %68, align 1, !tbaa !9
  %1766 = sext i8 %1765 to i32
  %1767 = and i32 %1766, 192
  %1768 = icmp eq i32 %1767, 192
  br i1 %1768, label %1769, label %1783

1769:                                             ; preds = %1764
  br label %1770

1770:                                             ; preds = %1779, %1769
  %1771 = load ptr, ptr %70, align 8, !tbaa !5
  %1772 = load i64, ptr %62, align 8, !tbaa !24
  %1773 = add nsw i64 %1772, 1
  %1774 = getelementptr inbounds i8, ptr %1771, i64 %1773
  %1775 = load i8, ptr %1774, align 1, !tbaa !9
  %1776 = sext i8 %1775 to i32
  %1777 = and i32 %1776, 192
  %1778 = icmp eq i32 %1777, 128
  br i1 %1778, label %1779, label %1782

1779:                                             ; preds = %1770
  %1780 = load i64, ptr %62, align 8, !tbaa !24
  %1781 = add nsw i64 %1780, 1
  store i64 %1781, ptr %62, align 8, !tbaa !24
  br label %1770, !llvm.loop !63

1782:                                             ; preds = %1770
  br label %1783

1783:                                             ; preds = %1782, %1764, %1760
  br label %1784

1784:                                             ; preds = %1783
  %1785 = load i64, ptr %62, align 8, !tbaa !24
  %1786 = add nsw i64 %1785, 1
  store i64 %1786, ptr %62, align 8, !tbaa !24
  %1787 = load i64, ptr %64, align 8, !tbaa !24
  %1788 = add nsw i64 %1787, -1
  store i64 %1788, ptr %64, align 8, !tbaa !24
  br label %1739, !llvm.loop !64

1789:                                             ; preds = %1749
  %1790 = load i32, ptr %67, align 4, !tbaa !13
  %1791 = icmp ne i32 %1790, 0
  br i1 %1791, label %1796, label %1792

1792:                                             ; preds = %1789
  %1793 = load i8, ptr %21, align 1, !tbaa !9
  %1794 = zext i8 %1793 to i32
  %1795 = icmp eq i32 %1794, 10
  br label %1796

1796:                                             ; preds = %1792, %1789
  %1797 = phi i1 [ false, %1789 ], [ %1795, %1792 ]
  %1798 = zext i1 %1797 to i32
  store i32 %1798, ptr %66, align 4, !tbaa !13
  %1799 = load i64, ptr %62, align 8, !tbaa !24
  %1800 = add nsw i64 %1799, 3
  %1801 = load i64, ptr %65, align 8, !tbaa !24
  %1802 = add nsw i64 %1801, %1800
  store i64 %1802, ptr %65, align 8, !tbaa !24
  %1803 = load i64, ptr %65, align 8, !tbaa !24
  %1804 = icmp sgt i64 %1803, 70
  br i1 %1804, label %1805, label %1813

1805:                                             ; preds = %1796
  %1806 = load ptr, ptr %4, align 8, !tbaa !5
  %1807 = load i64, ptr %65, align 8, !tbaa !24
  %1808 = call ptr @printfTempBuf(ptr noundef %1806, i64 noundef %1807)
  store ptr %1808, ptr %29, align 8, !tbaa !5
  store ptr %1808, ptr %8, align 8, !tbaa !5
  %1809 = load ptr, ptr %8, align 8, !tbaa !5
  %1810 = icmp eq ptr %1809, null
  br i1 %1810, label %1811, label %1812

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

1812:                                             ; preds = %1805
  br label %1815

1813:                                             ; preds = %1796
  %1814 = getelementptr inbounds [70 x i8], ptr %37, i64 0, i64 0
  store ptr %1814, ptr %8, align 8, !tbaa !5
  br label %1815

1815:                                             ; preds = %1813, %1812
  store i64 0, ptr %63, align 8, !tbaa !24
  %1816 = load i32, ptr %66, align 4, !tbaa !13
  %1817 = icmp ne i32 %1816, 0
  br i1 %1817, label %1818, label %1824

1818:                                             ; preds = %1815
  %1819 = load i8, ptr %69, align 1, !tbaa !9
  %1820 = load ptr, ptr %8, align 8, !tbaa !5
  %1821 = load i64, ptr %63, align 8, !tbaa !24
  %1822 = add nsw i64 %1821, 1
  store i64 %1822, ptr %63, align 8, !tbaa !24
  %1823 = getelementptr inbounds i8, ptr %1820, i64 %1821
  store i8 %1819, ptr %1823, align 1, !tbaa !9
  br label %1824

1824:                                             ; preds = %1818, %1815
  %1825 = load i64, ptr %62, align 8, !tbaa !24
  store i64 %1825, ptr %64, align 8, !tbaa !24
  store i64 0, ptr %62, align 8, !tbaa !24
  br label %1826

1826:                                             ; preds = %1851, %1824
  %1827 = load i64, ptr %62, align 8, !tbaa !24
  %1828 = load i64, ptr %64, align 8, !tbaa !24
  %1829 = icmp slt i64 %1827, %1828
  br i1 %1829, label %1830, label %1854

1830:                                             ; preds = %1826
  %1831 = load ptr, ptr %70, align 8, !tbaa !5
  %1832 = load i64, ptr %62, align 8, !tbaa !24
  %1833 = getelementptr inbounds i8, ptr %1831, i64 %1832
  %1834 = load i8, ptr %1833, align 1, !tbaa !9
  store i8 %1834, ptr %68, align 1, !tbaa !9
  %1835 = load ptr, ptr %8, align 8, !tbaa !5
  %1836 = load i64, ptr %63, align 8, !tbaa !24
  %1837 = add nsw i64 %1836, 1
  store i64 %1837, ptr %63, align 8, !tbaa !24
  %1838 = getelementptr inbounds i8, ptr %1835, i64 %1836
  store i8 %1834, ptr %1838, align 1, !tbaa !9
  %1839 = load i8, ptr %68, align 1, !tbaa !9
  %1840 = sext i8 %1839 to i32
  %1841 = load i8, ptr %69, align 1, !tbaa !9
  %1842 = sext i8 %1841 to i32
  %1843 = icmp eq i32 %1840, %1842
  br i1 %1843, label %1844, label %1850

1844:                                             ; preds = %1830
  %1845 = load i8, ptr %68, align 1, !tbaa !9
  %1846 = load ptr, ptr %8, align 8, !tbaa !5
  %1847 = load i64, ptr %63, align 8, !tbaa !24
  %1848 = add nsw i64 %1847, 1
  store i64 %1848, ptr %63, align 8, !tbaa !24
  %1849 = getelementptr inbounds i8, ptr %1846, i64 %1847
  store i8 %1845, ptr %1849, align 1, !tbaa !9
  br label %1850

1850:                                             ; preds = %1844, %1830
  br label %1851

1851:                                             ; preds = %1850
  %1852 = load i64, ptr %62, align 8, !tbaa !24
  %1853 = add nsw i64 %1852, 1
  store i64 %1853, ptr %62, align 8, !tbaa !24
  br label %1826, !llvm.loop !65

1854:                                             ; preds = %1826
  %1855 = load i32, ptr %66, align 4, !tbaa !13
  %1856 = icmp ne i32 %1855, 0
  br i1 %1856, label %1857, label %1863

1857:                                             ; preds = %1854
  %1858 = load i8, ptr %69, align 1, !tbaa !9
  %1859 = load ptr, ptr %8, align 8, !tbaa !5
  %1860 = load i64, ptr %63, align 8, !tbaa !24
  %1861 = add nsw i64 %1860, 1
  store i64 %1861, ptr %63, align 8, !tbaa !24
  %1862 = getelementptr inbounds i8, ptr %1859, i64 %1860
  store i8 %1858, ptr %1862, align 1, !tbaa !9
  br label %1863

1863:                                             ; preds = %1857, %1854
  %1864 = load ptr, ptr %8, align 8, !tbaa !5
  %1865 = load i64, ptr %63, align 8, !tbaa !24
  %1866 = getelementptr inbounds i8, ptr %1864, i64 %1865
  store i8 0, ptr %1866, align 1, !tbaa !9
  %1867 = load i64, ptr %63, align 8, !tbaa !24
  %1868 = trunc i64 %1867 to i32
  store i32 %1868, ptr %10, align 4, !tbaa !13
  store i32 59, ptr %42, align 4
  br label %1869

1869:                                             ; preds = %1863, %1811
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #5
  %1870 = load i32, ptr %42, align 4
  switch i32 %1870, label %2090 [
    i32 59, label %1666
  ]

1871:                                             ; preds = %370
  %1872 = load ptr, ptr %4, align 8, !tbaa !5
  %1873 = getelementptr inbounds %struct.sqlite3_str, ptr %1872, i32 0, i32 6
  %1874 = load i8, ptr %1873, align 1, !tbaa !10
  %1875 = zext i8 %1874 to i32
  %1876 = and i32 %1875, 1
  %1877 = icmp eq i32 %1876, 0
  br i1 %1877, label %1878, label %1879

1878:                                             ; preds = %1871
  store i32 1, ptr %42, align 4
  br label %2090

1879:                                             ; preds = %1871
  %1880 = load i8, ptr %15, align 1, !tbaa !9
  %1881 = icmp ne i8 %1880, 0
  br i1 %1881, label %1882, label %1917

1882:                                             ; preds = %1879
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  %1883 = load ptr, ptr %6, align 8, !tbaa !5
  %1884 = getelementptr inbounds %struct.__va_list_tag, ptr %1883, i32 0, i32 0
  %1885 = load i32, ptr %1884, align 8
  %1886 = icmp ule i32 %1885, 40
  br i1 %1886, label %1887, label %1892

1887:                                             ; preds = %1882
  %1888 = getelementptr inbounds %struct.__va_list_tag, ptr %1883, i32 0, i32 3
  %1889 = load ptr, ptr %1888, align 8
  %1890 = getelementptr i8, ptr %1889, i32 %1885
  %1891 = add i32 %1885, 8
  store i32 %1891, ptr %1884, align 8
  br label %1896

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

1896:                                             ; preds = %1892, %1887
  %1897 = phi ptr [ %1890, %1887 ], [ %1894, %1892 ]
  %1898 = load ptr, ptr %1897, align 8, !tbaa !5
  store ptr %1898, ptr %71, align 8, !tbaa !5
  %1899 = load ptr, ptr %71, align 8, !tbaa !5
  %1900 = icmp ne ptr %1899, null
  br i1 %1900, label %1901, label %1916

1901:                                             ; preds = %1896
  %1902 = load ptr, ptr %71, align 8, !tbaa !5
  %1903 = getelementptr inbounds %struct.Expr, ptr %1902, i32 0, i32 3
  %1904 = load i32, ptr %1903, align 4, !tbaa !66
  %1905 = and i32 %1904, 2048
  %1906 = icmp ne i32 %1905, 0
  br i1 %1906, label %1916, label %1907

1907:                                             ; preds = %1901
  %1908 = load ptr, ptr %4, align 8, !tbaa !5
  %1909 = load ptr, ptr %71, align 8, !tbaa !5
  %1910 = getelementptr inbounds %struct.Expr, ptr %1909, i32 0, i32 4
  %1911 = load ptr, ptr %1910, align 8, !tbaa !9
  call void @sqlite3_str_appendall(ptr noundef %1908, ptr noundef %1911)
  %1912 = load ptr, ptr %4, align 8, !tbaa !5
  %1913 = getelementptr inbounds %struct.sqlite3_str, ptr %1912, i32 0, i32 0
  %1914 = load ptr, ptr %1913, align 8, !tbaa !58
  %1915 = load ptr, ptr %71, align 8, !tbaa !5
  call void @sqlite3RecordErrorOffsetOfExpr(ptr noundef %1914, ptr noundef %1915)
  br label %1916

1916:                                             ; preds = %1907, %1901, %1896
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #5
  br label %1956

1917:                                             ; preds = %1879
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  %1918 = load ptr, ptr %6, align 8, !tbaa !5
  %1919 = getelementptr inbounds %struct.__va_list_tag, ptr %1918, i32 0, i32 0
  %1920 = load i32, ptr %1919, align 8
  %1921 = icmp ule i32 %1920, 40
  br i1 %1921, label %1922, label %1927

1922:                                             ; preds = %1917
  %1923 = getelementptr inbounds %struct.__va_list_tag, ptr %1918, i32 0, i32 3
  %1924 = load ptr, ptr %1923, align 8
  %1925 = getelementptr i8, ptr %1924, i32 %1920
  %1926 = add i32 %1920, 8
  store i32 %1926, ptr %1919, align 8
  br label %1931

1927:                                             ; preds = %1917
  %1928 = getelementptr inbounds %struct.__va_list_tag, ptr %1918, i32 0, i32 2
  %1929 = load ptr, ptr %1928, align 8
  %1930 = getelementptr i8, ptr %1929, i32 8
  store ptr %1930, ptr %1928, align 8
  br label %1931

1931:                                             ; preds = %1927, %1922
  %1932 = phi ptr [ %1925, %1922 ], [ %1929, %1927 ]
  %1933 = load ptr, ptr %1932, align 8, !tbaa !5
  store ptr %1933, ptr %72, align 8, !tbaa !5
  %1934 = load ptr, ptr %72, align 8, !tbaa !5
  %1935 = icmp ne ptr %1934, null
  br i1 %1935, label %1936, label %1955

1936:                                             ; preds = %1931
  %1937 = load ptr, ptr %72, align 8, !tbaa !5
  %1938 = getelementptr inbounds %struct.Token, ptr %1937, i32 0, i32 1
  %1939 = load i32, ptr %1938, align 8, !tbaa !69
  %1940 = icmp ne i32 %1939, 0
  br i1 %1940, label %1941, label %1955

1941:                                             ; preds = %1936
  %1942 = load ptr, ptr %4, align 8, !tbaa !5
  %1943 = load ptr, ptr %72, align 8, !tbaa !5
  %1944 = getelementptr inbounds %struct.Token, ptr %1943, i32 0, i32 0
  %1945 = load ptr, ptr %1944, align 8, !tbaa !71
  %1946 = load ptr, ptr %72, align 8, !tbaa !5
  %1947 = getelementptr inbounds %struct.Token, ptr %1946, i32 0, i32 1
  %1948 = load i32, ptr %1947, align 8, !tbaa !69
  call void @sqlite3_str_append(ptr noundef %1942, ptr noundef %1945, i32 noundef %1948)
  %1949 = load ptr, ptr %4, align 8, !tbaa !5
  %1950 = getelementptr inbounds %struct.sqlite3_str, ptr %1949, i32 0, i32 0
  %1951 = load ptr, ptr %1950, align 8, !tbaa !58
  %1952 = load ptr, ptr %72, align 8, !tbaa !5
  %1953 = getelementptr inbounds %struct.Token, ptr %1952, i32 0, i32 0
  %1954 = load ptr, ptr %1953, align 8, !tbaa !71
  call void @sqlite3RecordErrorByteOffset(ptr noundef %1951, ptr noundef %1954)
  br label %1955

1955:                                             ; preds = %1941, %1936, %1931
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #5
  br label %1956

1956:                                             ; preds = %1955, %1916
  store i32 0, ptr %12, align 4, !tbaa !13
  store i32 0, ptr %10, align 4, !tbaa !13
  br label %2051

1957:                                             ; preds = %370
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #5
  %1958 = load ptr, ptr %4, align 8, !tbaa !5
  %1959 = getelementptr inbounds %struct.sqlite3_str, ptr %1958, i32 0, i32 6
  %1960 = load i8, ptr %1959, align 1, !tbaa !10
  %1961 = zext i8 %1960 to i32
  %1962 = and i32 %1961, 1
  %1963 = icmp eq i32 %1962, 0
  br i1 %1963, label %1964, label %1965

1964:                                             ; preds = %1957
  store i32 1, ptr %42, align 4
  br label %2048

1965:                                             ; preds = %1957
  %1966 = load ptr, ptr %6, align 8, !tbaa !5
  %1967 = getelementptr inbounds %struct.__va_list_tag, ptr %1966, i32 0, i32 0
  %1968 = load i32, ptr %1967, align 8
  %1969 = icmp ule i32 %1968, 40
  br i1 %1969, label %1970, label %1975

1970:                                             ; preds = %1965
  %1971 = getelementptr inbounds %struct.__va_list_tag, ptr %1966, i32 0, i32 3
  %1972 = load ptr, ptr %1971, align 8
  %1973 = getelementptr i8, ptr %1972, i32 %1968
  %1974 = add i32 %1968, 8
  store i32 %1974, ptr %1967, align 8
  br label %1979

1975:                                             ; preds = %1965
  %1976 = getelementptr inbounds %struct.__va_list_tag, ptr %1966, i32 0, i32 2
  %1977 = load ptr, ptr %1976, align 8
  %1978 = getelementptr i8, ptr %1977, i32 8
  store ptr %1978, ptr %1976, align 8
  br label %1979

1979:                                             ; preds = %1975, %1970
  %1980 = phi ptr [ %1973, %1970 ], [ %1977, %1975 ]
  %1981 = load ptr, ptr %1980, align 8, !tbaa !5
  store ptr %1981, ptr %73, align 8, !tbaa !5
  %1982 = load ptr, ptr %73, align 8, !tbaa !5
  %1983 = getelementptr inbounds %struct.SrcItem, ptr %1982, i32 0, i32 3
  %1984 = load ptr, ptr %1983, align 8, !tbaa !72
  %1985 = icmp ne ptr %1984, null
  br i1 %1985, label %1986, label %1994

1986:                                             ; preds = %1979
  %1987 = load i8, ptr %16, align 1, !tbaa !9
  %1988 = icmp ne i8 %1987, 0
  br i1 %1988, label %1994, label %1989

1989:                                             ; preds = %1986
  %1990 = load ptr, ptr %4, align 8, !tbaa !5
  %1991 = load ptr, ptr %73, align 8, !tbaa !5
  %1992 = getelementptr inbounds %struct.SrcItem, ptr %1991, i32 0, i32 3
  %1993 = load ptr, ptr %1992, align 8, !tbaa !72
  call void @sqlite3_str_appendall(ptr noundef %1990, ptr noundef %1993)
  br label %2047

1994:                                             ; preds = %1986, %1979
  %1995 = load ptr, ptr %73, align 8, !tbaa !5
  %1996 = getelementptr inbounds %struct.SrcItem, ptr %1995, i32 0, i32 2
  %1997 = load ptr, ptr %1996, align 8, !tbaa !75
  %1998 = icmp ne ptr %1997, null
  br i1 %1998, label %1999, label %2015

1999:                                             ; preds = %1994
  %2000 = load ptr, ptr %73, align 8, !tbaa !5
  %2001 = getelementptr inbounds %struct.SrcItem, ptr %2000, i32 0, i32 1
  %2002 = load ptr, ptr %2001, align 8, !tbaa !76
  %2003 = icmp ne ptr %2002, null
  br i1 %2003, label %2004, label %2010

2004:                                             ; preds = %1999
  %2005 = load ptr, ptr %4, align 8, !tbaa !5
  %2006 = load ptr, ptr %73, align 8, !tbaa !5
  %2007 = getelementptr inbounds %struct.SrcItem, ptr %2006, i32 0, i32 1
  %2008 = load ptr, ptr %2007, align 8, !tbaa !76
  call void @sqlite3_str_appendall(ptr noundef %2005, ptr noundef %2008)
  %2009 = load ptr, ptr %4, align 8, !tbaa !5
  call void @sqlite3_str_append(ptr noundef %2009, ptr noundef @.str.6, i32 noundef 1)
  br label %2010

2010:                                             ; preds = %2004, %1999
  %2011 = load ptr, ptr %4, align 8, !tbaa !5
  %2012 = load ptr, ptr %73, align 8, !tbaa !5
  %2013 = getelementptr inbounds %struct.SrcItem, ptr %2012, i32 0, i32 2
  %2014 = load ptr, ptr %2013, align 8, !tbaa !75
  call void @sqlite3_str_appendall(ptr noundef %2011, ptr noundef %2014)
  br label %2046

2015:                                             ; preds = %1994
  %2016 = load ptr, ptr %73, align 8, !tbaa !5
  %2017 = getelementptr inbounds %struct.SrcItem, ptr %2016, i32 0, i32 3
  %2018 = load ptr, ptr %2017, align 8, !tbaa !72
  %2019 = icmp ne ptr %2018, null
  br i1 %2019, label %2020, label %2025

2020:                                             ; preds = %2015
  %2021 = load ptr, ptr %4, align 8, !tbaa !5
  %2022 = load ptr, ptr %73, align 8, !tbaa !5
  %2023 = getelementptr inbounds %struct.SrcItem, ptr %2022, i32 0, i32 3
  %2024 = load ptr, ptr %2023, align 8, !tbaa !72
  call void @sqlite3_str_appendall(ptr noundef %2021, ptr noundef %2024)
  br label %2045

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

2034:                                             ; preds = %2025
  %2035 = load ptr, ptr %4, align 8, !tbaa !5
  %2036 = load ptr, ptr %74, align 8, !tbaa !5
  %2037 = getelementptr inbounds %struct.Select, ptr %2036, i32 0, i32 5
  %2038 = load i32, ptr %2037, align 8, !tbaa !80
  call void (ptr, ptr, ...) @sqlite3_str_appendf(ptr noundef %2035, ptr noundef @.str.7, i32 noundef %2038)
  br label %2044

2039:                                             ; preds = %2025
  %2040 = load ptr, ptr %4, align 8, !tbaa !5
  %2041 = load ptr, ptr %74, align 8, !tbaa !5
  %2042 = getelementptr inbounds %struct.Select, ptr %2041, i32 0, i32 5
  %2043 = load i32, ptr %2042, align 8, !tbaa !80
  call void (ptr, ptr, ...) @sqlite3_str_appendf(ptr noundef %2040, ptr noundef @.str.8, i32 noundef %2043)
  br label %2044

2044:                                             ; preds = %2039, %2034
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #5
  br label %2045

2045:                                             ; preds = %2044, %2020
  br label %2046

2046:                                             ; preds = %2045, %2010
  br label %2047

2047:                                             ; preds = %2046, %1989
  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 %2048

2048:                                             ; preds = %2047, %1964
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #5
  %2049 = load i32, ptr %42, align 4
  switch i32 %2049, label %2090 [
    i32 17, label %2051
  ]

2050:                                             ; preds = %370
  store i32 1, ptr %42, align 4
  br label %2090

2051:                                             ; preds = %2048, %1956, %1694, %1568, %1274, %1273, %1249, %955, %862, %751
  %2052 = load i32, ptr %10, align 4, !tbaa !13
  %2053 = load i32, ptr %12, align 4, !tbaa !13
  %2054 = sub nsw i32 %2053, %2052
  store i32 %2054, ptr %12, align 4, !tbaa !13
  %2055 = load i32, ptr %12, align 4, !tbaa !13
  %2056 = icmp sgt i32 %2055, 0
  br i1 %2056, label %2057, label %2073

2057:                                             ; preds = %2051
  %2058 = load i8, ptr %13, align 1, !tbaa !9
  %2059 = icmp ne i8 %2058, 0
  br i1 %2059, label %2063, label %2060

2060:                                             ; preds = %2057
  %2061 = load ptr, ptr %4, align 8, !tbaa !5
  %2062 = load i32, ptr %12, align 4, !tbaa !13
  call void @sqlite3_str_appendchar(ptr noundef %2061, i32 noundef %2062, i8 noundef signext 32)
  br label %2063

2063:                                             ; preds = %2060, %2057
  %2064 = load ptr, ptr %4, align 8, !tbaa !5
  %2065 = load ptr, ptr %8, align 8, !tbaa !5
  %2066 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %2064, ptr noundef %2065, i32 noundef %2066)
  %2067 = load i8, ptr %13, align 1, !tbaa !9
  %2068 = icmp ne i8 %2067, 0
  br i1 %2068, label %2069, label %2072

2069:                                             ; preds = %2063
  %2070 = load ptr, ptr %4, align 8, !tbaa !5
  %2071 = load i32, ptr %12, align 4, !tbaa !13
  call void @sqlite3_str_appendchar(ptr noundef %2070, i32 noundef %2071, i8 noundef signext 32)
  br label %2072

2072:                                             ; preds = %2069, %2063
  br label %2077

2073:                                             ; preds = %2051
  %2074 = load ptr, ptr %4, align 8, !tbaa !5
  %2075 = load ptr, ptr %8, align 8, !tbaa !5
  %2076 = load i32, ptr %10, align 4, !tbaa !13
  call void @sqlite3_str_append(ptr noundef %2074, ptr noundef %2075, i32 noundef %2076)
  br label %2077

2077:                                             ; preds = %2073, %2072
  %2078 = load ptr, ptr %29, align 8, !tbaa !5
  %2079 = icmp ne ptr %2078, null
  br i1 %2079, label %2080, label %2085

2080:                                             ; preds = %2077
  %2081 = load ptr, ptr %4, align 8, !tbaa !5
  %2082 = getelementptr inbounds %struct.sqlite3_str, ptr %2081, i32 0, i32 0
  %2083 = load ptr, ptr %2082, align 8, !tbaa !58
  %2084 = load ptr, ptr %29, align 8, !tbaa !5
  call void @sqlite3DbFree(ptr noundef %2083, ptr noundef %2084)
  store ptr null, ptr %29, align 8, !tbaa !5
  br label %2085

2085:                                             ; preds = %2080, %2077
  br label %2086

2086:                                             ; preds = %2085
  %2087 = load ptr, ptr %5, align 8, !tbaa !5
  %2088 = getelementptr inbounds i8, ptr %2087, i32 1
  store ptr %2088, ptr %5, align 8, !tbaa !5
  br label %100, !llvm.loop !81

2089:                                             ; preds = %146, %138, %100
  store i32 0, ptr %42, align 4
  br label %2090

2090:                                             ; preds = %2089, %2050, %2048, %1878, %1869, %1034, %580
  call void @llvm.lifetime.end.p0(i64 70, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  %2091 = load i32, ptr %42, align 4
  switch i32 %2091, label %2093 [
    i32 0, label %2092
    i32 1, label %2092
  ]

2092:                                             ; preds = %2090, %2090
  ret void

2093:                                             ; preds = %2090, %1509, %955
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

85:                                               ; preds = %1067, %26
  %.0543 = phi ptr [ null, %26 ], [ %.29, %1067 ]
  %.0 = phi ptr [ %1, %26 ], [ %1068, %1067 ]
  %86 = load i8, ptr %.0, align 1, !tbaa !12
  switch i8 %86, label %.preheader952 [
    i8 0, label %.thread870
    i8 37, label %95
  ]

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

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

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

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

.preheader951:                                    ; preds = %95, %197
  %.0640 = phi i8 [ %.1641.ph, %197 ], [ 0, %95 ]
  %.0630 = phi i8 [ %.1631.ph, %197 ], [ 0, %95 ]
  %.0627 = phi i8 [ %.1628.ph, %197 ], [ 0, %95 ]
  %.0621 = phi i8 [ %.1622.ph, %197 ], [ 0, %95 ]
  %.0616 = phi i8 [ %.1617.ph, %197 ], [ 0, %95 ]
  %.0610 = phi i8 [ %.2612.ph, %197 ], [ 0, %95 ]
  %.0584 = phi i32 [ %.3587.ph, %197 ], [ 0, %95 ]
  %.0554 = phi i32 [ %.4558.ph, %197 ], [ -1, %95 ]
  %.0537.in = phi i8 [ %199, %197 ], [ %97, %95 ]
  %.3 = phi ptr [ %198, %197 ], [ %96, %95 ]
  %.0537 = sext i8 %.0537.in to i32
  switch i8 %.0537.in, label %.critedge8 [
    i8 45, label %197
    i8 43, label %100
    i8 32, label %101
    i8 35, label %102
    i8 33, label %103
    i8 48, label %104
    i8 44, label %105
    i8 108, label %106
    i8 49, label %114
    i8 50, label %114
    i8 51, label %114
    i8 52, label %114
    i8 53, label %114
    i8 54, label %114
    i8 55, label %114
    i8 56, label %114
    i8 57, label %114
    i8 42, label %130
    i8 46, label %154
  ]

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

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

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

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

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

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

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

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

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

114:                                              ; preds = %.preheader951, %.preheader951, %.preheader951, %.preheader951, %.preheader951, %.preheader951, %.preheader951, %.preheader951, %.preheader951
  %.0662977 = add nsw i32 %.0537, -48
  %115 = getelementptr inbounds i8, ptr %.3, i64 1
  %116 = load i8, ptr %115, align 1, !tbaa !12
  %117 = sext i8 %116 to i32
  %118 = add i8 %116, -48
  %119 = icmp ult i8 %118, 10
  br i1 %119, label %.lr.ph980, label %._crit_edge981

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

._crit_edge981:                                   ; preds = %.lr.ph980, %114
  %.5.lcssa = phi ptr [ %.3, %114 ], [ %121, %.lr.ph980 ]
  %.0662.lcssa = phi i32 [ %.0662977, %114 ], [ %.0662, %.lr.ph980 ]
  %.lcssa956 = phi ptr [ %115, %114 ], [ %124, %.lr.ph980 ]
  %.lcssa955 = phi i8 [ %116, %114 ], [ %125, %.lr.ph980 ]
  %.lcssa954 = phi i32 [ %117, %114 ], [ %126, %.lr.ph980 ]
  %129 = and i32 %.0662.lcssa, 2147483647
  switch i8 %.lcssa955, label %.critedge8 [
    i8 108, label %197
    i8 46, label %197
  ]

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

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

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

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

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

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

148:                                              ; preds = %145, %131
  %.1585 = phi i32 [ %133, %131 ], [ %147, %145 ]
  %149 = icmp slt i32 %.1585, 0
  %.not774 = icmp eq i32 %.1585, -2147483648
  %150 = sub nsw i32 0, %.1585
  %151 = select i1 %.not774, i32 0, i32 %150
  %.1611 = select i1 %149, i8 1, i8 %.0610
  %.2586 = select i1 %149, i32 %151, i32 %.1585
  %152 = getelementptr inbounds i8, ptr %.3, i64 1
  %153 = load i8, ptr %152, align 1, !tbaa !12
  switch i8 %153, label %.critedge8.loopexit.split.loop.exit1020 [
    i8 108, label %197
    i8 46, label %197
  ]

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

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

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

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

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

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

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

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

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

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

._crit_edge:                                      ; preds = %.lr.ph, %.preheader934
  %.0661.lcssa = phi i32 [ 0, %.preheader934 ], [ %187, %.lr.ph ]
  %.7.lcssa = phi ptr [ %155, %.preheader934 ], [ %188, %.lr.ph ]
  %.2539.lcssa = phi i32 [ %.2539971, %.preheader934 ], [ %.2539, %.lr.ph ]
  %192 = and i32 %.0661.lcssa, 2147483647
  br label %193

193:                                              ; preds = %._crit_edge, %178
  %.3557 = phi i32 [ %.2556, %178 ], [ %192, %._crit_edge ]
  %.3540 = phi i32 [ %184, %178 ], [ %.2539.lcssa, %._crit_edge ]
  %.8 = phi ptr [ %182, %178 ], [ %.7.lcssa, %._crit_edge ]
  %194 = icmp eq i32 %.3540, 108
  br i1 %194, label %195, label %.critedge8

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

197:                                              ; preds = %._crit_edge981, %._crit_edge981, %195, %148, %148, %105, %104, %103, %102, %101, %100, %.preheader951
  %.1641.ph = phi i8 [ %.0640, %148 ], [ %.0640, %.preheader951 ], [ %.0640, %100 ], [ %.0640, %101 ], [ %.0640, %102 ], [ %.0640, %103 ], [ %.0640, %104 ], [ 44, %105 ], [ %.0640, %148 ], [ %.0640, %195 ], [ %.0640, %._crit_edge981 ], [ %.0640, %._crit_edge981 ]
  %.1631.ph = phi i8 [ %.0630, %148 ], [ %.0630, %.preheader951 ], [ %.0630, %100 ], [ %.0630, %101 ], [ %.0630, %102 ], [ %.0630, %103 ], [ 1, %104 ], [ %.0630, %105 ], [ %.0630, %148 ], [ %.0630, %195 ], [ %.0630, %._crit_edge981 ], [ %.0630, %._crit_edge981 ]
  %.1628.ph = phi i8 [ %.0627, %148 ], [ %.0627, %.preheader951 ], [ %.0627, %100 ], [ %.0627, %101 ], [ %.0627, %102 ], [ 1, %103 ], [ %.0627, %104 ], [ %.0627, %105 ], [ %.0627, %148 ], [ %.0627, %195 ], [ %.0627, %._crit_edge981 ], [ %.0627, %._crit_edge981 ]
  %.1622.ph = phi i8 [ %.0621, %148 ], [ %.0621, %.preheader951 ], [ %.0621, %100 ], [ %.0621, %101 ], [ 1, %102 ], [ %.0621, %103 ], [ %.0621, %104 ], [ %.0621, %105 ], [ %.0621, %148 ], [ %.0621, %195 ], [ %.0621, %._crit_edge981 ], [ %.0621, %._crit_edge981 ]
  %.1617.ph = phi i8 [ %.0616, %148 ], [ %.0616, %.preheader951 ], [ %.0537.in, %100 ], [ %.0537.in, %101 ], [ %.0616, %102 ], [ %.0616, %103 ], [ %.0616, %104 ], [ %.0616, %105 ], [ %.0616, %148 ], [ %.0616, %195 ], [ %.0616, %._crit_edge981 ], [ %.0616, %._crit_edge981 ]
  %.2612.ph = phi i8 [ %.1611, %148 ], [ 1, %.preheader951 ], [ %.0610, %100 ], [ %.0610, %101 ], [ %.0610, %102 ], [ %.0610, %103 ], [ %.0610, %104 ], [ %.0610, %105 ], [ %.1611, %148 ], [ %.0610, %195 ], [ %.0610, %._crit_edge981 ], [ %.0610, %._crit_edge981 ]
  %.3587.ph = phi i32 [ %.2586, %148 ], [ %.0584, %.preheader951 ], [ %.0584, %100 ], [ %.0584, %101 ], [ %.0584, %102 ], [ %.0584, %103 ], [ %.0584, %104 ], [ %.0584, %105 ], [ %.2586, %148 ], [ %.0584, %195 ], [ %129, %._crit_edge981 ], [ %129, %._crit_edge981 ]
  %.4558.ph = phi i32 [ %.0554, %148 ], [ %.0554, %.preheader951 ], [ %.0554, %100 ], [ %.0554, %101 ], [ %.0554, %102 ], [ %.0554, %103 ], [ %.0554, %104 ], [ %.0554, %105 ], [ %.0554, %148 ], [ %.3557, %195 ], [ %.0554, %._crit_edge981 ], [ %.0554, %._crit_edge981 ]
  %.9.ph = phi ptr [ %.3, %148 ], [ %.3, %.preheader951 ], [ %.3, %100 ], [ %.3, %101 ], [ %.3, %102 ], [ %.3, %103 ], [ %.3, %104 ], [ %.3, %105 ], [ %.3, %148 ], [ %196, %195 ], [ %.5.lcssa, %._crit_edge981 ], [ %.5.lcssa, %._crit_edge981 ]
  %198 = getelementptr inbounds i8, ptr %.9.ph, i64 1
  %199 = load i8, ptr %198, align 1, !tbaa !12
  %.not776 = icmp eq i8 %199, 0
  br i1 %.not776, label %.critedge8, label %.preheader951, !llvm.loop !17

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

.critedge8:                                       ; preds = %197, %193, %._crit_edge981, %.preheader951, %.critedge8.loopexit.split.loop.exit1020, %113
  %.4558867 = phi i32 [ %.0554, %113 ], [ %.0554, %.critedge8.loopexit.split.loop.exit1020 ], [ %.4558.ph, %197 ], [ %.3557, %193 ], [ %.0554, %._crit_edge981 ], [ %.0554, %.preheader951 ]
  %.3587865 = phi i32 [ %.0584, %113 ], [ %.2586, %.critedge8.loopexit.split.loop.exit1020 ], [ %.3587.ph, %197 ], [ %.0584, %193 ], [ %129, %._crit_edge981 ], [ %.0584, %.preheader951 ]
  %.2612863 = phi i8 [ %.0610, %113 ], [ %.1611, %.critedge8.loopexit.split.loop.exit1020 ], [ %.2612.ph, %197 ], [ %.0610, %193 ], [ %.0610, %._crit_edge981 ], [ %.0610, %.preheader951 ]
  %.1617862 = phi i8 [ %.0616, %113 ], [ %.0616, %.critedge8.loopexit.split.loop.exit1020 ], [ %.1617.ph, %197 ], [ %.0616, %193 ], [ %.0616, %._crit_edge981 ], [ %.0616, %.preheader951 ]
  %.1622859 = phi i8 [ %.0621, %113 ], [ %.0621, %.critedge8.loopexit.split.loop.exit1020 ], [ %.1622.ph, %197 ], [ %.0621, %193 ], [ %.0621, %._crit_edge981 ], [ %.0621, %.preheader951 ]
  %.1628857 = phi i8 [ %.0627, %113 ], [ %.0627, %.critedge8.loopexit.split.loop.exit1020 ], [ %.1628.ph, %197 ], [ %.0627, %193 ], [ %.0627, %._crit_edge981 ], [ %.0627, %.preheader951 ]
  %.1631855 = phi i8 [ %.0630, %113 ], [ %.0630, %.critedge8.loopexit.split.loop.exit1020 ], [ %.1631.ph, %197 ], [ %.0630, %193 ], [ %.0630, %._crit_edge981 ], [ %.0630, %.preheader951 ]
  %.2634854 = phi i8 [ %.1633, %113 ], [ 0, %.critedge8.loopexit.split.loop.exit1020 ], [ 0, %.preheader951 ], [ 0, %._crit_edge981 ], [ 0, %193 ], [ 0, %197 ]
  %.1641852 = phi i8 [ %.0640, %113 ], [ %.0640, %.critedge8.loopexit.split.loop.exit1020 ], [ %.1641.ph, %197 ], [ %.0640, %193 ], [ %.0640, %._crit_edge981 ], [ %.0640, %.preheader951 ]
  %.5542 = phi i32 [ %.1538, %113 ], [ %201, %.critedge8.loopexit.split.loop.exit1020 ], [ 0, %197 ], [ %.3540, %193 ], [ %.lcssa954, %._crit_edge981 ], [ %.0537, %.preheader951 ]
  %.10 = phi ptr [ %.4, %113 ], [ %200, %.critedge8.loopexit.split.loop.exit1020 ], [ %198, %197 ], [ %.8, %193 ], [ %.lcssa956, %._crit_edge981 ], [ %.3, %.preheader951 ]
  %202 = icmp eq i32 %.5542, %40
  br i1 %202, label %247, label %203

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

250:                                              ; preds = %247
  br label %252

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

252:                                              ; preds = %250, %251, %247
  %.2642 = phi i8 [ %.1641852, %247 ], [ 0, %250 ], [ 0, %251 ]
  %.4636 = phi i8 [ %.2634854, %247 ], [ 2, %250 ], [ %.2634854, %251 ]
  %253 = getelementptr inbounds i8, ptr %.lcssa1161, i64 2
  %254 = load i8, ptr %253, align 1, !tbaa !20
  %255 = and i8 %254, 1
  %.not809 = icmp eq i8 %255, 0
  br i1 %.not809, label %301, label %256

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

344:                                              ; preds = %302, %316, %328, %340, %299
  %.2702 = phi i64 [ %.0700, %299 ], [ %303, %302 ], [ %318, %316 ], [ %330, %328 ], [ %343, %340 ]
  %.1666 = phi i8 [ %.0665, %299 ], [ 0, %302 ], [ 0, %316 ], [ 0, %328 ], [ 0, %340 ]
  %345 = icmp eq i64 %.2702, 0
  %.not814 = icmp eq i8 %.1631855, 0
  br i1 %.not814, label %349, label %346

346:                                              ; preds = %344
  %347 = icmp ne i8 %.1666, 0
  %.neg = sext i1 %347 to i32
  %348 = add i32 %.3587865, %.neg
  %spec.select825 = call i32 @llvm.smax.i32(i32 %.4558867, i32 %348)
  br label %349

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

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

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

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

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

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

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

396:                                              ; preds = %396, %382
  %indvars.iv1206 = phi i32 [ %indvars.iv.next1207, %396 ], [ %395, %382 ]
  %indvars.iv1204 = phi ptr [ %scevgep1205, %396 ], [ %scevgep1203, %382 ]
  %indvar = phi i64 [ %indvar.next, %396 ], [ 0, %382 ]
  %.3703 = phi i64 [ %401, %396 ], [ %.2702, %382 ]
  %.3546 = phi ptr [ %400, %396 ], [ %.2545, %382 ]
  %397 = urem i64 %.3703, %389
  %398 = getelementptr inbounds i8, ptr %386, i64 %397
  %399 = load i8, ptr %398, align 1, !tbaa !12
  %400 = getelementptr inbounds i8, ptr %.3546, i64 -1
  store i8 %399, ptr %400, align 1, !tbaa !12
  %401 = udiv i64 %.3703, %389
  %.not817 = icmp ult i64 %.3703, %389
  %indvar.next = add i64 %indvar, 1
  %scevgep1205 = getelementptr i8, ptr %indvars.iv1204, i64 -1
  %indvars.iv.next1207 = add i32 %indvars.iv1206, -1
  br i1 %.not817, label %402, label %396, !llvm.loop !27

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

.lr.ph1112.preheader:                             ; preds = %402
  %408 = sub i64 -2, %indvar
  %scevgep1199 = getelementptr i8, ptr %.2545, i64 %408
  %409 = trunc i64 %indvar to i32
  %410 = sub i32 %395, %409
  %411 = zext i32 %410 to i64
  %412 = sub nsw i64 0, %411
  %scevgep1202 = getelementptr i8, ptr %scevgep1199, i64 %412
  %413 = add nuw nsw i64 %411, 1
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %scevgep1202, i8 48, i64 %413, i1 false), !tbaa !12
  %414 = zext i32 %indvars.iv1206 to i64
  %415 = sub nsw i64 0, %414
  %scevgep1208 = getelementptr i8, ptr %indvars.iv1204, i64 %415
  br label %._crit_edge1113

._crit_edge1113:                                  ; preds = %.lr.ph1112.preheader, %402
  %.1570.lcssa = phi i32 [ %406, %402 ], [ %.5559, %.lr.ph1112.preheader ]
  %.4547.lcssa = phi ptr [ %400, %402 ], [ %scevgep1208, %.lr.ph1112.preheader ]
  %.not818 = icmp eq i8 %.2642, 0
  br i1 %.not818, label %.loopexit936, label %416

416:                                              ; preds = %._crit_edge1113
  %417 = add nsw i32 %.1570.lcssa, -1
  %418 = sdiv i32 %417, 3
  %419 = zext nneg i32 %418 to i64
  %420 = sub nsw i64 0, %419
  %421 = getelementptr inbounds i8, ptr %.4547.lcssa, i64 %420
  %422 = icmp sgt i32 %.1570.lcssa, 3
  br i1 %422, label %.lr.ph1120.preheader, label %.loopexit936

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

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

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

438:                                              ; preds = %.lr.ph1120, %433
  %.1647 = phi i32 [ %437, %433 ], [ %.06461116, %.lr.ph1120 ]
  %.1645 = phi i32 [ 3, %433 ], [ %431, %.lr.ph1120 ]
  %.2582 = phi i32 [ %434, %433 ], [ %.15811118, %.lr.ph1120 ]
  %439 = add nsw i32 %.2582, 1
  %440 = icmp sgt i32 %.1647, 0
  br i1 %440, label %.lr.ph1120, label %.loopexit936, !llvm.loop !28

.loopexit936:                                     ; preds = %438, %416, %._crit_edge1113
  %.5548 = phi ptr [ %.4547.lcssa, %._crit_edge1113 ], [ %421, %416 ], [ %421, %438 ]
  %.not819 = icmp eq i8 %.1666, 0
  br i1 %.not819, label %443, label %441

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

443:                                              ; preds = %441, %.loopexit936
  %.6549 = phi ptr [ %442, %441 ], [ %.5548, %.loopexit936 ]
  %.not820931 = icmp eq i8 %.1622859, 0
  %.not820 = select i1 %345, i1 true, i1 %.not820931
  br i1 %.not820, label %.loopexit935, label %444

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

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

.lr.ph1125:                                       ; preds = %447, %.lr.ph1125
  %451 = phi i8 [ %454, %.lr.ph1125 ], [ %450, %447 ]
  %.75501123 = phi ptr [ %452, %.lr.ph1125 ], [ %.6549, %447 ]
  %.06431122 = phi ptr [ %453, %.lr.ph1125 ], [ %449, %447 ]
  %452 = getelementptr inbounds i8, ptr %.75501123, i64 -1
  store i8 %451, ptr %452, align 1, !tbaa !12
  %453 = getelementptr inbounds i8, ptr %.06431122, i64 1
  %454 = load i8, ptr %453, align 1, !tbaa !12
  %.not822 = icmp eq i8 %454, 0
  br i1 %.not822, label %.loopexit935, label %.lr.ph1125, !llvm.loop !30

.loopexit935:                                     ; preds = %.lr.ph1125, %447, %444, %443
  %.8551 = phi ptr [ %.6549, %444 ], [ %.6549, %443 ], [ %.6549, %447 ], [ %452, %.lr.ph1125 ]
  %455 = ptrtoint ptr %.8551 to i64
  %456 = sub i64 %403, %455
  %457 = trunc i64 %456 to i32
  br label %.critedge27.thread

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

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

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

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

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

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

475:                                              ; preds = %472, %459
  %storemerge.in = phi double [ %474, %472 ], [ %460, %459 ]
  %storemerge = fpext double %storemerge.in to x86_fp80
  %476 = icmp slt i32 %.4558867, 0
  %477 = call i32 @llvm.smin.i32(i32 %.4558867, i32 100000000)
  %spec.store.select34 = select i1 %476, i32 6, i32 %477
  %478 = fcmp olt double %storemerge.in, 0.000000e+00
  %479 = fneg x86_fp80 %storemerge
  %storemerge927 = select i1 %478, x86_fp80 %479, x86_fp80 %storemerge
  %.2667 = select i1 %478, i8 45, i8 %.1617862
  store x86_fp80 %storemerge927, ptr %4, align 16, !tbaa !33
  %480 = icmp eq i8 %249, 3
  %481 = icmp sgt i32 %spec.store.select34, 0
  %or.cond10 = and i1 %480, %481
  %482 = sext i1 %or.cond10 to i32
  %spec.select826 = add nsw i32 %spec.store.select34, %482
  %483 = and i32 %spec.select826, 4095
  %.lhs.trunc = trunc nuw nsw i32 %483 to i16
  %484 = urem i16 %.lhs.trunc, 10
  %485 = zext nneg i16 %484 to i64
  %486 = getelementptr inbounds [10 x double], ptr @arRound, i64 0, i64 %485
  %487 = load double, ptr %486, align 8, !tbaa !31
  %488 = icmp ugt i32 %483, 9
  br i1 %488, label %.lr.ph1072, label %._crit_edge1073

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

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

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

507:                                              ; preds = %493, %._crit_edge1073
  %508 = phi x86_fp80 [ %506, %493 ], [ %storemerge927, %._crit_edge1073 ]
  %.2670 = phi double [ %.1669, %493 ], [ %.0668.lcssa, %._crit_edge1073 ]
  %509 = fptrunc x86_fp80 %508 to double
  %510 = call i32 @sqlite3IsNaN(double noundef %509)
  %.not801 = icmp eq i32 %510, 0
  br i1 %.not801, label %511, label %.critedge27.thread

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

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

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

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

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

.preheader944.4:                                  ; preds = %.preheader944.3
  br label %.preheader943.preheader

.preheader943.preheader:                          ; preds = %.preheader944.4, %.preheader944.3, %.preheader944.2, %.preheader944.1, %.preheader944
  %.0675.lcssa = phi i32 [ 0, %.preheader944 ], [ 100, %.preheader944.1 ], [ 200, %.preheader944.2 ], [ 300, %.preheader944.3 ], [ 400, %.preheader944.4 ]
  %.0624.lcssa = phi x86_fp80 [ 0xK3FFF8000000000000000, %.preheader944 ], [ 0xK414B924D692CA61BE800, %.preheader944.1 ], [ 0xK4297A738C6BEBB12D2EC, %.preheader944.2 ], [ 0xK43E3BF21E44003ACDFBE, %.preheader944.3 ], [ 0xK452FDA763FC8CB9FFDCF, %.preheader944.4 ]
  br label %.preheader943

.preheader943:                                    ; preds = %.preheader943.preheader, %.preheader943
  %.1676 = phi i32 [ %522, %.preheader943 ], [ %.0675.lcssa, %.preheader943.preheader ]
  %.1625 = phi x86_fp80 [ %518, %.preheader943 ], [ %.0624.lcssa, %.preheader943.preheader ]
  %518 = fmul x86_fp80 %.1625, 0xK40209502F90000000000
  %519 = fcmp oge x86_fp80 %512, %518
  %520 = icmp ult i32 %.1676, 351
  %521 = select i1 %519, i1 %520, i1 false
  %522 = add nuw nsw i32 %.1676, 10
  br i1 %521, label %.preheader943, label %.preheader942, !llvm.loop !37

.preheader942:                                    ; preds = %.preheader943, %.preheader942
  %.2677 = phi i32 [ %527, %.preheader942 ], [ %.1676, %.preheader943 ]
  %.2626 = phi x86_fp80 [ %523, %.preheader942 ], [ %.1625, %.preheader943 ]
  %523 = fmul x86_fp80 %.2626, 0xK4002A000000000000000
  %524 = fcmp oge x86_fp80 %512, %523
  %525 = icmp ult i32 %.2677, 351
  %526 = select i1 %524, i1 %525, i1 false
  %527 = add nuw nsw i32 %.2677, 1
  br i1 %526, label %.preheader942, label %528, !llvm.loop !38

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

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

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

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

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

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

540:                                              ; preds = %._crit_edge1082, %thread-pre-split
  %541 = phi x86_fp80 [ %537, %._crit_edge1082 ], [ %.pr, %thread-pre-split ]
  %.4679.lcssa = phi i32 [ %538, %._crit_edge1082 ], [ %.3678.lcssa, %thread-pre-split ]
  %542 = icmp sgt i32 %.4679.lcssa, 350
  br i1 %542, label %543, label %.thread873

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

.thread873:                                       ; preds = %540, %511
  %548 = phi x86_fp80 [ %512, %511 ], [ %541, %540 ]
  %.5680 = phi i32 [ 0, %511 ], [ %.4679.lcssa, %540 ]
  br i1 %492, label %.thread878, label %549

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

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

556:                                              ; preds = %549, %553
  %.6681 = phi i32 [ %555, %553 ], [ %.5680, %549 ]
  br i1 %480, label %557, label %.thread878

557:                                              ; preds = %556
  %.not803 = icmp eq i8 %.1622859, 0
  %558 = zext i1 %.not803 to i8
  %559 = icmp slt i32 %.6681, -4
  %560 = icmp sgt i32 %.6681, %spec.select826
  %or.cond = or i1 %559, %560
  %spec.select836 = select i1 %or.cond, i8 2, i8 1
  %561 = select i1 %or.cond, i32 0, i32 %.6681
  %spec.select837 = sub nsw i32 %spec.select826, %561
  br label %.thread878

.thread878:                                       ; preds = %.thread873, %557, %556
  %.6681880 = phi i32 [ %.6681, %556 ], [ %.6681, %557 ], [ %.5680, %.thread873 ]
  %.0664 = phi i8 [ %.1628857, %556 ], [ %558, %557 ], [ %.1628857, %.thread873 ]
  %.1649 = phi i8 [ %249, %556 ], [ %spec.select836, %557 ], [ 1, %.thread873 ]
  %.7561 = phi i32 [ %spec.select826, %556 ], [ %spec.select837, %557 ], [ %spec.select826, %.thread873 ]
  %562 = icmp eq i8 %.1649, 2
  %..6681 = select i1 %562, i32 0, i32 %.6681880
  %563 = call i32 @llvm.smax.i32(i32 %..6681, i32 0)
  %564 = zext nneg i32 %563 to i64
  %565 = sext i32 %.7561 to i64
  %566 = zext nneg i32 %.3587865 to i64
  %567 = add nsw i64 %565, %566
  %568 = add nsw i64 %567, %564
  %569 = icmp sgt i64 %568, 55
  br i1 %569, label %570, label %574

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

574:                                              ; preds = %570, %.thread878
  %.3687.ph = phi ptr [ null, %.thread878 ], [ %572, %570 ]
  %.11.ph = phi ptr [ %6, %.thread878 ], [ %572, %570 ]
  %575 = zext nneg i8 %.1628857 to i32
  %576 = mul nuw nsw i32 %575, 10
  %577 = add nuw nsw i32 %576, 16
  store i32 %577, ptr %5, align 4, !tbaa !15
  %578 = icmp sgt i32 %.7561, 0
  %579 = zext i1 %578 to i8
  %580 = or i8 %.1622859, %579
  %581 = or i8 %580, %.1628857
  %.not804 = icmp eq i8 %.2667, 0
  br i1 %.not804, label %584, label %582

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

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

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

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

.loopexit941:                                     ; preds = %.preheader940, %586
  %.2673 = phi i32 [ %.6681880, %586 ], [ -1, %.preheader940 ]
  %.14 = phi ptr [ %587, %586 ], [ %589, %.preheader940 ]
  %.not805 = icmp eq i8 %581, 0
  br i1 %.not805, label %593, label %591

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

593:                                              ; preds = %591, %.loopexit941
  %.15 = phi ptr [ %592, %591 ], [ %.14, %.loopexit941 ]
  %594 = icmp slt i32 %.2673, -1
  br i1 %594, label %.lr.ph1091.preheader, label %.preheader939

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

.preheader939:                                    ; preds = %.lr.ph1091.preheader, %593
  %.8562.lcssa = phi i32 [ %.7561, %593 ], [ %599, %.lr.ph1091.preheader ]
  %.16.lcssa = phi ptr [ %.15, %593 ], [ %scevgep1189, %.lr.ph1091.preheader ]
  %600 = icmp sgt i32 %.8562.lcssa, 0
  br i1 %600, label %.lr.ph1096, label %._crit_edge1097

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

._crit_edge1097:                                  ; preds = %.lr.ph1096, %.preheader939
  %.17.lcssa = phi ptr [ %.16.lcssa, %.preheader939 ], [ %603, %.lr.ph1096 ]
  %605 = icmp ne i8 %.0664, 0
  %606 = icmp ne i8 %581, 0
  %or.cond13 = select i1 %605, i1 %606, i1 false
  br i1 %or.cond13, label %.preheader937, label %.loopexit938

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

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

610:                                              ; preds = %.preheader937
  %.not806 = icmp eq i8 %.1628857, 0
  br i1 %.not806, label %613, label %611

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

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

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

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

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

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

636:                                              ; preds = %629, %.loopexit938
  %.22 = phi ptr [ %635, %629 ], [ %.19, %.loopexit938 ]
  store i8 0, ptr %.22, align 1, !tbaa !12
  %637 = ptrtoint ptr %.22 to i64
  %638 = ptrtoint ptr %.11.ph to i64
  %639 = sub i64 %637, %638
  %640 = trunc i64 %639 to i32
  %641 = icmp ne i8 %.1631855, 0
  %642 = icmp eq i8 %.2612863, 0
  %or.cond15.not930 = select i1 %641, i1 %642, i1 false
  %643 = icmp sgt i32 %.3587865, %640
  %or.cond827 = select i1 %or.cond15.not930, i1 %643, i1 false
  br i1 %or.cond827, label %644, label %.critedge27.thread

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

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

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

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

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

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

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = sub i64 %646, %index
  %661 = sub nsw i64 %offset.idx, %647
  %gep = getelementptr i8, ptr %invariant.gep, i64 %661
  %wide.load = load <16 x i8>, ptr %gep, align 1, !tbaa !12
  %gep1425 = getelementptr i8, ptr %invariant.gep1424, i64 %offset.idx
  store <16 x i8> %wide.load, ptr %gep1425, align 1, !tbaa !12
  %index.next = add nuw i64 %index, 16
  %662 = icmp eq i64 %index.next, %n.vec
  br i1 %662, label %middle.block, label %vector.body, !llvm.loop !44

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

vec.epilog.iter.check:                            ; preds = %middle.block
  %ind.end1309 = sub i64 %646, %n.vec
  %n.vec.remaining = and i64 %649, 12
  %min.epilog.iters.check = icmp eq i64 %n.vec.remaining, 0
  br i1 %min.epilog.iters.check, label %.lr.ph1102.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.vec1308 = and i64 %649, -4
  %ind.end = sub i64 %646, %n.vec1308
  %invariant.gep1426 = getelementptr i8, ptr %.11.ph, i64 -3
  %invariant.gep1428 = getelementptr i8, ptr %.11.ph, i64 -3
  br label %vec.epilog.vector.body

vec.epilog.vector.body:                           ; preds = %vec.epilog.vector.body, %vec.epilog.ph
  %index1310 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next1315, %vec.epilog.vector.body ]
  %offset.idx1311 = sub i64 %646, %index1310
  %663 = sub nsw i64 %offset.idx1311, %647
  %gep1427 = getelementptr i8, ptr %invariant.gep1426, i64 %663
  %wide.load1312 = load <4 x i8>, ptr %gep1427, align 1, !tbaa !12
  %gep1429 = getelementptr i8, ptr %invariant.gep1428, i64 %offset.idx1311
  store <4 x i8> %wide.load1312, ptr %gep1429, align 1, !tbaa !12
  %index.next1315 = add nuw i64 %index1310, 4
  %664 = icmp eq i64 %index.next1315, %n.vec1308
  br i1 %664, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !47

vec.epilog.middle.block:                          ; preds = %vec.epilog.vector.body
  %cmp.n1316 = icmp eq i64 %649, %n.vec1308
  br i1 %cmp.n1316, label %._crit_edge1103, label %.lr.ph1102.preheader

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

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

._crit_edge1103:                                  ; preds = %.lr.ph1102, %middle.block, %vec.epilog.middle.block, %644
  %.not8081104 = icmp eq i32 %.3587865, %640
  br i1 %.not8081104, label %.critedge27.thread, label %.lr.ph1108.preheader

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.critedge17:                                      ; preds = %.preheader947.preheader, %.preheader947.1, %.preheader947.2, %710, %727, %740, %751, %731, %711, %698
  %.5574 = phi i32 [ 1, %698 ], [ 1, %711 ], [ 1, %727 ], [ 2, %731 ], [ 3, %740 ], [ 4, %751 ], [ 1, %.preheader947.preheader ], [ 2, %.preheader947.1 ], [ 3, %.preheader947.2 ], [ 4, %710 ]
  %765 = icmp sgt i32 %.4558867, 1
  br i1 %765, label %766, label %.critedge27

766:                                              ; preds = %.critedge17
  %767 = add nsw i32 %.4558867, -1
  %768 = sub nsw i32 %.3587865, %767
  %769 = icmp slt i32 %768, 2
  %770 = icmp ne i8 %.2612863, 0
  %or.cond19 = select i1 %769, i1 true, i1 %770
  br i1 %or.cond19, label %773, label %771

771:                                              ; preds = %766
  %772 = add nsw i32 %768, -1
  call void @sqlite3_str_appendchar(ptr noundef %0, i32 noundef %772, i8 noundef signext 32)
  br label %773

773:                                              ; preds = %771, %766
  %.4588 = phi i32 [ %768, %766 ], [ 0, %771 ]
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef nonnull %6, i32 noundef %.5574)
  %.not1130 = icmp eq i32 %.4558867, 2
  br i1 %.not1130, label %.critedge27, label %.lr.ph1063

.lr.ph1063:                                       ; preds = %773
  %774 = zext nneg i32 %.5574 to i64
  br label %775

775:                                              ; preds = %.lr.ph1063, %788
  %.105641061 = phi i32 [ %767, %.lr.ph1063 ], [ %796, %788 ]
  %.06131060 = phi i64 [ 1, %.lr.ph1063 ], [ %797, %788 ]
  %776 = add nsw i32 %.105641061, -1
  %777 = zext nneg i32 %776 to i64
  %spec.select828 = call i64 @llvm.smin.i64(i64 %.06131060, i64 %777)
  %778 = mul nsw i64 %spec.select828, %774
  %779 = load i32, ptr %29, align 8, !tbaa !49
  %780 = zext i32 %779 to i64
  %781 = add nsw i64 %778, %780
  %782 = load i32, ptr %33, align 8, !tbaa !50
  %783 = zext i32 %782 to i64
  %.not797 = icmp slt i64 %781, %783
  br i1 %.not797, label %786, label %784

784:                                              ; preds = %775
  %785 = call i32 @sqlite3StrAccumEnlarge(ptr noundef nonnull %0, i64 noundef %778)
  br label %786

786:                                              ; preds = %784, %775
  %787 = load i8, ptr %31, align 4, !tbaa !51
  %.not798 = icmp eq i8 %787, 0
  br i1 %.not798, label %788, label %.critedge27

788:                                              ; preds = %786
  %789 = load ptr, ptr %32, align 8, !tbaa !52
  %790 = load i32, ptr %29, align 8, !tbaa !49
  %791 = zext i32 %790 to i64
  %792 = sub nsw i64 %791, %778
  %793 = getelementptr inbounds i8, ptr %789, i64 %792
  %794 = trunc i64 %778 to i32
  call void @sqlite3_str_append(ptr noundef nonnull %0, ptr noundef %793, i32 noundef %794)
  %795 = trunc i64 %spec.select828 to i32
  %796 = sub i32 %.105641061, %795
  %797 = shl nsw i64 %spec.select828, 1
  %798 = icmp sgt i32 %796, 1
  br i1 %798, label %775, label %.critedge27

799:                                              ; preds = %247, %247
  br i1 %.not, label %800, label %.thread893

800:                                              ; preds = %799
  %801 = load i32, ptr %2, align 8
  %802 = icmp ult i32 %801, 41
  br i1 %802, label %803, label %808

803:                                              ; preds = %800
  %804 = load ptr, ptr %28, align 8
  %805 = zext nneg i32 %801 to i64
  %806 = getelementptr i8, ptr %804, i64 %805
  %807 = add nuw nsw i32 %801, 8
  store i32 %807, ptr %2, align 8
  br label %811

808:                                              ; preds = %800
  %809 = load ptr, ptr %27, align 8
  %810 = getelementptr i8, ptr %809, i64 8
  store ptr %810, ptr %27, align 8
  br label %811

811:                                              ; preds = %803, %808
  %812 = phi ptr [ %806, %803 ], [ %809, %808 ]
  %813 = load ptr, ptr %812, align 8, !tbaa !11
  %814 = icmp eq ptr %813, null
  br i1 %814, label %.thread898, label %817

.thread893:                                       ; preds = %799
  %815 = call ptr @getTextArg(ptr noundef %.0663)
  %816 = icmp eq ptr %815, null
  %spec.select926 = select i1 %816, ptr @.str.3, ptr %815
  br label %.thread898

817:                                              ; preds = %811
  %818 = icmp eq i8 %249, 6
  br i1 %818, label %819, label %.thread898

819:                                              ; preds = %817
  %820 = load i32, ptr %29, align 8, !tbaa !49
  %821 = icmp eq i32 %820, 0
  br i1 %821, label %822, label %.thread898

822:                                              ; preds = %819
  %823 = load i32, ptr %30, align 4, !tbaa !53
  %824 = icmp ne i32 %823, 0
  %825 = icmp eq i32 %.3587865, 0
  %or.cond21 = select i1 %824, i1 %825, i1 false
  %826 = icmp slt i32 %.4558867, 0
  %or.cond23 = select i1 %or.cond21, i1 %826, i1 false
  br i1 %or.cond23, label %827, label %.thread898

827:                                              ; preds = %822
  %828 = load i8, ptr %31, align 4, !tbaa !51
  %829 = icmp eq i8 %828, 0
  br i1 %829, label %830, label %.thread901

830:                                              ; preds = %827
  store ptr %813, ptr %32, align 8, !tbaa !52
  %831 = load ptr, ptr %0, align 8, !tbaa !54
  %832 = call i32 @sqlite3DbMallocSize(ptr noundef %831, ptr noundef nonnull %813)
  store i32 %832, ptr %33, align 8, !tbaa !50
  %833 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %813) #7
  %834 = trunc i64 %833 to i32
  %835 = and i32 %834, 2147483647
  store i32 %835, ptr %29, align 8, !tbaa !49
  %836 = load i8, ptr %7, align 1, !tbaa !5
  %837 = or i8 %836, 4
  store i8 %837, ptr %7, align 1, !tbaa !5
  br label %.critedge27.thread

.thread898:                                       ; preds = %.thread893, %819, %822, %811, %817
  %.4688 = phi ptr [ null, %817 ], [ null, %811 ], [ %813, %822 ], [ %813, %819 ], [ null, %.thread893 ]
  %.25 = phi ptr [ %813, %817 ], [ @.str.3, %811 ], [ %813, %822 ], [ %813, %819 ], [ %spec.select926, %.thread893 ]
  %838 = icmp sgt i32 %.4558867, -1
  br i1 %838, label %839, label %.thread901

839:                                              ; preds = %.thread898
  %.not792 = icmp eq i8 %.1628857, 0
  %.not1129 = icmp eq i32 %.4558867, 0
  br i1 %.not792, label %.preheader948, label %.preheader950

.preheader950:                                    ; preds = %839
  br i1 %.not1129, label %.critedge25, label %.lr.ph1051

.preheader948:                                    ; preds = %839
  br i1 %.not1129, label %.critedge27.thread, label %.lr.ph1056.preheader

.lr.ph1056.preheader:                             ; preds = %.preheader948
  %wide.trip.count = zext nneg i32 %.4558867 to i64
  br label %.lr.ph1056

.lr.ph1051:                                       ; preds = %.preheader950, %.loopexit
  %.in = phi i32 [ %840, %.loopexit ], [ %.4558867, %.preheader950 ]
  %.06071050 = phi ptr [ %.2609, %.loopexit ], [ %.25, %.preheader950 ]
  %840 = add nsw i32 %.in, -1
  %841 = load i8, ptr %.06071050, align 1, !tbaa !12
  %.not794 = icmp eq i8 %841, 0
  br i1 %.not794, label %.critedge25, label %842

842:                                              ; preds = %.lr.ph1051
  %843 = getelementptr inbounds i8, ptr %.06071050, i64 1
  %844 = icmp ugt i8 %841, -65
  br i1 %844, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %842, %.preheader
  %.1608 = phi ptr [ %848, %.preheader ], [ %843, %842 ]
  %845 = load i8, ptr %.1608, align 1, !tbaa !12
  %846 = and i8 %845, -64
  %847 = icmp eq i8 %846, -128
  %848 = getelementptr inbounds i8, ptr %.1608, i64 1
  br i1 %847, label %.preheader, label %.loopexit, !llvm.loop !55

.loopexit:                                        ; preds = %.preheader, %842
  %.2609 = phi ptr [ %843, %842 ], [ %.1608, %.preheader ]
  %849 = icmp sgt i32 %.in, 1
  br i1 %849, label %.lr.ph1051, label %.critedge25, !llvm.loop !56

.critedge25:                                      ; preds = %.lr.ph1051, %.loopexit, %.preheader950
  %.0607.lcssa = phi ptr [ %.25, %.preheader950 ], [ %.2609, %.loopexit ], [ %.06071050, %.lr.ph1051 ]
  %850 = ptrtoint ptr %.0607.lcssa to i64
  %851 = ptrtoint ptr %.25 to i64
  %852 = sub i64 %850, %851
  %853 = trunc i64 %852 to i32
  br label %.critedge27

.lr.ph1056:                                       ; preds = %.lr.ph1056.preheader, %856
  %indvars.iv = phi i64 [ 0, %.lr.ph1056.preheader ], [ %indvars.iv.next, %856 ]
  %854 = getelementptr inbounds i8, ptr %.25, i64 %indvars.iv
  %855 = load i8, ptr %854, align 1, !tbaa !12
  %.not793 = icmp eq i8 %855, 0
  br i1 %.not793, label %.critedge27.thread.loopexit1211.split.loop.exit1253, label %856

856:                                              ; preds = %.lr.ph1056
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond1181.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond1181.not, label %.critedge27.thread, label %.lr.ph1056, !llvm.loop !57

.thread901:                                       ; preds = %827, %.thread898
  %.25905 = phi ptr [ %.25, %.thread898 ], [ %813, %827 ]
  %.4688904 = phi ptr [ %.4688, %.thread898 ], [ %813, %827 ]
  %857 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.25905) #7
  %858 = trunc i64 %857 to i32
  %859 = and i32 %858, 2147483647
  br label %.critedge27

.critedge27:                                      ; preds = %788, %786, %773, %.thread912, %.critedge17, %.thread901, %.critedge25
  %.5689 = phi ptr [ %.4688, %.critedge25 ], [ %.4688904, %.thread901 ], [ null, %.critedge17 ], [ %.6690, %.thread912 ], [ null, %773 ], [ null, %786 ], [ null, %788 ]
  %.2629 = phi i8 [ 1, %.critedge25 ], [ %.1628857, %.thread901 ], [ 1, %.critedge17 ], [ %.1628857, %.thread912 ], [ 1, %773 ], [ 1, %786 ], [ 1, %788 ]
  %.6590 = phi i32 [ %.3587865, %.critedge25 ], [ %.3587865, %.thread901 ], [ %.3587865, %.critedge17 ], [ %.3587865, %.thread912 ], [ %.4588, %773 ], [ %.4588, %786 ], [ %.4588, %788 ]
  %.7576 = phi i32 [ %853, %.critedge25 ], [ %859, %.thread901 ], [ %.5574, %.critedge17 ], [ %968, %.thread912 ], [ %.5574, %773 ], [ %.5574, %786 ], [ %.5574, %788 ]
  %.26 = phi ptr [ %.25, %.critedge25 ], [ %.25905, %.thread901 ], [ %6, %.critedge17 ], [ %.27, %.thread912 ], [ %6, %773 ], [ %6, %786 ], [ %6, %788 ]
  %860 = icmp ne i8 %.2629, 0
  %861 = icmp sgt i32 %.6590, 0
  %or.cond29 = select i1 %860, i1 %861, i1 false
  %862 = icmp sgt i32 %.7576, 0
  %or.cond1127 = select i1 %or.cond29, i1 %862, i1 false
  br i1 %or.cond1127, label %.lr.ph1067.preheader, label %.critedge27.thread

.lr.ph1067.preheader:                             ; preds = %.critedge27
  %863 = zext nneg i32 %.7576 to i64
  %min.iters.check1318 = icmp ult i32 %.7576, 8
  br i1 %min.iters.check1318, label %.lr.ph1067.preheader1334, label %vector.ph1319

vector.ph1319:                                    ; preds = %.lr.ph1067.preheader
  %n.vec1321 = and i64 %863, 2147483640
  %ind.end1322 = and i64 %863, 7
  %864 = insertelement <4 x i32> <i32 poison, i32 0, i32 0, i32 0>, i32 %.6590, i64 0
  br label %vector.body1324

vector.body1324:                                  ; preds = %vector.body1324, %vector.ph1319
  %index1325 = phi i64 [ 0, %vector.ph1319 ], [ %index.next1332, %vector.body1324 ]
  %vec.phi = phi <4 x i32> [ %864, %vector.ph1319 ], [ %878, %vector.body1324 ]
  %vec.phi1326 = phi <4 x i32> [ zeroinitializer, %vector.ph1319 ], [ %879, %vector.body1324 ]
  %865 = xor i64 %index1325, -1
  %866 = add i64 %865, %863
  %867 = getelementptr inbounds i8, ptr %.26, i64 %866
  %868 = getelementptr inbounds i8, ptr %867, i64 -3
  %869 = getelementptr inbounds i8, ptr %867, i64 -7
  %wide.load1328 = load <4 x i8>, ptr %868, align 1, !tbaa !12
  %wide.load1330 = load <4 x i8>, ptr %869, align 1, !tbaa !12
  %870 = and <4 x i8> %wide.load1328, <i8 -64, i8 -64, i8 -64, i8 -64>
  %871 = shufflevector <4 x i8> %870, <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  %872 = and <4 x i8> %wide.load1330, <i8 -64, i8 -64, i8 -64, i8 -64>
  %873 = shufflevector <4 x i8> %872, <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  %874 = icmp eq <4 x i8> %871, <i8 -128, i8 -128, i8 -128, i8 -128>
  %875 = icmp eq <4 x i8> %873, <i8 -128, i8 -128, i8 -128, i8 -128>
  %876 = zext <4 x i1> %874 to <4 x i32>
  %877 = zext <4 x i1> %875 to <4 x i32>
  %878 = add <4 x i32> %vec.phi, %876
  %879 = add <4 x i32> %vec.phi1326, %877
  %index.next1332 = add nuw i64 %index1325, 8
  %880 = icmp eq i64 %index.next1332, %n.vec1321
  br i1 %880, label %middle.block1317, label %vector.body1324, !llvm.loop !58

middle.block1317:                                 ; preds = %vector.body1324
  %bin.rdx = add <4 x i32> %879, %878
  %881 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %bin.rdx)
  %cmp.n1333 = icmp eq i64 %n.vec1321, %863
  br i1 %cmp.n1333, label %.critedge27.thread, label %.lr.ph1067.preheader1334

.lr.ph1067.preheader1334:                         ; preds = %middle.block1317, %.lr.ph1067.preheader
  %indvars.iv1186.ph = phi i64 [ %863, %.lr.ph1067.preheader ], [ %ind.end1322, %middle.block1317 ]
  %.75911066.ph = phi i32 [ %.6590, %.lr.ph1067.preheader ], [ %881, %middle.block1317 ]
  br label %.lr.ph1067

.lr.ph1067:                                       ; preds = %.lr.ph1067.preheader1334, %.lr.ph1067
  %indvars.iv1186 = phi i64 [ %indvars.iv.next1187, %.lr.ph1067 ], [ %indvars.iv1186.ph, %.lr.ph1067.preheader1334 ]
  %.75911066 = phi i32 [ %spec.select831, %.lr.ph1067 ], [ %.75911066.ph, %.lr.ph1067.preheader1334 ]
  %indvars.iv.next1187 = add nsw i64 %indvars.iv1186, -1
  %882 = getelementptr inbounds i8, ptr %.26, i64 %indvars.iv.next1187
  %883 = load i8, ptr %882, align 1, !tbaa !12
  %884 = and i8 %883, -64
  %885 = icmp eq i8 %884, -128
  %886 = zext i1 %885 to i32
  %spec.select831 = add nuw nsw i32 %.75911066, %886
  %887 = icmp ugt i64 %indvars.iv1186, 1
  br i1 %887, label %.lr.ph1067, label %.critedge27.thread, !llvm.loop !59

888:                                              ; preds = %247, %247, %247
  %889 = icmp eq i8 %249, 14
  %890 = select i1 %889, i8 34, i8 39
  br i1 %.not, label %893, label %891

891:                                              ; preds = %888
  %892 = call ptr @getTextArg(ptr noundef %.0663)
  br label %907

893:                                              ; preds = %888
  %894 = load i32, ptr %2, align 8
  %895 = icmp ult i32 %894, 41
  br i1 %895, label %896, label %901

896:                                              ; preds = %893
  %897 = load ptr, ptr %28, align 8
  %898 = zext nneg i32 %894 to i64
  %899 = getelementptr i8, ptr %897, i64 %898
  %900 = add nuw nsw i32 %894, 8
  store i32 %900, ptr %2, align 8
  br label %904

901:                                              ; preds = %893
  %902 = load ptr, ptr %27, align 8
  %903 = getelementptr i8, ptr %902, i64 8
  store ptr %903, ptr %27, align 8
  br label %904

904:                                              ; preds = %901, %896
  %905 = phi ptr [ %899, %896 ], [ %902, %901 ]
  %906 = load ptr, ptr %905, align 8, !tbaa !11
  br label %907

907:                                              ; preds = %904, %891
  %.0567 = phi ptr [ %892, %891 ], [ %906, %904 ]
  %908 = icmp ne ptr %.0567, null
  %909 = icmp eq i8 %249, 10
  %910 = select i1 %909, ptr @.str.4, ptr @.str.5
  %.1568 = select i1 %908, ptr %.0567, ptr %910
  %.not7881033 = icmp eq i32 %.4558867, 0
  br i1 %.not7881033, label %.critedge31, label %.lr.ph1038

.lr.ph1038:                                       ; preds = %907
  %911 = sext i32 %.4558867 to i64
  %.not790 = icmp ne i8 %.1628857, 0
  br label %912

912:                                              ; preds = %.lr.ph1038, %.loopexit933
  %.05951036 = phi i64 [ 0, %.lr.ph1038 ], [ %spec.select832, %.loopexit933 ]
  %.05971035 = phi i64 [ %911, %.lr.ph1038 ], [ %924, %.loopexit933 ]
  %.06021034 = phi i64 [ 0, %.lr.ph1038 ], [ %.pre-phi, %.loopexit933 ]
  %913 = getelementptr inbounds i8, ptr %.1568, i64 %.06021034
  %914 = load i8, ptr %913, align 1, !tbaa !12
  %.not789 = icmp eq i8 %914, 0
  br i1 %.not789, label %.critedge31, label %915

915:                                              ; preds = %912
  %916 = icmp eq i8 %914, %890
  %917 = zext i1 %916 to i64
  %spec.select832 = add nuw nsw i64 %.05951036, %917
  %918 = icmp ugt i8 %914, -65
  %or.cond833 = and i1 %.not790, %918
  br i1 %or.cond833, label %.preheader932, label %..loopexit933_crit_edge

..loopexit933_crit_edge:                          ; preds = %915
  %.pre1210 = add nsw i64 %.06021034, 1
  br label %.loopexit933

.preheader932:                                    ; preds = %915, %.preheader932
  %.1603 = phi i64 [ %919, %.preheader932 ], [ %.06021034, %915 ]
  %919 = add nsw i64 %.1603, 1
  %920 = getelementptr inbounds i8, ptr %.1568, i64 %919
  %921 = load i8, ptr %920, align 1, !tbaa !12
  %922 = and i8 %921, -64
  %923 = icmp eq i8 %922, -128
  br i1 %923, label %.preheader932, label %.loopexit933, !llvm.loop !60

.loopexit933:                                     ; preds = %.preheader932, %..loopexit933_crit_edge
  %.pre-phi = phi i64 [ %.pre1210, %..loopexit933_crit_edge ], [ %919, %.preheader932 ]
  %924 = add nsw i64 %.05971035, -1
  %.not788 = icmp eq i64 %924, 0
  br i1 %.not788, label %.critedge31, label %912, !llvm.loop !61

.critedge31:                                      ; preds = %912, %.loopexit933, %907
  %.0602.lcssa = phi i64 [ 0, %907 ], [ %.pre-phi, %.loopexit933 ], [ %.06021034, %912 ]
  %.0595.lcssa = phi i64 [ 0, %907 ], [ %spec.select832, %.loopexit933 ], [ %.05951036, %912 ]
  %925 = and i1 %909, %908
  %926 = add nsw i64 %.0602.lcssa, 3
  %927 = add nsw i64 %926, %.0595.lcssa
  %928 = icmp sgt i64 %927, 70
  br i1 %928, label %929, label %932

929:                                              ; preds = %.critedge31
  %930 = call ptr @printfTempBuf(ptr noundef %0, i64 noundef %927)
  %931 = icmp eq ptr %930, null
  br i1 %931, label %.thread870, label %932

932:                                              ; preds = %.critedge31, %929
  %.6690 = phi ptr [ %930, %929 ], [ null, %.critedge31 ]
  %.27 = phi ptr [ %930, %929 ], [ %6, %.critedge31 ]
  br i1 %925, label %933, label %934

933:                                              ; preds = %932
  store i8 39, ptr %.27, align 1, !tbaa !12
  br label %934

934:                                              ; preds = %933, %932
  %.0598 = phi i64 [ 1, %933 ], [ 0, %932 ]
  %935 = icmp sgt i64 %.0602.lcssa, 0
  br i1 %935, label %.lr.ph1047.preheader, label %._crit_edge1048

.lr.ph1047.preheader:                             ; preds = %934
  %xtraiter = and i64 %.0602.lcssa, 1
  %936 = icmp eq i64 %.0602.lcssa, 1
  br i1 %936, label %._crit_edge1048.loopexit.unr-lcssa, label %.lr.ph1047.preheader.new

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

.lr.ph1047:                                       ; preds = %954, %.lr.ph1047.preheader.new
  %.15991045 = phi i64 [ %.0598, %.lr.ph1047.preheader.new ], [ %.2600.1, %954 ]
  %.36051044 = phi i64 [ 0, %.lr.ph1047.preheader.new ], [ %955, %954 ]
  %niter = phi i64 [ 0, %.lr.ph1047.preheader.new ], [ %niter.next.1, %954 ]
  %937 = getelementptr inbounds i8, ptr %.1568, i64 %.36051044
  %938 = load i8, ptr %937, align 1, !tbaa !12
  %939 = add nsw i64 %.15991045, 1
  %940 = getelementptr inbounds i8, ptr %.27, i64 %.15991045
  store i8 %938, ptr %940, align 1, !tbaa !12
  %941 = icmp eq i8 %938, %890
  br i1 %941, label %942, label %.lr.ph1047.1

942:                                              ; preds = %.lr.ph1047
  %943 = add nsw i64 %.15991045, 2
  %944 = getelementptr inbounds i8, ptr %.27, i64 %939
  store i8 %890, ptr %944, align 1, !tbaa !12
  br label %.lr.ph1047.1

.lr.ph1047.1:                                     ; preds = %.lr.ph1047, %942
  %.2600 = phi i64 [ %943, %942 ], [ %939, %.lr.ph1047 ]
  %945 = or disjoint i64 %.36051044, 1
  %946 = getelementptr inbounds i8, ptr %.1568, i64 %945
  %947 = load i8, ptr %946, align 1, !tbaa !12
  %948 = add nsw i64 %.2600, 1
  %949 = getelementptr inbounds i8, ptr %.27, i64 %.2600
  store i8 %947, ptr %949, align 1, !tbaa !12
  %950 = icmp eq i8 %947, %890
  br i1 %950, label %951, label %954

951:                                              ; preds = %.lr.ph1047.1
  %952 = add nsw i64 %.2600, 2
  %953 = getelementptr inbounds i8, ptr %.27, i64 %948
  store i8 %890, ptr %953, align 1, !tbaa !12
  br label %954

954:                                              ; preds = %951, %.lr.ph1047.1
  %.2600.1 = phi i64 [ %952, %951 ], [ %948, %.lr.ph1047.1 ]
  %955 = add nuw nsw i64 %.36051044, 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_edge1048.loopexit.unr-lcssa, label %.lr.ph1047, !llvm.loop !62

._crit_edge1048.loopexit.unr-lcssa:               ; preds = %954, %.lr.ph1047.preheader
  %.2600.lcssa.ph = phi i64 [ poison, %.lr.ph1047.preheader ], [ %.2600.1, %954 ]
  %.15991045.unr = phi i64 [ %.0598, %.lr.ph1047.preheader ], [ %.2600.1, %954 ]
  %.36051044.unr = phi i64 [ 0, %.lr.ph1047.preheader ], [ %955, %954 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge1048, label %.lr.ph1047.epil

.lr.ph1047.epil:                                  ; preds = %._crit_edge1048.loopexit.unr-lcssa
  %956 = getelementptr inbounds i8, ptr %.1568, i64 %.36051044.unr
  %957 = load i8, ptr %956, align 1, !tbaa !12
  %958 = add nsw i64 %.15991045.unr, 1
  %959 = getelementptr inbounds i8, ptr %.27, i64 %.15991045.unr
  store i8 %957, ptr %959, align 1, !tbaa !12
  %960 = icmp eq i8 %957, %890
  br i1 %960, label %961, label %._crit_edge1048

961:                                              ; preds = %.lr.ph1047.epil
  %962 = add nsw i64 %.15991045.unr, 2
  %963 = getelementptr inbounds i8, ptr %.27, i64 %958
  store i8 %890, ptr %963, align 1, !tbaa !12
  br label %._crit_edge1048

._crit_edge1048:                                  ; preds = %._crit_edge1048.loopexit.unr-lcssa, %961, %.lr.ph1047.epil, %934
  %.1599.lcssa = phi i64 [ %.0598, %934 ], [ %.2600.lcssa.ph, %._crit_edge1048.loopexit.unr-lcssa ], [ %962, %961 ], [ %958, %.lr.ph1047.epil ]
  br i1 %925, label %964, label %.thread912

964:                                              ; preds = %._crit_edge1048
  %965 = add nsw i64 %.1599.lcssa, 1
  %966 = getelementptr inbounds i8, ptr %.27, i64 %.1599.lcssa
  store i8 39, ptr %966, align 1, !tbaa !12
  br label %.thread912

.thread912:                                       ; preds = %._crit_edge1048, %964
  %.3601 = phi i64 [ %965, %964 ], [ %.1599.lcssa, %._crit_edge1048 ]
  %967 = getelementptr inbounds i8, ptr %.27, i64 %.3601
  store i8 0, ptr %967, align 1, !tbaa !12
  %968 = trunc i64 %.3601 to i32
  br label %.critedge27

969:                                              ; preds = %247
  %970 = load i8, ptr %7, align 1, !tbaa !5
  %971 = and i8 %970, 1
  %972 = icmp eq i8 %971, 0
  br i1 %972, label %.thread870, label %973

973:                                              ; preds = %969
  %.not782 = icmp eq i8 %.1622859, 0
  %974 = load i32, ptr %2, align 8
  %975 = icmp ult i32 %974, 41
  br i1 %.not782, label %996, label %976

976:                                              ; preds = %973
  br i1 %975, label %977, label %982

977:                                              ; preds = %976
  %978 = load ptr, ptr %28, align 8
  %979 = zext nneg i32 %974 to i64
  %980 = getelementptr i8, ptr %978, i64 %979
  %981 = add nuw nsw i32 %974, 8
  store i32 %981, ptr %2, align 8
  br label %985

982:                                              ; preds = %976
  %983 = load ptr, ptr %27, align 8
  %984 = getelementptr i8, ptr %983, i64 8
  store ptr %984, ptr %27, align 8
  br label %985

985:                                              ; preds = %982, %977
  %986 = phi ptr [ %980, %977 ], [ %983, %982 ]
  %987 = load ptr, ptr %986, align 8, !tbaa !11
  %.not785 = icmp eq ptr %987, null
  br i1 %.not785, label %.critedge27.thread, label %988

988:                                              ; preds = %985
  %989 = getelementptr inbounds i8, ptr %987, i64 4
  %990 = load i32, ptr %989, align 4, !tbaa !63
  %991 = and i32 %990, 2048
  %.not786 = icmp eq i32 %991, 0
  br i1 %.not786, label %992, label %.critedge27.thread

992:                                              ; preds = %988
  %993 = getelementptr inbounds i8, ptr %987, i64 8
  %994 = load ptr, ptr %993, align 8, !tbaa !12
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef %994)
  %995 = load ptr, ptr %0, align 8, !tbaa !54
  call void @sqlite3RecordErrorOffsetOfExpr(ptr noundef %995, ptr noundef nonnull %987)
  br label %.critedge27.thread

996:                                              ; preds = %973
  br i1 %975, label %997, label %1002

997:                                              ; preds = %996
  %998 = load ptr, ptr %28, align 8
  %999 = zext nneg i32 %974 to i64
  %1000 = getelementptr i8, ptr %998, i64 %999
  %1001 = add nuw nsw i32 %974, 8
  store i32 %1001, ptr %2, align 8
  br label %1005

1002:                                             ; preds = %996
  %1003 = load ptr, ptr %27, align 8
  %1004 = getelementptr i8, ptr %1003, i64 8
  store ptr %1004, ptr %27, align 8
  br label %1005

1005:                                             ; preds = %1002, %997
  %1006 = phi ptr [ %1000, %997 ], [ %1003, %1002 ]
  %1007 = load ptr, ptr %1006, align 8, !tbaa !11
  %.not783 = icmp eq ptr %1007, null
  br i1 %.not783, label %.critedge27.thread, label %1008

1008:                                             ; preds = %1005
  %1009 = getelementptr inbounds i8, ptr %1007, i64 8
  %1010 = load i32, ptr %1009, align 8, !tbaa !66
  %.not784 = icmp eq i32 %1010, 0
  br i1 %.not784, label %.critedge27.thread, label %1011

1011:                                             ; preds = %1008
  %1012 = load ptr, ptr %1007, align 8, !tbaa !68
  call void @sqlite3_str_append(ptr noundef nonnull %0, ptr noundef %1012, i32 noundef %1010)
  %1013 = load ptr, ptr %0, align 8, !tbaa !54
  %1014 = load ptr, ptr %1007, align 8, !tbaa !68
  call void @sqlite3RecordErrorByteOffset(ptr noundef %1013, ptr noundef %1014)
  br label %.critedge27.thread

1015:                                             ; preds = %247
  %1016 = load i8, ptr %7, align 1, !tbaa !5
  %1017 = and i8 %1016, 1
  %.not781 = icmp eq i8 %1017, 0
  br i1 %.not781, label %.thread870, label %1018

1018:                                             ; preds = %1015
  %1019 = load i32, ptr %2, align 8
  %1020 = icmp ult i32 %1019, 41
  br i1 %1020, label %1021, label %1026

1021:                                             ; preds = %1018
  %1022 = load ptr, ptr %28, align 8
  %1023 = zext nneg i32 %1019 to i64
  %1024 = getelementptr i8, ptr %1022, i64 %1023
  %1025 = add nuw nsw i32 %1019, 8
  store i32 %1025, ptr %2, align 8
  br label %1029

1026:                                             ; preds = %1018
  %1027 = load ptr, ptr %27, align 8
  %1028 = getelementptr i8, ptr %1027, i64 8
  store ptr %1028, ptr %27, align 8
  br label %1029

1029:                                             ; preds = %1026, %1021
  %1030 = phi ptr [ %1024, %1021 ], [ %1027, %1026 ]
  %1031 = load ptr, ptr %1030, align 8, !tbaa !11
  %1032 = getelementptr inbounds i8, ptr %1031, i64 24
  %1033 = load ptr, ptr %1032, align 8, !tbaa !69
  %1034 = icmp eq ptr %1033, null
  %1035 = icmp ne i8 %.1628857, 0
  %or.cond33 = select i1 %1034, i1 true, i1 %1035
  br i1 %or.cond33, label %1037, label %1036

1036:                                             ; preds = %1029
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef nonnull %1033)
  br label %.critedge27.thread

1037:                                             ; preds = %1029
  %1038 = getelementptr inbounds i8, ptr %1031, i64 16
  %1039 = load ptr, ptr %1038, align 8, !tbaa !72
  %.not777 = icmp eq ptr %1039, null
  br i1 %.not777, label %1046, label %1040

1040:                                             ; preds = %1037
  %1041 = getelementptr inbounds i8, ptr %1031, i64 8
  %1042 = load ptr, ptr %1041, align 8, !tbaa !73
  %.not780 = icmp eq ptr %1042, null
  br i1 %.not780, label %1044, label %1043

1043:                                             ; preds = %1040
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef nonnull %1042)
  call void @sqlite3_str_append(ptr noundef nonnull %0, ptr noundef nonnull @.str.6, i32 noundef 1)
  %.pre = load ptr, ptr %1038, align 8, !tbaa !72
  br label %1044

1044:                                             ; preds = %1043, %1040
  %1045 = phi ptr [ %.pre, %1043 ], [ %1039, %1040 ]
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef %1045)
  br label %.critedge27.thread

1046:                                             ; preds = %1037
  br i1 %1034, label %1048, label %1047

1047:                                             ; preds = %1046
  call void @sqlite3_str_appendall(ptr noundef nonnull %0, ptr noundef nonnull %1033)
  br label %.critedge27.thread

1048:                                             ; preds = %1046
  %1049 = getelementptr inbounds i8, ptr %1031, i64 40
  %1050 = load ptr, ptr %1049, align 8, !tbaa !74
  %1051 = getelementptr inbounds i8, ptr %1050, i64 4
  %1052 = load i32, ptr %1051, align 4, !tbaa !75
  %1053 = and i32 %1052, 2048
  %.not779 = icmp eq i32 %1053, 0
  %1054 = getelementptr inbounds i8, ptr %1050, i64 16
  %1055 = load i32, ptr %1054, align 8, !tbaa !77
  br i1 %.not779, label %1057, label %1056

1056:                                             ; preds = %1048
  call void (ptr, ptr, ...) @sqlite3_str_appendf(ptr noundef nonnull %0, ptr noundef nonnull @.str.7, i32 noundef %1055)
  br label %.critedge27.thread

1057:                                             ; preds = %1048
  call void (ptr, ptr, ...) @sqlite3_str_appendf(ptr noundef nonnull %0, ptr noundef nonnull @.str.8, i32 noundef %1055)
  br label %.critedge27.thread

.critedge27.thread.loopexit1211.split.loop.exit1253: ; preds = %.lr.ph1056
  %1058 = trunc nuw nsw i64 %indvars.iv to i32
  br label %.critedge27.thread

.critedge27.thread:                               ; preds = %856, %.lr.ph1067, %middle.block1317, %.critedge27.thread.loopexit1211.split.loop.exit1253, %.lr.ph1108.preheader, %.preheader948, %._crit_edge1103, %1056, %1057, %1044, %1047, %1036, %543, %992, %988, %985, %1011, %1008, %1005, %678, %691, %507, %.critedge27, %636, %830, %694, %.loopexit935
  %.8692 = phi ptr [ %.5689, %.critedge27 ], [ null, %830 ], [ null, %694 ], [ null, %543 ], [ %.3687.ph, %636 ], [ %.1685, %.loopexit935 ], [ null, %507 ], [ null, %691 ], [ null, %678 ], [ null, %1005 ], [ null, %1008 ], [ null, %1011 ], [ null, %985 ], [ null, %988 ], [ null, %992 ], [ null, %1036 ], [ null, %1047 ], [ null, %1044 ], [ null, %1057 ], [ null, %1056 ], [ %.3687.ph, %._crit_edge1103 ], [ %.4688, %.preheader948 ], [ %.3687.ph, %.lr.ph1108.preheader ], [ %.4688, %.critedge27.thread.loopexit1211.split.loop.exit1253 ], [ %.5689, %middle.block1317 ], [ %.5689, %.lr.ph1067 ], [ %.4688, %856 ]
  %.10594 = phi i32 [ %.6590, %.critedge27 ], [ 0, %830 ], [ %.3587865, %694 ], [ %.3587865, %543 ], [ %.3587865, %636 ], [ %.3587865, %.loopexit935 ], [ %.3587865, %507 ], [ 0, %691 ], [ 0, %678 ], [ 0, %1005 ], [ 0, %1008 ], [ 0, %1011 ], [ 0, %985 ], [ 0, %988 ], [ 0, %992 ], [ 0, %1036 ], [ 0, %1047 ], [ 0, %1044 ], [ 0, %1057 ], [ 0, %1056 ], [ %.3587865, %._crit_edge1103 ], [ %.3587865, %.preheader948 ], [ %.3587865, %.lr.ph1108.preheader ], [ %.3587865, %.critedge27.thread.loopexit1211.split.loop.exit1253 ], [ %881, %middle.block1317 ], [ %spec.select831, %.lr.ph1067 ], [ %.3587865, %856 ]
  %.10579 = phi i32 [ %.7576, %.critedge27 ], [ 0, %830 ], [ 1, %694 ], [ %547, %543 ], [ %640, %636 ], [ %457, %.loopexit935 ], [ 3, %507 ], [ 0, %691 ], [ 0, %678 ], [ 0, %1005 ], [ 0, %1008 ], [ 0, %1011 ], [ 0, %985 ], [ 0, %988 ], [ 0, %992 ], [ 0, %1036 ], [ 0, %1047 ], [ 0, %1044 ], [ 0, %1057 ], [ 0, %1056 ], [ %.3587865, %._crit_edge1103 ], [ 0, %.preheader948 ], [ %.3587865, %.lr.ph1108.preheader ], [ %1058, %.critedge27.thread.loopexit1211.split.loop.exit1253 ], [ %.7576, %middle.block1317 ], [ %.7576, %.lr.ph1067 ], [ %.4558867, %856 ]
  %.29 = phi ptr [ %.26, %.critedge27 ], [ %813, %830 ], [ %6, %694 ], [ %6, %543 ], [ %.11.ph, %636 ], [ %.8551, %.loopexit935 ], [ @.str.1, %507 ], [ %.1544, %691 ], [ %.1544, %678 ], [ %.1544, %1005 ], [ %.1544, %1008 ], [ %.1544, %1011 ], [ %.1544, %985 ], [ %.1544, %988 ], [ %.1544, %992 ], [ %.1544, %1036 ], [ %.1544, %1047 ], [ %.1544, %1044 ], [ %.1544, %1057 ], [ %.1544, %1056 ], [ %.11.ph, %._crit_edge1103 ], [ %.25, %.preheader948 ], [ %.11.ph, %.lr.ph1108.preheader ], [ %.25, %.critedge27.thread.loopexit1211.split.loop.exit1253 ], [ %.26, %middle.block1317 ], [ %.26, %.lr.ph1067 ], [ %.25, %856 ]
  %1059 = sub nsw i32 %.10594, %.10579
  %1060 = icmp sgt i32 %1059, 0
  br i1 %1060, label %1061, label %1063

1061:                                             ; preds = %.critedge27.thread
  %.not823 = icmp eq i8 %.2612863, 0
  br i1 %.not823, label %1062, label %.critedge835

1062:                                             ; preds = %1061
  call void @sqlite3_str_appendchar(ptr noundef %0, i32 noundef %1059, i8 noundef signext 32)
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.29, i32 noundef %.10579)
  br label %1064

.critedge835:                                     ; preds = %1061
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.29, i32 noundef %.10579)
  call void @sqlite3_str_appendchar(ptr noundef %0, i32 noundef %1059, i8 noundef signext 32)
  br label %1064

1063:                                             ; preds = %.critedge27.thread
  call void @sqlite3_str_append(ptr noundef %0, ptr noundef %.29, i32 noundef %.10579)
  br label %1064

1064:                                             ; preds = %1062, %.critedge835, %1063
  %.not824 = icmp eq ptr %.8692, null
  br i1 %.not824, label %1067, label %1065

1065:                                             ; preds = %1064
  %1066 = load ptr, ptr %0, align 8, !tbaa !54
  call void @sqlite3DbFree(ptr noundef %1066, ptr noundef nonnull %.8692)
  br label %1067

1067:                                             ; preds = %1064, %1065
  %1068 = getelementptr inbounds i8, ptr %.10, i64 1
  br label %85, !llvm.loop !78

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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