; LLVM IR from nbosb/simdal :: deps/sqlite/src (shell)

; 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.ShellState = type { ptr, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, ptr, ptr, [30 x i8], [20 x i8], [20 x i8], [20 x i8], [20 x i8], ptr, ptr, i32, [20 x i8], [4096 x i8], ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, %struct.EQPGraph, %struct.ExpertInfo }
%struct.EQPGraph = type { ptr, ptr, [100 x i8] }
%struct.ExpertInfo = type { ptr, i32 }

@.str.27 = external hidden unnamed_addr constant [9 x i8], align 1
@stderr = external global ptr, align 8
@stdin_is_interactive = external hidden global i32, align 4
@stdout_is_console = external hidden global i32, align 4
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [62 x i8], align 1
@stdin = external global ptr, align 8
@.str.40 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [70 x i8], align 1
@__PRETTY_FUNCTION__.main = external hidden unnamed_addr constant [23 x i8], align 1
@Argv0 = external hidden global ptr, align 8
@.str.44 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [6 x i8], align 1
@bail_on_error = external hidden global i32, align 4
@.str.62 = external hidden unnamed_addr constant [19 x i8], align 1
@stdout = external global ptr, align 8
@.str.63 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [19 x i8], align 1

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

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

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

declare ptr @sqlite3_vfs_find(ptr noundef) #2

declare i32 @sqlite3_vfs_register(ptr noundef, i32 noundef) #2

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

declare i32 @sqlite3_config(i32 noundef, ...) #2

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

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

declare void @sqlite3_free(ptr noundef) #2

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

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #5

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #1 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %struct.ShellState, align 8
  %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 i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i64, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4592, ptr %7) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #10
  store ptr null, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  store i32 0, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  store i32 0, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 1, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  store i32 0, ptr %13, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #10
  store ptr null, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  store ptr null, ptr %15, align 8, !tbaa !9
  %28 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29 = call i32 @setvbuf(ptr noundef %28, ptr noundef null, i32 noundef 2, i64 noundef 0) #10
  %30 = call i32 @isatty(i32 noundef 0) #10
  store i32 %30, ptr @stdin_is_interactive, align 4, !tbaa !5
  %31 = call i32 @isatty(i32 noundef 1) #10
  store i32 %31, ptr @stdout_is_console, align 4, !tbaa !5
  %32 = call ptr @getenv(ptr noundef @.str.38) #10
  %33 = icmp ne ptr %32, null
  br i1 %33, label %34, label %49

34:                                               ; preds = %2
  %35 = call i32 @isatty(i32 noundef 0) #10
  %36 = icmp ne i32 %35, 0
  br i1 %36, label %37, label %46

37:                                               ; preds = %34
  %38 = call i32 @isatty(i32 noundef 2) #10
  %39 = icmp ne i32 %38, 0
  br i1 %39, label %40, label %46

40:                                               ; preds = %37
  %41 = load ptr, ptr @stderr, align 8, !tbaa !9
  %42 = call i32 @getpid() #10
  %43 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %41, ptr noundef @.str.39, i32 noundef %42) #10
  %44 = load ptr, ptr @stdin, align 8, !tbaa !9
  %45 = call i32 @fgetc(ptr noundef %44)
  br label %48

46:                                               ; preds = %37, %34
  %47 = call i32 @raise(i32 noundef 5) #10
  br label %48

48:                                               ; preds = %46, %40
  br label %49

49:                                               ; preds = %48, %2
  %50 = call ptr @sqlite3_sourceid()
  %51 = call i32 @strncmp(ptr noundef %50, ptr noundef @.str.40, i64 noundef 60) #11
  %52 = icmp ne i32 %51, 0
  br i1 %52, label %53, label %57

53:                                               ; preds = %49
  %54 = load ptr, ptr @stderr, align 8, !tbaa !9
  %55 = call ptr @sqlite3_sourceid()
  %56 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %54, ptr noundef @.str.41, ptr noundef %55, ptr noundef @.str.40) #10
  call void @exit(i32 noundef 1) #12
  unreachable

57:                                               ; preds = %49
  call void @main_init(ptr noundef %7)
  %58 = load i32, ptr %4, align 4, !tbaa !5
  %59 = icmp sge i32 %58, 1
  br i1 %59, label %60, label %69

60:                                               ; preds = %57
  %61 = load ptr, ptr %5, align 8, !tbaa !9
  %62 = icmp ne ptr %61, null
  br i1 %62, label %63, label %69

63:                                               ; preds = %60
  %64 = load ptr, ptr %5, align 8, !tbaa !9
  %65 = getelementptr inbounds ptr, ptr %64, i64 0
  %66 = load ptr, ptr %65, align 8, !tbaa !9
  %67 = icmp ne ptr %66, null
  br i1 %67, label %68, label %69

68:                                               ; preds = %63
  br label %70

69:                                               ; preds = %63, %60, %57
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.43, i32 noundef 21918, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

70:                                               ; preds = %68
  %71 = load ptr, ptr %5, align 8, !tbaa !9
  %72 = getelementptr inbounds ptr, ptr %71, i64 0
  %73 = load ptr, ptr %72, align 8, !tbaa !9
  store ptr %73, ptr @Argv0, align 8, !tbaa !9
  %74 = call ptr @signal(i32 noundef 2, ptr noundef @interrupt_handler) #10
  call void @verify_uninitialized()
  store i32 1, ptr %9, align 4, !tbaa !5
  br label %75

75:                                               ; preds = %362, %70
  %76 = load i32, ptr %9, align 4, !tbaa !5
  %77 = load i32, ptr %4, align 4, !tbaa !5
  %78 = icmp slt i32 %76, %77
  br i1 %78, label %79, label %365

79:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %80 = load ptr, ptr %5, align 8, !tbaa !9
  %81 = load i32, ptr %9, align 4, !tbaa !5
  %82 = sext i32 %81 to i64
  %83 = getelementptr inbounds ptr, ptr %80, i64 %82
  %84 = load ptr, ptr %83, align 8, !tbaa !9
  store ptr %84, ptr %16, align 8, !tbaa !9
  %85 = load ptr, ptr %16, align 8, !tbaa !9
  %86 = getelementptr inbounds i8, ptr %85, i64 0
  %87 = load i8, ptr %86, align 1, !tbaa !11
  %88 = sext i8 %87 to i32
  %89 = icmp ne i32 %88, 45
  br i1 %89, label %90, label %116

90:                                               ; preds = %79
  %91 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 45
  %92 = load ptr, ptr %91, align 8, !tbaa !12
  %93 = icmp eq ptr %92, null
  br i1 %93, label %94, label %97

94:                                               ; preds = %90
  %95 = load ptr, ptr %16, align 8, !tbaa !9
  %96 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 45
  store ptr %95, ptr %96, align 8, !tbaa !12
  br label %115

97:                                               ; preds = %90
  store i32 0, ptr %12, align 4, !tbaa !5
  %98 = load i32, ptr %13, align 4, !tbaa !5
  %99 = add nsw i32 %98, 1
  store i32 %99, ptr %13, align 4, !tbaa !5
  %100 = load ptr, ptr %14, align 8, !tbaa !9
  %101 = load i32, ptr %13, align 4, !tbaa !5
  %102 = sext i32 %101 to i64
  %103 = mul i64 8, %102
  %104 = call ptr @realloc(ptr noundef %100, i64 noundef %103) #13
  store ptr %104, ptr %14, align 8, !tbaa !9
  %105 = load ptr, ptr %14, align 8, !tbaa !9
  %106 = icmp eq ptr %105, null
  br i1 %106, label %107, label %108

107:                                              ; preds = %97
  call void @shell_out_of_memory()
  br label %108

108:                                              ; preds = %107, %97
  %109 = load ptr, ptr %16, align 8, !tbaa !9
  %110 = load ptr, ptr %14, align 8, !tbaa !9
  %111 = load i32, ptr %13, align 4, !tbaa !5
  %112 = sub nsw i32 %111, 1
  %113 = sext i32 %112 to i64
  %114 = getelementptr inbounds ptr, ptr %110, i64 %113
  store ptr %109, ptr %114, align 8, !tbaa !9
  br label %115

115:                                              ; preds = %108, %94
  br label %116

116:                                              ; preds = %115, %79
  %117 = load ptr, ptr %16, align 8, !tbaa !9
  %118 = getelementptr inbounds i8, ptr %117, i64 1
  %119 = load i8, ptr %118, align 1, !tbaa !11
  %120 = sext i8 %119 to i32
  %121 = icmp eq i32 %120, 45
  br i1 %121, label %122, label %125

122:                                              ; preds = %116
  %123 = load ptr, ptr %16, align 8, !tbaa !9
  %124 = getelementptr inbounds i8, ptr %123, i32 1
  store ptr %124, ptr %16, align 8, !tbaa !9
  br label %125

125:                                              ; preds = %122, %116
  %126 = load ptr, ptr %16, align 8, !tbaa !9
  %127 = call i32 @strcmp(ptr noundef %126, ptr noundef @.str.44) #11
  %128 = icmp eq i32 %127, 0
  br i1 %128, label %141, label %129

129:                                              ; preds = %125
  %130 = load ptr, ptr %16, align 8, !tbaa !9
  %131 = call i32 @strcmp(ptr noundef %130, ptr noundef @.str.45) #11
  %132 = icmp eq i32 %131, 0
  br i1 %132, label %141, label %133

133:                                              ; preds = %129
  %134 = load ptr, ptr %16, align 8, !tbaa !9
  %135 = call i32 @strcmp(ptr noundef %134, ptr noundef @.str.46) #11
  %136 = icmp eq i32 %135, 0
  br i1 %136, label %141, label %137

137:                                              ; preds = %133
  %138 = load ptr, ptr %16, align 8, !tbaa !9
  %139 = call i32 @strcmp(ptr noundef %138, ptr noundef @.str.47) #11
  %140 = icmp eq i32 %139, 0
  br i1 %140, label %141, label %147

141:                                              ; preds = %137, %133, %129, %125
  %142 = load i32, ptr %4, align 4, !tbaa !5
  %143 = load ptr, ptr %5, align 8, !tbaa !9
  %144 = load i32, ptr %9, align 4, !tbaa !5
  %145 = add nsw i32 %144, 1
  store i32 %145, ptr %9, align 4, !tbaa !5
  %146 = call ptr @cmdline_option_value(i32 noundef %142, ptr noundef %143, i32 noundef %145)
  br label %361

147:                                              ; preds = %137
  %148 = load ptr, ptr %16, align 8, !tbaa !9
  %149 = call i32 @strcmp(ptr noundef %148, ptr noundef @.str.48) #11
  %150 = icmp eq i32 %149, 0
  br i1 %150, label %151, label %157

151:                                              ; preds = %147
  %152 = load i32, ptr %4, align 4, !tbaa !5
  %153 = load ptr, ptr %5, align 8, !tbaa !9
  %154 = load i32, ptr %9, align 4, !tbaa !5
  %155 = add nsw i32 %154, 1
  store i32 %155, ptr %9, align 4, !tbaa !5
  %156 = call ptr @cmdline_option_value(i32 noundef %152, ptr noundef %153, i32 noundef %155)
  store ptr %156, ptr %8, align 8, !tbaa !9
  br label %360

157:                                              ; preds = %147
  %158 = load ptr, ptr %16, align 8, !tbaa !9
  %159 = call i32 @strcmp(ptr noundef %158, ptr noundef @.str.49) #11
  %160 = icmp eq i32 %159, 0
  br i1 %160, label %161, label %162

161:                                              ; preds = %157
  store i32 0, ptr @stdin_is_interactive, align 4, !tbaa !5
  br label %359

162:                                              ; preds = %157
  %163 = load ptr, ptr %16, align 8, !tbaa !9
  %164 = call i32 @strcmp(ptr noundef %163, ptr noundef @.str.50) #11
  %165 = icmp eq i32 %164, 0
  br i1 %165, label %166, label %172

166:                                              ; preds = %162
  %167 = load i32, ptr %4, align 4, !tbaa !5
  %168 = load ptr, ptr %5, align 8, !tbaa !9
  %169 = load i32, ptr %9, align 4, !tbaa !5
  %170 = add nsw i32 %169, 1
  store i32 %170, ptr %9, align 4, !tbaa !5
  %171 = call ptr @cmdline_option_value(i32 noundef %167, ptr noundef %168, i32 noundef %170)
  br label %358

172:                                              ; preds = %162
  %173 = load ptr, ptr %16, align 8, !tbaa !9
  %174 = call i32 @strcmp(ptr noundef %173, ptr noundef @.str.51) #11
  %175 = icmp eq i32 %174, 0
  br i1 %175, label %176, label %230

176:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  %177 = load i32, ptr %4, align 4, !tbaa !5
  %178 = load ptr, ptr %5, align 8, !tbaa !9
  %179 = load i32, ptr %9, align 4, !tbaa !5
  %180 = add nsw i32 %179, 1
  store i32 %180, ptr %9, align 4, !tbaa !5
  %181 = call ptr @cmdline_option_value(i32 noundef %177, ptr noundef %178, i32 noundef %180)
  %182 = call i64 @integerValue(ptr noundef %181)
  store i64 %182, ptr %18, align 8, !tbaa !17
  %183 = load i64, ptr %18, align 8, !tbaa !17
  %184 = icmp sgt i64 %183, 70000
  br i1 %184, label %185, label %186

185:                                              ; preds = %176
  store i64 70000, ptr %18, align 8, !tbaa !17
  br label %186

186:                                              ; preds = %185, %176
  %187 = load i64, ptr %18, align 8, !tbaa !17
  %188 = icmp slt i64 %187, 0
  br i1 %188, label %189, label %190

189:                                              ; preds = %186
  store i64 0, ptr %18, align 8, !tbaa !17
  br label %190

190:                                              ; preds = %189, %186
  %191 = load i32, ptr %4, align 4, !tbaa !5
  %192 = load ptr, ptr %5, align 8, !tbaa !9
  %193 = load i32, ptr %9, align 4, !tbaa !5
  %194 = add nsw i32 %193, 1
  store i32 %194, ptr %9, align 4, !tbaa !5
  %195 = call ptr @cmdline_option_value(i32 noundef %191, ptr noundef %192, i32 noundef %194)
  %196 = call i64 @integerValue(ptr noundef %195)
  store i64 %196, ptr %17, align 8, !tbaa !17
  %197 = load i64, ptr %18, align 8, !tbaa !17
  %198 = icmp sgt i64 %197, 0
  br i1 %198, label %199, label %210

199:                                              ; preds = %190
  %200 = load i64, ptr %17, align 8, !tbaa !17
  %201 = icmp sgt i64 %200, 0
  br i1 %201, label %202, label %210

202:                                              ; preds = %199
  %203 = load i64, ptr %18, align 8, !tbaa !17
  %204 = sdiv i64 281474976710655, %203
  %205 = load i64, ptr %17, align 8, !tbaa !17
  %206 = icmp slt i64 %204, %205
  br i1 %206, label %207, label %210

207:                                              ; preds = %202
  %208 = load i64, ptr %18, align 8, !tbaa !17
  %209 = sdiv i64 281474976710655, %208
  store i64 %209, ptr %17, align 8, !tbaa !17
  br label %210

210:                                              ; preds = %207, %202, %199, %190
  %211 = load i64, ptr %17, align 8, !tbaa !17
  %212 = icmp sgt i64 %211, 0
  br i1 %212, label %213, label %221

213:                                              ; preds = %210
  %214 = load i64, ptr %18, align 8, !tbaa !17
  %215 = icmp sgt i64 %214, 0
  br i1 %215, label %216, label %221

216:                                              ; preds = %213
  %217 = load i64, ptr %17, align 8, !tbaa !17
  %218 = load i64, ptr %18, align 8, !tbaa !17
  %219 = mul nsw i64 %217, %218
  %220 = call noalias ptr @malloc(i64 noundef %219) #14
  br label %222

