; LLVM IR from WayneLin92/SSeqCpp :: thirdparty/sqlite3 (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, i8, i8, %struct.ColModeOpts, i32, 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, [5 x %struct.AuxDb], ptr, ptr, i32, i32, ptr, %struct.EQPGraph, %struct.ExpertInfo }
%struct.ColModeOpts = type { i32, i8, i8 }
%struct.AuxDb = type { ptr, ptr, ptr }
%struct.EQPGraph = type { ptr, ptr, [100 x i8] }
%struct.ExpertInfo = type { ptr, i32 }

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

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

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

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

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

; 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: nounwind uwtable
declare dso_local i32 @sqlite3_appendvfs_init(ptr noundef, ptr noundef, ptr noundef) #0

declare ptr @sqlite3_vfs_find(ptr noundef) #2

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

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

declare void @sqlite3_free(ptr noundef) #2

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

; 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) #0 {
  %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 i32, align 4
  %22 = alloca i64, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = 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) #9
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4712, ptr %7) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  store ptr null, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  store i32 0, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  store i32 0, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  store i32 1, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #9
  store i32 0, ptr %13, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  store ptr null, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  store ptr null, ptr %15, align 8, !tbaa !9
  %29 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30 = call i32 @setvbuf(ptr noundef %29, ptr noundef null, i32 noundef 2, i64 noundef 0) #9
  %31 = call i32 @isatty(i32 noundef 0) #9
  store i32 %31, ptr @stdin_is_interactive, align 4, !tbaa !5
  %32 = call i32 @isatty(i32 noundef 1) #9
  store i32 %32, ptr @stdout_is_console, align 4, !tbaa !5
  %33 = call ptr @getenv(ptr noundef @.str.36) #9
  %34 = icmp ne ptr %33, null
  br i1 %34, label %35, label %50

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

38:                                               ; preds = %35
  %39 = call i32 @isatty(i32 noundef 2) #9
  %40 = icmp ne i32 %39, 0
  br i1 %40, label %41, label %47

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

47:                                               ; preds = %38, %35
  %48 = call i32 @raise(i32 noundef 5) #9
  br label %49

49:                                               ; preds = %47, %41
  br label %50

50:                                               ; preds = %49, %2
  %51 = call ptr @sqlite3_sourceid()
  %52 = call i32 @cli_strncmp(ptr noundef %51, ptr noundef @.str.38, i64 noundef 60)
  %53 = icmp ne i32 %52, 0
  br i1 %53, label %54, label %58

54:                                               ; preds = %50
  %55 = load ptr, ptr @stderr, align 8, !tbaa !9
  %56 = call ptr @sqlite3_sourceid()
  %57 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %55, ptr noundef @.str.39, ptr noundef %56, ptr noundef @.str.38) #9
  call void @exit(i32 noundef 1) #10
  unreachable

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

61:                                               ; preds = %58
  %62 = load ptr, ptr %5, align 8, !tbaa !9
  %63 = icmp ne ptr %62, null
  br i1 %63, label %64, label %70

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

69:                                               ; preds = %64
  br label %71

70:                                               ; preds = %64, %61, %58
  call void @__assert_fail(ptr noundef @.str.40, ptr noundef @.str.41, i32 noundef 27044, ptr noundef @__PRETTY_FUNCTION__.main) #10
  unreachable

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

76:                                               ; preds = %407, %71
  %77 = load i32, ptr %9, align 4, !tbaa !5
  %78 = load i32, ptr %4, align 4, !tbaa !5
  %79 = icmp slt i32 %77, %78
  br i1 %79, label %80, label %410

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

91:                                               ; preds = %80
  %92 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 51
  %93 = getelementptr inbounds [5 x %struct.AuxDb], ptr %92, i64 0, i64 0
  %94 = getelementptr inbounds %struct.AuxDb, ptr %93, i32 0, i32 1
  %95 = load ptr, ptr %94, align 8, !tbaa !12
  %96 = icmp eq ptr %95, null
  br i1 %96, label %97, label %102

97:                                               ; preds = %91
  %98 = load ptr, ptr %16, align 8, !tbaa !9
  %99 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 51
  %100 = getelementptr inbounds [5 x %struct.AuxDb], ptr %99, i64 0, i64 0
  %101 = getelementptr inbounds %struct.AuxDb, ptr %100, i32 0, i32 1
  store ptr %98, ptr %101, align 8, !tbaa !12
  br label %117

102:                                              ; preds = %91
  store i32 0, ptr %12, align 4, !tbaa !5
  %103 = load i32, ptr %13, align 4, !tbaa !5
  %104 = add nsw i32 %103, 1
  store i32 %104, ptr %13, align 4, !tbaa !5
  %105 = load ptr, ptr %14, align 8, !tbaa !9
  %106 = load i32, ptr %13, align 4, !tbaa !5
  %107 = sext i32 %106 to i64
  %108 = mul i64 8, %107
  %109 = call ptr @realloc(ptr noundef %105, i64 noundef %108) #11
  store ptr %109, ptr %14, align 8, !tbaa !9
  %110 = load ptr, ptr %14, align 8, !tbaa !9
  call void @shell_check_oom(ptr noundef %110)
  %111 = load ptr, ptr %16, align 8, !tbaa !9
  %112 = load ptr, ptr %14, align 8, !tbaa !9
  %113 = load i32, ptr %13, align 4, !tbaa !5
  %114 = sub nsw i32 %113, 1
  %115 = sext i32 %114 to i64
  %116 = getelementptr inbounds ptr, ptr %112, i64 %115
  store ptr %111, ptr %116, align 8, !tbaa !9
  br label %117

117:                                              ; preds = %102, %97
  br label %118

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

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

127:                                              ; preds = %124, %118
  %128 = load ptr, ptr %16, align 8, !tbaa !9
  %129 = call i32 @cli_strcmp(ptr noundef %128, ptr noundef @.str.42)
  %130 = icmp eq i32 %129, 0
  br i1 %130, label %143, label %131

131:                                              ; preds = %127
  %132 = load ptr, ptr %16, align 8, !tbaa !9
  %133 = call i32 @cli_strcmp(ptr noundef %132, ptr noundef @.str.43)
  %134 = icmp eq i32 %133, 0
  br i1 %134, label %143, label %135

135:                                              ; preds = %131
  %136 = load ptr, ptr %16, align 8, !tbaa !9
  %137 = call i32 @cli_strcmp(ptr noundef %136, ptr noundef @.str.44)
  %138 = icmp eq i32 %137, 0
  br i1 %138, label %143, label %139

139:                                              ; preds = %135
  %140 = load ptr, ptr %16, align 8, !tbaa !9
  %141 = call i32 @cli_strcmp(ptr noundef %140, ptr noundef @.str.45)
  %142 = icmp eq i32 %141, 0
  br i1 %142, label %143, label %149

143:                                              ; preds = %139, %135, %131, %127
  %144 = load i32, ptr %4, align 4, !tbaa !5
  %145 = load ptr, ptr %5, align 8, !tbaa !9
  %146 = load i32, ptr %9, align 4, !tbaa !5
  %147 = add nsw i32 %146, 1
  store i32 %147, ptr %9, align 4, !tbaa !5
  %148 = call ptr @cmdline_option_value(i32 noundef %144, ptr noundef %145, i32 noundef %147)
  br label %406

149:                                              ; preds = %139
  %150 = load ptr, ptr %16, align 8, !tbaa !9
  %151 = call i32 @cli_strcmp(ptr noundef %150, ptr noundef @.str.46)
  %152 = icmp eq i32 %151, 0
  br i1 %152, label %153, label %159

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

159:                                              ; preds = %149
  %160 = load ptr, ptr %16, align 8, !tbaa !9
  %161 = call i32 @cli_strcmp(ptr noundef %160, ptr noundef @.str.47)
  %162 = icmp eq i32 %161, 0
  br i1 %162, label %163, label %164

163:                                              ; preds = %159
  store i32 0, ptr @stdin_is_interactive, align 4, !tbaa !5
  br label %404

164:                                              ; preds = %159
  %165 = load ptr, ptr %16, align 8, !tbaa !9
  %166 = call i32 @cli_strcmp(ptr noundef %165, ptr noundef @.str.48)
  %167 = icmp eq i32 %166, 0
  br i1 %167, label %168, label %174

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

174:                                              ; preds = %164
  %175 = load ptr, ptr %16, align 8, !tbaa !9
  %176 = call i32 @cli_strcmp(ptr noundef %175, ptr noundef @.str.49)
  %177 = icmp eq i32 %176, 0
  br i1 %177, label %178, label %232

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

187:                                              ; preds = %178
  store i64 70000, ptr %18, align 8, !tbaa !14
  br label %188

188:                                              ; preds = %187, %178
  %189 = load i64, ptr %18, align 8, !tbaa !14
  %190 = icmp slt i64 %189, 0
  br i1 %190, label %191, label %192

191:                                              ; preds = %188
  store i64 0, ptr %18, align 8, !tbaa !14
  br label %192

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

201:                                              ; preds = %192
  %202 = load i64, ptr %17, align 8, !tbaa !14
  %203 = icmp sgt i64 %202, 0
  br i1 %203, label %204, label %212

204:                                              ; preds = %201
  %205 = load i64, ptr %18, align 8, !tbaa !14
  %206 = sdiv i64 281474976710655, %205
  %207 = load i64, ptr %17, align 8, !tbaa !14
  %208 = icmp slt i64 %206, %207
  br i1 %208, label %209, label %212

209:                                              ; preds = %204
  %210 = load i64, ptr %18, align 8, !tbaa !14
  %211 = sdiv i64 281474976710655, %210
  store i64 %211, ptr %17, align 8, !tbaa !14
  br label %212

212:                                              ; preds = %209, %204, %201, %192
  %213 = load i64, ptr %17, align 8, !tbaa !14
  %214 = icmp sgt i64 %213, 0
  br i1 %214, label %215, label %223

215:                                              ; preds = %212
  %216 = load i64, ptr %18, align 8, !tbaa !14
  %217 = icmp sgt i64 %216, 0
  br i1 %217, label %218, label %223

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

223:                                              ; preds = %215, %212
  br label %224

224:                                              ; preds = %223, %218
  %225 = phi ptr [ %222, %218 ], [ null, %223 ]
  %226 = load i64, ptr %18, align 8, !tbaa !14
  %227 = load i64, ptr %17, align 8, !tbaa !14
  %228 = call i32 (i32, ...) @sqlite3_config(i32 noundef 7, ptr noundef %225, i64 noundef %226, i64 noundef %227)
  %229 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 34
  %230 = load i32, ptr %229, align 4, !tbaa !16
  %231 = or i32 %230, 1
  store i32 %231, ptr %229, align 4, !tbaa !16
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  br label %402

232:                                              ; preds = %174
  %233 = load ptr, ptr %16, align 8, !tbaa !9
  %234 = call i32 @cli_strcmp(ptr noundef %233, ptr noundef @.str.50)
  %235 = icmp eq i32 %234, 0
  br i1 %235, label %236, label %271

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

246:                                              ; preds = %236
  store i32 0, ptr %20, align 4, !tbaa !5
  br label %247

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

257:                                              ; preds = %247
  store i32 0, ptr %19, align 4, !tbaa !5
  br label %258

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

266:                                              ; preds = %258
  %267 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 34
  %268 = load i32, ptr %267, align 4, !tbaa !16
  %269 = and i32 %268, -3
  store i32 %269, ptr %267, align 4, !tbaa !16
  br label %270

270:                                              ; preds = %266, %258
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %401

271:                                              ; preds = %232
  %272 = load ptr, ptr %16, align 8, !tbaa !9
  %273 = call i32 @cli_strcmp(ptr noundef %272, ptr noundef @.str.51)
  %274 = icmp eq i32 %273, 0
  br i1 %274, label %275, label %291

275:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %276 = load i32, ptr %4, align 4, !tbaa !5
  %277 = load ptr, ptr %5, align 8, !tbaa !9
  %278 = load i32, ptr %9, align 4, !tbaa !5
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr %9, align 4, !tbaa !5
  %280 = call ptr @cmdline_option_value(i32 noundef %276, ptr noundef %277, i32 noundef %279)
  %281 = call i64 @integerValue(ptr noundef %280)
  %282 = trunc i64 %281 to i32
  store i32 %282, ptr %21, align 4, !tbaa !5
  %283 = load i32, ptr %21, align 4, !tbaa !5
  switch i32 %283, label %288 [
    i32 0, label %284
    i32 2, label %286
  ]

284:                                              ; preds = %275
  %285 = call i32 (i32, ...) @sqlite3_config(i32 noundef 1)
  br label %290

286:                                              ; preds = %275
  %287 = call i32 (i32, ...) @sqlite3_config(i32 noundef 2)
  br label %290

288:                                              ; preds = %275
  %289 = call i32 (i32, ...) @sqlite3_config(i32 noundef 3)
  br label %290

290:                                              ; preds = %288, %286, %284
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %400

291:                                              ; preds = %271
  %292 = load ptr, ptr %16, align 8, !tbaa !9
  %293 = call i32 @cli_strcmp(ptr noundef %292, ptr noundef @.str.52)
  %294 = icmp eq i32 %293, 0
  br i1 %294, label %295, label %305

295:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %296 = load i32, ptr %4, align 4, !tbaa !5
  %297 = load ptr, ptr %5, align 8, !tbaa !9
  %298 = load i32, ptr %9, align 4, !tbaa !5
  %299 = add nsw i32 %298, 1
  store i32 %299, ptr %9, align 4, !tbaa !5
  %300 = call ptr @cmdline_option_value(i32 noundef %296, ptr noundef %297, i32 noundef %299)
  %301 = call i64 @integerValue(ptr noundef %300)
  store i64 %301, ptr %22, align 8, !tbaa !14
  %302 = load i64, ptr %22, align 8, !tbaa !14
  %303 = load i64, ptr %22, align 8, !tbaa !14
  %304 = call i32 (i32, ...) @sqlite3_config(i32 noundef 22, i64 noundef %302, i64 noundef %303)
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %399

305:                                              ; preds = %291
  %306 = load ptr, ptr %16, align 8, !tbaa !9
  %307 = call i32 @cli_strcmp(ptr noundef %306, ptr noundef @.str.53)
  %308 = icmp eq i32 %307, 0
  br i1 %308, label %309, label %315

309:                                              ; preds = %305
  %310 = load i32, ptr %4, align 4, !tbaa !5
  %311 = load ptr, ptr %5, align 8, !tbaa !9
  %312 = load i32, ptr %9, align 4, !tbaa !5
  %313 = add nsw i32 %312, 1
  store i32 %313, ptr %9, align 4, !tbaa !5
  %314 = call ptr @cmdline_option_value(i32 noundef %310, ptr noundef %311, i32 noundef %313)
  store ptr %314, ptr %15, align 8, !tbaa !9
  br label %398

315:                                              ; preds = %305
  %316 = load ptr, ptr %16, align 8, !tbaa !9
  %317 = call i32 @cli_strcmp(ptr noundef %316, ptr noundef @.str.54)
  %318 = icmp eq i32 %317, 0
  br i1 %318, label %319, label %321

319:                                              ; preds = %315
  %320 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 2, ptr %320, align 1, !tbaa !21
  br label %397

321:                                              ; preds = %315
  %322 = load ptr, ptr %16, align 8, !tbaa !9
  %323 = call i32 @cli_strcmp(ptr noundef %322, ptr noundef @.str.55)
  %324 = icmp eq i32 %323, 0
  br i1 %324, label %325, label %327

325:                                              ; preds = %321
  %326 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 5, ptr %326, align 1, !tbaa !21
  br label %396

327:                                              ; preds = %321
  %328 = load ptr, ptr %16, align 8, !tbaa !9
  %329 = call i32 @cli_strcmp(ptr noundef %328, ptr noundef @.str.56)
  %330 = icmp eq i32 %329, 0
  br i1 %330, label %331, label %345