221:                                              ; preds = %213, %210
  br label %222

222:                                              ; preds = %221, %216
  %223 = phi ptr [ %220, %216 ], [ null, %221 ]
  %224 = load i64, ptr %18, align 8, !tbaa !17
  %225 = load i64, ptr %17, align 8, !tbaa !17
  %226 = call i32 (i32, ...) @sqlite3_config(i32 noundef 7, ptr noundef %223, i64 noundef %224, i64 noundef %225)
  %227 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 30
  %228 = load i32, ptr %227, align 4, !tbaa !18
  %229 = or i32 %228, 1
  store i32 %229, ptr %227, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  br label %357

230:                                              ; preds = %172
  %231 = load ptr, ptr %16, align 8, !tbaa !9
  %232 = call i32 @strcmp(ptr noundef %231, ptr noundef @.str.52) #11
  %233 = icmp eq i32 %232, 0
  br i1 %233, label %234, label %269

234:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %235 = load i32, ptr %4, align 4, !tbaa !5
  %236 = load ptr, ptr %5, align 8, !tbaa !9
  %237 = load i32, ptr %9, align 4, !tbaa !5
  %238 = add nsw i32 %237, 1
  store i32 %238, ptr %9, align 4, !tbaa !5
  %239 = call ptr @cmdline_option_value(i32 noundef %235, ptr noundef %236, i32 noundef %238)
  %240 = call i64 @integerValue(ptr noundef %239)
  %241 = trunc i64 %240 to i32
  store i32 %241, ptr %20, align 4, !tbaa !5
  %242 = load i32, ptr %20, align 4, !tbaa !5
  %243 = icmp slt i32 %242, 0
  br i1 %243, label %244, label %245

244:                                              ; preds = %234
  store i32 0, ptr %20, align 4, !tbaa !5
  br label %245

245:                                              ; preds = %244, %234
  %246 = load i32, ptr %4, align 4, !tbaa !5
  %247 = load ptr, ptr %5, align 8, !tbaa !9
  %248 = load i32, ptr %9, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  store i32 %249, ptr %9, align 4, !tbaa !5
  %250 = call ptr @cmdline_option_value(i32 noundef %246, ptr noundef %247, i32 noundef %249)
  %251 = call i64 @integerValue(ptr noundef %250)
  %252 = trunc i64 %251 to i32
  store i32 %252, ptr %19, align 4, !tbaa !5
  %253 = load i32, ptr %19, align 4, !tbaa !5
  %254 = icmp slt i32 %253, 0
  br i1 %254, label %255, label %256

255:                                              ; preds = %245
  store i32 0, ptr %19, align 4, !tbaa !5
  br label %256

256:                                              ; preds = %255, %245
  %257 = load i32, ptr %20, align 4, !tbaa !5
  %258 = load i32, ptr %19, align 4, !tbaa !5
  %259 = call i32 (i32, ...) @sqlite3_config(i32 noundef 13, i32 noundef %257, i32 noundef %258)
  %260 = load i32, ptr %20, align 4, !tbaa !5
  %261 = load i32, ptr %19, align 4, !tbaa !5
  %262 = mul nsw i32 %260, %261
  %263 = icmp eq i32 %262, 0
  br i1 %263, label %264, label %268

264:                                              ; preds = %256
  %265 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 30
  %266 = load i32, ptr %265, align 4, !tbaa !18
  %267 = and i32 %266, -3
  store i32 %267, ptr %265, align 4, !tbaa !18
  br label %268

268:                                              ; preds = %264, %256
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %356

269:                                              ; preds = %230
  %270 = load ptr, ptr %16, align 8, !tbaa !9
  %271 = call i32 @strcmp(ptr noundef %270, ptr noundef @.str.53) #11
  %272 = icmp eq i32 %271, 0
  br i1 %272, label %273, label %283

273:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %274 = load i32, ptr %4, align 4, !tbaa !5
  %275 = load ptr, ptr %5, align 8, !tbaa !9
  %276 = load i32, ptr %9, align 4, !tbaa !5
  %277 = add nsw i32 %276, 1
  store i32 %277, ptr %9, align 4, !tbaa !5
  %278 = call ptr @cmdline_option_value(i32 noundef %274, ptr noundef %275, i32 noundef %277)
  %279 = call i64 @integerValue(ptr noundef %278)
  store i64 %279, ptr %21, align 8, !tbaa !17
  %280 = load i64, ptr %21, align 8, !tbaa !17
  %281 = load i64, ptr %21, align 8, !tbaa !17
  %282 = call i32 (i32, ...) @sqlite3_config(i32 noundef 22, i64 noundef %280, i64 noundef %281)
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %355

283:                                              ; preds = %269
  %284 = load ptr, ptr %16, align 8, !tbaa !9
  %285 = call i32 @strcmp(ptr noundef %284, ptr noundef @.str.54) #11
  %286 = icmp eq i32 %285, 0
  br i1 %286, label %287, label %293

287:                                              ; preds = %283
  %288 = load i32, ptr %4, align 4, !tbaa !5
  %289 = load ptr, ptr %5, align 8, !tbaa !9
  %290 = load i32, ptr %9, align 4, !tbaa !5
  %291 = add nsw i32 %290, 1
  store i32 %291, ptr %9, align 4, !tbaa !5
  %292 = call ptr @cmdline_option_value(i32 noundef %288, ptr noundef %289, i32 noundef %291)
  store ptr %292, ptr %15, align 8, !tbaa !9
  br label %354

293:                                              ; preds = %283
  %294 = load ptr, ptr %16, align 8, !tbaa !9
  %295 = call i32 @strcmp(ptr noundef %294, ptr noundef @.str.55) #11
  %296 = icmp eq i32 %295, 0
  br i1 %296, label %297, label %299

297:                                              ; preds = %293
  %298 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 2, ptr %298, align 1, !tbaa !19
  br label %353

299:                                              ; preds = %293
  %300 = load ptr, ptr %16, align 8, !tbaa !9
  %301 = call i32 @strcmp(ptr noundef %300, ptr noundef @.str.56) #11
  %302 = icmp eq i32 %301, 0
  br i1 %302, label %303, label %305

303:                                              ; preds = %299
  %304 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 5, ptr %304, align 1, !tbaa !19
  br label %352

305:                                              ; preds = %299
  %306 = load ptr, ptr %16, align 8, !tbaa !9
  %307 = call i32 @strcmp(ptr noundef %306, ptr noundef @.str.57) #11
  %308 = icmp eq i32 %307, 0
  br i1 %308, label %309, label %323

309:                                              ; preds = %305
  %310 = load i32, ptr %9, align 4, !tbaa !5
  %311 = add nsw i32 %310, 1
  %312 = load i32, ptr %4, align 4, !tbaa !5
  %313 = icmp slt i32 %311, %312
  br i1 %313, label %314, label %323

314:                                              ; preds = %309
  %315 = load ptr, ptr %5, align 8, !tbaa !9
  %316 = load i32, ptr %9, align 4, !tbaa !5
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr %9, align 4, !tbaa !5
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds ptr, ptr %315, i64 %318
  %320 = load ptr, ptr %319, align 8, !tbaa !9
  %321 = call i64 @integerValue(ptr noundef %320)
  %322 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 32
  store i64 %321, ptr %322, align 8, !tbaa !20
  br label %351

323:                                              ; preds = %309, %305
  %324 = load ptr, ptr %16, align 8, !tbaa !9
  %325 = call i32 @strcmp(ptr noundef %324, ptr noundef @.str.58) #11
  %326 = icmp eq i32 %325, 0
  br i1 %326, label %327, label %329

327:                                              ; preds = %323
  %328 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 4, ptr %328, align 1, !tbaa !19
  br label %350

329:                                              ; preds = %323
  %330 = load ptr, ptr %16, align 8, !tbaa !9
  %331 = call i32 @strcmp(ptr noundef %330, ptr noundef @.str.59) #11
  %332 = icmp eq i32 %331, 0
  br i1 %332, label %333, label %335

333:                                              ; preds = %329
  %334 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 15
  store i32 16777216, ptr %334, align 8, !tbaa !21
  br label %349

335:                                              ; preds = %329
  %336 = load ptr, ptr %16, align 8, !tbaa !9
  %337 = call i32 @strcmp(ptr noundef %336, ptr noundef @.str.60) #11
  %338 = icmp eq i32 %337, 0
  br i1 %338, label %339, label %342

339:                                              ; preds = %335
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = call i32 @sqlite3MemTraceActivate(ptr noundef %340)
  br label %348

342:                                              ; preds = %335
  %343 = load ptr, ptr %16, align 8, !tbaa !9
  %344 = call i32 @strcmp(ptr noundef %343, ptr noundef @.str.61) #11
  %345 = icmp eq i32 %344, 0
  br i1 %345, label %346, label %347

346:                                              ; preds = %342
  store i32 1, ptr @bail_on_error, align 4, !tbaa !5
  br label %347

347:                                              ; preds = %346, %342
  br label %348

348:                                              ; preds = %347, %339
  br label %349

349:                                              ; preds = %348, %333
  br label %350

350:                                              ; preds = %349, %327
  br label %351

351:                                              ; preds = %350, %314
  br label %352

352:                                              ; preds = %351, %303
  br label %353

353:                                              ; preds = %352, %297
  br label %354

354:                                              ; preds = %353, %287
  br label %355

355:                                              ; preds = %354, %273
  br label %356

356:                                              ; preds = %355, %268
  br label %357

357:                                              ; preds = %356, %222
  br label %358

358:                                              ; preds = %357, %166
  br label %359

359:                                              ; preds = %358, %161
  br label %360

360:                                              ; preds = %359, %151
  br label %361

361:                                              ; preds = %360, %141
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  br label %362

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

365:                                              ; preds = %75
  call void @verify_uninitialized()
  %366 = call i32 @sqlite3_initialize()
  %367 = load ptr, ptr %15, align 8, !tbaa !9
  %368 = icmp ne ptr %367, null
  br i1 %368, label %369, label %386

369:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  %370 = load ptr, ptr %15, align 8, !tbaa !9
  %371 = call ptr @sqlite3_vfs_find(ptr noundef %370)
  store ptr %371, ptr %22, align 8, !tbaa !9
  %372 = load ptr, ptr %22, align 8, !tbaa !9
  %373 = icmp ne ptr %372, null
  br i1 %373, label %374, label %377

374:                                              ; preds = %369
  %375 = load ptr, ptr %22, align 8, !tbaa !9
  %376 = call i32 @sqlite3_vfs_register(ptr noundef %375, i32 noundef 1)
  br label %385

377:                                              ; preds = %369
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = load ptr, ptr %5, align 8, !tbaa !9
  %380 = load i32, ptr %9, align 4, !tbaa !5
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds ptr, ptr %379, i64 %381
  %383 = load ptr, ptr %382, align 8, !tbaa !9
  %384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %378, ptr noundef @.str.62, ptr noundef %383) #10
  call void @exit(i32 noundef 1) #12
  unreachable

385:                                              ; preds = %374
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  br label %386

386:                                              ; preds = %385, %365
  %387 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 45
  %388 = load ptr, ptr %387, align 8, !tbaa !12
  %389 = icmp eq ptr %388, null
  br i1 %389, label %390, label %395

390:                                              ; preds = %386
  %391 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 45
  store ptr @.str.27, ptr %391, align 8, !tbaa !12
  %392 = load i32, ptr %4, align 4, !tbaa !5
  %393 = icmp eq i32 %392, 1
  %394 = zext i1 %393 to i32
  store i32 %394, ptr %11, align 4, !tbaa !5
  br label %395

395:                                              ; preds = %390, %386
  %396 = load ptr, ptr @stdout, align 8, !tbaa !9
  %397 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 17
  store ptr %396, ptr %397, align 8, !tbaa !24
  %398 = call i32 @sqlite3_appendvfs_init(ptr noundef null, ptr noundef null, ptr noundef null)
  %399 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 45
  %400 = load ptr, ptr %399, align 8, !tbaa !12
  %401 = call i32 @access(ptr noundef %400, i32 noundef 0) #10
  %402 = icmp eq i32 %401, 0
  br i1 %402, label %403, label %404

403:                                              ; preds = %395
  call void @open_db(ptr noundef %7, i32 noundef 0)
  br label %404

404:                                              ; preds = %403, %395
  %405 = load ptr, ptr %8, align 8, !tbaa !9
  call void @process_sqliterc(ptr noundef %7, ptr noundef %405)
  store i32 1, ptr %9, align 4, !tbaa !5
  br label %406

406:                                              ; preds = %862, %404
  %407 = load i32, ptr %9, align 4, !tbaa !5
  %408 = load i32, ptr %4, align 4, !tbaa !5
  %409 = icmp slt i32 %407, %408
  br i1 %409, label %410, label %865

410:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %411 = load ptr, ptr %5, align 8, !tbaa !9
  %412 = load i32, ptr %9, align 4, !tbaa !5
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds ptr, ptr %411, i64 %413
  %415 = load ptr, ptr %414, align 8, !tbaa !9
  store ptr %415, ptr %23, align 8, !tbaa !9
  %416 = load ptr, ptr %23, align 8, !tbaa !9
  %417 = getelementptr inbounds i8, ptr %416, i64 0
  %418 = load i8, ptr %417, align 1, !tbaa !11
  %419 = sext i8 %418 to i32
  %420 = icmp ne i32 %419, 45
  br i1 %420, label %421, label %422

421:                                              ; preds = %410
  store i32 7, ptr %24, align 4
  br label %859

422:                                              ; preds = %410
  %423 = load ptr, ptr %23, align 8, !tbaa !9
  %424 = getelementptr inbounds i8, ptr %423, i64 1
  %425 = load i8, ptr %424, align 1, !tbaa !11
  %426 = sext i8 %425 to i32
  %427 = icmp eq i32 %426, 45
  br i1 %427, label %428, label %431

428:                                              ; preds = %422
  %429 = load ptr, ptr %23, align 8, !tbaa !9
  %430 = getelementptr inbounds i8, ptr %429, i32 1
  store ptr %430, ptr %23, align 8, !tbaa !9
  br label %431

431:                                              ; preds = %428, %422
  %432 = load ptr, ptr %23, align 8, !tbaa !9
  %433 = call i32 @strcmp(ptr noundef %432, ptr noundef @.str.48) #11
  %434 = icmp eq i32 %433, 0
  br i1 %434, label %435, label %438

435:                                              ; preds = %431
  %436 = load i32, ptr %9, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr %9, align 4, !tbaa !5
  br label %855

438:                                              ; preds = %431
  %439 = load ptr, ptr %23, align 8, !tbaa !9
  %440 = call i32 @strcmp(ptr noundef %439, ptr noundef @.str.63) #11
  %441 = icmp eq i32 %440, 0
  br i1 %441, label %442, label %444

442:                                              ; preds = %438
  %443 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 4, ptr %443, align 4, !tbaa !25
  br label %854

444:                                              ; preds = %438
  %445 = load ptr, ptr %23, align 8, !tbaa !9
  %446 = call i32 @strcmp(ptr noundef %445, ptr noundef @.str.64) #11
  %447 = icmp eq i32 %446, 0
  br i1 %447, label %448, label %450

448:                                              ; preds = %444
  %449 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 2, ptr %449, align 4, !tbaa !25
  br label %853

450:                                              ; preds = %444
  %451 = load ptr, ptr %23, align 8, !tbaa !9
  %452 = call i32 @strcmp(ptr noundef %451, ptr noundef @.str.65) #11
  %453 = icmp eq i32 %452, 0
  br i1 %453, label %454, label %462

454:                                              ; preds = %450
  %455 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 6, ptr %455, align 4, !tbaa !25
  %456 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 36
  %457 = getelementptr inbounds [20 x i8], ptr %456, i64 0, i64 0
  %458 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %457, ptr noundef @.str.66)
  %459 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 37
  %460 = getelementptr inbounds [20 x i8], ptr %459, i64 0, i64 0
  %461 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %460, ptr noundef @.str.67)
  br label %852

462:                                              ; preds = %450
  %463 = load ptr, ptr %23, align 8, !tbaa !9
  %464 = call i32 @strcmp(ptr noundef %463, ptr noundef @.str.68) #11
  %465 = icmp eq i32 %464, 0
  br i1 %465, label %466, label %468

466:                                              ; preds = %462
  %467 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 0, ptr %467, align 4, !tbaa !25
  br label %851

468:                                              ; preds = %462
  %469 = load ptr, ptr %23, align 8, !tbaa !9
  %470 = call i32 @strcmp(ptr noundef %469, ptr noundef @.str.69) #11
  %471 = icmp eq i32 %470, 0
  br i1 %471, label %472, label %474

472:                                              ; preds = %468
  %473 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 1, ptr %473, align 4, !tbaa !25
  br label %850

474:                                              ; preds = %468
  %475 = load ptr, ptr %23, align 8, !tbaa !9
  %476 = call i32 @strcmp(ptr noundef %475, ptr noundef @.str.70) #11
  %477 = icmp eq i32 %476, 0
  br i1 %477, label %478, label %480

478:                                              ; preds = %474
  %479 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 13, ptr %479, align 4, !tbaa !25
  br label %849

480:                                              ; preds = %474
  %481 = load ptr, ptr %23, align 8, !tbaa !9
  %482 = call i32 @strcmp(ptr noundef %481, ptr noundef @.str.71) #11
  %483 = icmp eq i32 %482, 0
  br i1 %483, label %484, label %486

484:                                              ; preds = %480
  %485 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 14, ptr %485, align 4, !tbaa !25
  br label %848

486:                                              ; preds = %480
  %487 = load ptr, ptr %23, align 8, !tbaa !9
  %488 = call i32 @strcmp(ptr noundef %487, ptr noundef @.str.72) #11
  %489 = icmp eq i32 %488, 0
  br i1 %489, label %490, label %492

490:                                              ; preds = %486
  %491 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 15, ptr %491, align 4, !tbaa !25
  br label %847

492:                                              ; preds = %486
  %493 = load ptr, ptr %23, align 8, !tbaa !9
  %494 = call i32 @strcmp(ptr noundef %493, ptr noundef @.str.73) #11
  %495 = icmp eq i32 %494, 0
  br i1 %495, label %496, label %498

496:                                              ; preds = %492
  %497 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 16, ptr %497, align 4, !tbaa !25
  br label %846

498:                                              ; preds = %492
  %499 = load ptr, ptr %23, align 8, !tbaa !9
  %500 = call i32 @strcmp(ptr noundef %499, ptr noundef @.str.74) #11
  %501 = icmp eq i32 %500, 0
  br i1 %501, label %502, label %506

502:                                              ; preds = %498
  %503 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 8, ptr %503, align 4, !tbaa !25
  %504 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 36
  %505 = getelementptr inbounds [20 x i8], ptr %504, i64 0, i64 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %505, ptr align 1 @.str.66, i64 2, i1 false)
  br label %845

506:                                              ; preds = %498
  %507 = load ptr, ptr %23, align 8, !tbaa !9
  %508 = call i32 @strcmp(ptr noundef %507, ptr noundef @.str.55) #11
  %509 = icmp eq i32 %508, 0
  br i1 %509, label %510, label %512

510:                                              ; preds = %506
  %511 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 2, ptr %511, align 1, !tbaa !19
  br label %844

512:                                              ; preds = %506
  %513 = load ptr, ptr %23, align 8, !tbaa !9
  %514 = call i32 @strcmp(ptr noundef %513, ptr noundef @.str.56) #11
  %515 = icmp eq i32 %514, 0
  br i1 %515, label %516, label %518

516:                                              ; preds = %512
  %517 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 5, ptr %517, align 1, !tbaa !19
  br label %843

518:                                              ; preds = %512
  %519 = load ptr, ptr %23, align 8, !tbaa !9
  %520 = call i32 @strcmp(ptr noundef %519, ptr noundef @.str.57) #11
  %521 = icmp eq i32 %520, 0
  br i1 %521, label %522, label %536

522:                                              ; preds = %518
  %523 = load i32, ptr %9, align 4, !tbaa !5
  %524 = add nsw i32 %523, 1
  %525 = load i32, ptr %4, align 4, !tbaa !5
  %526 = icmp slt i32 %524, %525
  br i1 %526, label %527, label %536

527:                                              ; preds = %522
  %528 = load ptr, ptr %5, align 8, !tbaa !9
  %529 = load i32, ptr %9, align 4, !tbaa !5
  %530 = add nsw i32 %529, 1
  store i32 %530, ptr %9, align 4, !tbaa !5
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds ptr, ptr %528, i64 %531
  %533 = load ptr, ptr %532, align 8, !tbaa !9
  %534 = call i64 @integerValue(ptr noundef %533)
  %535 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 32
  store i64 %534, ptr %535, align 8, !tbaa !20
  br label %842

536:                                              ; preds = %522, %518
  %537 = load ptr, ptr %23, align 8, !tbaa !9
  %538 = call i32 @strcmp(ptr noundef %537, ptr noundef @.str.58) #11
  %539 = icmp eq i32 %538, 0
  br i1 %539, label %540, label %542

540:                                              ; preds = %536
  %541 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 4, ptr %541, align 1, !tbaa !19
  br label %841

542:                                              ; preds = %536
  %543 = load ptr, ptr %23, align 8, !tbaa !9
  %544 = call i32 @strcmp(ptr noundef %543, ptr noundef @.str.59) #11
  %545 = icmp eq i32 %544, 0
  br i1 %545, label %546, label %550

546:                                              ; preds = %542
  %547 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 15
  %548 = load i32, ptr %547, align 8, !tbaa !21
  %549 = or i32 %548, 16777216
  store i32 %549, ptr %547, align 8, !tbaa !21
  br label %840

550:                                              ; preds = %542
  %551 = load ptr, ptr %23, align 8, !tbaa !9
  %552 = call i32 @strcmp(ptr noundef %551, ptr noundef @.str.75) #11
  %553 = icmp eq i32 %552, 0
  br i1 %553, label %554, label %562

554:                                              ; preds = %550
  %555 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 10, ptr %555, align 4, !tbaa !25
  %556 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 36
  %557 = getelementptr inbounds [20 x i8], ptr %556, i64 0, i64 0
  %558 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %557, ptr noundef @.str.76)
  %559 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 37
  %560 = getelementptr inbounds [20 x i8], ptr %559, i64 0, i64 0
  %561 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %560, ptr noundef @.str.77)
  br label %839

562:                                              ; preds = %550
  %563 = load ptr, ptr %23, align 8, !tbaa !9
  %564 = call i32 @strcmp(ptr noundef %563, ptr noundef @.str.78) #11
  %565 = icmp eq i32 %564, 0
  br i1 %565, label %566, label %574

566:                                              ; preds = %562
  %567 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store i32 2, ptr %567, align 4, !tbaa !25
  %568 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 36
  %569 = getelementptr inbounds [20 x i8], ptr %568, i64 0, i64 0
  %570 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %569, ptr noundef @.str.79)
  %571 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 37
  %572 = getelementptr inbounds [20 x i8], ptr %571, i64 0, i64 0
  %573 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %572, ptr noundef @.str.67)
  br label %838

574:                                              ; preds = %562
  %575 = load ptr, ptr %23, align 8, !tbaa !9
  %576 = call i32 @strcmp(ptr noundef %575, ptr noundef @.str.44) #11
  %577 = icmp eq i32 %576, 0
  br i1 %577, label %578, label %587

578:                                              ; preds = %574
  %579 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 36
  %580 = getelementptr inbounds [20 x i8], ptr %579, i64 0, i64 0
  %581 = load i32, ptr %4, align 4, !tbaa !5
  %582 = load ptr, ptr %5, align 8, !tbaa !9
  %583 = load i32, ptr %9, align 4, !tbaa !5
  %584 = add nsw i32 %583, 1
  store i32 %584, ptr %9, align 4, !tbaa !5
  %585 = call ptr @cmdline_option_value(i32 noundef %581, ptr noundef %582, i32 noundef %584)
  %586 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %580, ptr noundef @.str.80, ptr noundef %585)
  br label %837

587:                                              ; preds = %574
  %588 = load ptr, ptr %23, align 8, !tbaa !9
  %589 = call i32 @strcmp(ptr noundef %588, ptr noundef @.str.46) #11
  %590 = icmp eq i32 %589, 0
  br i1 %590, label %591, label %600

591:                                              ; preds = %587
  %592 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 37
  %593 = getelementptr inbounds [20 x i8], ptr %592, i64 0, i64 0
  %594 = load i32, ptr %4, align 4, !tbaa !5
  %595 = load ptr, ptr %5, align 8, !tbaa !9
  %596 = load i32, ptr %9, align 4, !tbaa !5
  %597 = add nsw i32 %596, 1
  store i32 %597, ptr %9, align 4, !tbaa !5
  %598 = call ptr @cmdline_option_value(i32 noundef %594, ptr noundef %595, i32 noundef %597)
  %599 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %593, ptr noundef @.str.80, ptr noundef %598)
  br label %836

600:                                              ; preds = %587
  %601 = load ptr, ptr %23, align 8, !tbaa !9
  %602 = call i32 @strcmp(ptr noundef %601, ptr noundef @.str.45) #11
  %603 = icmp eq i32 %602, 0
  br i1 %603, label %604, label %613

604:                                              ; preds = %600
  %605 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 43
  %606 = getelementptr inbounds [20 x i8], ptr %605, i64 0, i64 0
  %607 = load i32, ptr %4, align 4, !tbaa !5
  %608 = load ptr, ptr %5, align 8, !tbaa !9
  %609 = load i32, ptr %9, align 4, !tbaa !5
  %610 = add nsw i32 %609, 1
  store i32 %610, ptr %9, align 4, !tbaa !5
  %611 = call ptr @cmdline_option_value(i32 noundef %607, ptr noundef %608, i32 noundef %610)
  %612 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %606, ptr noundef @.str.80, ptr noundef %611)
  br label %835

613:                                              ; preds = %600
  %614 = load ptr, ptr %23, align 8, !tbaa !9
  %615 = call i32 @strcmp(ptr noundef %614, ptr noundef @.str.81) #11
  %616 = icmp eq i32 %615, 0
  br i1 %616, label %617, label %619

617:                                              ; preds = %613
  %618 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 25
  store i32 1, ptr %618, align 8, !tbaa !26
  br label %834

619:                                              ; preds = %613
  %620 = load ptr, ptr %23, align 8, !tbaa !9
  %621 = call i32 @strcmp(ptr noundef %620, ptr noundef @.str.82) #11
  %622 = icmp eq i32 %621, 0
  br i1 %622, label %623, label %625

623:                                              ; preds = %619
  %624 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 25
  store i32 0, ptr %624, align 8, !tbaa !26
  br label %833

625:                                              ; preds = %619
  %626 = load ptr, ptr %23, align 8, !tbaa !9
  %627 = call i32 @strcmp(ptr noundef %626, ptr noundef @.str.83) #11
  %628 = icmp eq i32 %627, 0
  br i1 %628, label %629, label %633

629:                                              ; preds = %625
  %630 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 30
  %631 = load i32, ptr %630, align 4, !tbaa !18
  %632 = or i32 %631, 64
  store i32 %632, ptr %630, align 4, !tbaa !18
  br label %832

633:                                              ; preds = %625
  %634 = load ptr, ptr %23, align 8, !tbaa !9
  %635 = call i32 @strcmp(ptr noundef %634, ptr noundef @.str.84) #11
  %636 = icmp eq i32 %635, 0
  br i1 %636, label %637, label %639

637:                                              ; preds = %633
  %638 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 2
  store i8 1, ptr %638, align 1, !tbaa !27
  br label %831

639:                                              ; preds = %633
  %640 = load ptr, ptr %23, align 8, !tbaa !9
  %641 = call i32 @strcmp(ptr noundef %640, ptr noundef @.str.85) #11
  %642 = icmp eq i32 %641, 0
  br i1 %642, label %643, label %645

643:                                              ; preds = %639
  %644 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 2
  store i8 3, ptr %644, align 1, !tbaa !27
  br label %830

645:                                              ; preds = %639
  %646 = load ptr, ptr %23, align 8, !tbaa !9
  %647 = call i32 @strcmp(ptr noundef %646, ptr noundef @.str.86) #11
  %648 = icmp eq i32 %647, 0
  br i1 %648, label %649, label %651

649:                                              ; preds = %645
  %650 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 10
  store i32 1, ptr %650, align 4, !tbaa !28
  br label %829

651:                                              ; preds = %645
  %652 = load ptr, ptr %23, align 8, !tbaa !9
  %653 = call i32 @strcmp(ptr noundef %652, ptr noundef @.str.87) #11
  %654 = icmp eq i32 %653, 0
  br i1 %654, label %655, label %657

655:                                              ; preds = %651
  %656 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 5
  store i8 1, ptr %656, align 4, !tbaa !29
  br label %828

657:                                              ; preds = %651
  %658 = load ptr, ptr %23, align 8, !tbaa !9
  %659 = call i32 @strcmp(ptr noundef %658, ptr noundef @.str.88) #11
  %660 = icmp eq i32 %659, 0
  br i1 %660, label %661, label %665

661:                                              ; preds = %657
  %662 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 30
  %663 = load i32, ptr %662, align 4, !tbaa !18
  %664 = or i32 %663, 4
  store i32 %664, ptr %662, align 4, !tbaa !18
  br label %827

665:                                              ; preds = %657
  %666 = load ptr, ptr %23, align 8, !tbaa !9
  %667 = call i32 @strcmp(ptr noundef %666, ptr noundef @.str.61) #11
  %668 = icmp eq i32 %667, 0
  br i1 %668, label %669, label %670

669:                                              ; preds = %665
  br label %826

670:                                              ; preds = %665
  %671 = load ptr, ptr %23, align 8, !tbaa !9
  %672 = call i32 @strcmp(ptr noundef %671, ptr noundef @.str.89) #11
  %673 = icmp eq i32 %672, 0
  br i1 %673, label %674, label %678

674:                                              ; preds = %670
  %675 = call ptr @sqlite3_libversion()
  %676 = call ptr @sqlite3_sourceid()
  %677 = call i32 (ptr, ...) @printf(ptr noundef @.str.90, ptr noundef %675, ptr noundef %676)
  store i32 0, ptr %3, align 4
  store i32 1, ptr %24, align 4
  br label %859

678:                                              ; preds = %670
  %679 = load ptr, ptr %23, align 8, !tbaa !9
  %680 = call i32 @strcmp(ptr noundef %679, ptr noundef @.str.91) #11
  %681 = icmp eq i32 %680, 0
  br i1 %681, label %682, label %683

682:                                              ; preds = %678
  store i32 1, ptr @stdin_is_interactive, align 4, !tbaa !5
  br label %824

683:                                              ; preds = %678
  %684 = load ptr, ptr %23, align 8, !tbaa !9
  %685 = call i32 @strcmp(ptr noundef %684, ptr noundef @.str.49) #11
  %686 = icmp eq i32 %685, 0
  br i1 %686, label %687, label %688

687:                                              ; preds = %683
  store i32 0, ptr @stdin_is_interactive, align 4, !tbaa !5
  br label %823

688:                                              ; preds = %683
  %689 = load ptr, ptr %23, align 8, !tbaa !9
  %690 = call i32 @strcmp(ptr noundef %689, ptr noundef @.str.50) #11
  %691 = icmp eq i32 %690, 0
  br i1 %691, label %692, label %695

692:                                              ; preds = %688
  %693 = load i32, ptr %9, align 4, !tbaa !5
  %694 = add nsw i32 %693, 1
  store i32 %694, ptr %9, align 4, !tbaa !5
  br label %822