331:                                              ; preds = %327
  %332 = load i32, ptr %9, align 4, !tbaa !5
  %333 = add nsw i32 %332, 1
  %334 = load i32, ptr %4, align 4, !tbaa !5
  %335 = icmp slt i32 %333, %334
  br i1 %335, label %336, label %345

336:                                              ; preds = %331
  %337 = load ptr, ptr %5, align 8, !tbaa !9
  %338 = load i32, ptr %9, align 4, !tbaa !5
  %339 = add nsw i32 %338, 1
  store i32 %339, ptr %9, align 4, !tbaa !5
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds ptr, ptr %337, i64 %340
  %342 = load ptr, ptr %341, align 8, !tbaa !9
  %343 = call i64 @integerValue(ptr noundef %342)
  %344 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 36
  store i64 %343, ptr %344, align 8, !tbaa !22
  br label %395

345:                                              ; preds = %331, %327
  %346 = load ptr, ptr %16, align 8, !tbaa !9
  %347 = call i32 @cli_strcmp(ptr noundef %346, ptr noundef @.str.57)
  %348 = icmp eq i32 %347, 0
  br i1 %348, label %349, label %351

349:                                              ; preds = %345
  %350 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 4, ptr %350, align 1, !tbaa !21
  br label %394

351:                                              ; preds = %345
  %352 = load ptr, ptr %16, align 8, !tbaa !9
  %353 = call i32 @cli_strcmp(ptr noundef %352, ptr noundef @.str.58)
  %354 = icmp eq i32 %353, 0
  br i1 %354, label %355, label %357

355:                                              ; preds = %351
  %356 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 19
  store i32 16777216, ptr %356, align 4, !tbaa !23
  br label %393

357:                                              ; preds = %351
  %358 = load ptr, ptr %16, align 8, !tbaa !9
  %359 = call i32 @cli_strcmp(ptr noundef %358, ptr noundef @.str.59)
  %360 = icmp eq i32 %359, 0
  br i1 %360, label %361, label %364

361:                                              ; preds = %357
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = call i32 @sqlite3MemTraceActivate(ptr noundef %362)
  br label %392

364:                                              ; preds = %357
  %365 = load ptr, ptr %16, align 8, !tbaa !9
  %366 = call i32 @cli_strcmp(ptr noundef %365, ptr noundef @.str.60)
  %367 = icmp eq i32 %366, 0
  br i1 %367, label %368, label %369

368:                                              ; preds = %364
  store i32 1, ptr @bail_on_error, align 4, !tbaa !5
  br label %391

369:                                              ; preds = %364
  %370 = load ptr, ptr %16, align 8, !tbaa !9
  %371 = call i32 @cli_strcmp(ptr noundef %370, ptr noundef @.str.61)
  %372 = icmp eq i32 %371, 0
  br i1 %372, label %373, label %384

373:                                              ; preds = %369
  %374 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 56
  %375 = load ptr, ptr %374, align 8, !tbaa !24
  call void @free(ptr noundef %375) #9
  %376 = load ptr, ptr %5, align 8, !tbaa !9
  %377 = load i32, ptr %9, align 4, !tbaa !5
  %378 = add nsw i32 %377, 1
  store i32 %378, ptr %9, align 4, !tbaa !5
  %379 = sext i32 %378 to i64
  %380 = getelementptr inbounds ptr, ptr %376, i64 %379
  %381 = load ptr, ptr %380, align 8, !tbaa !9
  %382 = call noalias ptr @strdup(ptr noundef %381) #9
  %383 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 56
  store ptr %382, ptr %383, align 8, !tbaa !24
  br label %390

384:                                              ; preds = %369
  %385 = load ptr, ptr %16, align 8, !tbaa !9
  %386 = call i32 @cli_strcmp(ptr noundef %385, ptr noundef @.str.62)
  %387 = icmp eq i32 %386, 0
  br i1 %387, label %388, label %389

388:                                              ; preds = %384
  br label %389

389:                                              ; preds = %388, %384
  br label %390

390:                                              ; preds = %389, %373
  br label %391

391:                                              ; preds = %390, %368
  br label %392

392:                                              ; preds = %391, %361
  br label %393

393:                                              ; preds = %392, %355
  br label %394

394:                                              ; preds = %393, %349
  br label %395

395:                                              ; preds = %394, %336
  br label %396

396:                                              ; preds = %395, %325
  br label %397

397:                                              ; preds = %396, %319
  br label %398

398:                                              ; preds = %397, %309
  br label %399

399:                                              ; preds = %398, %295
  br label %400

400:                                              ; preds = %399, %290
  br label %401

401:                                              ; preds = %400, %270
  br label %402

402:                                              ; preds = %401, %224
  br label %403

403:                                              ; preds = %402, %168
  br label %404

404:                                              ; preds = %403, %163
  br label %405

405:                                              ; preds = %404, %153
  br label %406

406:                                              ; preds = %405, %143
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %407

407:                                              ; preds = %406
  %408 = load i32, ptr %9, align 4, !tbaa !5
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr %9, align 4, !tbaa !5
  br label %76, !llvm.loop !25

410:                                              ; preds = %76
  call void @verify_uninitialized()
  %411 = call i32 @sqlite3_initialize()
  %412 = load ptr, ptr %15, align 8, !tbaa !9
  %413 = icmp ne ptr %412, null
  br i1 %413, label %414, label %427

414:                                              ; preds = %410
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %415 = load ptr, ptr %15, align 8, !tbaa !9
  %416 = call ptr @sqlite3_vfs_find(ptr noundef %415)
  store ptr %416, ptr %23, align 8, !tbaa !9
  %417 = load ptr, ptr %23, align 8, !tbaa !9
  %418 = icmp ne ptr %417, null
  br i1 %418, label %419, label %422

419:                                              ; preds = %414
  %420 = load ptr, ptr %23, align 8, !tbaa !9
  %421 = call i32 @sqlite3_vfs_register(ptr noundef %420, i32 noundef 1)
  br label %426

422:                                              ; preds = %414
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = load ptr, ptr %15, align 8, !tbaa !9
  %425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %423, ptr noundef @.str.63, ptr noundef %424) #9
  call void @exit(i32 noundef 1) #10
  unreachable

426:                                              ; preds = %419
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %427

427:                                              ; preds = %426, %410
  %428 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 52
  %429 = load ptr, ptr %428, align 8, !tbaa !27
  %430 = getelementptr inbounds %struct.AuxDb, ptr %429, i32 0, i32 1
  %431 = load ptr, ptr %430, align 8, !tbaa !12
  %432 = icmp eq ptr %431, null
  br i1 %432, label %433, label %440

433:                                              ; preds = %427
  %434 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 52
  %435 = load ptr, ptr %434, align 8, !tbaa !27
  %436 = getelementptr inbounds %struct.AuxDb, ptr %435, i32 0, i32 1
  store ptr @.str.24, ptr %436, align 8, !tbaa !12
  %437 = load i32, ptr %4, align 4, !tbaa !5
  %438 = icmp eq i32 %437, 1
  %439 = zext i1 %438 to i32
  store i32 %439, ptr %11, align 4, !tbaa !5
  br label %440

440:                                              ; preds = %433, %427
  %441 = load ptr, ptr @stdout, align 8, !tbaa !9
  %442 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 21
  store ptr %441, ptr %442, align 8, !tbaa !28
  %443 = call i32 @sqlite3_appendvfs_init(ptr noundef null, ptr noundef null, ptr noundef null)
  %444 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 52
  %445 = load ptr, ptr %444, align 8, !tbaa !27
  %446 = getelementptr inbounds %struct.AuxDb, ptr %445, i32 0, i32 1
  %447 = load ptr, ptr %446, align 8, !tbaa !12
  %448 = call i32 @access(ptr noundef %447, i32 noundef 0) #9
  %449 = icmp eq i32 %448, 0
  br i1 %449, label %450, label %451

450:                                              ; preds = %440
  call void @open_db(ptr noundef %7, i32 noundef 0)
  br label %451

451:                                              ; preds = %450, %440
  %452 = load ptr, ptr %8, align 8, !tbaa !9
  call void @process_sqliterc(ptr noundef %7, ptr noundef %452)
  store i32 1, ptr %9, align 4, !tbaa !5
  br label %453

453:                                              ; preds = %939, %451
  %454 = load i32, ptr %9, align 4, !tbaa !5
  %455 = load i32, ptr %4, align 4, !tbaa !5
  %456 = icmp slt i32 %454, %455
  br i1 %456, label %457, label %942

457:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %458 = load ptr, ptr %5, align 8, !tbaa !9
  %459 = load i32, ptr %9, align 4, !tbaa !5
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds ptr, ptr %458, i64 %460
  %462 = load ptr, ptr %461, align 8, !tbaa !9
  store ptr %462, ptr %24, align 8, !tbaa !9
  %463 = load ptr, ptr %24, align 8, !tbaa !9
  %464 = getelementptr inbounds i8, ptr %463, i64 0
  %465 = load i8, ptr %464, align 1, !tbaa !11
  %466 = sext i8 %465 to i32
  %467 = icmp ne i32 %466, 45
  br i1 %467, label %468, label %469

468:                                              ; preds = %457
  store i32 8, ptr %25, align 4
  br label %936

469:                                              ; preds = %457
  %470 = load ptr, ptr %24, align 8, !tbaa !9
  %471 = getelementptr inbounds i8, ptr %470, i64 1
  %472 = load i8, ptr %471, align 1, !tbaa !11
  %473 = sext i8 %472 to i32
  %474 = icmp eq i32 %473, 45
  br i1 %474, label %475, label %478

475:                                              ; preds = %469
  %476 = load ptr, ptr %24, align 8, !tbaa !9
  %477 = getelementptr inbounds i8, ptr %476, i32 1
  store ptr %477, ptr %24, align 8, !tbaa !9
  br label %478

478:                                              ; preds = %475, %469
  %479 = load ptr, ptr %24, align 8, !tbaa !9
  %480 = call i32 @cli_strcmp(ptr noundef %479, ptr noundef @.str.46)
  %481 = icmp eq i32 %480, 0
  br i1 %481, label %482, label %485

482:                                              ; preds = %478
  %483 = load i32, ptr %9, align 4, !tbaa !5
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr %9, align 4, !tbaa !5
  br label %932

485:                                              ; preds = %478
  %486 = load ptr, ptr %24, align 8, !tbaa !9
  %487 = call i32 @cli_strcmp(ptr noundef %486, ptr noundef @.str.64)
  %488 = icmp eq i32 %487, 0
  br i1 %488, label %489, label %491

489:                                              ; preds = %485
  %490 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 4, ptr %490, align 4, !tbaa !29
  br label %931

491:                                              ; preds = %485
  %492 = load ptr, ptr %24, align 8, !tbaa !9
  %493 = call i32 @cli_strcmp(ptr noundef %492, ptr noundef @.str.65)
  %494 = icmp eq i32 %493, 0
  br i1 %494, label %495, label %497

495:                                              ; preds = %491
  %496 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 2, ptr %496, align 4, !tbaa !29
  br label %930

497:                                              ; preds = %491
  %498 = load ptr, ptr %24, align 8, !tbaa !9
  %499 = call i32 @cli_strcmp(ptr noundef %498, ptr noundef @.str.66)
  %500 = icmp eq i32 %499, 0
  br i1 %500, label %501, label %509

501:                                              ; preds = %497
  %502 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 6, ptr %502, align 4, !tbaa !29
  %503 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 40
  %504 = getelementptr inbounds [20 x i8], ptr %503, i64 0, i64 0
  %505 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %504, ptr noundef @.str.67)
  %506 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 41
  %507 = getelementptr inbounds [20 x i8], ptr %506, i64 0, i64 0
  %508 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %507, ptr noundef @.str.68)
  br label %929

509:                                              ; preds = %497
  %510 = load ptr, ptr %24, align 8, !tbaa !9
  %511 = call i32 @cli_strcmp(ptr noundef %510, ptr noundef @.str.69)
  %512 = icmp eq i32 %511, 0
  br i1 %512, label %513, label %515

513:                                              ; preds = %509
  %514 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 0, ptr %514, align 4, !tbaa !29
  br label %928

515:                                              ; preds = %509
  %516 = load ptr, ptr %24, align 8, !tbaa !9
  %517 = call i32 @cli_strcmp(ptr noundef %516, ptr noundef @.str.70)
  %518 = icmp eq i32 %517, 0
  br i1 %518, label %519, label %521

519:                                              ; preds = %515
  %520 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 1, ptr %520, align 4, !tbaa !29
  br label %927

521:                                              ; preds = %515
  %522 = load ptr, ptr %24, align 8, !tbaa !9
  %523 = call i32 @cli_strcmp(ptr noundef %522, ptr noundef @.str.71)
  %524 = icmp eq i32 %523, 0
  br i1 %524, label %525, label %527

525:                                              ; preds = %521
  %526 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 13, ptr %526, align 4, !tbaa !29
  br label %926

527:                                              ; preds = %521
  %528 = load ptr, ptr %24, align 8, !tbaa !9
  %529 = call i32 @cli_strcmp(ptr noundef %528, ptr noundef @.str.72)
  %530 = icmp eq i32 %529, 0
  br i1 %530, label %531, label %533

531:                                              ; preds = %527
  %532 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 14, ptr %532, align 4, !tbaa !29
  br label %925

533:                                              ; preds = %527
  %534 = load ptr, ptr %24, align 8, !tbaa !9
  %535 = call i32 @cli_strcmp(ptr noundef %534, ptr noundef @.str.73)
  %536 = icmp eq i32 %535, 0
  br i1 %536, label %537, label %539

537:                                              ; preds = %533
  %538 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 15, ptr %538, align 4, !tbaa !29
  br label %924

539:                                              ; preds = %533
  %540 = load ptr, ptr %24, align 8, !tbaa !9
  %541 = call i32 @cli_strcmp(ptr noundef %540, ptr noundef @.str.74)
  %542 = icmp eq i32 %541, 0
  br i1 %542, label %543, label %545

543:                                              ; preds = %539
  %544 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 16, ptr %544, align 4, !tbaa !29
  br label %923

545:                                              ; preds = %539
  %546 = load ptr, ptr %24, align 8, !tbaa !9
  %547 = call i32 @cli_strcmp(ptr noundef %546, ptr noundef @.str.75)
  %548 = icmp eq i32 %547, 0
  br i1 %548, label %549, label %553

549:                                              ; preds = %545
  %550 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 8, ptr %550, align 4, !tbaa !29
  %551 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 40
  %552 = getelementptr inbounds [20 x i8], ptr %551, i64 0, i64 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %552, ptr align 1 @.str.67, i64 2, i1 false)
  br label %922

553:                                              ; preds = %545
  %554 = load ptr, ptr %24, align 8, !tbaa !9
  %555 = call i32 @cli_strcmp(ptr noundef %554, ptr noundef @.str.54)
  %556 = icmp eq i32 %555, 0
  br i1 %556, label %557, label %559

557:                                              ; preds = %553
  %558 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 2, ptr %558, align 1, !tbaa !21
  br label %921

559:                                              ; preds = %553
  %560 = load ptr, ptr %24, align 8, !tbaa !9
  %561 = call i32 @cli_strcmp(ptr noundef %560, ptr noundef @.str.55)
  %562 = icmp eq i32 %561, 0
  br i1 %562, label %563, label %565

563:                                              ; preds = %559
  %564 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 5, ptr %564, align 1, !tbaa !21
  br label %920

565:                                              ; preds = %559
  %566 = load ptr, ptr %24, align 8, !tbaa !9
  %567 = call i32 @cli_strcmp(ptr noundef %566, ptr noundef @.str.56)
  %568 = icmp eq i32 %567, 0
  br i1 %568, label %569, label %583