695:                                              ; preds = %688
  %696 = load ptr, ptr %23, align 8, !tbaa !9
  %697 = call i32 @strcmp(ptr noundef %696, ptr noundef @.str.51) #11
  %698 = icmp eq i32 %697, 0
  br i1 %698, label %699, label %702

699:                                              ; preds = %695
  %700 = load i32, ptr %9, align 4, !tbaa !5
  %701 = add nsw i32 %700, 2
  store i32 %701, ptr %9, align 4, !tbaa !5
  br label %821

702:                                              ; preds = %695
  %703 = load ptr, ptr %23, align 8, !tbaa !9
  %704 = call i32 @strcmp(ptr noundef %703, ptr noundef @.str.52) #11
  %705 = icmp eq i32 %704, 0
  br i1 %705, label %706, label %709

706:                                              ; preds = %702
  %707 = load i32, ptr %9, align 4, !tbaa !5
  %708 = add nsw i32 %707, 2
  store i32 %708, ptr %9, align 4, !tbaa !5
  br label %820

709:                                              ; preds = %702
  %710 = load ptr, ptr %23, align 8, !tbaa !9
  %711 = call i32 @strcmp(ptr noundef %710, ptr noundef @.str.53) #11
  %712 = icmp eq i32 %711, 0
  br i1 %712, label %713, label %716

713:                                              ; preds = %709
  %714 = load i32, ptr %9, align 4, !tbaa !5
  %715 = add nsw i32 %714, 1
  store i32 %715, ptr %9, align 4, !tbaa !5
  br label %819

716:                                              ; preds = %709
  %717 = load ptr, ptr %23, align 8, !tbaa !9
  %718 = call i32 @strcmp(ptr noundef %717, ptr noundef @.str.60) #11
  %719 = icmp eq i32 %718, 0
  br i1 %719, label %720, label %723

720:                                              ; preds = %716
  %721 = load i32, ptr %9, align 4, !tbaa !5
  %722 = add nsw i32 %721, 1
  store i32 %722, ptr %9, align 4, !tbaa !5
  br label %818

723:                                              ; preds = %716
  %724 = load ptr, ptr %23, align 8, !tbaa !9
  %725 = call i32 @strcmp(ptr noundef %724, ptr noundef @.str.54) #11
  %726 = icmp eq i32 %725, 0
  br i1 %726, label %727, label %730

727:                                              ; preds = %723
  %728 = load i32, ptr %9, align 4, !tbaa !5
  %729 = add nsw i32 %728, 1
  store i32 %729, ptr %9, align 4, !tbaa !5
  br label %817

730:                                              ; preds = %723
  %731 = load ptr, ptr %23, align 8, !tbaa !9
  %732 = call i32 @strcmp(ptr noundef %731, ptr noundef @.str.92) #11
  %733 = icmp eq i32 %732, 0
  br i1 %733, label %734, label %735

734:                                              ; preds = %730
  call void @usage(i32 noundef 1)
  br label %816

735:                                              ; preds = %730
  %736 = load ptr, ptr %23, align 8, !tbaa !9
  %737 = call i32 @strcmp(ptr noundef %736, ptr noundef @.str.47) #11
  %738 = icmp eq i32 %737, 0
  br i1 %738, label %739, label %808

739:                                              ; preds = %735
  %740 = load i32, ptr %9, align 4, !tbaa !5
  %741 = load i32, ptr %4, align 4, !tbaa !5
  %742 = sub nsw i32 %741, 1
  %743 = icmp eq i32 %740, %742
  br i1 %743, label %744, label %745

744:                                              ; preds = %739
  store i32 5, ptr %24, align 4
  br label %859

745:                                              ; preds = %739
  %746 = load i32, ptr %4, align 4, !tbaa !5
  %747 = load ptr, ptr %5, align 8, !tbaa !9
  %748 = load i32, ptr %9, align 4, !tbaa !5
  %749 = add nsw i32 %748, 1
  store i32 %749, ptr %9, align 4, !tbaa !5
  %750 = call ptr @cmdline_option_value(i32 noundef %746, ptr noundef %747, i32 noundef %749)
  store ptr %750, ptr %23, align 8, !tbaa !9
  %751 = load ptr, ptr %23, align 8, !tbaa !9
  %752 = getelementptr inbounds i8, ptr %751, i64 0
  %753 = load i8, ptr %752, align 1, !tbaa !11
  %754 = sext i8 %753 to i32
  %755 = icmp eq i32 %754, 46
  br i1 %755, label %756, label %773

756:                                              ; preds = %745
  %757 = load ptr, ptr %23, align 8, !tbaa !9
  %758 = call i32 @do_meta_command(ptr noundef %757, ptr noundef %7)
  store i32 %758, ptr %10, align 4, !tbaa !5
  %759 = load i32, ptr %10, align 4, !tbaa !5
  %760 = icmp ne i32 %759, 0
  br i1 %760, label %761, label %772

761:                                              ; preds = %756
  %762 = load i32, ptr @bail_on_error, align 4, !tbaa !5
  %763 = icmp ne i32 %762, 0
  br i1 %763, label %764, label %772

764:                                              ; preds = %761
  %765 = load i32, ptr %10, align 4, !tbaa !5
  %766 = icmp eq i32 %765, 2
  br i1 %766, label %767, label %768

767:                                              ; preds = %764
  br label %770

768:                                              ; preds = %764
  %769 = load i32, ptr %10, align 4, !tbaa !5
  br label %770

770:                                              ; preds = %768, %767
  %771 = phi i32 [ 0, %767 ], [ %769, %768 ]
  store i32 %771, ptr %3, align 4
  store i32 1, ptr %24, align 4
  br label %859

772:                                              ; preds = %761, %756
  br label %807

773:                                              ; preds = %745
  call void @open_db(ptr noundef %7, i32 noundef 0)
  %774 = load ptr, ptr %23, align 8, !tbaa !9
  %775 = call i32 @shell_exec(ptr noundef %7, ptr noundef %774, ptr noundef %6)
  store i32 %775, ptr %10, align 4, !tbaa !5
  %776 = load ptr, ptr %6, align 8, !tbaa !9
  %777 = icmp ne ptr %776, null
  br i1 %777, label %778, label %793

778:                                              ; preds = %773
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = load ptr, ptr %6, align 8, !tbaa !9
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %779, ptr noundef @.str.93, ptr noundef %780) #10
  %782 = load i32, ptr @bail_on_error, align 4, !tbaa !5
  %783 = icmp ne i32 %782, 0
  br i1 %783, label %784, label %792

784:                                              ; preds = %778
  %785 = load i32, ptr %10, align 4, !tbaa !5
  %786 = icmp ne i32 %785, 0
  br i1 %786, label %787, label %789

787:                                              ; preds = %784
  %788 = load i32, ptr %10, align 4, !tbaa !5
  br label %790

789:                                              ; preds = %784
  br label %790

790:                                              ; preds = %789, %787
  %791 = phi i32 [ %788, %787 ], [ 1, %789 ]
  store i32 %791, ptr %3, align 4
  store i32 1, ptr %24, align 4
  br label %859

792:                                              ; preds = %778
  br label %806

793:                                              ; preds = %773
  %794 = load i32, ptr %10, align 4, !tbaa !5
  %795 = icmp ne i32 %794, 0
  br i1 %795, label %796, label %805

796:                                              ; preds = %793
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = load ptr, ptr %23, align 8, !tbaa !9
  %799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %797, ptr noundef @.str.94, ptr noundef %798) #10
  %800 = load i32, ptr @bail_on_error, align 4, !tbaa !5
  %801 = icmp ne i32 %800, 0
  br i1 %801, label %802, label %804

802:                                              ; preds = %796
  %803 = load i32, ptr %10, align 4, !tbaa !5
  store i32 %803, ptr %3, align 4
  store i32 1, ptr %24, align 4
  br label %859

804:                                              ; preds = %796
  br label %805

805:                                              ; preds = %804, %793
  br label %806

806:                                              ; preds = %805, %792
  br label %807

807:                                              ; preds = %806, %772
  br label %815

808:                                              ; preds = %735
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = load ptr, ptr @Argv0, align 8, !tbaa !9
  %811 = load ptr, ptr %23, align 8, !tbaa !9
  %812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %809, ptr noundef @.str.95, ptr noundef %810, ptr noundef %811) #10
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %813, ptr noundef @.str.96) #10
  store i32 1, ptr %3, align 4
  store i32 1, ptr %24, align 4
  br label %859

815:                                              ; preds = %807
  br label %816

816:                                              ; preds = %815, %734
  br label %817

817:                                              ; preds = %816, %727
  br label %818

818:                                              ; preds = %817, %720
  br label %819

819:                                              ; preds = %818, %713
  br label %820

820:                                              ; preds = %819, %706
  br label %821

821:                                              ; preds = %820, %699
  br label %822

822:                                              ; preds = %821, %692
  br label %823

823:                                              ; preds = %822, %687
  br label %824

824:                                              ; preds = %823, %682
  br label %825

825:                                              ; preds = %824
  br label %826

826:                                              ; preds = %825, %669
  br label %827

827:                                              ; preds = %826, %661
  br label %828

828:                                              ; preds = %827, %655
  br label %829

829:                                              ; preds = %828, %649
  br label %830

830:                                              ; preds = %829, %643
  br label %831

831:                                              ; preds = %830, %637
  br label %832

832:                                              ; preds = %831, %629
  br label %833

833:                                              ; preds = %832, %623
  br label %834

834:                                              ; preds = %833, %617
  br label %835

835:                                              ; preds = %834, %604
  br label %836

836:                                              ; preds = %835, %591
  br label %837

837:                                              ; preds = %836, %578
  br label %838

838:                                              ; preds = %837, %566
  br label %839

839:                                              ; preds = %838, %554
  br label %840

840:                                              ; preds = %839, %546
  br label %841

841:                                              ; preds = %840, %540
  br label %842

842:                                              ; preds = %841, %527
  br label %843

843:                                              ; preds = %842, %516
  br label %844

844:                                              ; preds = %843, %510
  br label %845

845:                                              ; preds = %844, %502
  br label %846

846:                                              ; preds = %845, %496
  br label %847

847:                                              ; preds = %846, %490
  br label %848

848:                                              ; preds = %847, %484
  br label %849

849:                                              ; preds = %848, %478
  br label %850

850:                                              ; preds = %849, %472
  br label %851

851:                                              ; preds = %850, %466
  br label %852

852:                                              ; preds = %851, %454
  br label %853

853:                                              ; preds = %852, %448
  br label %854

854:                                              ; preds = %853, %442
  br label %855

855:                                              ; preds = %854, %435
  %856 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  %857 = load i32, ptr %856, align 4, !tbaa !25
  %858 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 22
  store i32 %857, ptr %858, align 4, !tbaa !30
  store i32 0, ptr %24, align 4
  br label %859

859:                                              ; preds = %855, %808, %802, %790, %770, %744, %674, %421
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  %860 = load i32, ptr %24, align 4
  switch i32 %860, label %1015 [
    i32 0, label %861
    i32 7, label %862
    i32 5, label %865
  ]

861:                                              ; preds = %859
  br label %862

862:                                              ; preds = %861, %859
  %863 = load i32, ptr %9, align 4, !tbaa !5
  %864 = add nsw i32 %863, 1
  store i32 %864, ptr %9, align 4, !tbaa !5
  br label %406, !llvm.loop !31

865:                                              ; preds = %859, %406
  %866 = load i32, ptr %12, align 4, !tbaa !5
  %867 = icmp ne i32 %866, 0
  br i1 %867, label %945, label %868

868:                                              ; preds = %865
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %869

869:                                              ; preds = %941, %868
  %870 = load i32, ptr %9, align 4, !tbaa !5
  %871 = load i32, ptr %13, align 4, !tbaa !5
  %872 = icmp slt i32 %870, %871
  br i1 %872, label %873, label %944

873:                                              ; preds = %869
  %874 = load ptr, ptr %14, align 8, !tbaa !9
  %875 = load i32, ptr %9, align 4, !tbaa !5
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds ptr, ptr %874, i64 %876
  %878 = load ptr, ptr %877, align 8, !tbaa !9
  %879 = getelementptr inbounds i8, ptr %878, i64 0
  %880 = load i8, ptr %879, align 1, !tbaa !11
  %881 = sext i8 %880 to i32
  %882 = icmp eq i32 %881, 46
  br i1 %882, label %883, label %902

883:                                              ; preds = %873
  %884 = load ptr, ptr %14, align 8, !tbaa !9
  %885 = load i32, ptr %9, align 4, !tbaa !5
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds ptr, ptr %884, i64 %886
  %888 = load ptr, ptr %887, align 8, !tbaa !9
  %889 = call i32 @do_meta_command(ptr noundef %888, ptr noundef %7)
  store i32 %889, ptr %10, align 4, !tbaa !5
  %890 = load i32, ptr %10, align 4, !tbaa !5
  %891 = icmp ne i32 %890, 0
  br i1 %891, label %892, label %901

892:                                              ; preds = %883
  %893 = load ptr, ptr %14, align 8, !tbaa !9
  call void @free(ptr noundef %893) #10
  %894 = load i32, ptr %10, align 4, !tbaa !5
  %895 = icmp eq i32 %894, 2
  br i1 %895, label %896, label %897

896:                                              ; preds = %892
  br label %899

897:                                              ; preds = %892
  %898 = load i32, ptr %10, align 4, !tbaa !5
  br label %899

899:                                              ; preds = %897, %896
  %900 = phi i32 [ 0, %896 ], [ %898, %897 ]
  store i32 %900, ptr %3, align 4
  store i32 1, ptr %24, align 4
  br label %1015

901:                                              ; preds = %883
  br label %940

902:                                              ; preds = %873
  call void @open_db(ptr noundef %7, i32 noundef 0)
  %903 = load ptr, ptr %14, align 8, !tbaa !9
  %904 = load i32, ptr %9, align 4, !tbaa !5
  %905 = sext i32 %904 to i64
  %906 = getelementptr inbounds ptr, ptr %903, i64 %905
  %907 = load ptr, ptr %906, align 8, !tbaa !9
  %908 = call i32 @shell_exec(ptr noundef %7, ptr noundef %907, ptr noundef %6)
  store i32 %908, ptr %10, align 4, !tbaa !5
  %909 = load ptr, ptr %6, align 8, !tbaa !9
  %910 = icmp ne ptr %909, null
  br i1 %910, label %914, label %911

911:                                              ; preds = %902
  %912 = load i32, ptr %10, align 4, !tbaa !5
  %913 = icmp ne i32 %912, 0
  br i1 %913, label %914, label %939

914:                                              ; preds = %911, %902
  %915 = load ptr, ptr %6, align 8, !tbaa !9
  %916 = icmp ne ptr %915, null
  br i1 %916, label %917, label %921

917:                                              ; preds = %914
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = load ptr, ptr %6, align 8, !tbaa !9
  %920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %918, ptr noundef @.str.93, ptr noundef %919) #10
  br label %929

921:                                              ; preds = %914
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = load ptr, ptr %14, align 8, !tbaa !9
  %924 = load i32, ptr %9, align 4, !tbaa !5
  %925 = sext i32 %924 to i64
  %926 = getelementptr inbounds ptr, ptr %923, i64 %925
  %927 = load ptr, ptr %926, align 8, !tbaa !9
  %928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %922, ptr noundef @.str.97, ptr noundef %927) #10
  br label %929

929:                                              ; preds = %921, %917
  %930 = load ptr, ptr %6, align 8, !tbaa !9
  call void @sqlite3_free(ptr noundef %930)
  %931 = load ptr, ptr %14, align 8, !tbaa !9
  call void @free(ptr noundef %931) #10
  %932 = load i32, ptr %10, align 4, !tbaa !5
  %933 = icmp ne i32 %932, 0
  br i1 %933, label %934, label %936

934:                                              ; preds = %929
  %935 = load i32, ptr %10, align 4, !tbaa !5
  br label %937

936:                                              ; preds = %929
  br label %937

937:                                              ; preds = %936, %934
  %938 = phi i32 [ %935, %934 ], [ 1, %936 ]
  store i32 %938, ptr %3, align 4
  store i32 1, ptr %24, align 4
  br label %1015

939:                                              ; preds = %911
  br label %940

940:                                              ; preds = %939, %901
  br label %941

941:                                              ; preds = %940
  %942 = load i32, ptr %9, align 4, !tbaa !5
  %943 = add nsw i32 %942, 1
  store i32 %943, ptr %9, align 4, !tbaa !5
  br label %869, !llvm.loop !32

944:                                              ; preds = %869
  br label %999

945:                                              ; preds = %865
  %946 = load i32, ptr @stdin_is_interactive, align 4, !tbaa !5
  %947 = icmp ne i32 %946, 0
  br i1 %947, label %948, label %994

948:                                              ; preds = %945
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %949 = call ptr @sqlite3_libversion()
  %950 = call ptr @sqlite3_sourceid()
  %951 = call i32 (ptr, ...) @printf(ptr noundef @.str.98, ptr noundef %949, ptr noundef %950)
  %952 = load i32, ptr %11, align 4, !tbaa !5
  %953 = icmp ne i32 %952, 0
  br i1 %953, label %954, label %957

954:                                              ; preds = %948
  %955 = call i32 (ptr, ...) @printf(ptr noundef @.str.99)
  call void @printBold(ptr noundef @.str.100)
  %956 = call i32 (ptr, ...) @printf(ptr noundef @.str.101)
  br label %957

957:                                              ; preds = %954, %948
  %958 = call ptr @getenv(ptr noundef @.str.102) #10
  store ptr %958, ptr %26, align 8, !tbaa !9
  %959 = load ptr, ptr %26, align 8, !tbaa !9
  %960 = icmp ne ptr %959, null
  br i1 %960, label %961, label %964

961:                                              ; preds = %957
  %962 = load ptr, ptr %26, align 8, !tbaa !9
  %963 = call noalias ptr @strdup(ptr noundef %962) #10
  store ptr %963, ptr %26, align 8, !tbaa !9
  br label %982

964:                                              ; preds = %957
  %965 = call ptr @find_home_dir(i32 noundef 0)
  store ptr %965, ptr %25, align 8, !tbaa !9
  %966 = icmp ne ptr %965, null
  br i1 %966, label %967, label %981

967:                                              ; preds = %964
  %968 = load ptr, ptr %25, align 8, !tbaa !9
  %969 = call i32 @strlen30(ptr noundef %968)
  %970 = add nsw i32 %969, 20
  store i32 %970, ptr %27, align 4, !tbaa !5
  %971 = load i32, ptr %27, align 4, !tbaa !5
  %972 = sext i32 %971 to i64
  %973 = call noalias ptr @malloc(i64 noundef %972) #14
  store ptr %973, ptr %26, align 8, !tbaa !9
  %974 = icmp ne ptr %973, null
  br i1 %974, label %975, label %980

975:                                              ; preds = %967
  %976 = load i32, ptr %27, align 4, !tbaa !5
  %977 = load ptr, ptr %26, align 8, !tbaa !9
  %978 = load ptr, ptr %25, align 8, !tbaa !9
  %979 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef %976, ptr noundef %977, ptr noundef @.str.103, ptr noundef %978)
  br label %980

980:                                              ; preds = %975, %967
  br label %981

981:                                              ; preds = %980, %964
  br label %982

982:                                              ; preds = %981, %961
  %983 = load ptr, ptr %26, align 8, !tbaa !9
  %984 = icmp ne ptr %983, null
  br i1 %984, label %985, label %986

985:                                              ; preds = %982
  br label %986

986:                                              ; preds = %985, %982
  %987 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 16
  store ptr null, ptr %987, align 8, !tbaa !33
  %988 = call i32 @process_input(ptr noundef %7)
  store i32 %988, ptr %10, align 4, !tbaa !5
  %989 = load ptr, ptr %26, align 8, !tbaa !9
  %990 = icmp ne ptr %989, null
  br i1 %990, label %991, label %993

991:                                              ; preds = %986
  %992 = load ptr, ptr %26, align 8, !tbaa !9
  call void @free(ptr noundef %992) #10
  br label %993

993:                                              ; preds = %991, %986
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  br label %998

994:                                              ; preds = %945
  %995 = load ptr, ptr @stdin, align 8, !tbaa !9
  %996 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 16
  store ptr %995, ptr %996, align 8, !tbaa !33
  %997 = call i32 @process_input(ptr noundef %7)
  store i32 %997, ptr %10, align 4, !tbaa !5
  br label %998

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

999:                                              ; preds = %998, %944
  %1000 = load ptr, ptr %14, align 8, !tbaa !9
  call void @free(ptr noundef %1000) #10
  call void @set_table_name(ptr noundef %7, ptr noundef null)
  %1001 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 0
  %1002 = load ptr, ptr %1001, align 8, !tbaa !34
  %1003 = icmp ne ptr %1002, null
  br i1 %1003, label %1004, label %1007

1004:                                             ; preds = %999
  %1005 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 0
  %1006 = load ptr, ptr %1005, align 8, !tbaa !34
  call void @close_db(ptr noundef %1006)
  br label %1007

1007:                                             ; preds = %1004, %999
  %1008 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 46
  %1009 = load ptr, ptr %1008, align 8, !tbaa !35
  call void @sqlite3_free(ptr noundef %1009)
  %1010 = call ptr @find_home_dir(i32 noundef 1)
  call void @output_reset(ptr noundef %7)
  %1011 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 7
  store i8 0, ptr %1011, align 2, !tbaa !36
  call void @clearTempFile(ptr noundef %7)
  %1012 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 40
  %1013 = load ptr, ptr %1012, align 8, !tbaa !37
  call void @free(ptr noundef %1013) #10
  call void @llvm.memset.p0.i64(ptr align 8 %7, i8 0, i64 4592, i1 false)
  %1014 = load i32, ptr %10, align 4, !tbaa !5
  store i32 %1014, ptr %3, align 4
  store i32 1, ptr %24, align 4
  br label %1015

1015:                                             ; preds = %1007, %937, %899, %859
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 4592, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #10
  %1016 = load i32, ptr %3, align 4
  ret i32 %1016
}

; Function Attrs: nounwind
declare i32 @setvbuf(ptr noundef, ptr noundef, i32 noundef, i64 noundef) #5

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #5

; Function Attrs: nounwind
declare ptr @getenv(ptr noundef) #5

; Function Attrs: nounwind
declare i32 @getpid() #5

declare i32 @fgetc(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @raise(i32 noundef) #5

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strncmp(ptr noundef, ptr noundef, i64 noundef) #6

declare ptr @sqlite3_sourceid() #2

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #7

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #7

; Function Attrs: nounwind
declare ptr @signal(i32 noundef, ptr noundef) #5

; Function Attrs: nounwind uwtable
declare hidden void @interrupt_handler(i32 noundef) #1

; Function Attrs: nounwind uwtable
declare hidden void @verify_uninitialized() #1

; Function Attrs: nounwind allocsize(1)
declare ptr @realloc(ptr noundef, i64 noundef) #8

; Function Attrs: nounwind uwtable
declare hidden void @shell_out_of_memory() #1

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #6

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

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

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #9

declare i32 @sqlite3_initialize() #2

; Function Attrs: nounwind
declare i32 @access(ptr noundef, i32 noundef) #5

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

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

declare ptr @sqlite3_snprintf(i32 noundef, ptr noundef, ptr noundef, ...) #2

declare i32 @printf(ptr noundef, ...) #2

declare ptr @sqlite3_libversion() #2

; Function Attrs: nounwind uwtable
declare hidden void @usage(i32 noundef) #1

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

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

; Function Attrs: nounwind
declare void @free(ptr noundef) #5

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

; Function Attrs: nounwind
declare noalias ptr @strdup(ptr noundef) #5

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare hidden void @clearTempFile(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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { nounwind "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 #6 = { 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 #7 = { noreturn nounwind "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 #8 = { nounwind allocsize(1) "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 #9 = { nounwind allocsize(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 #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(read) }
attributes #12 = { noreturn nounwind }
attributes #13 = { nounwind allocsize(1) }
attributes #14 = { nounwind allocsize(0) }

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !10, i64 4400}
!13 = !{!"ShellState", !10, i64 0, !7, i64 8, !7, i64 9, !7, i64 10, !7, i64 11, !7, i64 12, !7, i64 13, !7, i64 14, !7, i64 15, !7, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !6, i64 72, !6, i64 76, !6, i64 80, !6, i64 84, !6, i64 88, !6, i64 92, !6, i64 96, !6, i64 100, !6, i64 104, !6, i64 108, !6, i64 112, !6, i64 116, !6, i64 120, !14, i64 128, !10, i64 136, !10, i64 144, !7, i64 152, !7, i64 182, !7, i64 202, !7, i64 222, !7, i64 242, !10, i64 264, !10, i64 272, !6, i64 280, !7, i64 284, !7, i64 304, !10, i64 4400, !10, i64 4408, !10, i64 4416, !10, i64 4424, !10, i64 4432, !10, i64 4440, !6, i64 4448, !6, i64 4452, !15, i64 4456, !16, i64 4576}
!14 = !{!"long long", !7, i64 0}
!15 = !{!"EQPGraph", !10, i64 0, !10, i64 8, !7, i64 16}
!16 = !{!"ExpertInfo", !10, i64 0, !6, i64 8}
!17 = !{!14, !14, i64 0}
!18 = !{!13, !6, i64 116}
!19 = !{!13, !7, i64 13}
!20 = !{!13, !14, i64 128}
!21 = !{!13, !6, i64 40}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.mustprogress"}
!24 = !{!13, !10, i64 56}
!25 = !{!13, !6, i64 76}
!26 = !{!13, !6, i64 96}
!27 = !{!13, !7, i64 9}
!28 = !{!13, !6, i64 20}
!29 = !{!13, !7, i64 12}
!30 = !{!13, !6, i64 84}
!31 = distinct !{!31, !23}
!32 = distinct !{!32, !23}
!33 = !{!13, !10, i64 48}
!34 = !{!13, !10, i64 0}
!35 = !{!13, !10, i64 4408}
!36 = !{!13, !7, i64 14}
!37 = !{!13, !10, i64 264}


; 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.ShellState = type { ptr, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, ptr, ptr, [30 x i8], [20 x i8], [20 x i8], [20 x i8], [20 x i8], ptr, ptr, i32, [20 x i8], [4096 x i8], ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, %struct.EQPGraph, %struct.ExpertInfo }
%struct.EQPGraph = type { ptr, ptr, [100 x i8] }
%struct.ExpertInfo = type { ptr, i32 }

@.str.27 = external hidden unnamed_addr constant [9 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@stdin_is_interactive = external hidden local_unnamed_addr global i32, align 4
@stdout_is_console = external hidden local_unnamed_addr global i32, align 4
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [62 x i8], align 1
@stdin = external local_unnamed_addr global ptr, align 8
@.str.40 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [70 x i8], align 1
@__PRETTY_FUNCTION__.main = external hidden unnamed_addr constant [23 x i8], align 1
@Argv0 = external hidden local_unnamed_addr global ptr, align 8
@.str.44 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [6 x i8], align 1
@bail_on_error = external hidden local_unnamed_addr global i32, align 4
@.str.62 = external hidden unnamed_addr constant [19 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.63 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [19 x i8], align 1

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

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

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

declare ptr @sqlite3_vfs_find(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3_vfs_register(ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @sqlite3_config(i32 noundef, ...) local_unnamed_addr #2

declare void @sqlite3_free(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #1 {
  %3 = alloca ptr, align 8
  %4 = alloca %struct.ShellState, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #13
  store ptr null, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4592, ptr nonnull %4) #13
  %5 = load ptr, ptr @stderr, align 8, !tbaa !5
  %6 = tail call i32 @setvbuf(ptr noundef %5, ptr noundef null, i32 noundef 2, i64 noundef 0) #13
  %7 = tail call i32 @isatty(i32 noundef 0) #13
  store i32 %7, ptr @stdin_is_interactive, align 4, !tbaa !9
  %8 = tail call i32 @isatty(i32 noundef 1) #13
  store i32 %8, ptr @stdout_is_console, align 4, !tbaa !9
  %9 = tail call ptr @getenv(ptr noundef nonnull @.str.38) #13
  %.not = icmp eq ptr %9, null
  br i1 %.not, label %22, label %10

10:                                               ; preds = %2
  %11 = tail call i32 @isatty(i32 noundef 0) #13
  %.not277 = icmp eq i32 %11, 0
  br i1 %.not277, label %20, label %12

12:                                               ; preds = %10
  %13 = tail call i32 @isatty(i32 noundef 2) #13
  %.not278 = icmp eq i32 %13, 0
  br i1 %.not278, label %20, label %14

14:                                               ; preds = %12
  %15 = load ptr, ptr @stderr, align 8, !tbaa !5
  %16 = tail call i32 @getpid() #13
  %17 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15, ptr noundef nonnull @.str.39, i32 noundef %16) #14
  %18 = load ptr, ptr @stdin, align 8, !tbaa !5
  %19 = tail call i32 @fgetc(ptr noundef %18)
  br label %22

20:                                               ; preds = %12, %10
  %21 = tail call i32 @raise(i32 noundef 5) #13
  br label %22

22:                                               ; preds = %14, %20, %2
  %23 = tail call ptr @sqlite3_sourceid() #13
  %24 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %23, ptr noundef nonnull dereferenceable(1) @.str.40, i64 noundef 60) #15
  %.not279 = icmp eq i32 %24, 0
  br i1 %.not279, label %29, label %25

25:                                               ; preds = %22
  %26 = load ptr, ptr @stderr, align 8, !tbaa !5
  %27 = tail call ptr @sqlite3_sourceid() #13
  %28 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26, ptr noundef nonnull @.str.41, ptr noundef %27, ptr noundef nonnull @.str.40) #14
  tail call void @exit(i32 noundef 1) #16
  unreachable

29:                                               ; preds = %22
  call void @main_init(ptr noundef nonnull %4)
  %30 = icmp sgt i32 %0, 0
  %31 = icmp ne ptr %1, null
  %or.cond = and i1 %30, %31
  br i1 %or.cond, label %32, label %34

32:                                               ; preds = %29
  %33 = load ptr, ptr %1, align 8, !tbaa !5
  %.not280 = icmp eq ptr %33, null
  br i1 %.not280, label %34, label %35

34:                                               ; preds = %32, %29
  call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.43, i32 noundef 21918, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #16
  unreachable

35:                                               ; preds = %32
  store ptr %33, ptr @Argv0, align 8, !tbaa !5
  %36 = call ptr @signal(i32 noundef 2, ptr noundef nonnull @interrupt_handler) #13
  call void @verify_uninitialized()
  %37 = icmp ugt i32 %0, 1
  br i1 %37, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %35
  %38 = getelementptr inbounds i8, ptr %4, i64 4400
  %39 = getelementptr inbounds i8, ptr %4, i64 40
  %40 = getelementptr inbounds i8, ptr %4, i64 13
  %41 = getelementptr inbounds i8, ptr %4, i64 128
  %42 = getelementptr inbounds i8, ptr %4, i64 116
  br label %43

43:                                               ; preds = %.lr.ph, %188
  %.0231347 = phi ptr [ null, %.lr.ph ], [ %.1232, %188 ]
  %.0235346 = phi i32 [ 1, %.lr.ph ], [ %189, %188 ]
  %.0245345 = phi i32 [ 1, %.lr.ph ], [ %.1246, %188 ]
  %.0249344 = phi ptr [ null, %.lr.ph ], [ %.1250, %188 ]
  %.0251343 = phi ptr [ null, %.lr.ph ], [ %.1252, %188 ]
  %.0253342 = phi i32 [ 0, %.lr.ph ], [ %.1254, %188 ]
  %44 = sext i32 %.0235346 to i64
  %45 = getelementptr inbounds ptr, ptr %1, i64 %44
  %46 = load ptr, ptr %45, align 8, !tbaa !5
  %47 = load i8, ptr %46, align 1, !tbaa !11
  %.not298 = icmp eq i8 %47, 45
  br i1 %.not298, label %61, label %48

48:                                               ; preds = %43
  %49 = load ptr, ptr %38, align 8, !tbaa !12
  %50 = icmp eq ptr %49, null
  br i1 %50, label %.sink.split, label %51

51:                                               ; preds = %48
  %52 = add nsw i32 %.0253342, 1
  %53 = sext i32 %52 to i64
  %54 = shl nsw i64 %53, 3
  %55 = call ptr @realloc(ptr noundef %.0251343, i64 noundef %54) #17
  %56 = icmp eq ptr %55, null
  br i1 %56, label %57, label %58

57:                                               ; preds = %51
  call void @shell_out_of_memory()
  br label %58

58:                                               ; preds = %57, %51
  %59 = sext i32 %.0253342 to i64
  %60 = getelementptr inbounds ptr, ptr %55, i64 %59
  br label %.sink.split

.sink.split:                                      ; preds = %48, %58
  %.sink = phi ptr [ %60, %58 ], [ %38, %48 ]
  %.1254.ph = phi i32 [ %52, %58 ], [ %.0253342, %48 ]
  %.1252.ph = phi ptr [ %55, %58 ], [ %.0251343, %48 ]
  %.1246.ph = phi i32 [ 0, %58 ], [ %.0245345, %48 ]
  store ptr %46, ptr %.sink, align 8, !tbaa !5
  br label %61

61:                                               ; preds = %.sink.split, %43
  %.1254 = phi i32 [ %.0253342, %43 ], [ %.1254.ph, %.sink.split ]
  %.1252 = phi ptr [ %.0251343, %43 ], [ %.1252.ph, %.sink.split ]
  %.1246 = phi i32 [ %.0245345, %43 ], [ %.1246.ph, %.sink.split ]
  %62 = getelementptr inbounds i8, ptr %46, i64 1
  %63 = load i8, ptr %62, align 1, !tbaa !11
  %64 = icmp eq i8 %63, 45
  %spec.select = select i1 %64, ptr %62, ptr %46
  %65 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.44) #15
  %66 = icmp eq i32 %65, 0
  br i1 %66, label %76, label %67

67:                                               ; preds = %61
  %68 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.45) #15
  %69 = icmp eq i32 %68, 0
  br i1 %69, label %76, label %70

70:                                               ; preds = %67
  %71 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.46) #15
  %72 = icmp eq i32 %71, 0
  br i1 %72, label %76, label %73