569:                                              ; preds = %565
  %570 = load i32, ptr %9, align 4, !tbaa !5
  %571 = add nsw i32 %570, 1
  %572 = load i32, ptr %4, align 4, !tbaa !5
  %573 = icmp slt i32 %571, %572
  br i1 %573, label %574, label %583

574:                                              ; preds = %569
  %575 = load ptr, ptr %5, align 8, !tbaa !9
  %576 = load i32, ptr %9, align 4, !tbaa !5
  %577 = add nsw i32 %576, 1
  store i32 %577, ptr %9, align 4, !tbaa !5
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds ptr, ptr %575, i64 %578
  %580 = load ptr, ptr %579, align 8, !tbaa !9
  %581 = call i64 @integerValue(ptr noundef %580)
  %582 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 36
  store i64 %581, ptr %582, align 8, !tbaa !22
  br label %919

583:                                              ; preds = %569, %565
  %584 = load ptr, ptr %24, align 8, !tbaa !9
  %585 = call i32 @cli_strcmp(ptr noundef %584, ptr noundef @.str.57)
  %586 = icmp eq i32 %585, 0
  br i1 %586, label %587, label %589

587:                                              ; preds = %583
  %588 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 6
  store i8 4, ptr %588, align 1, !tbaa !21
  br label %918

589:                                              ; preds = %583
  %590 = load ptr, ptr %24, align 8, !tbaa !9
  %591 = call i32 @cli_strcmp(ptr noundef %590, ptr noundef @.str.58)
  %592 = icmp eq i32 %591, 0
  br i1 %592, label %593, label %597

593:                                              ; preds = %589
  %594 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 19
  %595 = load i32, ptr %594, align 4, !tbaa !23
  %596 = or i32 %595, 16777216
  store i32 %596, ptr %594, align 4, !tbaa !23
  br label %917

597:                                              ; preds = %589
  %598 = load ptr, ptr %24, align 8, !tbaa !9
  %599 = call i32 @cli_strcmp(ptr noundef %598, ptr noundef @.str.76)
  %600 = icmp eq i32 %599, 0
  br i1 %600, label %601, label %609

601:                                              ; preds = %597
  %602 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 10, ptr %602, align 4, !tbaa !29
  %603 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 40
  %604 = getelementptr inbounds [20 x i8], ptr %603, i64 0, i64 0
  %605 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %604, ptr noundef @.str.77)
  %606 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 41
  %607 = getelementptr inbounds [20 x i8], ptr %606, i64 0, i64 0
  %608 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %607, ptr noundef @.str.78)
  br label %916

609:                                              ; preds = %597
  %610 = load ptr, ptr %24, align 8, !tbaa !9
  %611 = call i32 @cli_strcmp(ptr noundef %610, ptr noundef @.str.79)
  %612 = icmp eq i32 %611, 0
  br i1 %612, label %613, label %621

613:                                              ; preds = %609
  %614 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  store i32 2, ptr %614, align 4, !tbaa !29
  %615 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 40
  %616 = getelementptr inbounds [20 x i8], ptr %615, i64 0, i64 0
  %617 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %616, ptr noundef @.str.80)
  %618 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 41
  %619 = getelementptr inbounds [20 x i8], ptr %618, i64 0, i64 0
  %620 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %619, ptr noundef @.str.68)
  br label %915

621:                                              ; preds = %609
  %622 = load ptr, ptr %24, align 8, !tbaa !9
  %623 = call i32 @cli_strcmp(ptr noundef %622, ptr noundef @.str.42)
  %624 = icmp eq i32 %623, 0
  br i1 %624, label %625, label %634

625:                                              ; preds = %621
  %626 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 40
  %627 = getelementptr inbounds [20 x i8], ptr %626, i64 0, i64 0
  %628 = load i32, ptr %4, align 4, !tbaa !5
  %629 = load ptr, ptr %5, align 8, !tbaa !9
  %630 = load i32, ptr %9, align 4, !tbaa !5
  %631 = add nsw i32 %630, 1
  store i32 %631, ptr %9, align 4, !tbaa !5
  %632 = call ptr @cmdline_option_value(i32 noundef %628, ptr noundef %629, i32 noundef %631)
  %633 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %627, ptr noundef @.str.81, ptr noundef %632)
  br label %914

634:                                              ; preds = %621
  %635 = load ptr, ptr %24, align 8, !tbaa !9
  %636 = call i32 @cli_strcmp(ptr noundef %635, ptr noundef @.str.44)
  %637 = icmp eq i32 %636, 0
  br i1 %637, label %638, label %647

638:                                              ; preds = %634
  %639 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 41
  %640 = getelementptr inbounds [20 x i8], ptr %639, i64 0, i64 0
  %641 = load i32, ptr %4, align 4, !tbaa !5
  %642 = load ptr, ptr %5, align 8, !tbaa !9
  %643 = load i32, ptr %9, align 4, !tbaa !5
  %644 = add nsw i32 %643, 1
  store i32 %644, ptr %9, align 4, !tbaa !5
  %645 = call ptr @cmdline_option_value(i32 noundef %641, ptr noundef %642, i32 noundef %644)
  %646 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %640, ptr noundef @.str.81, ptr noundef %645)
  br label %913

647:                                              ; preds = %634
  %648 = load ptr, ptr %24, align 8, !tbaa !9
  %649 = call i32 @cli_strcmp(ptr noundef %648, ptr noundef @.str.43)
  %650 = icmp eq i32 %649, 0
  br i1 %650, label %651, label %660

651:                                              ; preds = %647
  %652 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 47
  %653 = getelementptr inbounds [20 x i8], ptr %652, i64 0, i64 0
  %654 = load i32, ptr %4, align 4, !tbaa !5
  %655 = load ptr, ptr %5, align 8, !tbaa !9
  %656 = load i32, ptr %9, align 4, !tbaa !5
  %657 = add nsw i32 %656, 1
  store i32 %657, ptr %9, align 4, !tbaa !5
  %658 = call ptr @cmdline_option_value(i32 noundef %654, ptr noundef %655, i32 noundef %657)
  %659 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef %653, ptr noundef @.str.81, ptr noundef %658)
  br label %912

660:                                              ; preds = %647
  %661 = load ptr, ptr %24, align 8, !tbaa !9
  %662 = call i32 @cli_strcmp(ptr noundef %661, ptr noundef @.str.82)
  %663 = icmp eq i32 %662, 0
  br i1 %663, label %664, label %669

664:                                              ; preds = %660
  %665 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 29
  store i32 1, ptr %665, align 8, !tbaa !30
  %666 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 34
  %667 = load i32, ptr %666, align 4, !tbaa !16
  %668 = or i32 %667, 128
  store i32 %668, ptr %666, align 4, !tbaa !16
  br label %911

669:                                              ; preds = %660
  %670 = load ptr, ptr %24, align 8, !tbaa !9
  %671 = call i32 @cli_strcmp(ptr noundef %670, ptr noundef @.str.83)
  %672 = icmp eq i32 %671, 0
  br i1 %672, label %673, label %678

673:                                              ; preds = %669
  %674 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 29
  store i32 0, ptr %674, align 8, !tbaa !30
  %675 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 34
  %676 = load i32, ptr %675, align 4, !tbaa !16
  %677 = or i32 %676, 128
  store i32 %677, ptr %675, align 4, !tbaa !16
  br label %910

678:                                              ; preds = %669
  %679 = load ptr, ptr %24, align 8, !tbaa !9
  %680 = call i32 @cli_strcmp(ptr noundef %679, ptr noundef @.str.84)
  %681 = icmp eq i32 %680, 0
  br i1 %681, label %682, label %686

682:                                              ; preds = %678
  %683 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 34
  %684 = load i32, ptr %683, align 4, !tbaa !16
  %685 = or i32 %684, 64
  store i32 %685, ptr %683, align 4, !tbaa !16
  br label %909

686:                                              ; preds = %678
  %687 = load ptr, ptr %24, align 8, !tbaa !9
  %688 = call i32 @cli_strcmp(ptr noundef %687, ptr noundef @.str.85)
  %689 = icmp eq i32 %688, 0
  br i1 %689, label %690, label %692

690:                                              ; preds = %686
  %691 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 2
  store i8 1, ptr %691, align 1, !tbaa !31
  br label %908

692:                                              ; preds = %686
  %693 = load ptr, ptr %24, align 8, !tbaa !9
  %694 = call i32 @cli_strcmp(ptr noundef %693, ptr noundef @.str.86)
  %695 = icmp eq i32 %694, 0
  br i1 %695, label %696, label %698

696:                                              ; preds = %692
  %697 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 2
  store i8 3, ptr %697, align 1, !tbaa !31
  br label %907

698:                                              ; preds = %692
  %699 = load ptr, ptr %24, align 8, !tbaa !9
  %700 = call i32 @cli_strcmp(ptr noundef %699, ptr noundef @.str.87)
  %701 = icmp eq i32 %700, 0
  br i1 %701, label %702, label %704

702:                                              ; preds = %698
  %703 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 13
  store i32 1, ptr %703, align 4, !tbaa !32
  br label %906

704:                                              ; preds = %698
  %705 = load ptr, ptr %24, align 8, !tbaa !9
  %706 = call i32 @cli_strcmp(ptr noundef %705, ptr noundef @.str.88)
  %707 = icmp eq i32 %706, 0
  br i1 %707, label %708, label %710

708:                                              ; preds = %704
  %709 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 5
  store i8 1, ptr %709, align 4, !tbaa !33
  br label %905

710:                                              ; preds = %704
  %711 = load ptr, ptr %24, align 8, !tbaa !9
  %712 = call i32 @cli_strcmp(ptr noundef %711, ptr noundef @.str.89)
  %713 = icmp eq i32 %712, 0
  br i1 %713, label %714, label %718

714:                                              ; preds = %710
  %715 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 34
  %716 = load i32, ptr %715, align 4, !tbaa !16
  %717 = or i32 %716, 4
  store i32 %717, ptr %715, align 4, !tbaa !16
  br label %904

718:                                              ; preds = %710
  %719 = load ptr, ptr %24, align 8, !tbaa !9
  %720 = call i32 @cli_strcmp(ptr noundef %719, ptr noundef @.str.60)
  %721 = icmp eq i32 %720, 0
  br i1 %721, label %722, label %723

722:                                              ; preds = %718
  br label %903

723:                                              ; preds = %718
  %724 = load ptr, ptr %24, align 8, !tbaa !9
  %725 = call i32 @cli_strcmp(ptr noundef %724, ptr noundef @.str.90)
  %726 = icmp eq i32 %725, 0
  br i1 %726, label %727, label %731

727:                                              ; preds = %723
  %728 = call ptr @sqlite3_libversion()
  %729 = call ptr @sqlite3_sourceid()
  %730 = call i32 (ptr, ...) @printf(ptr noundef @.str.91, ptr noundef %728, ptr noundef %729)
  store i32 0, ptr %3, align 4
  store i32 1, ptr %25, align 4
  br label %936

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

735:                                              ; preds = %731
  store i32 1, ptr @stdin_is_interactive, align 4, !tbaa !5
  br label %901

736:                                              ; preds = %731
  %737 = load ptr, ptr %24, align 8, !tbaa !9
  %738 = call i32 @cli_strcmp(ptr noundef %737, ptr noundef @.str.47)
  %739 = icmp eq i32 %738, 0
  br i1 %739, label %740, label %741

740:                                              ; preds = %736
  store i32 0, ptr @stdin_is_interactive, align 4, !tbaa !5
  br label %900

741:                                              ; preds = %736
  %742 = load ptr, ptr %24, align 8, !tbaa !9
  %743 = call i32 @cli_strcmp(ptr noundef %742, ptr noundef @.str.48)
  %744 = icmp eq i32 %743, 0
  br i1 %744, label %745, label %748

745:                                              ; preds = %741
  %746 = load i32, ptr %9, align 4, !tbaa !5
  %747 = add nsw i32 %746, 1
  store i32 %747, ptr %9, align 4, !tbaa !5
  br label %899

748:                                              ; preds = %741
  %749 = load ptr, ptr %24, align 8, !tbaa !9
  %750 = call i32 @cli_strcmp(ptr noundef %749, ptr noundef @.str.49)
  %751 = icmp eq i32 %750, 0
  br i1 %751, label %752, label %755

752:                                              ; preds = %748
  %753 = load i32, ptr %9, align 4, !tbaa !5
  %754 = add nsw i32 %753, 2
  store i32 %754, ptr %9, align 4, !tbaa !5
  br label %898

755:                                              ; preds = %748
  %756 = load ptr, ptr %24, align 8, !tbaa !9
  %757 = call i32 @cli_strcmp(ptr noundef %756, ptr noundef @.str.50)
  %758 = icmp eq i32 %757, 0
  br i1 %758, label %759, label %762

759:                                              ; preds = %755
  %760 = load i32, ptr %9, align 4, !tbaa !5
  %761 = add nsw i32 %760, 2
  store i32 %761, ptr %9, align 4, !tbaa !5
  br label %897

762:                                              ; preds = %755
  %763 = load ptr, ptr %24, align 8, !tbaa !9
  %764 = call i32 @cli_strcmp(ptr noundef %763, ptr noundef @.str.51)
  %765 = icmp eq i32 %764, 0
  br i1 %765, label %766, label %769

766:                                              ; preds = %762
  %767 = load i32, ptr %9, align 4, !tbaa !5
  %768 = add nsw i32 %767, 2
  store i32 %768, ptr %9, align 4, !tbaa !5
  br label %896

769:                                              ; preds = %762
  %770 = load ptr, ptr %24, align 8, !tbaa !9
  %771 = call i32 @cli_strcmp(ptr noundef %770, ptr noundef @.str.61)
  %772 = icmp eq i32 %771, 0
  br i1 %772, label %773, label %776

773:                                              ; preds = %769
  %774 = load i32, ptr %9, align 4, !tbaa !5
  %775 = add nsw i32 %774, 2
  store i32 %775, ptr %9, align 4, !tbaa !5
  br label %895

776:                                              ; preds = %769
  %777 = load ptr, ptr %24, align 8, !tbaa !9
  %778 = call i32 @cli_strcmp(ptr noundef %777, ptr noundef @.str.52)
  %779 = icmp eq i32 %778, 0
  br i1 %779, label %780, label %783

780:                                              ; preds = %776
  %781 = load i32, ptr %9, align 4, !tbaa !5
  %782 = add nsw i32 %781, 1
  store i32 %782, ptr %9, align 4, !tbaa !5
  br label %894

783:                                              ; preds = %776
  %784 = load ptr, ptr %24, align 8, !tbaa !9
  %785 = call i32 @cli_strcmp(ptr noundef %784, ptr noundef @.str.59)
  %786 = icmp eq i32 %785, 0
  br i1 %786, label %787, label %790

787:                                              ; preds = %783
  %788 = load i32, ptr %9, align 4, !tbaa !5
  %789 = add nsw i32 %788, 1
  store i32 %789, ptr %9, align 4, !tbaa !5
  br label %893

790:                                              ; preds = %783
  %791 = load ptr, ptr %24, align 8, !tbaa !9
  %792 = call i32 @cli_strcmp(ptr noundef %791, ptr noundef @.str.53)
  %793 = icmp eq i32 %792, 0
  br i1 %793, label %794, label %797

794:                                              ; preds = %790
  %795 = load i32, ptr %9, align 4, !tbaa !5
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr %9, align 4, !tbaa !5
  br label %892

797:                                              ; preds = %790
  %798 = load ptr, ptr %24, align 8, !tbaa !9
  %799 = call i32 @cli_strcmp(ptr noundef %798, ptr noundef @.str.93)
  %800 = icmp eq i32 %799, 0
  br i1 %800, label %801, label %802