73:                                               ; preds = %70
  %74 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.47) #15
  %75 = icmp eq i32 %74, 0
  br i1 %75, label %76, label %79

76:                                               ; preds = %73, %70, %67, %61
  %77 = add nsw i32 %.0235346, 1
  %78 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %77)
  br label %188

79:                                               ; preds = %73
  %80 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.48) #15
  %81 = icmp eq i32 %80, 0
  br i1 %81, label %82, label %85

82:                                               ; preds = %79
  %83 = add nsw i32 %.0235346, 1
  %84 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %83)
  br label %188

85:                                               ; preds = %79
  %86 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.49) #15
  %87 = icmp eq i32 %86, 0
  br i1 %87, label %88, label %89

88:                                               ; preds = %85
  store i32 0, ptr @stdin_is_interactive, align 4, !tbaa !9
  br label %188

89:                                               ; preds = %85
  %90 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.50) #15
  %91 = icmp eq i32 %90, 0
  br i1 %91, label %92, label %95

92:                                               ; preds = %89
  %93 = add nsw i32 %.0235346, 1
  %94 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %93)
  br label %188

95:                                               ; preds = %89
  %96 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.51) #15
  %97 = icmp eq i32 %96, 0
  br i1 %97, label %98, label %119

98:                                               ; preds = %95
  %99 = add nsw i32 %.0235346, 1
  %100 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %99)
  %101 = call i64 @integerValue(ptr noundef %100)
  %spec.store.select = call i64 @llvm.smin.i64(i64 %101, i64 70000)
  %spec.store.select11 = call i64 @llvm.smax.i64(i64 %spec.store.select, i64 0)
  %102 = add nsw i32 %.0235346, 2
  %103 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %102)
  %104 = call i64 @integerValue(ptr noundef %103)
  %105 = icmp sgt i64 %101, 0
  %106 = icmp sgt i64 %104, 0
  %or.cond3 = select i1 %105, i1 %106, i1 false
  br i1 %or.cond3, label %107, label %109

107:                                              ; preds = %98
  %108 = udiv i64 281474976710655, %spec.store.select11
  %spec.select299 = call i64 @llvm.umin.i64(i64 %108, i64 %104)
  br label %109

109:                                              ; preds = %107, %98
  %.0247 = phi i64 [ %104, %98 ], [ %spec.select299, %107 ]
  %110 = icmp sgt i64 %.0247, 0
  %or.cond5 = and i1 %105, %110
  br i1 %or.cond5, label %111, label %114

111:                                              ; preds = %109
  %112 = mul nuw nsw i64 %.0247, %spec.store.select11
  %113 = call noalias ptr @malloc(i64 noundef %112) #18
  br label %114

114:                                              ; preds = %109, %111
  %115 = phi ptr [ %113, %111 ], [ null, %109 ]
  %116 = call i32 (i32, ...) @sqlite3_config(i32 noundef 7, ptr noundef %115, i64 noundef %spec.store.select11, i64 noundef %.0247) #13
  %117 = load i32, ptr %42, align 4, !tbaa !17
  %118 = or i32 %117, 1
  store i32 %118, ptr %42, align 4, !tbaa !17
  br label %188

119:                                              ; preds = %95
  %120 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.52) #15
  %121 = icmp eq i32 %120, 0
  br i1 %121, label %122, label %137

122:                                              ; preds = %119
  %123 = add nsw i32 %.0235346, 1
  %124 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %123)
  %125 = call i64 @integerValue(ptr noundef %124)
  %126 = trunc i64 %125 to i32
  %spec.store.select6 = call i32 @llvm.smax.i32(i32 %126, i32 0)
  %127 = add nsw i32 %.0235346, 2
  %128 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %127)
  %129 = call i64 @integerValue(ptr noundef %128)
  %130 = trunc i64 %129 to i32
  %spec.store.select12 = call i32 @llvm.smax.i32(i32 %130, i32 0)
  %131 = call i32 (i32, ...) @sqlite3_config(i32 noundef 13, i32 noundef %spec.store.select6, i32 noundef %spec.store.select12) #13
  %132 = mul nuw nsw i32 %spec.store.select12, %spec.store.select6
  %133 = icmp eq i32 %132, 0
  br i1 %133, label %134, label %188

134:                                              ; preds = %122
  %135 = load i32, ptr %42, align 4, !tbaa !17
  %136 = and i32 %135, -3
  store i32 %136, ptr %42, align 4, !tbaa !17
  br label %188

137:                                              ; preds = %119
  %138 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.53) #15
  %139 = icmp eq i32 %138, 0
  br i1 %139, label %140, label %145

140:                                              ; preds = %137
  %141 = add nsw i32 %.0235346, 1
  %142 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %141)
  %143 = call i64 @integerValue(ptr noundef %142)
  %144 = call i32 (i32, ...) @sqlite3_config(i32 noundef 22, i64 noundef %143, i64 noundef %143) #13
  br label %188

145:                                              ; preds = %137
  %146 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.54) #15
  %147 = icmp eq i32 %146, 0
  br i1 %147, label %148, label %151

148:                                              ; preds = %145
  %149 = add nsw i32 %.0235346, 1
  %150 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %149)
  br label %188

151:                                              ; preds = %145
  %152 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.55) #15
  %153 = icmp eq i32 %152, 0
  br i1 %153, label %154, label %155

154:                                              ; preds = %151
  store i8 2, ptr %40, align 1, !tbaa !18
  br label %188

155:                                              ; preds = %151
  %156 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.56) #15
  %157 = icmp eq i32 %156, 0
  br i1 %157, label %158, label %159

158:                                              ; preds = %155
  store i8 5, ptr %40, align 1, !tbaa !18
  br label %188

159:                                              ; preds = %155
  %160 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.57) #15
  %161 = icmp eq i32 %160, 0
  br i1 %161, label %162, label %170

162:                                              ; preds = %159
  %163 = add nsw i32 %.0235346, 1
  %164 = icmp slt i32 %163, %0
  br i1 %164, label %165, label %170

165:                                              ; preds = %162
  %166 = sext i32 %163 to i64
  %167 = getelementptr inbounds ptr, ptr %1, i64 %166
  %168 = load ptr, ptr %167, align 8, !tbaa !5
  %169 = call i64 @integerValue(ptr noundef %168)
  store i64 %169, ptr %41, align 8, !tbaa !19
  br label %188

170:                                              ; preds = %162, %159
  %171 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.58) #15
  %172 = icmp eq i32 %171, 0
  br i1 %172, label %173, label %174

173:                                              ; preds = %170
  store i8 4, ptr %40, align 1, !tbaa !18
  br label %188

174:                                              ; preds = %170
  %175 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.59) #15
  %176 = icmp eq i32 %175, 0
  br i1 %176, label %177, label %178

177:                                              ; preds = %174
  store i32 16777216, ptr %39, align 8, !tbaa !20
  br label %188

178:                                              ; preds = %174
  %179 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.60) #15
  %180 = icmp eq i32 %179, 0
  br i1 %180, label %181, label %184

181:                                              ; preds = %178
  %182 = load ptr, ptr @stderr, align 8, !tbaa !5
  %183 = call i32 @sqlite3MemTraceActivate(ptr noundef %182)
  br label %188

184:                                              ; preds = %178
  %185 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select, ptr noundef nonnull dereferenceable(1) @.str.61) #15
  %186 = icmp eq i32 %185, 0
  br i1 %186, label %187, label %188

187:                                              ; preds = %184
  store i32 1, ptr @bail_on_error, align 4, !tbaa !9
  br label %188

188:                                              ; preds = %122, %134, %82, %92, %148, %158, %173, %181, %187, %184, %177, %165, %154, %140, %114, %88, %76
  %.1250 = phi ptr [ %.0249344, %76 ], [ %.0249344, %82 ], [ %.0249344, %88 ], [ %.0249344, %92 ], [ %.0249344, %114 ], [ %.0249344, %140 ], [ %150, %148 ], [ %.0249344, %154 ], [ %.0249344, %158 ], [ %.0249344, %165 ], [ %.0249344, %173 ], [ %.0249344, %177 ], [ %.0249344, %181 ], [ %.0249344, %187 ], [ %.0249344, %184 ], [ %.0249344, %134 ], [ %.0249344, %122 ]
  %.1236 = phi i32 [ %77, %76 ], [ %83, %82 ], [ %.0235346, %88 ], [ %93, %92 ], [ %102, %114 ], [ %141, %140 ], [ %149, %148 ], [ %.0235346, %154 ], [ %.0235346, %158 ], [ %163, %165 ], [ %.0235346, %173 ], [ %.0235346, %177 ], [ %.0235346, %181 ], [ %.0235346, %187 ], [ %.0235346, %184 ], [ %127, %134 ], [ %127, %122 ]
  %.1232 = phi ptr [ %.0231347, %76 ], [ %84, %82 ], [ %.0231347, %88 ], [ %.0231347, %92 ], [ %.0231347, %114 ], [ %.0231347, %140 ], [ %.0231347, %148 ], [ %.0231347, %154 ], [ %.0231347, %158 ], [ %.0231347, %165 ], [ %.0231347, %173 ], [ %.0231347, %177 ], [ %.0231347, %181 ], [ %.0231347, %187 ], [ %.0231347, %184 ], [ %.0231347, %134 ], [ %.0231347, %122 ]
  %189 = add nsw i32 %.1236, 1
  %190 = icmp slt i32 %189, %0
  br i1 %190, label %43, label %._crit_edge, !llvm.loop !21

._crit_edge:                                      ; preds = %188, %35
  %.0253.lcssa = phi i32 [ 0, %35 ], [ %.1254, %188 ]
  %.0251.lcssa = phi ptr [ null, %35 ], [ %.1252, %188 ]
  %.0249.lcssa = phi ptr [ null, %35 ], [ %.1250, %188 ]
  %.0245.lcssa = phi i32 [ 1, %35 ], [ %.1246, %188 ]
  %.0235.lcssa = phi i32 [ 1, %35 ], [ %189, %188 ]
  %.0231.lcssa = phi ptr [ null, %35 ], [ %.1232, %188 ]
  call void @verify_uninitialized()
  %191 = call i32 @sqlite3_initialize() #13
  %.not281 = icmp eq ptr %.0249.lcssa, null
  br i1 %.not281, label %202, label %192

192:                                              ; preds = %._crit_edge
  %193 = call ptr @sqlite3_vfs_find(ptr noundef nonnull %.0249.lcssa) #13
  %.not282 = icmp eq ptr %193, null
  br i1 %.not282, label %196, label %194

194:                                              ; preds = %192
  %195 = call i32 @sqlite3_vfs_register(ptr noundef nonnull %193, i32 noundef 1) #13
  br label %202

196:                                              ; preds = %192
  %197 = load ptr, ptr @stderr, align 8, !tbaa !5
  %198 = zext nneg i32 %.0235.lcssa to i64
  %199 = getelementptr inbounds ptr, ptr %1, i64 %198
  %200 = load ptr, ptr %199, align 8, !tbaa !5
  %201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %197, ptr noundef nonnull @.str.62, ptr noundef %200) #14
  call void @exit(i32 noundef 1) #16
  unreachable

202:                                              ; preds = %194, %._crit_edge
  %203 = getelementptr inbounds i8, ptr %4, i64 4400
  %204 = load ptr, ptr %203, align 8, !tbaa !12
  %205 = icmp eq ptr %204, null
  br i1 %205, label %206, label %209

206:                                              ; preds = %202
  store ptr @.str.27, ptr %203, align 8, !tbaa !12
  %207 = icmp eq i32 %0, 1
  %208 = zext i1 %207 to i32
  br label %209

209:                                              ; preds = %206, %202
  %.0244 = phi i32 [ %208, %206 ], [ 0, %202 ]
  %210 = load ptr, ptr @stdout, align 8, !tbaa !5
  %211 = getelementptr inbounds i8, ptr %4, i64 56
  store ptr %210, ptr %211, align 8, !tbaa !23
  %212 = call i32 @sqlite3_appendvfs_init(ptr noundef null, ptr noundef null, ptr noundef null)
  %213 = load ptr, ptr %203, align 8, !tbaa !12
  %214 = call i32 @access(ptr noundef %213, i32 noundef 0) #13
  %215 = icmp eq i32 %214, 0
  br i1 %215, label %216, label %217

216:                                              ; preds = %209
  call void @open_db(ptr noundef nonnull %4, i32 noundef 0)
  br label %217

217:                                              ; preds = %216, %209
  call void @process_sqliterc(ptr noundef nonnull %4, ptr noundef %.0231.lcssa)
  br i1 %37, label %.lr.ph356, label %._crit_edge357

.lr.ph356:                                        ; preds = %217
  %218 = add nsw i32 %0, -1
  %219 = getelementptr inbounds i8, ptr %4, i64 116
  %220 = getelementptr inbounds i8, ptr %4, i64 12
  %221 = getelementptr inbounds i8, ptr %4, i64 20
  %222 = getelementptr inbounds i8, ptr %4, i64 9
  %223 = getelementptr inbounds i8, ptr %4, i64 96
  %224 = getelementptr inbounds i8, ptr %4, i64 284
  %225 = getelementptr inbounds i8, ptr %4, i64 202
  %226 = getelementptr inbounds i8, ptr %4, i64 182
  %227 = getelementptr inbounds i8, ptr %4, i64 76
  %228 = getelementptr inbounds i8, ptr %4, i64 40
  %229 = getelementptr inbounds i8, ptr %4, i64 13
  %230 = getelementptr inbounds i8, ptr %4, i64 128
  %231 = load i16, ptr @.str.66, align 1
  %232 = getelementptr inbounds i8, ptr %4, i64 84
  br label %233

233:                                              ; preds = %.lr.ph356, %478
  %.2237354 = phi i32 [ 1, %.lr.ph356 ], [ %479, %478 ]
  %.0238353 = phi i32 [ 0, %.lr.ph356 ], [ %.2240.ph, %478 ]
  %234 = sext i32 %.2237354 to i64
  %235 = getelementptr inbounds ptr, ptr %1, i64 %234
  %236 = load ptr, ptr %235, align 8, !tbaa !5
  %237 = load i8, ptr %236, align 1, !tbaa !11
  %.not283 = icmp eq i8 %237, 45
  br i1 %.not283, label %238, label %478

238:                                              ; preds = %233
  %239 = getelementptr inbounds i8, ptr %236, i64 1
  %240 = load i8, ptr %239, align 1, !tbaa !11
  %241 = icmp eq i8 %240, 45
  %spec.select300 = select i1 %241, ptr %239, ptr %236
  %242 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.48) #15
  %243 = icmp eq i32 %242, 0
  br i1 %243, label %244, label %246

244:                                              ; preds = %238
  %245 = add nsw i32 %.2237354, 1
  br label %476

246:                                              ; preds = %238
  %247 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.63) #15
  %248 = icmp eq i32 %247, 0
  br i1 %248, label %249, label %250

249:                                              ; preds = %246
  store i32 4, ptr %227, align 4, !tbaa !24
  br label %476

250:                                              ; preds = %246
  %251 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.64) #15
  %252 = icmp eq i32 %251, 0
  br i1 %252, label %253, label %254

253:                                              ; preds = %250
  store i32 2, ptr %227, align 4, !tbaa !24
  br label %476

254:                                              ; preds = %250
  %255 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.65) #15
  %256 = icmp eq i32 %255, 0
  br i1 %256, label %257, label %260

257:                                              ; preds = %254
  store i32 6, ptr %227, align 4, !tbaa !24
  %258 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %226, ptr noundef nonnull @.str.66) #13
  %259 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %225, ptr noundef nonnull @.str.67) #13
  br label %476

260:                                              ; preds = %254
  %261 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.68) #15
  %262 = icmp eq i32 %261, 0
  br i1 %262, label %263, label %264

263:                                              ; preds = %260
  store i32 0, ptr %227, align 4, !tbaa !24
  br label %476

264:                                              ; preds = %260
  %265 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.69) #15
  %266 = icmp eq i32 %265, 0
  br i1 %266, label %267, label %268

267:                                              ; preds = %264
  store i32 1, ptr %227, align 4, !tbaa !24
  br label %476

268:                                              ; preds = %264
  %269 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.70) #15
  %270 = icmp eq i32 %269, 0
  br i1 %270, label %271, label %272

271:                                              ; preds = %268
  store i32 13, ptr %227, align 4, !tbaa !24
  br label %476

272:                                              ; preds = %268
  %273 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.71) #15
  %274 = icmp eq i32 %273, 0
  br i1 %274, label %275, label %276

275:                                              ; preds = %272
  store i32 14, ptr %227, align 4, !tbaa !24
  br label %476

276:                                              ; preds = %272
  %277 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.72) #15
  %278 = icmp eq i32 %277, 0
  br i1 %278, label %279, label %280

279:                                              ; preds = %276
  store i32 15, ptr %227, align 4, !tbaa !24
  br label %476

280:                                              ; preds = %276
  %281 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.73) #15
  %282 = icmp eq i32 %281, 0
  br i1 %282, label %283, label %284

283:                                              ; preds = %280
  store i32 16, ptr %227, align 4, !tbaa !24
  br label %476

284:                                              ; preds = %280
  %285 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.74) #15
  %286 = icmp eq i32 %285, 0
  br i1 %286, label %287, label %288

287:                                              ; preds = %284
  store i32 8, ptr %227, align 4, !tbaa !24
  store i16 %231, ptr %226, align 2
  br label %476

288:                                              ; preds = %284
  %289 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.55) #15
  %290 = icmp eq i32 %289, 0
  br i1 %290, label %291, label %292

291:                                              ; preds = %288
  store i8 2, ptr %229, align 1, !tbaa !18
  br label %476

292:                                              ; preds = %288
  %293 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.56) #15
  %294 = icmp eq i32 %293, 0
  br i1 %294, label %295, label %296

295:                                              ; preds = %292
  store i8 5, ptr %229, align 1, !tbaa !18
  br label %476

296:                                              ; preds = %292
  %297 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.57) #15
  %298 = icmp eq i32 %297, 0
  br i1 %298, label %299, label %307

299:                                              ; preds = %296
  %300 = add nsw i32 %.2237354, 1
  %301 = icmp slt i32 %300, %0
  br i1 %301, label %302, label %307

302:                                              ; preds = %299
  %303 = sext i32 %300 to i64
  %304 = getelementptr inbounds ptr, ptr %1, i64 %303
  %305 = load ptr, ptr %304, align 8, !tbaa !5
  %306 = call i64 @integerValue(ptr noundef %305)
  store i64 %306, ptr %230, align 8, !tbaa !19
  br label %476

307:                                              ; preds = %299, %296
  %308 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.58) #15
  %309 = icmp eq i32 %308, 0
  br i1 %309, label %310, label %311

310:                                              ; preds = %307
  store i8 4, ptr %229, align 1, !tbaa !18
  br label %476

311:                                              ; preds = %307
  %312 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.59) #15
  %313 = icmp eq i32 %312, 0
  br i1 %313, label %314, label %317

314:                                              ; preds = %311
  %315 = load i32, ptr %228, align 8, !tbaa !20
  %316 = or i32 %315, 16777216
  store i32 %316, ptr %228, align 8, !tbaa !20
  br label %476

317:                                              ; preds = %311
  %318 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.75) #15
  %319 = icmp eq i32 %318, 0
  br i1 %319, label %320, label %323

320:                                              ; preds = %317
  store i32 10, ptr %227, align 4, !tbaa !24
  %321 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %226, ptr noundef nonnull @.str.76) #13
  %322 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %225, ptr noundef nonnull @.str.77) #13
  br label %476

323:                                              ; preds = %317
  %324 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.78) #15
  %325 = icmp eq i32 %324, 0
  br i1 %325, label %326, label %329

326:                                              ; preds = %323
  store i32 2, ptr %227, align 4, !tbaa !24
  %327 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %226, ptr noundef nonnull @.str.79) #13
  %328 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %225, ptr noundef nonnull @.str.67) #13
  br label %476

329:                                              ; preds = %323
  %330 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.44) #15
  %331 = icmp eq i32 %330, 0
  br i1 %331, label %332, label %336

332:                                              ; preds = %329
  %333 = add nsw i32 %.2237354, 1
  %334 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %333)
  %335 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %226, ptr noundef nonnull @.str.80, ptr noundef %334) #13
  br label %476

336:                                              ; preds = %329
  %337 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.46) #15
  %338 = icmp eq i32 %337, 0
  br i1 %338, label %339, label %343

339:                                              ; preds = %336
  %340 = add nsw i32 %.2237354, 1
  %341 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %340)
  %342 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %225, ptr noundef nonnull @.str.80, ptr noundef %341) #13
  br label %476

343:                                              ; preds = %336
  %344 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.45) #15
  %345 = icmp eq i32 %344, 0
  br i1 %345, label %346, label %350

346:                                              ; preds = %343
  %347 = add nsw i32 %.2237354, 1
  %348 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %347)
  %349 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %224, ptr noundef nonnull @.str.80, ptr noundef %348) #13
  br label %476

350:                                              ; preds = %343
  %351 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.81) #15
  %352 = icmp eq i32 %351, 0
  br i1 %352, label %353, label %354

353:                                              ; preds = %350
  store i32 1, ptr %223, align 8, !tbaa !25
  br label %476

354:                                              ; preds = %350
  %355 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.82) #15
  %356 = icmp eq i32 %355, 0
  br i1 %356, label %357, label %358

357:                                              ; preds = %354
  store i32 0, ptr %223, align 8, !tbaa !25
  br label %476

358:                                              ; preds = %354
  %359 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.83) #15
  %360 = icmp eq i32 %359, 0
  br i1 %360, label %361, label %364

361:                                              ; preds = %358
  %362 = load i32, ptr %219, align 4, !tbaa !17
  %363 = or i32 %362, 64
  store i32 %363, ptr %219, align 4, !tbaa !17
  br label %476

364:                                              ; preds = %358
  %365 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.84) #15
  %366 = icmp eq i32 %365, 0
  br i1 %366, label %367, label %368

367:                                              ; preds = %364
  store i8 1, ptr %222, align 1, !tbaa !26
  br label %476

368:                                              ; preds = %364
  %369 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.85) #15
  %370 = icmp eq i32 %369, 0
  br i1 %370, label %371, label %372

371:                                              ; preds = %368
  store i8 3, ptr %222, align 1, !tbaa !26
  br label %476

372:                                              ; preds = %368
  %373 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.86) #15
  %374 = icmp eq i32 %373, 0
  br i1 %374, label %375, label %376

375:                                              ; preds = %372
  store i32 1, ptr %221, align 4, !tbaa !27
  br label %476

376:                                              ; preds = %372
  %377 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.87) #15
  %378 = icmp eq i32 %377, 0
  br i1 %378, label %379, label %380

379:                                              ; preds = %376
  store i8 1, ptr %220, align 4, !tbaa !28
  br label %476

380:                                              ; preds = %376
  %381 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.88) #15
  %382 = icmp eq i32 %381, 0
  br i1 %382, label %383, label %386

383:                                              ; preds = %380
  %384 = load i32, ptr %219, align 4, !tbaa !17
  %385 = or i32 %384, 4
  store i32 %385, ptr %219, align 4, !tbaa !17
  br label %476

386:                                              ; preds = %380
  %387 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.61) #15
  %388 = icmp eq i32 %387, 0
  br i1 %388, label %476, label %389

389:                                              ; preds = %386
  %390 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.89) #15
  %391 = icmp eq i32 %390, 0
  br i1 %391, label %392, label %396

392:                                              ; preds = %389
  %393 = call ptr @sqlite3_libversion() #13
  %394 = call ptr @sqlite3_sourceid() #13
  %395 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.90, ptr noundef %393, ptr noundef %394)
  br label %.thread

396:                                              ; preds = %389
  %397 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.91) #15
  %398 = icmp eq i32 %397, 0
  br i1 %398, label %399, label %400

399:                                              ; preds = %396
  store i32 1, ptr @stdin_is_interactive, align 4, !tbaa !9
  br label %476

400:                                              ; preds = %396
  %401 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.49) #15
  %402 = icmp eq i32 %401, 0
  br i1 %402, label %403, label %404

403:                                              ; preds = %400
  store i32 0, ptr @stdin_is_interactive, align 4, !tbaa !9
  br label %476

404:                                              ; preds = %400
  %405 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.50) #15
  %406 = icmp eq i32 %405, 0
  br i1 %406, label %407, label %409

407:                                              ; preds = %404
  %408 = add nsw i32 %.2237354, 1
  br label %476

409:                                              ; preds = %404
  %410 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.51) #15
  %411 = icmp eq i32 %410, 0
  br i1 %411, label %412, label %414

412:                                              ; preds = %409
  %413 = add nsw i32 %.2237354, 2
  br label %476

414:                                              ; preds = %409
  %415 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.52) #15
  %416 = icmp eq i32 %415, 0
  br i1 %416, label %417, label %419

417:                                              ; preds = %414
  %418 = add nsw i32 %.2237354, 2
  br label %476

419:                                              ; preds = %414
  %420 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.53) #15
  %421 = icmp eq i32 %420, 0
  br i1 %421, label %422, label %424

422:                                              ; preds = %419
  %423 = add nsw i32 %.2237354, 1
  br label %476

424:                                              ; preds = %419
  %425 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.60) #15
  %426 = icmp eq i32 %425, 0
  br i1 %426, label %427, label %429

427:                                              ; preds = %424
  %428 = add nsw i32 %.2237354, 1
  br label %476

429:                                              ; preds = %424
  %430 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.54) #15
  %431 = icmp eq i32 %430, 0
  br i1 %431, label %432, label %434

432:                                              ; preds = %429
  %433 = add nsw i32 %.2237354, 1
  br label %476

434:                                              ; preds = %429
  %435 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.92) #15
  %436 = icmp eq i32 %435, 0
  br i1 %436, label %437, label %438

437:                                              ; preds = %434
  call void @usage(i32 noundef 1)
  br label %476

438:                                              ; preds = %434
  %439 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %spec.select300, ptr noundef nonnull dereferenceable(1) @.str.47) #15
  %440 = icmp eq i32 %439, 0
  br i1 %440, label %441, label %470

441:                                              ; preds = %438
  %442 = icmp eq i32 %.2237354, %218
  br i1 %442, label %._crit_edge357, label %443

443:                                              ; preds = %441
  %444 = add nsw i32 %.2237354, 1
  %445 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %444)
  %446 = load i8, ptr %445, align 1, !tbaa !11
  %447 = icmp eq i8 %446, 46
  br i1 %447, label %448, label %456

448:                                              ; preds = %443
  %449 = call i32 @do_meta_command(ptr noundef nonnull %445, ptr noundef nonnull %4)
  %450 = icmp ne i32 %449, 0
  %451 = load i32, ptr @bail_on_error, align 4
  %452 = icmp ne i32 %451, 0
  %or.cond8 = select i1 %450, i1 %452, i1 false
  br i1 %or.cond8, label %453, label %476

453:                                              ; preds = %448
  %454 = icmp eq i32 %449, 2
  %455 = select i1 %454, i32 0, i32 %449
  br label %.thread

456:                                              ; preds = %443
  call void @open_db(ptr noundef nonnull %4, i32 noundef 0)
  %457 = call i32 @shell_exec(ptr noundef nonnull %4, ptr noundef nonnull %445, ptr noundef nonnull %3)
  %458 = load ptr, ptr %3, align 8, !tbaa !5
  %.not284 = icmp eq ptr %458, null
  br i1 %.not284, label %465, label %459

459:                                              ; preds = %456
  %460 = load ptr, ptr @stderr, align 8, !tbaa !5
  %461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %460, ptr noundef nonnull @.str.93, ptr noundef nonnull %458) #14
  %462 = load i32, ptr @bail_on_error, align 4, !tbaa !9
  %.not287 = icmp eq i32 %462, 0
  br i1 %.not287, label %476, label %463

463:                                              ; preds = %459
  %464 = call i32 @llvm.umax.i32(i32 %457, i32 1)
  br label %.thread

465:                                              ; preds = %456
  %.not285 = icmp eq i32 %457, 0
  br i1 %.not285, label %476, label %466

466:                                              ; preds = %465
  %467 = load ptr, ptr @stderr, align 8, !tbaa !5
  %468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %467, ptr noundef nonnull @.str.94, ptr noundef nonnull %445) #14
  %469 = load i32, ptr @bail_on_error, align 4, !tbaa !9
  %.not286 = icmp eq i32 %469, 0
  br i1 %.not286, label %476, label %.thread

470:                                              ; preds = %438
  %471 = load ptr, ptr @stderr, align 8, !tbaa !5
  %472 = load ptr, ptr @Argv0, align 8, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef nonnull @.str.95, ptr noundef %472, ptr noundef nonnull %spec.select300) #14
  %474 = load ptr, ptr @stderr, align 8, !tbaa !5
  %475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %474, ptr noundef nonnull @.str.96) #14
  br label %.thread