801:                                              ; preds = %797
  call void @usage(i32 noundef 1)
  br label %891

802:                                              ; preds = %797
  %803 = load ptr, ptr %24, align 8, !tbaa !9
  %804 = call i32 @cli_strcmp(ptr noundef %803, ptr noundef @.str.45)
  %805 = icmp eq i32 %804, 0
  br i1 %805, label %806, label %875

806:                                              ; preds = %802
  %807 = load i32, ptr %9, align 4, !tbaa !5
  %808 = load i32, ptr %4, align 4, !tbaa !5
  %809 = sub nsw i32 %808, 1
  %810 = icmp eq i32 %807, %809
  br i1 %810, label %811, label %812

811:                                              ; preds = %806
  store i32 6, ptr %25, align 4
  br label %936

812:                                              ; preds = %806
  %813 = load i32, ptr %4, align 4, !tbaa !5
  %814 = load ptr, ptr %5, align 8, !tbaa !9
  %815 = load i32, ptr %9, align 4, !tbaa !5
  %816 = add nsw i32 %815, 1
  store i32 %816, ptr %9, align 4, !tbaa !5
  %817 = call ptr @cmdline_option_value(i32 noundef %813, ptr noundef %814, i32 noundef %816)
  store ptr %817, ptr %24, align 8, !tbaa !9
  %818 = load ptr, ptr %24, align 8, !tbaa !9
  %819 = getelementptr inbounds i8, ptr %818, i64 0
  %820 = load i8, ptr %819, align 1, !tbaa !11
  %821 = sext i8 %820 to i32
  %822 = icmp eq i32 %821, 46
  br i1 %822, label %823, label %840

823:                                              ; preds = %812
  %824 = load ptr, ptr %24, align 8, !tbaa !9
  %825 = call i32 @do_meta_command(ptr noundef %824, ptr noundef %7)
  store i32 %825, ptr %10, align 4, !tbaa !5
  %826 = load i32, ptr %10, align 4, !tbaa !5
  %827 = icmp ne i32 %826, 0
  br i1 %827, label %828, label %839

828:                                              ; preds = %823
  %829 = load i32, ptr @bail_on_error, align 4, !tbaa !5
  %830 = icmp ne i32 %829, 0
  br i1 %830, label %831, label %839

831:                                              ; preds = %828
  %832 = load i32, ptr %10, align 4, !tbaa !5
  %833 = icmp eq i32 %832, 2
  br i1 %833, label %834, label %835

834:                                              ; preds = %831
  br label %837

835:                                              ; preds = %831
  %836 = load i32, ptr %10, align 4, !tbaa !5
  br label %837

837:                                              ; preds = %835, %834
  %838 = phi i32 [ 0, %834 ], [ %836, %835 ]
  store i32 %838, ptr %3, align 4
  store i32 1, ptr %25, align 4
  br label %936

839:                                              ; preds = %828, %823
  br label %874

840:                                              ; preds = %812
  call void @open_db(ptr noundef %7, i32 noundef 0)
  %841 = load ptr, ptr %24, align 8, !tbaa !9
  %842 = call i32 @shell_exec(ptr noundef %7, ptr noundef %841, ptr noundef %6)
  store i32 %842, ptr %10, align 4, !tbaa !5
  %843 = load ptr, ptr %6, align 8, !tbaa !9
  %844 = icmp ne ptr %843, null
  br i1 %844, label %845, label %860

845:                                              ; preds = %840
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = load ptr, ptr %6, align 8, !tbaa !9
  %848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef @.str.94, ptr noundef %847) #9
  %849 = load i32, ptr @bail_on_error, align 4, !tbaa !5
  %850 = icmp ne i32 %849, 0
  br i1 %850, label %851, label %859

851:                                              ; preds = %845
  %852 = load i32, ptr %10, align 4, !tbaa !5
  %853 = icmp ne i32 %852, 0
  br i1 %853, label %854, label %856

854:                                              ; preds = %851
  %855 = load i32, ptr %10, align 4, !tbaa !5
  br label %857

856:                                              ; preds = %851
  br label %857

857:                                              ; preds = %856, %854
  %858 = phi i32 [ %855, %854 ], [ 1, %856 ]
  store i32 %858, ptr %3, align 4
  store i32 1, ptr %25, align 4
  br label %936

859:                                              ; preds = %845
  br label %873

860:                                              ; preds = %840
  %861 = load i32, ptr %10, align 4, !tbaa !5
  %862 = icmp ne i32 %861, 0
  br i1 %862, label %863, label %872

863:                                              ; preds = %860
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = load ptr, ptr %24, align 8, !tbaa !9
  %866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %864, ptr noundef @.str.95, ptr noundef %865) #9
  %867 = load i32, ptr @bail_on_error, align 4, !tbaa !5
  %868 = icmp ne i32 %867, 0
  br i1 %868, label %869, label %871

869:                                              ; preds = %863
  %870 = load i32, ptr %10, align 4, !tbaa !5
  store i32 %870, ptr %3, align 4
  store i32 1, ptr %25, align 4
  br label %936

871:                                              ; preds = %863
  br label %872

872:                                              ; preds = %871, %860
  br label %873

873:                                              ; preds = %872, %859
  br label %874

874:                                              ; preds = %873, %839
  br label %890

875:                                              ; preds = %802
  %876 = load ptr, ptr %24, align 8, !tbaa !9
  %877 = call i32 @cli_strcmp(ptr noundef %876, ptr noundef @.str.62)
  %878 = icmp eq i32 %877, 0
  br i1 %878, label %879, label %882

879:                                              ; preds = %875
  %880 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 11
  store i8 1, ptr %880, align 2, !tbaa !34
  %881 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 10
  store i8 1, ptr %881, align 1, !tbaa !35
  br label %889

882:                                              ; preds = %875
  %883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %884 = load ptr, ptr @Argv0, align 8, !tbaa !9
  %885 = load ptr, ptr %24, align 8, !tbaa !9
  %886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %883, ptr noundef @.str.96, ptr noundef %884, ptr noundef %885) #9
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %887, ptr noundef @.str.97) #9
  store i32 1, ptr %3, align 4
  store i32 1, ptr %25, align 4
  br label %936

889:                                              ; preds = %879
  br label %890

890:                                              ; preds = %889, %874
  br label %891

891:                                              ; preds = %890, %801
  br label %892

892:                                              ; preds = %891, %794
  br label %893

893:                                              ; preds = %892, %787
  br label %894

894:                                              ; preds = %893, %780
  br label %895

895:                                              ; preds = %894, %773
  br label %896

896:                                              ; preds = %895, %766
  br label %897

897:                                              ; preds = %896, %759
  br label %898

898:                                              ; preds = %897, %752
  br label %899

899:                                              ; preds = %898, %745
  br label %900

900:                                              ; preds = %899, %740
  br label %901

901:                                              ; preds = %900, %735
  br label %902

902:                                              ; preds = %901
  br label %903

903:                                              ; preds = %902, %722
  br label %904

904:                                              ; preds = %903, %714
  br label %905

905:                                              ; preds = %904, %708
  br label %906

906:                                              ; preds = %905, %702
  br label %907

907:                                              ; preds = %906, %696
  br label %908

908:                                              ; preds = %907, %690
  br label %909

909:                                              ; preds = %908, %682
  br label %910

910:                                              ; preds = %909, %673
  br label %911

911:                                              ; preds = %910, %664
  br label %912

912:                                              ; preds = %911, %651
  br label %913

913:                                              ; preds = %912, %638
  br label %914

914:                                              ; preds = %913, %625
  br label %915

915:                                              ; preds = %914, %613
  br label %916

916:                                              ; preds = %915, %601
  br label %917

917:                                              ; preds = %916, %593
  br label %918

918:                                              ; preds = %917, %587
  br label %919

919:                                              ; preds = %918, %574
  br label %920

920:                                              ; preds = %919, %563
  br label %921

921:                                              ; preds = %920, %557
  br label %922

922:                                              ; preds = %921, %549
  br label %923

923:                                              ; preds = %922, %543
  br label %924

924:                                              ; preds = %923, %537
  br label %925

925:                                              ; preds = %924, %531
  br label %926

926:                                              ; preds = %925, %525
  br label %927

927:                                              ; preds = %926, %519
  br label %928

928:                                              ; preds = %927, %513
  br label %929

929:                                              ; preds = %928, %501
  br label %930

930:                                              ; preds = %929, %495
  br label %931

931:                                              ; preds = %930, %489
  br label %932

932:                                              ; preds = %931, %482
  %933 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 24
  %934 = load i32, ptr %933, align 4, !tbaa !29
  %935 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 26
  store i32 %934, ptr %935, align 4, !tbaa !36
  store i32 0, ptr %25, align 4
  br label %936

936:                                              ; preds = %932, %882, %869, %857, %837, %811, %727, %468
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  %937 = load i32, ptr %25, align 4
  switch i32 %937, label %1121 [
    i32 0, label %938
    i32 8, label %939
    i32 6, label %942
  ]

938:                                              ; preds = %936
  br label %939

939:                                              ; preds = %938, %936
  %940 = load i32, ptr %9, align 4, !tbaa !5
  %941 = add nsw i32 %940, 1
  store i32 %941, ptr %9, align 4, !tbaa !5
  br label %453, !llvm.loop !37

942:                                              ; preds = %936, %453
  %943 = load i32, ptr %12, align 4, !tbaa !5
  %944 = icmp ne i32 %943, 0
  br i1 %944, label %1022, label %945

945:                                              ; preds = %942
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %946

946:                                              ; preds = %1018, %945
  %947 = load i32, ptr %9, align 4, !tbaa !5
  %948 = load i32, ptr %13, align 4, !tbaa !5
  %949 = icmp slt i32 %947, %948
  br i1 %949, label %950, label %1021

950:                                              ; preds = %946
  %951 = load ptr, ptr %14, align 8, !tbaa !9
  %952 = load i32, ptr %9, align 4, !tbaa !5
  %953 = sext i32 %952 to i64
  %954 = getelementptr inbounds ptr, ptr %951, i64 %953
  %955 = load ptr, ptr %954, align 8, !tbaa !9
  %956 = getelementptr inbounds i8, ptr %955, i64 0
  %957 = load i8, ptr %956, align 1, !tbaa !11
  %958 = sext i8 %957 to i32
  %959 = icmp eq i32 %958, 46
  br i1 %959, label %960, label %979

960:                                              ; preds = %950
  %961 = load ptr, ptr %14, align 8, !tbaa !9
  %962 = load i32, ptr %9, align 4, !tbaa !5
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds ptr, ptr %961, i64 %963
  %965 = load ptr, ptr %964, align 8, !tbaa !9
  %966 = call i32 @do_meta_command(ptr noundef %965, ptr noundef %7)
  store i32 %966, ptr %10, align 4, !tbaa !5
  %967 = load i32, ptr %10, align 4, !tbaa !5
  %968 = icmp ne i32 %967, 0
  br i1 %968, label %969, label %978

969:                                              ; preds = %960
  %970 = load ptr, ptr %14, align 8, !tbaa !9
  call void @free(ptr noundef %970) #9
  %971 = load i32, ptr %10, align 4, !tbaa !5
  %972 = icmp eq i32 %971, 2
  br i1 %972, label %973, label %974

973:                                              ; preds = %969
  br label %976

974:                                              ; preds = %969
  %975 = load i32, ptr %10, align 4, !tbaa !5
  br label %976

976:                                              ; preds = %974, %973
  %977 = phi i32 [ 0, %973 ], [ %975, %974 ]
  store i32 %977, ptr %3, align 4
  store i32 1, ptr %25, align 4
  br label %1121

978:                                              ; preds = %960
  br label %1017

979:                                              ; preds = %950
  call void @open_db(ptr noundef %7, i32 noundef 0)
  %980 = load ptr, ptr %14, align 8, !tbaa !9
  %981 = load i32, ptr %9, align 4, !tbaa !5
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds ptr, ptr %980, i64 %982
  %984 = load ptr, ptr %983, align 8, !tbaa !9
  %985 = call i32 @shell_exec(ptr noundef %7, ptr noundef %984, ptr noundef %6)
  store i32 %985, ptr %10, align 4, !tbaa !5
  %986 = load ptr, ptr %6, align 8, !tbaa !9
  %987 = icmp ne ptr %986, null
  br i1 %987, label %991, label %988

988:                                              ; preds = %979
  %989 = load i32, ptr %10, align 4, !tbaa !5
  %990 = icmp ne i32 %989, 0
  br i1 %990, label %991, label %1016

991:                                              ; preds = %988, %979
  %992 = load ptr, ptr %6, align 8, !tbaa !9
  %993 = icmp ne ptr %992, null
  br i1 %993, label %994, label %998

994:                                              ; preds = %991
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = load ptr, ptr %6, align 8, !tbaa !9
  %997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %995, ptr noundef @.str.94, ptr noundef %996) #9
  br label %1006

998:                                              ; preds = %991
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = load ptr, ptr %14, align 8, !tbaa !9
  %1001 = load i32, ptr %9, align 4, !tbaa !5
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds ptr, ptr %1000, i64 %1002
  %1004 = load ptr, ptr %1003, align 8, !tbaa !9
  %1005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %999, ptr noundef @.str.98, ptr noundef %1004) #9
  br label %1006

1006:                                             ; preds = %998, %994
  %1007 = load ptr, ptr %6, align 8, !tbaa !9
  call void @sqlite3_free(ptr noundef %1007)
  %1008 = load ptr, ptr %14, align 8, !tbaa !9
  call void @free(ptr noundef %1008) #9
  %1009 = load i32, ptr %10, align 4, !tbaa !5
  %1010 = icmp ne i32 %1009, 0
  br i1 %1010, label %1011, label %1013

1011:                                             ; preds = %1006
  %1012 = load i32, ptr %10, align 4, !tbaa !5
  br label %1014

1013:                                             ; preds = %1006
  br label %1014

1014:                                             ; preds = %1013, %1011
  %1015 = phi i32 [ %1012, %1011 ], [ 1, %1013 ]
  store i32 %1015, ptr %3, align 4
  store i32 1, ptr %25, align 4
  br label %1121

1016:                                             ; preds = %988
  br label %1017

1017:                                             ; preds = %1016, %978
  br label %1018

1018:                                             ; preds = %1017
  %1019 = load i32, ptr %9, align 4, !tbaa !5
  %1020 = add nsw i32 %1019, 1
  store i32 %1020, ptr %9, align 4, !tbaa !5
  br label %946, !llvm.loop !38

1021:                                             ; preds = %946
  br label %1076

1022:                                             ; preds = %942
  %1023 = load i32, ptr @stdin_is_interactive, align 4, !tbaa !5
  %1024 = icmp ne i32 %1023, 0
  br i1 %1024, label %1025, label %1071

1025:                                             ; preds = %1022
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %1026 = call ptr @sqlite3_libversion()
  %1027 = call ptr @sqlite3_sourceid()
  %1028 = call i32 (ptr, ...) @printf(ptr noundef @.str.99, ptr noundef %1026, ptr noundef %1027)
  %1029 = load i32, ptr %11, align 4, !tbaa !5
  %1030 = icmp ne i32 %1029, 0
  br i1 %1030, label %1031, label %1034

1031:                                             ; preds = %1025
  %1032 = call i32 (ptr, ...) @printf(ptr noundef @.str.100)
  call void @printBold(ptr noundef @.str.101)
  %1033 = call i32 (ptr, ...) @printf(ptr noundef @.str.102)
  br label %1034

1034:                                             ; preds = %1031, %1025
  %1035 = call ptr @getenv(ptr noundef @.str.103) #9
  store ptr %1035, ptr %27, align 8, !tbaa !9
  %1036 = load ptr, ptr %27, align 8, !tbaa !9
  %1037 = icmp ne ptr %1036, null
  br i1 %1037, label %1038, label %1041

1038:                                             ; preds = %1034
  %1039 = load ptr, ptr %27, align 8, !tbaa !9
  %1040 = call noalias ptr @strdup(ptr noundef %1039) #9
  store ptr %1040, ptr %27, align 8, !tbaa !9
  br label %1059

1041:                                             ; preds = %1034
  %1042 = call ptr @find_home_dir(i32 noundef 0)
  store ptr %1042, ptr %26, align 8, !tbaa !9
  %1043 = icmp ne ptr %1042, null
  br i1 %1043, label %1044, label %1058

1044:                                             ; preds = %1041
  %1045 = load ptr, ptr %26, align 8, !tbaa !9
  %1046 = call i32 @strlen30(ptr noundef %1045)
  %1047 = add nsw i32 %1046, 20
  store i32 %1047, ptr %28, align 4, !tbaa !5
  %1048 = load i32, ptr %28, align 4, !tbaa !5
  %1049 = sext i32 %1048 to i64
  %1050 = call noalias ptr @malloc(i64 noundef %1049) #12
  store ptr %1050, ptr %27, align 8, !tbaa !9
  %1051 = icmp ne ptr %1050, null
  br i1 %1051, label %1052, label %1057

1052:                                             ; preds = %1044
  %1053 = load i32, ptr %28, align 4, !tbaa !5
  %1054 = load ptr, ptr %27, align 8, !tbaa !9
  %1055 = load ptr, ptr %26, align 8, !tbaa !9
  %1056 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef %1053, ptr noundef %1054, ptr noundef @.str.104, ptr noundef %1055)
  br label %1057

1057:                                             ; preds = %1052, %1044
  br label %1058

1058:                                             ; preds = %1057, %1041
  br label %1059

1059:                                             ; preds = %1058, %1038
  %1060 = load ptr, ptr %27, align 8, !tbaa !9
  %1061 = icmp ne ptr %1060, null
  br i1 %1061, label %1062, label %1063

1062:                                             ; preds = %1059
  br label %1063

1063:                                             ; preds = %1062, %1059
  %1064 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store ptr null, ptr %1064, align 8, !tbaa !39
  %1065 = call i32 @process_input(ptr noundef %7)
  store i32 %1065, ptr %10, align 4, !tbaa !5
  %1066 = load ptr, ptr %27, align 8, !tbaa !9
  %1067 = icmp ne ptr %1066, null
  br i1 %1067, label %1068, label %1070

1068:                                             ; preds = %1063
  %1069 = load ptr, ptr %27, align 8, !tbaa !9
  call void @free(ptr noundef %1069) #9
  br label %1070

1070:                                             ; preds = %1068, %1063
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  br label %1075

1071:                                             ; preds = %1022
  %1072 = load ptr, ptr @stdin, align 8, !tbaa !9
  %1073 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 20
  store ptr %1072, ptr %1073, align 8, !tbaa !39
  %1074 = call i32 @process_input(ptr noundef %7)
  store i32 %1074, ptr %10, align 4, !tbaa !5
  br label %1075

1075:                                             ; preds = %1071, %1070
  br label %1076

1076:                                             ; preds = %1075, %1021
  %1077 = load ptr, ptr %14, align 8, !tbaa !9
  call void @free(ptr noundef %1077) #9
  call void @set_table_name(ptr noundef %7, ptr noundef null)
  %1078 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 0
  %1079 = load ptr, ptr %1078, align 8, !tbaa !40
  %1080 = icmp ne ptr %1079, null
  br i1 %1080, label %1081, label %1084

1081:                                             ; preds = %1076
  %1082 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 0
  %1083 = load ptr, ptr %1082, align 8, !tbaa !40
  call void @close_db(ptr noundef %1083)
  br label %1084

1084:                                             ; preds = %1081, %1076
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %1085

1085:                                             ; preds = %1110, %1084
  %1086 = load i32, ptr %9, align 4, !tbaa !5
  %1087 = icmp slt i32 %1086, 5
  br i1 %1087, label %1088, label %1113

1088:                                             ; preds = %1085
  %1089 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 51
  %1090 = load i32, ptr %9, align 4, !tbaa !5
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds [5 x %struct.AuxDb], ptr %1089, i64 0, i64 %1091
  %1093 = getelementptr inbounds %struct.AuxDb, ptr %1092, i32 0, i32 2
  %1094 = load ptr, ptr %1093, align 8, !tbaa !41
  call void @sqlite3_free(ptr noundef %1094)
  %1095 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 51
  %1096 = load i32, ptr %9, align 4, !tbaa !5
  %1097 = sext i32 %1096 to i64
  %1098 = getelementptr inbounds [5 x %struct.AuxDb], ptr %1095, i64 0, i64 %1097
  %1099 = getelementptr inbounds %struct.AuxDb, ptr %1098, i32 0, i32 0
  %1100 = load ptr, ptr %1099, align 8, !tbaa !42
  %1101 = icmp ne ptr %1100, null
  br i1 %1101, label %1102, label %1109

1102:                                             ; preds = %1088
  %1103 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 51
  %1104 = load i32, ptr %9, align 4, !tbaa !5
  %1105 = sext i32 %1104 to i64
  %1106 = getelementptr inbounds [5 x %struct.AuxDb], ptr %1103, i64 0, i64 %1105
  %1107 = getelementptr inbounds %struct.AuxDb, ptr %1106, i32 0, i32 0
  %1108 = load ptr, ptr %1107, align 8, !tbaa !42
  call void @close_db(ptr noundef %1108)
  br label %1109

1109:                                             ; preds = %1102, %1088
  br label %1110

1110:                                             ; preds = %1109
  %1111 = load i32, ptr %9, align 4, !tbaa !5
  %1112 = add nsw i32 %1111, 1
  store i32 %1112, ptr %9, align 4, !tbaa !5
  br label %1085, !llvm.loop !43

1113:                                             ; preds = %1085
  %1114 = call ptr @find_home_dir(i32 noundef 1)
  call void @output_reset(ptr noundef %7)
  %1115 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 7
  store i8 0, ptr %1115, align 2, !tbaa !44
  call void @clearTempFile(ptr noundef %7)
  %1116 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 44
  %1117 = load ptr, ptr %1116, align 8, !tbaa !45
  call void @free(ptr noundef %1117) #9
  %1118 = getelementptr inbounds %struct.ShellState, ptr %7, i32 0, i32 56
  %1119 = load ptr, ptr %1118, align 8, !tbaa !24
  call void @free(ptr noundef %1119) #9
  call void @llvm.memset.p0.i64(ptr align 8 %7, i8 0, i64 4712, i1 false)
  %1120 = load i32, ptr %10, align 4, !tbaa !5
  store i32 %1120, ptr %3, align 4
  store i32 1, ptr %25, align 4
  br label %1121

1121:                                             ; preds = %1113, %1014, %976, %936
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 4712, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  %1122 = load i32, ptr %3, align 4
  ret i32 %1122
}

; 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 uwtable
declare hidden i32 @cli_strncmp(ptr noundef, ptr noundef, i64 noundef) #0

declare ptr @sqlite3_sourceid() #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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) #0

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

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) #0

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

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

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

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

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

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: 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 = { 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 #7 = { 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 #8 = { 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 #9 = { nounwind }
attributes #10 = { noreturn nounwind }
attributes #11 = { nounwind allocsize(1) }
attributes #12 = { 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 8}
!13 = !{!"AuxDb", !10, i64 0, !10, i64 8, !10, i64 16}
!14 = !{!15, !15, i64 0}
!15 = !{!"long long", !7, i64 0}
!16 = !{!17, !6, i64 124}
!17 = !{!"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, !7, i64 17, !7, i64 18, !18, i64 20, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !6, i64 48, !6, i64 52, !10, i64 56, !10, i64 64, !10, i64 72, !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, !6, i64 124, !6, i64 128, !15, i64 136, !10, i64 144, !10, i64 152, !7, i64 160, !7, i64 190, !7, i64 210, !7, i64 230, !7, i64 250, !10, i64 272, !10, i64 280, !6, i64 288, !7, i64 292, !7, i64 312, !10, i64 4408, !10, i64 4416, !7, i64 4424, !10, i64 4544, !10, i64 4552, !6, i64 4560, !6, i64 4564, !10, i64 4568, !19, i64 4576, !20, i64 4696}
!18 = !{!"ColModeOpts", !6, i64 0, !7, i64 4, !7, i64 5}
!19 = !{!"EQPGraph", !10, i64 0, !10, i64 8, !7, i64 16}
!20 = !{!"ExpertInfo", !10, i64 0, !6, i64 8}
!21 = !{!17, !7, i64 13}
!22 = !{!17, !15, i64 136}
!23 = !{!17, !6, i64 52}
!24 = !{!17, !10, i64 4568}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!17, !10, i64 4544}
!28 = !{!17, !10, i64 64}
!29 = !{!17, !6, i64 84}
!30 = !{!17, !6, i64 104}
!31 = !{!17, !7, i64 9}
!32 = !{!17, !6, i64 28}
!33 = !{!17, !7, i64 12}
!34 = !{!17, !7, i64 18}
!35 = !{!17, !7, i64 17}
!36 = !{!17, !6, i64 92}
!37 = distinct !{!37, !26}
!38 = distinct !{!38, !26}
!39 = !{!17, !10, i64 56}
!40 = !{!17, !10, i64 0}
!41 = !{!13, !10, i64 16}
!42 = !{!13, !10, i64 0}
!43 = distinct !{!43, !26}
!44 = !{!17, !7, i64 14}
!45 = !{!17, !10, i64 272}


; 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, i8, i8, %struct.ColModeOpts, i32, 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, [5 x %struct.AuxDb], ptr, ptr, i32, i32, ptr, %struct.EQPGraph, %struct.ExpertInfo }
%struct.ColModeOpts = type { i32, i8, i8 }
%struct.AuxDb = type { ptr, ptr, ptr }
%struct.EQPGraph = type { ptr, ptr, [100 x i8] }
%struct.ExpertInfo = type { ptr, i32 }

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

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

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

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

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

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

declare ptr @sqlite3_vfs_find(ptr noundef) local_unnamed_addr #2

declare i32 @sqlite3_vfs_register(ptr noundef, 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 #0

; 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 #0 {
  %3 = alloca ptr, align 8
  %4 = alloca %struct.ShellState, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #12
  store ptr null, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4712, ptr nonnull %4) #12
  %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) #12
  %7 = tail call i32 @isatty(i32 noundef 0) #12
  store i32 %7, ptr @stdin_is_interactive, align 4, !tbaa !9
  %8 = tail call i32 @isatty(i32 noundef 1) #12
  store i32 %8, ptr @stdout_is_console, align 4, !tbaa !9
  %9 = tail call ptr @getenv(ptr noundef nonnull @.str.36) #12
  %.not = icmp eq ptr %9, null
  br i1 %.not, label %22, label %10

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

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

14:                                               ; preds = %12
  %15 = load ptr, ptr @stderr, align 8, !tbaa !5
  %16 = tail call i32 @getpid() #12
  %17 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15, ptr noundef nonnull @.str.37, i32 noundef %16) #13
  %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) #12
  br label %22

22:                                               ; preds = %14, %20, %2
  %23 = tail call ptr @sqlite3_sourceid() #12
  %24 = tail call i32 @cli_strncmp(ptr noundef %23, ptr noundef nonnull @.str.38, i64 noundef 60)
  %.not299 = icmp eq i32 %24, 0
  br i1 %.not299, label %29, label %25

25:                                               ; preds = %22
  %26 = load ptr, ptr @stderr, align 8, !tbaa !5
  %27 = tail call ptr @sqlite3_sourceid() #12
  %28 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26, ptr noundef nonnull @.str.39, ptr noundef %27, ptr noundef nonnull @.str.38) #13
  tail call void @exit(i32 noundef 1) #14
  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
  %.not300 = icmp eq ptr %33, null
  br i1 %.not300, label %34, label %35

34:                                               ; preds = %32, %29
  call void @__assert_fail(ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.41, i32 noundef 27044, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #14
  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) #12
  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 4432
  %39 = getelementptr inbounds i8, ptr %4, i64 4568
  %40 = getelementptr inbounds i8, ptr %4, i64 52
  %41 = getelementptr inbounds i8, ptr %4, i64 13
  %42 = getelementptr inbounds i8, ptr %4, i64 136
  %43 = getelementptr inbounds i8, ptr %4, i64 124
  br label %44

44:                                               ; preds = %.lr.ph, %212
  %.0249368 = phi ptr [ null, %.lr.ph ], [ %.1250, %212 ]
  %.0253367 = phi i32 [ 1, %.lr.ph ], [ %213, %212 ]
  %.0264366 = phi i32 [ 1, %.lr.ph ], [ %.1265, %212 ]
  %.0266365 = phi i32 [ 0, %.lr.ph ], [ %.1267, %212 ]
  %.0270364 = phi ptr [ null, %.lr.ph ], [ %.1271, %212 ]
  %.0272363 = phi ptr [ null, %.lr.ph ], [ %.1273, %212 ]
  %45 = sext i32 %.0253367 to i64
  %46 = getelementptr inbounds ptr, ptr %1, i64 %45
  %47 = load ptr, ptr %46, align 8, !tbaa !5
  %48 = load i8, ptr %47, align 1, !tbaa !11
  %.not319 = icmp eq i8 %48, 45
  br i1 %.not319, label %59, label %49

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

52:                                               ; preds = %49
  %53 = add nsw i32 %.0266365, 1
  %54 = sext i32 %53 to i64
  %55 = shl nsw i64 %54, 3
  %56 = call ptr @realloc(ptr noundef %.0272363, i64 noundef %55) #15
  call void @shell_check_oom(ptr noundef %56)
  %57 = sext i32 %.0266365 to i64
  %58 = getelementptr inbounds ptr, ptr %56, i64 %57
  br label %.sink.split

.sink.split:                                      ; preds = %49, %52
  %.sink = phi ptr [ %58, %52 ], [ %38, %49 ]
  %.1273.ph = phi ptr [ %56, %52 ], [ %.0272363, %49 ]
  %.1267.ph = phi i32 [ %53, %52 ], [ %.0266365, %49 ]
  %.1265.ph = phi i32 [ 0, %52 ], [ %.0264366, %49 ]
  store ptr %47, ptr %.sink, align 8, !tbaa !5
  br label %59

59:                                               ; preds = %.sink.split, %44
  %.1273 = phi ptr [ %.0272363, %44 ], [ %.1273.ph, %.sink.split ]
  %.1267 = phi i32 [ %.0266365, %44 ], [ %.1267.ph, %.sink.split ]
  %.1265 = phi i32 [ %.0264366, %44 ], [ %.1265.ph, %.sink.split ]
  %60 = getelementptr inbounds i8, ptr %47, i64 1
  %61 = load i8, ptr %60, align 1, !tbaa !11
  %62 = icmp eq i8 %61, 45
  %spec.select = select i1 %62, ptr %60, ptr %47
  %63 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.42)
  %64 = icmp eq i32 %63, 0
  br i1 %64, label %74, label %65

65:                                               ; preds = %59
  %66 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.43)
  %67 = icmp eq i32 %66, 0
  br i1 %67, label %74, label %68

68:                                               ; preds = %65
  %69 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.44)
  %70 = icmp eq i32 %69, 0
  br i1 %70, label %74, label %71

71:                                               ; preds = %68
  %72 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.45)
  %73 = icmp eq i32 %72, 0
  br i1 %73, label %74, label %77

74:                                               ; preds = %71, %68, %65, %59
  %75 = add nsw i32 %.0253367, 1
  %76 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %75)
  br label %212

77:                                               ; preds = %71
  %78 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.46)
  %79 = icmp eq i32 %78, 0
  br i1 %79, label %80, label %83

80:                                               ; preds = %77
  %81 = add nsw i32 %.0253367, 1
  %82 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %81)
  br label %212

83:                                               ; preds = %77
  %84 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.47)
  %85 = icmp eq i32 %84, 0
  br i1 %85, label %86, label %87

86:                                               ; preds = %83
  store i32 0, ptr @stdin_is_interactive, align 4, !tbaa !9
  br label %212

87:                                               ; preds = %83
  %88 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.48)
  %89 = icmp eq i32 %88, 0
  br i1 %89, label %90, label %93

90:                                               ; preds = %87
  %91 = add nsw i32 %.0253367, 1
  %92 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %91)
  br label %212

93:                                               ; preds = %87
  %94 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.49)
  %95 = icmp eq i32 %94, 0
  br i1 %95, label %96, label %117

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

105:                                              ; preds = %96
  %106 = udiv i64 281474976710655, %spec.store.select11
  %spec.select320 = call i64 @llvm.umin.i64(i64 %106, i64 %102)
  br label %107

107:                                              ; preds = %105, %96
  %.0268 = phi i64 [ %102, %96 ], [ %spec.select320, %105 ]
  %108 = icmp sgt i64 %.0268, 0
  %or.cond5 = and i1 %103, %108
  br i1 %or.cond5, label %109, label %112

109:                                              ; preds = %107
  %110 = mul nuw nsw i64 %.0268, %spec.store.select11
  %111 = call noalias ptr @malloc(i64 noundef %110) #16
  br label %112

112:                                              ; preds = %107, %109
  %113 = phi ptr [ %111, %109 ], [ null, %107 ]
  %114 = call i32 (i32, ...) @sqlite3_config(i32 noundef 7, ptr noundef %113, i64 noundef %spec.store.select11, i64 noundef %.0268) #12
  %115 = load i32, ptr %43, align 4, !tbaa !14
  %116 = or i32 %115, 1
  store i32 %116, ptr %43, align 4, !tbaa !14
  br label %212

117:                                              ; preds = %93
  %118 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.50)
  %119 = icmp eq i32 %118, 0
  br i1 %119, label %120, label %135

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

132:                                              ; preds = %120
  %133 = load i32, ptr %43, align 4, !tbaa !14
  %134 = and i32 %133, -3
  store i32 %134, ptr %43, align 4, !tbaa !14
  br label %212

135:                                              ; preds = %117
  %136 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.51)
  %137 = icmp eq i32 %136, 0
  br i1 %137, label %138, label %149

138:                                              ; preds = %135
  %139 = add nsw i32 %.0253367, 1
  %140 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %139)
  %141 = call i64 @integerValue(ptr noundef %140)
  %142 = trunc i64 %141 to i32
  switch i32 %142, label %147 [
    i32 0, label %143
    i32 2, label %145
  ]

143:                                              ; preds = %138
  %144 = call i32 (i32, ...) @sqlite3_config(i32 noundef 1) #12
  br label %212

145:                                              ; preds = %138
  %146 = call i32 (i32, ...) @sqlite3_config(i32 noundef 2) #12
  br label %212

147:                                              ; preds = %138
  %148 = call i32 (i32, ...) @sqlite3_config(i32 noundef 3) #12
  br label %212

149:                                              ; preds = %135
  %150 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.52)
  %151 = icmp eq i32 %150, 0
  br i1 %151, label %152, label %157

152:                                              ; preds = %149
  %153 = add nsw i32 %.0253367, 1
  %154 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %153)
  %155 = call i64 @integerValue(ptr noundef %154)
  %156 = call i32 (i32, ...) @sqlite3_config(i32 noundef 22, i64 noundef %155, i64 noundef %155) #12
  br label %212

157:                                              ; preds = %149
  %158 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.53)
  %159 = icmp eq i32 %158, 0
  br i1 %159, label %160, label %163

160:                                              ; preds = %157
  %161 = add nsw i32 %.0253367, 1
  %162 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %161)
  br label %212

163:                                              ; preds = %157
  %164 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.54)
  %165 = icmp eq i32 %164, 0
  br i1 %165, label %166, label %167

166:                                              ; preds = %163
  store i8 2, ptr %41, align 1, !tbaa !20
  br label %212

167:                                              ; preds = %163
  %168 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.55)
  %169 = icmp eq i32 %168, 0
  br i1 %169, label %170, label %171

170:                                              ; preds = %167
  store i8 5, ptr %41, align 1, !tbaa !20
  br label %212

171:                                              ; preds = %167
  %172 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.56)
  %173 = icmp eq i32 %172, 0
  br i1 %173, label %174, label %182

174:                                              ; preds = %171
  %175 = add nsw i32 %.0253367, 1
  %176 = icmp slt i32 %175, %0
  br i1 %176, label %177, label %182

177:                                              ; preds = %174
  %178 = sext i32 %175 to i64
  %179 = getelementptr inbounds ptr, ptr %1, i64 %178
  %180 = load ptr, ptr %179, align 8, !tbaa !5
  %181 = call i64 @integerValue(ptr noundef %180)
  store i64 %181, ptr %42, align 8, !tbaa !21
  br label %212

182:                                              ; preds = %174, %171
  %183 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.57)
  %184 = icmp eq i32 %183, 0
  br i1 %184, label %185, label %186

185:                                              ; preds = %182
  store i8 4, ptr %41, align 1, !tbaa !20
  br label %212

186:                                              ; preds = %182
  %187 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.58)
  %188 = icmp eq i32 %187, 0
  br i1 %188, label %189, label %190

189:                                              ; preds = %186
  store i32 16777216, ptr %40, align 4, !tbaa !22
  br label %212

190:                                              ; preds = %186
  %191 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.59)
  %192 = icmp eq i32 %191, 0
  br i1 %192, label %193, label %196

193:                                              ; preds = %190
  %194 = load ptr, ptr @stderr, align 8, !tbaa !5
  %195 = call i32 @sqlite3MemTraceActivate(ptr noundef %194)
  br label %212

196:                                              ; preds = %190
  %197 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.60)
  %198 = icmp eq i32 %197, 0
  br i1 %198, label %199, label %200

199:                                              ; preds = %196
  store i32 1, ptr @bail_on_error, align 4, !tbaa !9
  br label %212

200:                                              ; preds = %196
  %201 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.61)
  %202 = icmp eq i32 %201, 0
  br i1 %202, label %203, label %210

203:                                              ; preds = %200
  %204 = load ptr, ptr %39, align 8, !tbaa !23
  call void @free(ptr noundef %204) #12
  %205 = add nsw i32 %.0253367, 1
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds ptr, ptr %1, i64 %206
  %208 = load ptr, ptr %207, align 8, !tbaa !5
  %209 = call noalias ptr @strdup(ptr noundef %208) #12
  store ptr %209, ptr %39, align 8, !tbaa !23
  br label %212

210:                                              ; preds = %200
  %211 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.62)
  br label %212

212:                                              ; preds = %143, %145, %147, %120, %132, %80, %90, %152, %166, %177, %189, %199, %210, %203, %193, %185, %170, %160, %112, %86, %74
  %.1271 = phi ptr [ %.0270364, %74 ], [ %.0270364, %80 ], [ %.0270364, %86 ], [ %.0270364, %90 ], [ %.0270364, %112 ], [ %.0270364, %152 ], [ %162, %160 ], [ %.0270364, %166 ], [ %.0270364, %170 ], [ %.0270364, %177 ], [ %.0270364, %185 ], [ %.0270364, %189 ], [ %.0270364, %193 ], [ %.0270364, %199 ], [ %.0270364, %203 ], [ %.0270364, %210 ], [ %.0270364, %132 ], [ %.0270364, %120 ], [ %.0270364, %147 ], [ %.0270364, %145 ], [ %.0270364, %143 ]
  %.1254 = phi i32 [ %75, %74 ], [ %81, %80 ], [ %.0253367, %86 ], [ %91, %90 ], [ %100, %112 ], [ %153, %152 ], [ %161, %160 ], [ %.0253367, %166 ], [ %.0253367, %170 ], [ %175, %177 ], [ %.0253367, %185 ], [ %.0253367, %189 ], [ %.0253367, %193 ], [ %.0253367, %199 ], [ %205, %203 ], [ %.0253367, %210 ], [ %125, %132 ], [ %125, %120 ], [ %139, %147 ], [ %139, %145 ], [ %139, %143 ]
  %.1250 = phi ptr [ %.0249368, %74 ], [ %82, %80 ], [ %.0249368, %86 ], [ %.0249368, %90 ], [ %.0249368, %112 ], [ %.0249368, %152 ], [ %.0249368, %160 ], [ %.0249368, %166 ], [ %.0249368, %170 ], [ %.0249368, %177 ], [ %.0249368, %185 ], [ %.0249368, %189 ], [ %.0249368, %193 ], [ %.0249368, %199 ], [ %.0249368, %203 ], [ %.0249368, %210 ], [ %.0249368, %132 ], [ %.0249368, %120 ], [ %.0249368, %147 ], [ %.0249368, %145 ], [ %.0249368, %143 ]
  %213 = add nsw i32 %.1254, 1
  %214 = icmp slt i32 %213, %0
  br i1 %214, label %44, label %._crit_edge, !llvm.loop !24

._crit_edge:                                      ; preds = %212, %35
  %.0272.lcssa = phi ptr [ null, %35 ], [ %.1273, %212 ]
  %.0270.lcssa = phi ptr [ null, %35 ], [ %.1271, %212 ]
  %.0266.lcssa = phi i32 [ 0, %35 ], [ %.1267, %212 ]
  %.0264.lcssa = phi i32 [ 1, %35 ], [ %.1265, %212 ]
  %.0249.lcssa = phi ptr [ null, %35 ], [ %.1250, %212 ]
  call void @verify_uninitialized()
  %215 = call i32 @sqlite3_initialize() #12
  %.not301 = icmp eq ptr %.0270.lcssa, null
  br i1 %.not301, label %223, label %216

216:                                              ; preds = %._crit_edge
  %217 = call ptr @sqlite3_vfs_find(ptr noundef nonnull %.0270.lcssa) #12
  %.not302 = icmp eq ptr %217, null
  br i1 %.not302, label %220, label %218

218:                                              ; preds = %216
  %219 = call i32 @sqlite3_vfs_register(ptr noundef nonnull %217, i32 noundef 1) #12
  br label %223

220:                                              ; preds = %216
  %221 = load ptr, ptr @stderr, align 8, !tbaa !5
  %222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %221, ptr noundef nonnull @.str.63, ptr noundef nonnull %.0270.lcssa) #13
  call void @exit(i32 noundef 1) #14
  unreachable

223:                                              ; preds = %218, %._crit_edge
  %224 = getelementptr inbounds i8, ptr %4, i64 4544
  %225 = load ptr, ptr %224, align 8, !tbaa !26
  %226 = getelementptr inbounds i8, ptr %225, i64 8
  %227 = load ptr, ptr %226, align 8, !tbaa !12
  %228 = icmp eq ptr %227, null
  br i1 %228, label %229, label %232

229:                                              ; preds = %223
  store ptr @.str.24, ptr %226, align 8, !tbaa !12
  %230 = icmp eq i32 %0, 1
  %231 = zext i1 %230 to i32
  br label %232

232:                                              ; preds = %229, %223
  %.0263 = phi i32 [ %231, %229 ], [ 0, %223 ]
  %233 = load ptr, ptr @stdout, align 8, !tbaa !5
  %234 = getelementptr inbounds i8, ptr %4, i64 64
  store ptr %233, ptr %234, align 8, !tbaa !27
  %235 = call i32 @sqlite3_appendvfs_init(ptr noundef null, ptr noundef null, ptr noundef null)
  %236 = load ptr, ptr %224, align 8, !tbaa !26
  %237 = getelementptr inbounds i8, ptr %236, i64 8
  %238 = load ptr, ptr %237, align 8, !tbaa !12
  %239 = call i32 @access(ptr noundef %238, i32 noundef 0) #12
  %240 = icmp eq i32 %239, 0
  br i1 %240, label %241, label %242

241:                                              ; preds = %232
  call void @open_db(ptr noundef nonnull %4, i32 noundef 0)
  br label %242

242:                                              ; preds = %241, %232
  call void @process_sqliterc(ptr noundef nonnull %4, ptr noundef %.0249.lcssa)
  br i1 %37, label %.lr.ph376, label %._crit_edge377

.lr.ph376:                                        ; preds = %242
  %243 = getelementptr inbounds i8, ptr %4, i64 18
  %244 = getelementptr inbounds i8, ptr %4, i64 17
  %245 = add nsw i32 %0, -1
  %246 = getelementptr inbounds i8, ptr %4, i64 124
  %247 = getelementptr inbounds i8, ptr %4, i64 12
  %248 = getelementptr inbounds i8, ptr %4, i64 28
  %249 = getelementptr inbounds i8, ptr %4, i64 9
  %250 = getelementptr inbounds i8, ptr %4, i64 104
  %251 = getelementptr inbounds i8, ptr %4, i64 292
  %252 = getelementptr inbounds i8, ptr %4, i64 210
  %253 = getelementptr inbounds i8, ptr %4, i64 190
  %254 = getelementptr inbounds i8, ptr %4, i64 84
  %255 = getelementptr inbounds i8, ptr %4, i64 52
  %256 = getelementptr inbounds i8, ptr %4, i64 13
  %257 = getelementptr inbounds i8, ptr %4, i64 136
  %258 = load i16, ptr @.str.67, align 1
  %259 = getelementptr inbounds i8, ptr %4, i64 92
  br label %260

260:                                              ; preds = %.lr.ph376, %523
  %.2255374 = phi i32 [ 1, %.lr.ph376 ], [ %524, %523 ]
  %.0256373 = phi i32 [ 0, %.lr.ph376 ], [ %.2258.ph, %523 ]
  %261 = sext i32 %.2255374 to i64
  %262 = getelementptr inbounds ptr, ptr %1, i64 %261
  %263 = load ptr, ptr %262, align 8, !tbaa !5
  %264 = load i8, ptr %263, align 1, !tbaa !11
  %.not303 = icmp eq i8 %264, 45
  br i1 %.not303, label %265, label %523

265:                                              ; preds = %260
  %266 = getelementptr inbounds i8, ptr %263, i64 1
  %267 = load i8, ptr %266, align 1, !tbaa !11
  %268 = icmp eq i8 %267, 45
  %spec.select321 = select i1 %268, ptr %266, ptr %263
  %269 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.46)
  %270 = icmp eq i32 %269, 0
  br i1 %270, label %271, label %273

271:                                              ; preds = %265
  %272 = add nsw i32 %.2255374, 1
  br label %521

273:                                              ; preds = %265
  %274 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.64)
  %275 = icmp eq i32 %274, 0
  br i1 %275, label %276, label %277

276:                                              ; preds = %273
  store i32 4, ptr %254, align 4, !tbaa !28
  br label %521

277:                                              ; preds = %273
  %278 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.65)
  %279 = icmp eq i32 %278, 0
  br i1 %279, label %280, label %281

280:                                              ; preds = %277
  store i32 2, ptr %254, align 4, !tbaa !28
  br label %521

281:                                              ; preds = %277
  %282 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.66)
  %283 = icmp eq i32 %282, 0
  br i1 %283, label %284, label %287

284:                                              ; preds = %281
  store i32 6, ptr %254, align 4, !tbaa !28
  %285 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %253, ptr noundef nonnull @.str.67) #12
  %286 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %252, ptr noundef nonnull @.str.68) #12
  br label %521

287:                                              ; preds = %281
  %288 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.69)
  %289 = icmp eq i32 %288, 0
  br i1 %289, label %290, label %291

290:                                              ; preds = %287
  store i32 0, ptr %254, align 4, !tbaa !28
  br label %521

291:                                              ; preds = %287
  %292 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.70)
  %293 = icmp eq i32 %292, 0
  br i1 %293, label %294, label %295

294:                                              ; preds = %291
  store i32 1, ptr %254, align 4, !tbaa !28
  br label %521

295:                                              ; preds = %291
  %296 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.71)
  %297 = icmp eq i32 %296, 0
  br i1 %297, label %298, label %299

298:                                              ; preds = %295
  store i32 13, ptr %254, align 4, !tbaa !28
  br label %521

299:                                              ; preds = %295
  %300 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.72)
  %301 = icmp eq i32 %300, 0
  br i1 %301, label %302, label %303

302:                                              ; preds = %299
  store i32 14, ptr %254, align 4, !tbaa !28
  br label %521

303:                                              ; preds = %299
  %304 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.73)
  %305 = icmp eq i32 %304, 0
  br i1 %305, label %306, label %307

306:                                              ; preds = %303
  store i32 15, ptr %254, align 4, !tbaa !28
  br label %521

307:                                              ; preds = %303
  %308 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.74)
  %309 = icmp eq i32 %308, 0
  br i1 %309, label %310, label %311

310:                                              ; preds = %307
  store i32 16, ptr %254, align 4, !tbaa !28
  br label %521

311:                                              ; preds = %307
  %312 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.75)
  %313 = icmp eq i32 %312, 0
  br i1 %313, label %314, label %315

314:                                              ; preds = %311
  store i32 8, ptr %254, align 4, !tbaa !28
  store i16 %258, ptr %253, align 2
  br label %521

315:                                              ; preds = %311
  %316 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.54)
  %317 = icmp eq i32 %316, 0
  br i1 %317, label %318, label %319

318:                                              ; preds = %315
  store i8 2, ptr %256, align 1, !tbaa !20
  br label %521

319:                                              ; preds = %315
  %320 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.55)
  %321 = icmp eq i32 %320, 0
  br i1 %321, label %322, label %323

322:                                              ; preds = %319
  store i8 5, ptr %256, align 1, !tbaa !20
  br label %521

323:                                              ; preds = %319
  %324 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.56)
  %325 = icmp eq i32 %324, 0
  br i1 %325, label %326, label %334

326:                                              ; preds = %323
  %327 = add nsw i32 %.2255374, 1
  %328 = icmp slt i32 %327, %0
  br i1 %328, label %329, label %334

329:                                              ; preds = %326
  %330 = sext i32 %327 to i64
  %331 = getelementptr inbounds ptr, ptr %1, i64 %330
  %332 = load ptr, ptr %331, align 8, !tbaa !5
  %333 = call i64 @integerValue(ptr noundef %332)
  store i64 %333, ptr %257, align 8, !tbaa !21
  br label %521

334:                                              ; preds = %326, %323
  %335 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.57)
  %336 = icmp eq i32 %335, 0
  br i1 %336, label %337, label %338

337:                                              ; preds = %334
  store i8 4, ptr %256, align 1, !tbaa !20
  br label %521

338:                                              ; preds = %334
  %339 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.58)
  %340 = icmp eq i32 %339, 0
  br i1 %340, label %341, label %344

341:                                              ; preds = %338
  %342 = load i32, ptr %255, align 4, !tbaa !22
  %343 = or i32 %342, 16777216
  store i32 %343, ptr %255, align 4, !tbaa !22
  br label %521

344:                                              ; preds = %338
  %345 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.76)
  %346 = icmp eq i32 %345, 0
  br i1 %346, label %347, label %350

347:                                              ; preds = %344
  store i32 10, ptr %254, align 4, !tbaa !28
  %348 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %253, ptr noundef nonnull @.str.77) #12
  %349 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %252, ptr noundef nonnull @.str.78) #12
  br label %521

350:                                              ; preds = %344
  %351 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.79)
  %352 = icmp eq i32 %351, 0
  br i1 %352, label %353, label %356

353:                                              ; preds = %350
  store i32 2, ptr %254, align 4, !tbaa !28
  %354 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %253, ptr noundef nonnull @.str.80) #12
  %355 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %252, ptr noundef nonnull @.str.68) #12
  br label %521

356:                                              ; preds = %350
  %357 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.42)
  %358 = icmp eq i32 %357, 0
  br i1 %358, label %359, label %363

359:                                              ; preds = %356
  %360 = add nsw i32 %.2255374, 1
  %361 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %360)
  %362 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %253, ptr noundef nonnull @.str.81, ptr noundef %361) #12
  br label %521

363:                                              ; preds = %356
  %364 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.44)
  %365 = icmp eq i32 %364, 0
  br i1 %365, label %366, label %370

366:                                              ; preds = %363
  %367 = add nsw i32 %.2255374, 1
  %368 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %367)
  %369 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %252, ptr noundef nonnull @.str.81, ptr noundef %368) #12
  br label %521

370:                                              ; preds = %363
  %371 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.43)
  %372 = icmp eq i32 %371, 0
  br i1 %372, label %373, label %377

373:                                              ; preds = %370
  %374 = add nsw i32 %.2255374, 1
  %375 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %374)
  %376 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef 20, ptr noundef nonnull %251, ptr noundef nonnull @.str.81, ptr noundef %375) #12
  br label %521

377:                                              ; preds = %370
  %378 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.82)
  %379 = icmp eq i32 %378, 0
  br i1 %379, label %380, label %383

380:                                              ; preds = %377
  store i32 1, ptr %250, align 8, !tbaa !29
  %381 = load i32, ptr %246, align 4, !tbaa !14
  %382 = or i32 %381, 128
  store i32 %382, ptr %246, align 4, !tbaa !14
  br label %521

383:                                              ; preds = %377
  %384 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.83)
  %385 = icmp eq i32 %384, 0
  br i1 %385, label %386, label %389

386:                                              ; preds = %383
  store i32 0, ptr %250, align 8, !tbaa !29
  %387 = load i32, ptr %246, align 4, !tbaa !14
  %388 = or i32 %387, 128
  store i32 %388, ptr %246, align 4, !tbaa !14
  br label %521

389:                                              ; preds = %383
  %390 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.84)
  %391 = icmp eq i32 %390, 0
  br i1 %391, label %392, label %395

392:                                              ; preds = %389
  %393 = load i32, ptr %246, align 4, !tbaa !14
  %394 = or i32 %393, 64
  store i32 %394, ptr %246, align 4, !tbaa !14
  br label %521

395:                                              ; preds = %389
  %396 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.85)
  %397 = icmp eq i32 %396, 0
  br i1 %397, label %398, label %399

398:                                              ; preds = %395
  store i8 1, ptr %249, align 1, !tbaa !30
  br label %521

399:                                              ; preds = %395
  %400 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.86)
  %401 = icmp eq i32 %400, 0
  br i1 %401, label %402, label %403

402:                                              ; preds = %399
  store i8 3, ptr %249, align 1, !tbaa !30
  br label %521

403:                                              ; preds = %399
  %404 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.87)
  %405 = icmp eq i32 %404, 0
  br i1 %405, label %406, label %407

406:                                              ; preds = %403
  store i32 1, ptr %248, align 4, !tbaa !31
  br label %521

407:                                              ; preds = %403
  %408 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.88)
  %409 = icmp eq i32 %408, 0
  br i1 %409, label %410, label %411

410:                                              ; preds = %407
  store i8 1, ptr %247, align 4, !tbaa !32
  br label %521

411:                                              ; preds = %407
  %412 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.89)
  %413 = icmp eq i32 %412, 0
  br i1 %413, label %414, label %417

414:                                              ; preds = %411
  %415 = load i32, ptr %246, align 4, !tbaa !14
  %416 = or i32 %415, 4
  store i32 %416, ptr %246, align 4, !tbaa !14
  br label %521

417:                                              ; preds = %411
  %418 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.60)
  %419 = icmp eq i32 %418, 0
  br i1 %419, label %521, label %420

420:                                              ; preds = %417
  %421 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.90)
  %422 = icmp eq i32 %421, 0
  br i1 %422, label %423, label %427

423:                                              ; preds = %420
  %424 = call ptr @sqlite3_libversion() #12
  %425 = call ptr @sqlite3_sourceid() #12
  %426 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.91, ptr noundef %424, ptr noundef %425)
  br label %.thread

427:                                              ; preds = %420
  %428 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.92)
  %429 = icmp eq i32 %428, 0
  br i1 %429, label %430, label %431

430:                                              ; preds = %427
  store i32 1, ptr @stdin_is_interactive, align 4, !tbaa !9
  br label %521

431:                                              ; preds = %427
  %432 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.47)
  %433 = icmp eq i32 %432, 0
  br i1 %433, label %434, label %435

434:                                              ; preds = %431
  store i32 0, ptr @stdin_is_interactive, align 4, !tbaa !9
  br label %521

435:                                              ; preds = %431
  %436 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.48)
  %437 = icmp eq i32 %436, 0
  br i1 %437, label %438, label %440

438:                                              ; preds = %435
  %439 = add nsw i32 %.2255374, 1
  br label %521

440:                                              ; preds = %435
  %441 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.49)
  %442 = icmp eq i32 %441, 0
  br i1 %442, label %443, label %445

443:                                              ; preds = %440
  %444 = add nsw i32 %.2255374, 2
  br label %521

445:                                              ; preds = %440
  %446 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.50)
  %447 = icmp eq i32 %446, 0
  br i1 %447, label %448, label %450

448:                                              ; preds = %445
  %449 = add nsw i32 %.2255374, 2
  br label %521

450:                                              ; preds = %445
  %451 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.51)
  %452 = icmp eq i32 %451, 0
  br i1 %452, label %453, label %455

453:                                              ; preds = %450
  %454 = add nsw i32 %.2255374, 2
  br label %521

455:                                              ; preds = %450
  %456 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.61)
  %457 = icmp eq i32 %456, 0
  br i1 %457, label %458, label %460

458:                                              ; preds = %455
  %459 = add nsw i32 %.2255374, 2
  br label %521

460:                                              ; preds = %455
  %461 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.52)
  %462 = icmp eq i32 %461, 0
  br i1 %462, label %463, label %465

463:                                              ; preds = %460
  %464 = add nsw i32 %.2255374, 1
  br label %521

465:                                              ; preds = %460
  %466 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.59)
  %467 = icmp eq i32 %466, 0
  br i1 %467, label %468, label %470

468:                                              ; preds = %465
  %469 = add nsw i32 %.2255374, 1
  br label %521

470:                                              ; preds = %465
  %471 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.53)
  %472 = icmp eq i32 %471, 0
  br i1 %472, label %473, label %475

473:                                              ; preds = %470
  %474 = add nsw i32 %.2255374, 1
  br label %521

475:                                              ; preds = %470
  %476 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.93)
  %477 = icmp eq i32 %476, 0
  br i1 %477, label %478, label %479

478:                                              ; preds = %475
  call void @usage(i32 noundef 1)
  br label %521

479:                                              ; preds = %475
  %480 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.45)
  %481 = icmp eq i32 %480, 0
  br i1 %481, label %482, label %511

482:                                              ; preds = %479
  %483 = icmp eq i32 %.2255374, %245
  br i1 %483, label %._crit_edge377, label %484

484:                                              ; preds = %482
  %485 = add nsw i32 %.2255374, 1
  %486 = call ptr @cmdline_option_value(i32 noundef %0, ptr noundef nonnull %1, i32 noundef %485)
  %487 = load i8, ptr %486, align 1, !tbaa !11
  %488 = icmp eq i8 %487, 46
  br i1 %488, label %489, label %497

489:                                              ; preds = %484
  %490 = call i32 @do_meta_command(ptr noundef nonnull %486, ptr noundef nonnull %4)
  %491 = icmp ne i32 %490, 0
  %492 = load i32, ptr @bail_on_error, align 4
  %493 = icmp ne i32 %492, 0
  %or.cond8 = select i1 %491, i1 %493, i1 false
  br i1 %or.cond8, label %494, label %521

494:                                              ; preds = %489
  %495 = icmp eq i32 %490, 2
  %496 = select i1 %495, i32 0, i32 %490
  br label %.thread

497:                                              ; preds = %484
  call void @open_db(ptr noundef nonnull %4, i32 noundef 0)
  %498 = call i32 @shell_exec(ptr noundef nonnull %4, ptr noundef nonnull %486, ptr noundef nonnull %3)
  %499 = load ptr, ptr %3, align 8, !tbaa !5
  %.not304 = icmp eq ptr %499, null
  br i1 %.not304, label %506, label %500

500:                                              ; preds = %497
  %501 = load ptr, ptr @stderr, align 8, !tbaa !5
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %501, ptr noundef nonnull @.str.94, ptr noundef nonnull %499) #13
  %503 = load i32, ptr @bail_on_error, align 4, !tbaa !9
  %.not307 = icmp eq i32 %503, 0
  br i1 %.not307, label %521, label %504

504:                                              ; preds = %500
  %505 = call i32 @llvm.umax.i32(i32 %498, i32 1)
  br label %.thread

506:                                              ; preds = %497
  %.not305 = icmp eq i32 %498, 0
  br i1 %.not305, label %521, label %507

507:                                              ; preds = %506
  %508 = load ptr, ptr @stderr, align 8, !tbaa !5
  %509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull @.str.95, ptr noundef nonnull %486) #13
  %510 = load i32, ptr @bail_on_error, align 4, !tbaa !9
  %.not306 = icmp eq i32 %510, 0
  br i1 %.not306, label %521, label %.thread

511:                                              ; preds = %479
  %512 = call i32 @cli_strcmp(ptr noundef nonnull %spec.select321, ptr noundef nonnull @.str.62)
  %513 = icmp eq i32 %512, 0
  br i1 %513, label %514, label %515

514:                                              ; preds = %511
  store i8 1, ptr %243, align 2, !tbaa !33
  store i8 1, ptr %244, align 1, !tbaa !34
  br label %521

515:                                              ; preds = %511
  %516 = load ptr, ptr @stderr, align 8, !tbaa !5
  %517 = load ptr, ptr @Argv0, align 8, !tbaa !5
  %518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %516, ptr noundef nonnull @.str.96, ptr noundef %517, ptr noundef nonnull %spec.select321) #13
  %519 = load ptr, ptr @stderr, align 8, !tbaa !5
  %520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %519, ptr noundef nonnull @.str.97) #13
  br label %.thread

521:                                              ; preds = %276, %284, %294, %302, %310, %318, %329, %341, %353, %366, %380, %392, %402, %410, %417, %430, %438, %448, %458, %468, %478, %489, %506, %507, %500, %514, %473, %463, %453, %443, %434, %414, %406, %398, %386, %373, %359, %347, %337, %322, %314, %306, %298, %290, %280, %271
  %.1257 = phi i32 [ %.0256373, %271 ], [ %.0256373, %276 ], [ %.0256373, %280 ], [ %.0256373, %284 ], [ %.0256373, %290 ], [ %.0256373, %294 ], [ %.0256373, %298 ], [ %.0256373, %302 ], [ %.0256373, %306 ], [ %.0256373, %310 ], [ %.0256373, %314 ], [ %.0256373, %318 ], [ %.0256373, %322 ], [ %.0256373, %329 ], [ %.0256373, %337 ], [ %.0256373, %341 ], [ %.0256373, %347 ], [ %.0256373, %353 ], [ %.0256373, %359 ], [ %.0256373, %366 ], [ %.0256373, %373 ], [ %.0256373, %380 ], [ %.0256373, %386 ], [ %.0256373, %392 ], [ %.0256373, %398 ], [ %.0256373, %402 ], [ %.0256373, %406 ], [ %.0256373, %410 ], [ %.0256373, %414 ], [ %.0256373, %417 ], [ %.0256373, %430 ], [ %.0256373, %434 ], [ %.0256373, %438 ], [ %.0256373, %443 ], [ %.0256373, %448 ], [ %.0256373, %453 ], [ %.0256373, %458 ], [ %.0256373, %463 ], [ %.0256373, %468 ], [ %.0256373, %473 ], [ %.0256373, %478 ], [ %490, %489 ], [ %498, %500 ], [ %498, %507 ], [ 0, %506 ], [ %.0256373, %514 ]
  %.3 = phi i32 [ %272, %271 ], [ %.2255374, %276 ], [ %.2255374, %280 ], [ %.2255374, %284 ], [ %.2255374, %290 ], [ %.2255374, %294 ], [ %.2255374, %298 ], [ %.2255374, %302 ], [ %.2255374, %306 ], [ %.2255374, %310 ], [ %.2255374, %314 ], [ %.2255374, %318 ], [ %.2255374, %322 ], [ %327, %329 ], [ %.2255374, %337 ], [ %.2255374, %341 ], [ %.2255374, %347 ], [ %.2255374, %353 ], [ %360, %359 ], [ %367, %366 ], [ %374, %373 ], [ %.2255374, %380 ], [ %.2255374, %386 ], [ %.2255374, %392 ], [ %.2255374, %398 ], [ %.2255374, %402 ], [ %.2255374, %406 ], [ %.2255374, %410 ], [ %.2255374, %414 ], [ %.2255374, %417 ], [ %.2255374, %430 ], [ %.2255374, %434 ], [ %439, %438 ], [ %444, %443 ], [ %449, %448 ], [ %454, %453 ], [ %459, %458 ], [ %464, %463 ], [ %469, %468 ], [ %474, %473 ], [ %.2255374, %478 ], [ %485, %489 ], [ %485, %500 ], [ %485, %507 ], [ %485, %506 ], [ %.2255374, %514 ]
  %522 = load i32, ptr %254, align 4, !tbaa !28
  store i32 %522, ptr %259, align 4, !tbaa !35
  br label %523

523:                                              ; preds = %521, %260
  %.2258.ph = phi i32 [ %.0256373, %260 ], [ %.1257, %521 ]
  %.4.ph = phi i32 [ %.2255374, %260 ], [ %.3, %521 ]
  %524 = add nsw i32 %.4.ph, 1
  %525 = icmp slt i32 %524, %0
  br i1 %525, label %260, label %._crit_edge377, !llvm.loop !36

._crit_edge377:                                   ; preds = %523, %482, %242
  %.0256.lcssa = phi i32 [ 0, %242 ], [ %.0256373, %482 ], [ %.2258.ph, %523 ]
  %.not309 = icmp eq i32 %.0264.lcssa, 0
  br i1 %.not309, label %.preheader, label %553

.preheader:                                       ; preds = %._crit_edge377
  %526 = icmp sgt i32 %.0266.lcssa, 0
  br i1 %526, label %.lr.ph382.preheader, label %.loopexit

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

.lr.ph382:                                        ; preds = %.lr.ph382.preheader, %552
  %indvars.iv = phi i64 [ 0, %.lr.ph382.preheader ], [ %indvars.iv.next, %552 ]
  %527 = getelementptr inbounds ptr, ptr %.0272.lcssa, i64 %indvars.iv
  %528 = load ptr, ptr %527, align 8, !tbaa !5
  %529 = load i8, ptr %528, align 1, !tbaa !11
  %530 = icmp eq i8 %529, 46
  br i1 %530, label %531, label %536

531:                                              ; preds = %.lr.ph382
  %532 = call i32 @do_meta_command(ptr noundef nonnull %528, ptr noundef nonnull %4)
  %.not310 = icmp eq i32 %532, 0
  br i1 %.not310, label %552, label %533

533:                                              ; preds = %531
  call void @free(ptr noundef nonnull %.0272.lcssa) #12
  %534 = icmp eq i32 %532, 2
  %535 = select i1 %534, i32 0, i32 %532
  br label %.thread

536:                                              ; preds = %.lr.ph382
  call void @open_db(ptr noundef nonnull %4, i32 noundef 0)
  %537 = load ptr, ptr %527, align 8, !tbaa !5
  %538 = call i32 @shell_exec(ptr noundef nonnull %4, ptr noundef %537, ptr noundef nonnull %3)
  %539 = load ptr, ptr %3, align 8, !tbaa !5
  %540 = icmp ne ptr %539, null
  %541 = icmp ne i32 %538, 0
  %or.cond10 = select i1 %540, i1 true, i1 %541
  br i1 %or.cond10, label %542, label %552

542:                                              ; preds = %536
  %543 = load ptr, ptr @stderr, align 8, !tbaa !5
  br i1 %540, label %544, label %546

544:                                              ; preds = %542
  %545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %543, ptr noundef nonnull @.str.94, ptr noundef nonnull %539) #13
  br label %549

546:                                              ; preds = %542
  %547 = load ptr, ptr %527, align 8, !tbaa !5
  %548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %543, ptr noundef nonnull @.str.98, ptr noundef %547) #13
  br label %549

549:                                              ; preds = %546, %544
  %550 = load ptr, ptr %3, align 8, !tbaa !5
  call void @sqlite3_free(ptr noundef %550) #12
  call void @free(ptr noundef nonnull %.0272.lcssa) #12
  %551 = select i1 %541, i32 %538, i32 1
  br label %.thread

552:                                              ; preds = %531, %536
  %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.ph382, !llvm.loop !37

553:                                              ; preds = %._crit_edge377
  %554 = load i32, ptr @stdin_is_interactive, align 4, !tbaa !9
  %.not311 = icmp eq i32 %554, 0
  br i1 %.not311, label %582, label %555

555:                                              ; preds = %553
  %556 = call ptr @sqlite3_libversion() #12
  %557 = call ptr @sqlite3_sourceid() #12
  %558 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.99, ptr noundef %556, ptr noundef %557)
  %.not312 = icmp eq i32 %.0263, 0
  br i1 %.not312, label %562, label %559

559:                                              ; preds = %555
  %560 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.100)
  call void @printBold(ptr noundef nonnull @.str.101)
  %561 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.102)
  br label %562

562:                                              ; preds = %559, %555
  %563 = call ptr @getenv(ptr noundef nonnull @.str.103) #12
  %.not313 = icmp eq ptr %563, null
  br i1 %.not313, label %564, label %576

564:                                              ; preds = %562
  %565 = call ptr @find_home_dir(i32 noundef 0)
  %.not314 = icmp eq ptr %565, null
  br i1 %.not314, label %.thread336, label %566

566:                                              ; preds = %564
  %567 = call i32 @strlen30(ptr noundef nonnull %565)
  %568 = add nsw i32 %567, 20
  %569 = sext i32 %568 to i64
  %570 = call noalias ptr @malloc(i64 noundef %569) #16
  %.not315 = icmp eq ptr %570, null
  br i1 %.not315, label %.thread336, label %.thread339

.thread339:                                       ; preds = %566
  %571 = call ptr (i32, ptr, ptr, ...) @sqlite3_snprintf(i32 noundef %568, ptr noundef nonnull %570, ptr noundef nonnull @.str.104, ptr noundef nonnull %565) #12
  %572 = getelementptr inbounds i8, ptr %4, i64 56
  store ptr null, ptr %572, align 8, !tbaa !38
  %573 = call i32 @process_input(ptr noundef nonnull %4)
  br label %580

.thread336:                                       ; preds = %566, %564
  %574 = getelementptr inbounds i8, ptr %4, i64 56
  store ptr null, ptr %574, align 8, !tbaa !38
  %575 = call i32 @process_input(ptr noundef nonnull %4)
  br label %.loopexit

576:                                              ; preds = %562
  %577 = call noalias ptr @strdup(ptr noundef nonnull %563) #12
  %578 = getelementptr inbounds i8, ptr %4, i64 56
  store ptr null, ptr %578, align 8, !tbaa !38
  %579 = call i32 @process_input(ptr noundef nonnull %4)
  %.not316 = icmp eq ptr %577, null
  br i1 %.not316, label %.loopexit, label %580

580:                                              ; preds = %.thread339, %576
  %581 = phi i32 [ %573, %.thread339 ], [ %579, %576 ]
  %.0248342 = phi ptr [ %570, %.thread339 ], [ %577, %576 ]
  call void @free(ptr noundef nonnull %.0248342) #12
  br label %.loopexit

582:                                              ; preds = %553
  %583 = load ptr, ptr @stdin, align 8, !tbaa !5
  %584 = getelementptr inbounds i8, ptr %4, i64 56
  store ptr %583, ptr %584, align 8, !tbaa !38
  %585 = call i32 @process_input(ptr noundef nonnull %4)
  br label %.loopexit

.loopexit:                                        ; preds = %552, %.preheader, %.thread336, %576, %580, %582
  %.6262 = phi i32 [ %585, %582 ], [ %581, %580 ], [ %579, %576 ], [ %575, %.thread336 ], [ %.0256.lcssa, %.preheader ], [ 0, %552 ]
  call void @free(ptr noundef %.0272.lcssa) #12
  call void @set_table_name(ptr noundef nonnull %4, ptr noundef null)
  %586 = load ptr, ptr %4, align 8, !tbaa !39
  %.not317 = icmp eq ptr %586, null
  br i1 %.not317, label %588, label %587

587:                                              ; preds = %.loopexit
  call void @close_db(ptr noundef nonnull %586)
  br label %588

588:                                              ; preds = %587, %.loopexit
  %589 = getelementptr inbounds i8, ptr %4, i64 4424
  %590 = getelementptr inbounds i8, ptr %4, i64 4440
  %591 = load ptr, ptr %590, align 8, !tbaa !40
  call void @sqlite3_free(ptr noundef %591) #12
  %592 = load ptr, ptr %589, align 8, !tbaa !41
  %.not318 = icmp eq ptr %592, null
  br i1 %.not318, label %594, label %593

593:                                              ; preds = %588
  call void @close_db(ptr noundef nonnull %592)
  br label %594

594:                                              ; preds = %588, %593
  %595 = getelementptr inbounds i8, ptr %4, i64 4448
  %596 = getelementptr inbounds i8, ptr %4, i64 4464
  %597 = load ptr, ptr %596, align 8, !tbaa !40
  call void @sqlite3_free(ptr noundef %597) #12
  %598 = load ptr, ptr %595, align 8, !tbaa !41
  %.not318.1 = icmp eq ptr %598, null
  br i1 %.not318.1, label %600, label %599

599:                                              ; preds = %594
  call void @close_db(ptr noundef nonnull %598)
  br label %600

600:                                              ; preds = %599, %594
  %601 = getelementptr inbounds i8, ptr %4, i64 4472
  %602 = getelementptr inbounds i8, ptr %4, i64 4488
  %603 = load ptr, ptr %602, align 8, !tbaa !40
  call void @sqlite3_free(ptr noundef %603) #12
  %604 = load ptr, ptr %601, align 8, !tbaa !41
  %.not318.2 = icmp eq ptr %604, null
  br i1 %.not318.2, label %606, label %605

605:                                              ; preds = %600
  call void @close_db(ptr noundef nonnull %604)
  br label %606

606:                                              ; preds = %605, %600
  %607 = getelementptr inbounds i8, ptr %4, i64 4496
  %608 = getelementptr inbounds i8, ptr %4, i64 4512
  %609 = load ptr, ptr %608, align 8, !tbaa !40
  call void @sqlite3_free(ptr noundef %609) #12
  %610 = load ptr, ptr %607, align 8, !tbaa !41
  %.not318.3 = icmp eq ptr %610, null
  br i1 %.not318.3, label %612, label %611

611:                                              ; preds = %606
  call void @close_db(ptr noundef nonnull %610)
  br label %612

612:                                              ; preds = %611, %606
  %613 = getelementptr inbounds i8, ptr %4, i64 4520
  %614 = getelementptr inbounds i8, ptr %4, i64 4536
  %615 = load ptr, ptr %614, align 8, !tbaa !40
  call void @sqlite3_free(ptr noundef %615) #12
  %616 = load ptr, ptr %613, align 8, !tbaa !41
  %.not318.4 = icmp eq ptr %616, null
  br i1 %.not318.4, label %618, label %617

617:                                              ; preds = %612
  call void @close_db(ptr noundef nonnull %616)
  br label %618

618:                                              ; preds = %617, %612
  %619 = call ptr @find_home_dir(i32 noundef 1)
  call void @output_reset(ptr noundef nonnull %4)
  %620 = getelementptr inbounds i8, ptr %4, i64 14
  store i8 0, ptr %620, align 2, !tbaa !42
  call void @clearTempFile(ptr noundef nonnull %4)
  %621 = getelementptr inbounds i8, ptr %4, i64 272
  %622 = load ptr, ptr %621, align 8, !tbaa !43
  call void @free(ptr noundef %622) #12
  %623 = getelementptr inbounds i8, ptr %4, i64 4568
  %624 = load ptr, ptr %623, align 8, !tbaa !23
  call void @free(ptr noundef %624) #12
  br label %.thread

.thread:                                          ; preds = %507, %515, %504, %494, %423, %618, %549, %533
  %.2 = phi i32 [ %.6262, %618 ], [ %535, %533 ], [ %551, %549 ], [ 1, %515 ], [ %505, %504 ], [ %496, %494 ], [ 0, %423 ], [ %498, %507 ]
  call void @llvm.lifetime.end.p0(i64 4712, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #12
  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: nounwind uwtable
declare hidden i32 @cli_strncmp(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #0

declare ptr @sqlite3_sourceid() local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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 #0

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

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 #0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 = { 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 #7 = { 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 #8 = { 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 #9 = { 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 #10 = { 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 #11 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #12 = { nounwind }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }
attributes #15 = { nounwind allocsize(1) }
attributes #16 = { 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 8}
!13 = !{!"AuxDb", !6, i64 0, !6, i64 8, !6, i64 16}
!14 = !{!15, !10, i64 124}
!15 = !{!"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, !7, i64 17, !7, i64 18, !16, i64 20, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !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, !10, i64 124, !10, i64 128, !17, i64 136, !6, i64 144, !6, i64 152, !7, i64 160, !7, i64 190, !7, i64 210, !7, i64 230, !7, i64 250, !6, i64 272, !6, i64 280, !10, i64 288, !7, i64 292, !7, i64 312, !6, i64 4408, !6, i64 4416, !7, i64 4424, !6, i64 4544, !6, i64 4552, !10, i64 4560, !10, i64 4564, !6, i64 4568, !18, i64 4576, !19, i64 4696}
!16 = !{!"ColModeOpts", !10, i64 0, !7, i64 4, !7, i64 5}
!17 = !{!"long long", !7, i64 0}
!18 = !{!"EQPGraph", !6, i64 0, !6, i64 8, !7, i64 16}
!19 = !{!"ExpertInfo", !6, i64 0, !10, i64 8}
!20 = !{!15, !7, i64 13}
!21 = !{!15, !17, i64 136}
!22 = !{!15, !10, i64 52}
!23 = !{!15, !6, i64 4568}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.mustprogress"}
!26 = !{!15, !6, i64 4544}
!27 = !{!15, !6, i64 64}
!28 = !{!15, !10, i64 84}
!29 = !{!15, !10, i64 104}
!30 = !{!15, !7, i64 9}
!31 = !{!15, !10, i64 28}
!32 = !{!15, !7, i64 12}
!33 = !{!15, !7, i64 18}
!34 = !{!15, !7, i64 17}
!35 = !{!15, !10, i64 92}
!36 = distinct !{!36, !25}
!37 = distinct !{!37, !25}
!38 = !{!15, !6, i64 56}
!39 = !{!15, !6, i64 0}
!40 = !{!13, !6, i64 16}
!41 = !{!13, !6, i64 0}
!42 = !{!15, !7, i64 14}
!43 = !{!15, !6, i64 272}


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