476:                                              ; preds = %249, %257, %267, %275, %283, %291, %302, %314, %326, %339, %353, %361, %371, %379, %386, %399, %407, %417, %427, %437, %448, %465, %466, %459, %432, %422, %412, %403, %383, %375, %367, %357, %346, %332, %320, %310, %295, %287, %279, %271, %263, %253, %244
  %.1239 = phi i32 [ %.0238353, %244 ], [ %.0238353, %249 ], [ %.0238353, %253 ], [ %.0238353, %257 ], [ %.0238353, %263 ], [ %.0238353, %267 ], [ %.0238353, %271 ], [ %.0238353, %275 ], [ %.0238353, %279 ], [ %.0238353, %283 ], [ %.0238353, %287 ], [ %.0238353, %291 ], [ %.0238353, %295 ], [ %.0238353, %302 ], [ %.0238353, %310 ], [ %.0238353, %314 ], [ %.0238353, %320 ], [ %.0238353, %326 ], [ %.0238353, %332 ], [ %.0238353, %339 ], [ %.0238353, %346 ], [ %.0238353, %353 ], [ %.0238353, %357 ], [ %.0238353, %361 ], [ %.0238353, %367 ], [ %.0238353, %371 ], [ %.0238353, %375 ], [ %.0238353, %379 ], [ %.0238353, %383 ], [ %.0238353, %386 ], [ %.0238353, %399 ], [ %.0238353, %403 ], [ %.0238353, %407 ], [ %.0238353, %412 ], [ %.0238353, %417 ], [ %.0238353, %422 ], [ %.0238353, %427 ], [ %.0238353, %432 ], [ %.0238353, %437 ], [ %449, %448 ], [ %457, %459 ], [ %457, %466 ], [ 0, %465 ]
  %.3 = phi i32 [ %245, %244 ], [ %.2237354, %249 ], [ %.2237354, %253 ], [ %.2237354, %257 ], [ %.2237354, %263 ], [ %.2237354, %267 ], [ %.2237354, %271 ], [ %.2237354, %275 ], [ %.2237354, %279 ], [ %.2237354, %283 ], [ %.2237354, %287 ], [ %.2237354, %291 ], [ %.2237354, %295 ], [ %300, %302 ], [ %.2237354, %310 ], [ %.2237354, %314 ], [ %.2237354, %320 ], [ %.2237354, %326 ], [ %333, %332 ], [ %340, %339 ], [ %347, %346 ], [ %.2237354, %353 ], [ %.2237354, %357 ], [ %.2237354, %361 ], [ %.2237354, %367 ], [ %.2237354, %371 ], [ %.2237354, %375 ], [ %.2237354, %379 ], [ %.2237354, %383 ], [ %.2237354, %386 ], [ %.2237354, %399 ], [ %.2237354, %403 ], [ %408, %407 ], [ %413, %412 ], [ %418, %417 ], [ %423, %422 ], [ %428, %427 ], [ %433, %432 ], [ %.2237354, %437 ], [ %444, %448 ], [ %444, %459 ], [ %444, %466 ], [ %444, %465 ]
  %477 = load i32, ptr %227, align 4, !tbaa !24
  store i32 %477, ptr %232, align 4, !tbaa !29
  br label %478

478:                                              ; preds = %476, %233
  %.2240.ph = phi i32 [ %.0238353, %233 ], [ %.1239, %476 ]
  %.4.ph = phi i32 [ %.2237354, %233 ], [ %.3, %476 ]
  %479 = add nsw i32 %.4.ph, 1
  %480 = icmp slt i32 %479, %0
  br i1 %480, label %233, label %._crit_edge357, !llvm.loop !30

._crit_edge357:                                   ; preds = %478, %441, %217
  %.0238.lcssa = phi i32 [ 0, %217 ], [ %.0238353, %441 ], [ %.2240.ph, %478 ]
  %.not289 = icmp eq i32 %.0245.lcssa, 0
  br i1 %.not289, label %.preheader, label %508

.preheader:                                       ; preds = %._crit_edge357
  %481 = icmp sgt i32 %.0253.lcssa, 0
  br i1 %481, label %.lr.ph362.preheader, label %.loopexit

.lr.ph362.preheader:                              ; preds = %.preheader
  %wide.trip.count = zext nneg i32 %.0253.lcssa to i64
  br label %.lr.ph362

.lr.ph362:                                        ; preds = %.lr.ph362.preheader, %507
  %indvars.iv = phi i64 [ 0, %.lr.ph362.preheader ], [ %indvars.iv.next, %507 ]
  %482 = getelementptr inbounds ptr, ptr %.0251.lcssa, i64 %indvars.iv
  %483 = load ptr, ptr %482, align 8, !tbaa !5
  %484 = load i8, ptr %483, align 1, !tbaa !11
  %485 = icmp eq i8 %484, 46
  br i1 %485, label %486, label %491

486:                                              ; preds = %.lr.ph362
  %487 = call i32 @do_meta_command(ptr noundef nonnull %483, ptr noundef nonnull %4)
  %.not290 = icmp eq i32 %487, 0
  br i1 %.not290, label %507, label %488

488:                                              ; preds = %486
  call void @free(ptr noundef nonnull %.0251.lcssa) #13
  %489 = icmp eq i32 %487, 2
  %490 = select i1 %489, i32 0, i32 %487
  br label %.thread

491:                                              ; preds = %.lr.ph362
  call void @open_db(ptr noundef nonnull %4, i32 noundef 0)
  %492 = load ptr, ptr %482, align 8, !tbaa !5
  %493 = call i32 @shell_exec(ptr noundef nonnull %4, ptr noundef %492, ptr noundef nonnull %3)
  %494 = load ptr, ptr %3, align 8, !tbaa !5
  %495 = icmp ne ptr %494, null
  %496 = icmp ne i32 %493, 0
  %or.cond10 = select i1 %495, i1 true, i1 %496
  br i1 %or.cond10, label %497, label %507

497:                                              ; preds = %491
  %498 = load ptr, ptr @stderr, align 8, !tbaa !5
  br i1 %495, label %499, label %501

499:                                              ; preds = %497
  %500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %498, ptr noundef nonnull @.str.93, ptr noundef nonnull %494) #14
  br label %504

501:                                              ; preds = %497
  %502 = load ptr, ptr %482, align 8, !tbaa !5
  %503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %498, ptr noundef nonnull @.str.97, ptr noundef %502) #14
  br label %504

504:                                              ; preds = %501, %499
  %505 = load ptr, ptr %3, align 8, !tbaa !5
  call void @sqlite3_free(ptr noundef %505) #13
  call void @free(ptr noundef nonnull %.0251.lcssa) #13
  %506 = select i1 %496, i32 %493, i32 1
  br label %.thread

507:                                              ; preds = %486, %491
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit, label %.lr.ph362, !llvm.loop !31

508:                                              ; preds = %._crit_edge357
  %509 = load i32, ptr @stdin_is_interactive, align 4, !tbaa !9
  %.not291 = icmp eq i32 %509, 0
  br i1 %.not291, label %537, label %510

510:                                              ; preds = %508
  %511 = call ptr @sqlite3_libversion() #13
  %512 = call ptr @sqlite3_sourceid() #13
  %513 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.98, ptr noundef %511, ptr noundef %512)
  %.not292 = icmp eq i32 %.0244, 0
  br i1 %.not292, label %517, label %514

514:                                              ; preds = %510
  %515 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.99)
  call void @printBold(ptr noundef nonnull @.str.100)
  %516 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.101)
  br label %517

517:                                              ; preds = %514, %510
  %518 = call ptr @getenv(ptr noundef nonnull @.str.102) #13
  %.not293 = icmp eq ptr %518, null
  br i1 %.not293, label %519, label %531

519:                                              ; preds = %517
  %520 = call ptr @find_home_dir(i32 noundef 0)
  %.not294 = icmp eq ptr %520, null
  br i1 %.not294, label %.thread315, label %521

521:                                              ; preds = %519
  %522 = call i32 @strlen30(ptr noundef nonnull %520)
  %523 = add nsw i32 %522, 20
  %524 = sext i32 %523 to i64
  %525 = call noalias ptr @malloc(i64 noundef %524) #18
  %.not295 = icmp eq ptr %525, null
  br i1 %.not295, label %.thread315, label %.thread318

.thread318:                                       ; preds = %521
  %526 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef %523, ptr noundef nonnull %525, ptr noundef nonnull @.str.103, ptr noundef nonnull %520) #13
  %527 = getelementptr inbounds i8, ptr %4, i64 48
  store ptr null, ptr %527, align 8, !tbaa !32
  %528 = call i32 @process_input(ptr noundef nonnull %4)
  br label %535

.thread315:                                       ; preds = %521, %519
  %529 = getelementptr inbounds i8, ptr %4, i64 48
  store ptr null, ptr %529, align 8, !tbaa !32
  %530 = call i32 @process_input(ptr noundef nonnull %4)
  br label %.loopexit

531:                                              ; preds = %517
  %532 = call noalias ptr @strdup(ptr noundef nonnull %518) #13
  %533 = getelementptr inbounds i8, ptr %4, i64 48
  store ptr null, ptr %533, align 8, !tbaa !32
  %534 = call i32 @process_input(ptr noundef nonnull %4)
  %.not296 = icmp eq ptr %532, null
  br i1 %.not296, label %.loopexit, label %535

535:                                              ; preds = %.thread318, %531
  %536 = phi i32 [ %528, %.thread318 ], [ %534, %531 ]
  %.0230321 = phi ptr [ %525, %.thread318 ], [ %532, %531 ]
  call void @free(ptr noundef nonnull %.0230321) #13
  br label %.loopexit

537:                                              ; preds = %508
  %538 = load ptr, ptr @stdin, align 8, !tbaa !5
  %539 = getelementptr inbounds i8, ptr %4, i64 48
  store ptr %538, ptr %539, align 8, !tbaa !32
  %540 = call i32 @process_input(ptr noundef nonnull %4)
  br label %.loopexit

.loopexit:                                        ; preds = %507, %.preheader, %.thread315, %531, %535, %537
  %.6 = phi i32 [ %540, %537 ], [ %536, %535 ], [ %534, %531 ], [ %530, %.thread315 ], [ %.0238.lcssa, %.preheader ], [ 0, %507 ]
  call void @free(ptr noundef %.0251.lcssa) #13
  call void @set_table_name(ptr noundef nonnull %4, ptr noundef null)
  %541 = load ptr, ptr %4, align 8, !tbaa !33
  %.not297 = icmp eq ptr %541, null
  br i1 %.not297, label %543, label %542

542:                                              ; preds = %.loopexit
  call void @close_db(ptr noundef nonnull %541)
  br label %543

543:                                              ; preds = %542, %.loopexit
  %544 = getelementptr inbounds i8, ptr %4, i64 4408
  %545 = load ptr, ptr %544, align 8, !tbaa !34
  call void @sqlite3_free(ptr noundef %545) #13
  %546 = call ptr @find_home_dir(i32 noundef 1)
  call void @output_reset(ptr noundef nonnull %4)
  %547 = getelementptr inbounds i8, ptr %4, i64 14
  store i8 0, ptr %547, align 2, !tbaa !35
  call void @clearTempFile(ptr noundef nonnull %4)
  %548 = getelementptr inbounds i8, ptr %4, i64 264
  %549 = load ptr, ptr %548, align 8, !tbaa !36
  call void @free(ptr noundef %549) #13
  br label %.thread

.thread:                                          ; preds = %466, %470, %463, %453, %392, %543, %504, %488
  %.2 = phi i32 [ %.6, %543 ], [ %490, %488 ], [ %506, %504 ], [ 1, %470 ], [ %464, %463 ], [ %455, %453 ], [ 0, %392 ], [ %457, %466 ]
  call void @llvm.lifetime.end.p0(i64 4592, ptr nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #13
  ret i32 %.2
}

; Function Attrs: nofree nounwind
declare noundef i32 @setvbuf(ptr nocapture noundef, ptr noundef, i32 noundef, i64 noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #4

; Function Attrs: nofree nounwind memory(read)
declare noundef ptr @getenv(ptr nocapture noundef) local_unnamed_addr #5

; Function Attrs: nounwind
declare i32 @getpid() local_unnamed_addr #4

; Function Attrs: nofree nounwind
declare noundef i32 @fgetc(ptr nocapture noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare i32 @raise(i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strncmp(ptr nocapture noundef, ptr nocapture noundef, i64 noundef) local_unnamed_addr #6

declare ptr @sqlite3_sourceid() local_unnamed_addr #2

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #7

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #7

; Function Attrs: nounwind
declare ptr @signal(i32 noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: nounwind uwtable
declare hidden void @interrupt_handler(i32 noundef) #1

; Function Attrs: nounwind uwtable
declare hidden void @verify_uninitialized() local_unnamed_addr #1

; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite)
declare noalias noundef ptr @realloc(ptr allocptr nocapture noundef, i64 noundef) local_unnamed_addr #8

; Function Attrs: nounwind uwtable
declare hidden void @shell_out_of_memory() local_unnamed_addr #1

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #6

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

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

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #9

declare i32 @sqlite3_initialize() local_unnamed_addr #2

; Function Attrs: nofree nounwind
declare noundef i32 @access(ptr nocapture noundef readonly, i32 noundef) local_unnamed_addr #3

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

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

declare ptr @sqlite3_snprintf(i32 noundef, ptr noundef, ptr noundef, ...) local_unnamed_addr #2

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #3

declare ptr @sqlite3_libversion() local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden void @usage(i32 noundef) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #10

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite)
declare noalias ptr @strdup(ptr nocapture noundef readonly) local_unnamed_addr #11

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

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

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

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

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

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

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

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

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

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

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

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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "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 = { nofree nounwind 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 #6 = { 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 #7 = { noreturn nounwind "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 #8 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #9 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #10 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #11 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #12 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #13 = { nounwind }
attributes #14 = { cold nounwind }
attributes #15 = { nounwind willreturn memory(read) }
attributes #16 = { noreturn nounwind }
attributes #17 = { nounwind allocsize(1) }
attributes #18 = { nounwind allocsize(0) }

!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 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !6, i64 4400}
!13 = !{!"ShellState", !6, i64 0, !7, i64 8, !7, i64 9, !7, i64 10, !7, i64 11, !7, i64 12, !7, i64 13, !7, i64 14, !7, i64 15, !7, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !14, i64 128, !6, i64 136, !6, i64 144, !7, i64 152, !7, i64 182, !7, i64 202, !7, i64 222, !7, i64 242, !6, i64 264, !6, i64 272, !10, i64 280, !7, i64 284, !7, i64 304, !6, i64 4400, !6, i64 4408, !6, i64 4416, !6, i64 4424, !6, i64 4432, !6, i64 4440, !10, i64 4448, !10, i64 4452, !15, i64 4456, !16, i64 4576}
!14 = !{!"long long", !7, i64 0}
!15 = !{!"EQPGraph", !6, i64 0, !6, i64 8, !7, i64 16}
!16 = !{!"ExpertInfo", !6, i64 0, !10, i64 8}
!17 = !{!13, !10, i64 116}
!18 = !{!13, !7, i64 13}
!19 = !{!13, !14, i64 128}
!20 = !{!13, !10, i64 40}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = !{!13, !6, i64 56}
!24 = !{!13, !10, i64 76}
!25 = !{!13, !10, i64 96}
!26 = !{!13, !7, i64 9}
!27 = !{!13, !10, i64 20}
!28 = !{!13, !7, i64 12}
!29 = !{!13, !10, i64 84}
!30 = distinct !{!30, !22}
!31 = distinct !{!31, !22}
!32 = !{!13, !6, i64 48}
!33 = !{!13, !6, i64 0}
!34 = !{!13, !6, i64 4408}
!35 = !{!13, !7, i64 14}
!36 = !{!13, !6, i64 264}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass