; LLVM IR from InsightSoftwareConsortium/ITK :: Modules/ThirdParty/NIFTI/src/nifti/niftilib (nifti1_tool)

; 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.nt_opts = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [8 x i32], [8 x i32], i32, i32, i32, i32, ptr, %struct.str_list, %struct.int_list, %struct.str_list, %struct.str_list, %struct.str_list, [2048 x i8] }
%struct.int_list = type { i32, ptr }
%struct.str_list = type { i32, ptr }

@.str = external hidden unnamed_addr constant [16 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [14 x i8], align 1
@stderr = external global ptr, align 8
@.str.14 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [9 x i8], align 1
@g_debug = external hidden global i32, align 4
@.str.46 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [15 x i8], align 1

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

; Function Attrs: nounwind uwtable
define dso_local i32 @process_opts(i32 noundef %0, ptr noundef %1, ptr noundef %2) #1 {
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %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 i32, align 4
  %15 = alloca i32, align 4
  store i32 %0, ptr %5, align 4, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !9
  store ptr %2, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  %16 = load ptr, ptr %7, align 8, !tbaa !9
  call void @llvm.memset.p0.i64(ptr align 8 %16, i8 0, i64 2304, i1 false)
  %17 = load ptr, ptr %7, align 8, !tbaa !9
  %18 = getelementptr inbounds %struct.nt_opts, ptr %17, i32 0, i32 28
  store ptr null, ptr %18, align 8, !tbaa !11
  %19 = load ptr, ptr %7, align 8, !tbaa !9
  %20 = getelementptr inbounds %struct.nt_opts, ptr %19, i32 0, i32 25
  store i32 1, ptr %20, align 4, !tbaa !14
  %21 = load ptr, ptr %7, align 8, !tbaa !9
  %22 = getelementptr inbounds %struct.nt_opts, ptr %21, i32 0, i32 24
  store i32 4, ptr %22, align 8, !tbaa !15
  %23 = load ptr, ptr %7, align 8, !tbaa !9
  %24 = getelementptr inbounds %struct.nt_opts, ptr %23, i32 0, i32 23
  %25 = getelementptr inbounds [8 x i32], ptr %24, i64 0, i64 0
  store i32 3, ptr %25, align 8, !tbaa !5
  %26 = load ptr, ptr %7, align 8, !tbaa !9
  %27 = getelementptr inbounds %struct.nt_opts, ptr %26, i32 0, i32 23
  %28 = getelementptr inbounds [8 x i32], ptr %27, i64 0, i64 1
  store i32 1, ptr %28, align 4, !tbaa !5
  %29 = load ptr, ptr %7, align 8, !tbaa !9
  %30 = getelementptr inbounds %struct.nt_opts, ptr %29, i32 0, i32 23
  %31 = getelementptr inbounds [8 x i32], ptr %30, i64 0, i64 2
  store i32 1, ptr %31, align 8, !tbaa !5
  %32 = load ptr, ptr %7, align 8, !tbaa !9
  %33 = getelementptr inbounds %struct.nt_opts, ptr %32, i32 0, i32 23
  %34 = getelementptr inbounds [8 x i32], ptr %33, i64 0, i64 3
  store i32 1, ptr %34, align 4, !tbaa !5
  %35 = load i32, ptr %5, align 4, !tbaa !5
  %36 = icmp slt i32 %35, 2
  br i1 %36, label %37, label %42

37:                                               ; preds = %3
  %38 = load ptr, ptr %6, align 8, !tbaa !9
  %39 = getelementptr inbounds ptr, ptr %38, i64 0
  %40 = load ptr, ptr %39, align 8, !tbaa !9
  %41 = call i32 @usage(ptr noundef %40, i32 noundef 2)
  store i32 %41, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

42:                                               ; preds = %3
  store i32 1, ptr %8, align 4, !tbaa !5
  br label %43

43:                                               ; preds = %1302, %42
  %44 = load i32, ptr %8, align 4, !tbaa !5
  %45 = load i32, ptr %5, align 4, !tbaa !5
  %46 = icmp slt i32 %44, %45
  br i1 %46, label %47, label %1305

47:                                               ; preds = %43
  %48 = load ptr, ptr %6, align 8, !tbaa !9
  %49 = load i32, ptr %8, align 4, !tbaa !5
  %50 = sext i32 %49 to i64
  %51 = getelementptr inbounds ptr, ptr %48, i64 %50
  %52 = load ptr, ptr %51, align 8, !tbaa !9
  %53 = call i32 @strncmp(ptr noundef %52, ptr noundef @.str, i64 noundef 9) #9
  %54 = icmp ne i32 %53, 0
  br i1 %54, label %112, label %55

55:                                               ; preds = %47
  %56 = load i32, ptr %8, align 4, !tbaa !5
  %57 = add nsw i32 %56, 1
  store i32 %57, ptr %8, align 4, !tbaa !5
  %58 = load i32, ptr %8, align 4, !tbaa !5
  %59 = load i32, ptr %5, align 4, !tbaa !5
  %60 = icmp sge i32 %58, %59
  br i1 %60, label %61, label %63

61:                                               ; preds = %55
  %62 = call i32 @nifti_disp_type_list(i32 noundef 3)
  br label %111

63:                                               ; preds = %55
  %64 = load ptr, ptr %6, align 8, !tbaa !9
  %65 = load i32, ptr %8, align 4, !tbaa !5
  %66 = sext i32 %65 to i64
  %67 = getelementptr inbounds ptr, ptr %64, i64 %66
  %68 = load ptr, ptr %67, align 8, !tbaa !9
  %69 = getelementptr inbounds i8, ptr %68, i64 0
  %70 = load i8, ptr %69, align 1, !tbaa !16
  %71 = sext i8 %70 to i32
  %72 = icmp eq i32 %71, 100
  br i1 %72, label %83, label %73

73:                                               ; preds = %63
  %74 = load ptr, ptr %6, align 8, !tbaa !9
  %75 = load i32, ptr %8, align 4, !tbaa !5
  %76 = sext i32 %75 to i64
  %77 = getelementptr inbounds ptr, ptr %74, i64 %76
  %78 = load ptr, ptr %77, align 8, !tbaa !9
  %79 = getelementptr inbounds i8, ptr %78, i64 0
  %80 = load i8, ptr %79, align 1, !tbaa !16
  %81 = sext i8 %80 to i32
  %82 = icmp eq i32 %81, 68
  br i1 %82, label %83, label %85

83:                                               ; preds = %73, %63
  %84 = call i32 @nifti_disp_type_list(i32 noundef 1)
  br label %110

85:                                               ; preds = %73
  %86 = load ptr, ptr %6, align 8, !tbaa !9
  %87 = load i32, ptr %8, align 4, !tbaa !5
  %88 = sext i32 %87 to i64
  %89 = getelementptr inbounds ptr, ptr %86, i64 %88
  %90 = load ptr, ptr %89, align 8, !tbaa !9
  %91 = getelementptr inbounds i8, ptr %90, i64 0
  %92 = load i8, ptr %91, align 1, !tbaa !16
  %93 = sext i8 %92 to i32
  %94 = icmp eq i32 %93, 116
  br i1 %94, label %105, label %95

95:                                               ; preds = %85
  %96 = load ptr, ptr %6, align 8, !tbaa !9
  %97 = load i32, ptr %8, align 4, !tbaa !5
  %98 = sext i32 %97 to i64
  %99 = getelementptr inbounds ptr, ptr %96, i64 %98
  %100 = load ptr, ptr %99, align 8, !tbaa !9
  %101 = getelementptr inbounds i8, ptr %100, i64 0
  %102 = load i8, ptr %101, align 1, !tbaa !16
  %103 = sext i8 %102 to i32
  %104 = icmp eq i32 %103, 84
  br i1 %104, label %105, label %107

105:                                              ; preds = %95, %85
  %106 = call i32 @nifti_test_datatype_sizes(i32 noundef 1)
  br label %109

107:                                              ; preds = %95
  %108 = call i32 @nifti_disp_type_list(i32 noundef 2)
  br label %109

109:                                              ; preds = %107, %105
  br label %110

110:                                              ; preds = %109, %83
  br label %111

111:                                              ; preds = %110, %61
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

112:                                              ; preds = %47
  %113 = load ptr, ptr %6, align 8, !tbaa !9
  %114 = load i32, ptr %8, align 4, !tbaa !5
  %115 = sext i32 %114 to i64
  %116 = getelementptr inbounds ptr, ptr %113, i64 %115
  %117 = load ptr, ptr %116, align 8, !tbaa !9
  %118 = call i32 @strncmp(ptr noundef %117, ptr noundef @.str.1, i64 noundef 9) #9
  %119 = icmp ne i32 %118, 0
  br i1 %119, label %125, label %120

120:                                              ; preds = %112
  %121 = load ptr, ptr %6, align 8, !tbaa !9
  %122 = getelementptr inbounds ptr, ptr %121, i64 0
  %123 = load ptr, ptr %122, align 8, !tbaa !9
  %124 = call i32 @usage(ptr noundef %123, i32 noundef 4)
  store i32 %124, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

125:                                              ; preds = %112
  %126 = load ptr, ptr %6, align 8, !tbaa !9
  %127 = load i32, ptr %8, align 4, !tbaa !5
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds ptr, ptr %126, i64 %128
  %130 = load ptr, ptr %129, align 8, !tbaa !9
  %131 = call i32 @strncmp(ptr noundef %130, ptr noundef @.str.2, i64 noundef 9) #9
  %132 = icmp ne i32 %131, 0
  br i1 %132, label %138, label %133

133:                                              ; preds = %125
  %134 = load ptr, ptr %6, align 8, !tbaa !9
  %135 = getelementptr inbounds ptr, ptr %134, i64 0
  %136 = load ptr, ptr %135, align 8, !tbaa !9
  %137 = call i32 @usage(ptr noundef %136, i32 noundef 5)
  store i32 %137, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

138:                                              ; preds = %125
  %139 = load ptr, ptr %6, align 8, !tbaa !9
  %140 = load i32, ptr %8, align 4, !tbaa !5
  %141 = sext i32 %140 to i64
  %142 = getelementptr inbounds ptr, ptr %139, i64 %141
  %143 = load ptr, ptr %142, align 8, !tbaa !9
  %144 = call i32 @strncmp(ptr noundef %143, ptr noundef @.str.3, i64 noundef 9) #9
  %145 = icmp ne i32 %144, 0
  br i1 %145, label %151, label %146

146:                                              ; preds = %138
  %147 = load ptr, ptr %6, align 8, !tbaa !9
  %148 = getelementptr inbounds ptr, ptr %147, i64 0
  %149 = load ptr, ptr %148, align 8, !tbaa !9
  %150 = call i32 @usage(ptr noundef %149, i32 noundef 6)
  store i32 %150, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

151:                                              ; preds = %138
  %152 = load ptr, ptr %6, align 8, !tbaa !9
  %153 = load i32, ptr %8, align 4, !tbaa !5
  %154 = sext i32 %153 to i64
  %155 = getelementptr inbounds ptr, ptr %152, i64 %154
  %156 = load ptr, ptr %155, align 8, !tbaa !9
  %157 = call i32 @strncmp(ptr noundef %156, ptr noundef @.str.4, i64 noundef 5) #9
  %158 = icmp ne i32 %157, 0
  br i1 %158, label %164, label %159

159:                                              ; preds = %151
  %160 = load ptr, ptr %6, align 8, !tbaa !9
  %161 = getelementptr inbounds ptr, ptr %160, i64 0
  %162 = load ptr, ptr %161, align 8, !tbaa !9
  %163 = call i32 @usage(ptr noundef %162, i32 noundef 2)
  store i32 %163, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

164:                                              ; preds = %151
  %165 = load ptr, ptr %6, align 8, !tbaa !9
  %166 = load i32, ptr %8, align 4, !tbaa !5
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds ptr, ptr %165, i64 %167
  %169 = load ptr, ptr %168, align 8, !tbaa !9
  %170 = call i32 @strncmp(ptr noundef %169, ptr noundef @.str.5, i64 noundef 5) #9
  %171 = icmp ne i32 %170, 0
  br i1 %171, label %177, label %172

172:                                              ; preds = %164
  %173 = load ptr, ptr %6, align 8, !tbaa !9
  %174 = getelementptr inbounds ptr, ptr %173, i64 0
  %175 = load ptr, ptr %174, align 8, !tbaa !9
  %176 = call i32 @usage(ptr noundef %175, i32 noundef 3)
  store i32 %176, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

177:                                              ; preds = %164
  %178 = load ptr, ptr %6, align 8, !tbaa !9
  %179 = load i32, ptr %8, align 4, !tbaa !5
  %180 = sext i32 %179 to i64
  %181 = getelementptr inbounds ptr, ptr %178, i64 %180
  %182 = load ptr, ptr %181, align 8, !tbaa !9
  %183 = call i32 @strncmp(ptr noundef %182, ptr noundef @.str.6, i64 noundef 2) #9
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %190, label %185

185:                                              ; preds = %177
  %186 = load ptr, ptr %6, align 8, !tbaa !9
  %187 = getelementptr inbounds ptr, ptr %186, i64 0
  %188 = load ptr, ptr %187, align 8, !tbaa !9
  %189 = call i32 @usage(ptr noundef %188, i32 noundef 8)
  store i32 %189, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

190:                                              ; preds = %177
  %191 = load ptr, ptr %6, align 8, !tbaa !9
  %192 = load i32, ptr %8, align 4, !tbaa !5
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds ptr, ptr %191, i64 %193
  %195 = load ptr, ptr %194, align 8, !tbaa !9
  %196 = call i32 @strncmp(ptr noundef %195, ptr noundef @.str.7, i64 noundef 11) #9
  %197 = icmp ne i32 %196, 0
  br i1 %197, label %199, label %198

198:                                              ; preds = %190
  call void @nifti_disp_lib_hist()
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

199:                                              ; preds = %190
  %200 = load ptr, ptr %6, align 8, !tbaa !9
  %201 = load i32, ptr %8, align 4, !tbaa !5
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds ptr, ptr %200, i64 %202
  %204 = load ptr, ptr %203, align 8, !tbaa !9
  %205 = call i32 @strncmp(ptr noundef %204, ptr noundef @.str.8, i64 noundef 10) #9
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %208, label %207

207:                                              ; preds = %199
  call void @nifti_disp_lib_version()
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

208:                                              ; preds = %199
  %209 = load ptr, ptr %6, align 8, !tbaa !9
  %210 = load i32, ptr %8, align 4, !tbaa !5
  %211 = sext i32 %210 to i64
  %212 = getelementptr inbounds ptr, ptr %209, i64 %211
  %213 = load ptr, ptr %212, align 8, !tbaa !9
  %214 = call i32 @strncmp(ptr noundef %213, ptr noundef @.str.9, i64 noundef 5) #9
  %215 = icmp ne i32 %214, 0
  br i1 %215, label %222, label %216

216:                                              ; preds = %208
  %217 = call i32 @nifti_compiled_with_zlib()
  %218 = icmp ne i32 %217, 0
  %219 = zext i1 %218 to i64
  %220 = select i1 %218, ptr @.str.11, ptr @.str.12
  %221 = call i32 (ptr, ...) @printf(ptr noundef @.str.10, ptr noundef %220)
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

222:                                              ; preds = %208
  %223 = load ptr, ptr %6, align 8, !tbaa !9
  %224 = load i32, ptr %8, align 4, !tbaa !5
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds ptr, ptr %223, i64 %225
  %227 = load ptr, ptr %226, align 8, !tbaa !9
  %228 = call i32 @strncmp(ptr noundef %227, ptr noundef @.str.13, i64 noundef 9) #9
  %229 = icmp ne i32 %228, 0
  br i1 %229, label %264, label %230

230:                                              ; preds = %222
  %231 = load i32, ptr %8, align 4, !tbaa !5
  %232 = add nsw i32 %231, 1
  store i32 %232, ptr %8, align 4, !tbaa !5
  br label %233

233:                                              ; preds = %230
  %234 = load i32, ptr %8, align 4, !tbaa !5
  %235 = load i32, ptr %5, align 4, !tbaa !5
  %236 = icmp sge i32 %234, %235
  br i1 %236, label %237, label %242

237:                                              ; preds = %233
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %238, ptr noundef @.str.14, ptr noundef @.str.13) #8
  %240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %240, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

242:                                              ; preds = %233
  br label %243

243:                                              ; preds = %242
  br label %244

244:                                              ; preds = %243
  %245 = load ptr, ptr %7, align 8, !tbaa !9
  %246 = getelementptr inbounds %struct.nt_opts, ptr %245, i32 0, i32 29
  %247 = load ptr, ptr %6, align 8, !tbaa !9
  %248 = load i32, ptr %8, align 4, !tbaa !5
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds ptr, ptr %247, i64 %249
  %251 = load ptr, ptr %250, align 8, !tbaa !9
  %252 = call i32 @add_string(ptr noundef %246, ptr noundef %251)
  %253 = icmp ne i32 %252, 0
  br i1 %253, label %254, label %255

254:                                              ; preds = %244
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

255:                                              ; preds = %244
  %256 = load ptr, ptr %7, align 8, !tbaa !9
  %257 = getelementptr inbounds %struct.nt_opts, ptr %256, i32 0, i32 30
  %258 = call i32 @add_int(ptr noundef %257, i32 noundef 4)
  %259 = icmp ne i32 %258, 0
  br i1 %259, label %260, label %261

260:                                              ; preds = %255
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

261:                                              ; preds = %255
  %262 = load ptr, ptr %7, align 8, !tbaa !9
  %263 = getelementptr inbounds %struct.nt_opts, ptr %262, i32 0, i32 8
  store i32 1, ptr %263, align 8, !tbaa !17
  br label %1291

264:                                              ; preds = %222
  %265 = load ptr, ptr %6, align 8, !tbaa !9
  %266 = load i32, ptr %8, align 4, !tbaa !5
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds ptr, ptr %265, i64 %267
  %269 = load ptr, ptr %268, align 8, !tbaa !9
  %270 = call i32 @strncmp(ptr noundef %269, ptr noundef @.str.16, i64 noundef 9) #9
  %271 = icmp ne i32 %270, 0
  br i1 %271, label %306, label %272

272:                                              ; preds = %264
  %273 = load i32, ptr %8, align 4, !tbaa !5
  %274 = add nsw i32 %273, 1
  store i32 %274, ptr %8, align 4, !tbaa !5
  br label %275

275:                                              ; preds = %272
  %276 = load i32, ptr %8, align 4, !tbaa !5
  %277 = load i32, ptr %5, align 4, !tbaa !5
  %278 = icmp sge i32 %276, %277
  br i1 %278, label %279, label %284

279:                                              ; preds = %275
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %280, ptr noundef @.str.14, ptr noundef @.str.16) #8
  %282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %282, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

284:                                              ; preds = %275
  br label %285

285:                                              ; preds = %284
  br label %286

286:                                              ; preds = %285
  %287 = load ptr, ptr %7, align 8, !tbaa !9
  %288 = getelementptr inbounds %struct.nt_opts, ptr %287, i32 0, i32 29
  %289 = load ptr, ptr %6, align 8, !tbaa !9
  %290 = load i32, ptr %8, align 4, !tbaa !5
  %291 = sext i32 %290 to i64
  %292 = getelementptr inbounds ptr, ptr %289, i64 %291
  %293 = load ptr, ptr %292, align 8, !tbaa !9
  %294 = call i32 @add_string(ptr noundef %288, ptr noundef %293)
  %295 = icmp ne i32 %294, 0
  br i1 %295, label %296, label %297

296:                                              ; preds = %286
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

297:                                              ; preds = %286
  %298 = load ptr, ptr %7, align 8, !tbaa !9
  %299 = getelementptr inbounds %struct.nt_opts, ptr %298, i32 0, i32 30
  %300 = call i32 @add_int(ptr noundef %299, i32 noundef 6)
  %301 = icmp ne i32 %300, 0
  br i1 %301, label %302, label %303

302:                                              ; preds = %297
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

303:                                              ; preds = %297
  %304 = load ptr, ptr %7, align 8, !tbaa !9
  %305 = getelementptr inbounds %struct.nt_opts, ptr %304, i32 0, i32 8
  store i32 1, ptr %305, align 8, !tbaa !17
  br label %1290

306:                                              ; preds = %264
  %307 = load ptr, ptr %6, align 8, !tbaa !9
  %308 = load i32, ptr %8, align 4, !tbaa !5
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds ptr, ptr %307, i64 %309
  %311 = load ptr, ptr %310, align 8, !tbaa !9
  %312 = call i32 @strncmp(ptr noundef %311, ptr noundef @.str.17, i64 noundef 10) #9
  %313 = icmp ne i32 %312, 0
  br i1 %313, label %317, label %314

314:                                              ; preds = %306
  %315 = load ptr, ptr %7, align 8, !tbaa !9
  %316 = getelementptr inbounds %struct.nt_opts, ptr %315, i32 0, i32 0
  store i32 1, ptr %316, align 8, !tbaa !18
  br label %1289

317:                                              ; preds = %306
  %318 = load ptr, ptr %6, align 8, !tbaa !9
  %319 = load i32, ptr %8, align 4, !tbaa !5
  %320 = sext i32 %319 to i64
  %321 = getelementptr inbounds ptr, ptr %318, i64 %320
  %322 = load ptr, ptr %321, align 8, !tbaa !9
  %323 = call i32 @strncmp(ptr noundef %322, ptr noundef @.str.18, i64 noundef 10) #9
  %324 = icmp ne i32 %323, 0
  br i1 %324, label %328, label %325

325:                                              ; preds = %317
  %326 = load ptr, ptr %7, align 8, !tbaa !9
  %327 = getelementptr inbounds %struct.nt_opts, ptr %326, i32 0, i32 1
  store i32 1, ptr %327, align 4, !tbaa !19
  br label %1288

328:                                              ; preds = %317
  %329 = load ptr, ptr %6, align 8, !tbaa !9
  %330 = load i32, ptr %8, align 4, !tbaa !5
  %331 = sext i32 %330 to i64
  %332 = getelementptr inbounds ptr, ptr %329, i64 %331
  %333 = load ptr, ptr %332, align 8, !tbaa !9
  %334 = call i32 @strncmp(ptr noundef %333, ptr noundef @.str.19, i64 noundef 11) #9
  %335 = icmp ne i32 %334, 0
  br i1 %335, label %336, label %352

336:                                              ; preds = %328
  %337 = load ptr, ptr %6, align 8, !tbaa !9
  %338 = load i32, ptr %8, align 4, !tbaa !5
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds ptr, ptr %337, i64 %339
  %341 = load ptr, ptr %340, align 8, !tbaa !9
  %342 = call i32 @strncmp(ptr noundef %341, ptr noundef @.str.20, i64 noundef 10) #9
  %343 = icmp ne i32 %342, 0
  br i1 %343, label %344, label %352

344:                                              ; preds = %336
  %345 = load ptr, ptr %6, align 8, !tbaa !9
  %346 = load i32, ptr %8, align 4, !tbaa !5
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds ptr, ptr %345, i64 %347
  %349 = load ptr, ptr %348, align 8, !tbaa !9
  %350 = call i32 @strncmp(ptr noundef %349, ptr noundef @.str.21, i64 noundef 4) #9
  %351 = icmp ne i32 %350, 0
  br i1 %351, label %355, label %352

352:                                              ; preds = %344, %336, %328
  %353 = load ptr, ptr %7, align 8, !tbaa !9
  %354 = getelementptr inbounds %struct.nt_opts, ptr %353, i32 0, i32 16
  store i32 1, ptr %354, align 8, !tbaa !20
  br label %1287

355:                                              ; preds = %344
  %356 = load ptr, ptr %6, align 8, !tbaa !9
  %357 = load i32, ptr %8, align 4, !tbaa !5
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds ptr, ptr %356, i64 %358
  %360 = load ptr, ptr %359, align 8, !tbaa !9
  %361 = call i32 @strncmp(ptr noundef %360, ptr noundef @.str.22, i64 noundef 10) #9
  %362 = icmp ne i32 %361, 0
  br i1 %362, label %363, label %371

363:                                              ; preds = %355
  %364 = load ptr, ptr %6, align 8, !tbaa !9
  %365 = load i32, ptr %8, align 4, !tbaa !5
  %366 = sext i32 %365 to i64
  %367 = getelementptr inbounds ptr, ptr %364, i64 %366
  %368 = load ptr, ptr %367, align 8, !tbaa !9
  %369 = call i32 @strncmp(ptr noundef %368, ptr noundef @.str.23, i64 noundef 4) #9
  %370 = icmp ne i32 %369, 0
  br i1 %370, label %447, label %371

371:                                              ; preds = %363, %355
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  %372 = load ptr, ptr %7, align 8, !tbaa !9
  %373 = getelementptr inbounds %struct.nt_opts, ptr %372, i32 0, i32 22
  %374 = getelementptr inbounds [8 x i32], ptr %373, i64 0, i64 0
  store i32 0, ptr %374, align 8, !tbaa !5
  store i32 1, ptr %10, align 4, !tbaa !5
  br label %375

375:                                              ; preds = %438, %371
  %376 = load i32, ptr %10, align 4, !tbaa !5
  %377 = icmp slt i32 %376, 8
  br i1 %377, label %378, label %441

378:                                              ; preds = %375
  %379 = load i32, ptr %8, align 4, !tbaa !5
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr %8, align 4, !tbaa !5
  br label %381

381:                                              ; preds = %378
  %382 = load i32, ptr %8, align 4, !tbaa !5
  %383 = load i32, ptr %5, align 4, !tbaa !5
  %384 = icmp sge i32 %382, %383
  br i1 %384, label %385, label %390

385:                                              ; preds = %381
  %386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %386, ptr noundef @.str.24, ptr noundef @.str.23, ptr noundef @.str.25) #8
  %388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %388, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %444

390:                                              ; preds = %381
  br label %391

391:                                              ; preds = %390
  br label %392

392:                                              ; preds = %391
  %393 = call ptr @__ctype_b_loc() #10
  %394 = load ptr, ptr %393, align 8, !tbaa !9
  %395 = load ptr, ptr %6, align 8, !tbaa !9
  %396 = load i32, ptr %8, align 4, !tbaa !5
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds ptr, ptr %395, i64 %397
  %399 = load ptr, ptr %398, align 8, !tbaa !9
  %400 = getelementptr inbounds i8, ptr %399, i64 0
  %401 = load i8, ptr %400, align 1, !tbaa !16
  %402 = sext i8 %401 to i32
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds i16, ptr %394, i64 %403
  %405 = load i16, ptr %404, align 2, !tbaa !21
  %406 = zext i16 %405 to i32
  %407 = and i32 %406, 2048
  %408 = icmp ne i32 %407, 0
  br i1 %408, label %426, label %409

409:                                              ; preds = %392
  %410 = load ptr, ptr %6, align 8, !tbaa !9
  %411 = load i32, ptr %8, align 4, !tbaa !5
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds ptr, ptr %410, i64 %412
  %414 = load ptr, ptr %413, align 8, !tbaa !9
  %415 = call i32 @strcmp(ptr noundef %414, ptr noundef @.str.26) #9
  %416 = icmp ne i32 %415, 0
  br i1 %416, label %417, label %426

417:                                              ; preds = %409
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = load i32, ptr %10, align 4, !tbaa !5
  %420 = load ptr, ptr %6, align 8, !tbaa !9
  %421 = load i32, ptr %8, align 4, !tbaa !5
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds ptr, ptr %420, i64 %422
  %424 = load ptr, ptr %423, align 8, !tbaa !9
  %425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %418, ptr noundef @.str.27, i32 noundef %419, ptr noundef %424) #8
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %444

426:                                              ; preds = %409, %392
  %427 = load ptr, ptr %6, align 8, !tbaa !9
  %428 = load i32, ptr %8, align 4, !tbaa !5
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds ptr, ptr %427, i64 %429
  %431 = load ptr, ptr %430, align 8, !tbaa !9
  %432 = call i32 @atoi(ptr noundef %431) #9
  %433 = load ptr, ptr %7, align 8, !tbaa !9
  %434 = getelementptr inbounds %struct.nt_opts, ptr %433, i32 0, i32 22
  %435 = load i32, ptr %10, align 4, !tbaa !5
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds [8 x i32], ptr %434, i64 0, i64 %436
  store i32 %432, ptr %437, align 4, !tbaa !5
  br label %438

438:                                              ; preds = %426
  %439 = load i32, ptr %10, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr %10, align 4, !tbaa !5
  br label %375, !llvm.loop !23

441:                                              ; preds = %375
  %442 = load ptr, ptr %7, align 8, !tbaa !9
  %443 = getelementptr inbounds %struct.nt_opts, ptr %442, i32 0, i32 17
  store i32 1, ptr %443, align 4, !tbaa !25
  store i32 0, ptr %9, align 4
  br label %444

444:                                              ; preds = %441, %417, %385
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  %445 = load i32, ptr %9, align 4
  switch i32 %445, label %1369 [
    i32 0, label %446
  ]

446:                                              ; preds = %444
  br label %1286

447:                                              ; preds = %363
  %448 = load ptr, ptr %6, align 8, !tbaa !9
  %449 = load i32, ptr %8, align 4, !tbaa !5
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds ptr, ptr %448, i64 %450
  %452 = load ptr, ptr %451, align 8, !tbaa !9
  %453 = call i32 @strncmp(ptr noundef %452, ptr noundef @.str.28, i64 noundef 6) #9
  %454 = icmp ne i32 %453, 0
  br i1 %454, label %478, label %455

455:                                              ; preds = %447
  %456 = load i32, ptr %8, align 4, !tbaa !5
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr %8, align 4, !tbaa !5
  br label %458

458:                                              ; preds = %455
  %459 = load i32, ptr %8, align 4, !tbaa !5
  %460 = load i32, ptr %5, align 4, !tbaa !5
  %461 = icmp sge i32 %459, %460
  br i1 %461, label %462, label %467

462:                                              ; preds = %458
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef @.str.14, ptr noundef @.str.28) #8
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %465, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

467:                                              ; preds = %458
  br label %468

468:                                              ; preds = %467
  br label %469

469:                                              ; preds = %468
  %470 = load ptr, ptr %6, align 8, !tbaa !9
  %471 = load i32, ptr %8, align 4, !tbaa !5
  %472 = sext i32 %471 to i64
  %473 = getelementptr inbounds ptr, ptr %470, i64 %472
  %474 = load ptr, ptr %473, align 8, !tbaa !9
  %475 = call i32 @atoi(ptr noundef %474) #9
  %476 = load ptr, ptr %7, align 8, !tbaa !9
  %477 = getelementptr inbounds %struct.nt_opts, ptr %476, i32 0, i32 25
  store i32 %475, ptr %477, align 4, !tbaa !14
  br label %1285

478:                                              ; preds = %447
  %479 = load ptr, ptr %6, align 8, !tbaa !9
  %480 = load i32, ptr %8, align 4, !tbaa !5
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds ptr, ptr %479, i64 %481
  %483 = load ptr, ptr %482, align 8, !tbaa !9
  %484 = call i32 @strncmp(ptr noundef %483, ptr noundef @.str.29, i64 noundef 8) #9
  %485 = icmp ne i32 %484, 0
  br i1 %485, label %489, label %486

486:                                              ; preds = %478
  %487 = load ptr, ptr %7, align 8, !tbaa !9
  %488 = getelementptr inbounds %struct.nt_opts, ptr %487, i32 0, i32 2
  store i32 1, ptr %488, align 8, !tbaa !26
  br label %1284

489:                                              ; preds = %478
  %490 = load ptr, ptr %6, align 8, !tbaa !9
  %491 = load i32, ptr %8, align 4, !tbaa !5
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds ptr, ptr %490, i64 %492
  %494 = load ptr, ptr %493, align 8, !tbaa !9
  %495 = call i32 @strncmp(ptr noundef %494, ptr noundef @.str.30, i64 noundef 8) #9
  %496 = icmp ne i32 %495, 0
  br i1 %496, label %500, label %497

497:                                              ; preds = %489
  %498 = load ptr, ptr %7, align 8, !tbaa !9
  %499 = getelementptr inbounds %struct.nt_opts, ptr %498, i32 0, i32 3
  store i32 1, ptr %499, align 4, !tbaa !27
  br label %1283

500:                                              ; preds = %489
  %501 = load ptr, ptr %6, align 8, !tbaa !9
  %502 = load i32, ptr %8, align 4, !tbaa !5
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds ptr, ptr %501, i64 %503
  %505 = load ptr, ptr %504, align 8, !tbaa !9
  %506 = call i32 @strncmp(ptr noundef %505, ptr noundef @.str.31, i64 noundef 7) #9
  %507 = icmp ne i32 %506, 0
  br i1 %507, label %511, label %508

508:                                              ; preds = %500
  %509 = load ptr, ptr %7, align 8, !tbaa !9
  %510 = getelementptr inbounds %struct.nt_opts, ptr %509, i32 0, i32 7
  store i32 1, ptr %510, align 4, !tbaa !28
  br label %1282

511:                                              ; preds = %500
  %512 = load ptr, ptr %6, align 8, !tbaa !9
  %513 = load i32, ptr %8, align 4, !tbaa !5
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds ptr, ptr %512, i64 %514
  %516 = load ptr, ptr %515, align 8, !tbaa !9
  %517 = call i32 @strncmp(ptr noundef %516, ptr noundef @.str.32, i64 noundef 8) #9
  %518 = icmp ne i32 %517, 0
  br i1 %518, label %522, label %519

519:                                              ; preds = %511
  %520 = load ptr, ptr %7, align 8, !tbaa !9
  %521 = getelementptr inbounds %struct.nt_opts, ptr %520, i32 0, i32 4
  store i32 1, ptr %521, align 8, !tbaa !29
  br label %1281

522:                                              ; preds = %511
  %523 = load ptr, ptr %6, align 8, !tbaa !9
  %524 = load i32, ptr %8, align 4, !tbaa !5
  %525 = sext i32 %524 to i64
  %526 = getelementptr inbounds ptr, ptr %523, i64 %525
  %527 = load ptr, ptr %526, align 8, !tbaa !9
  %528 = call i32 @strncmp(ptr noundef %527, ptr noundef @.str.33, i64 noundef 8) #9
  %529 = icmp ne i32 %528, 0
  br i1 %529, label %533, label %530

530:                                              ; preds = %522
  %531 = load ptr, ptr %7, align 8, !tbaa !9
  %532 = getelementptr inbounds %struct.nt_opts, ptr %531, i32 0, i32 5
  store i32 1, ptr %532, align 4, !tbaa !30
  br label %1280

533:                                              ; preds = %522
  %534 = load ptr, ptr %6, align 8, !tbaa !9
  %535 = load i32, ptr %8, align 4, !tbaa !5
  %536 = sext i32 %535 to i64
  %537 = getelementptr inbounds ptr, ptr %534, i64 %536
  %538 = load ptr, ptr %537, align 8, !tbaa !9
  %539 = call i32 @strncmp(ptr noundef %538, ptr noundef @.str.34, i64 noundef 8) #9
  %540 = icmp ne i32 %539, 0
  br i1 %540, label %544, label %541

541:                                              ; preds = %533
  %542 = load ptr, ptr %7, align 8, !tbaa !9
  %543 = getelementptr inbounds %struct.nt_opts, ptr %542, i32 0, i32 6
  store i32 1, ptr %543, align 8, !tbaa !31
  br label %1279

544:                                              ; preds = %533
  %545 = load ptr, ptr %6, align 8, !tbaa !9
  %546 = load i32, ptr %8, align 4, !tbaa !5
  %547 = sext i32 %546 to i64
  %548 = getelementptr inbounds ptr, ptr %545, i64 %547
  %549 = load ptr, ptr %548, align 8, !tbaa !9
  %550 = call i32 @strncmp(ptr noundef %549, ptr noundef @.str.35, i64 noundef 6) #9
  %551 = icmp ne i32 %550, 0
  br i1 %551, label %552, label %560

552:                                              ; preds = %544
  %553 = load ptr, ptr %6, align 8, !tbaa !9
  %554 = load i32, ptr %8, align 4, !tbaa !5
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds ptr, ptr %553, i64 %555
  %557 = load ptr, ptr %556, align 8, !tbaa !9
  %558 = call i32 @strncmp(ptr noundef %557, ptr noundef @.str.36, i64 noundef 6) #9
  %559 = icmp ne i32 %558, 0
  br i1 %559, label %563, label %560

560:                                              ; preds = %552, %544
  %561 = load ptr, ptr %7, align 8, !tbaa !9
  %562 = getelementptr inbounds %struct.nt_opts, ptr %561, i32 0, i32 20
  store i32 1, ptr %562, align 8, !tbaa !32
  br label %1278

563:                                              ; preds = %552
  %564 = load ptr, ptr %6, align 8, !tbaa !9
  %565 = load i32, ptr %8, align 4, !tbaa !5
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds ptr, ptr %564, i64 %566
  %568 = load ptr, ptr %567, align 8, !tbaa !9
  %569 = call i32 @strncmp(ptr noundef %568, ptr noundef @.str.37, i64 noundef 10) #9
  %570 = icmp ne i32 %569, 0
  br i1 %570, label %571, label %579

571:                                              ; preds = %563
  %572 = load ptr, ptr %6, align 8, !tbaa !9
  %573 = load i32, ptr %8, align 4, !tbaa !5
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds ptr, ptr %572, i64 %574
  %576 = load ptr, ptr %575, align 8, !tbaa !9
  %577 = call i32 @strncmp(ptr noundef %576, ptr noundef @.str.38, i64 noundef 8) #9
  %578 = icmp ne i32 %577, 0
  br i1 %578, label %655, label %579

579:                                              ; preds = %571, %563
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  %580 = load ptr, ptr %7, align 8, !tbaa !9
  %581 = getelementptr inbounds %struct.nt_opts, ptr %580, i32 0, i32 22
  %582 = getelementptr inbounds [8 x i32], ptr %581, i64 0, i64 0
  store i32 0, ptr %582, align 8, !tbaa !5
  store i32 1, ptr %11, align 4, !tbaa !5
  br label %583

583:                                              ; preds = %646, %579
  %584 = load i32, ptr %11, align 4, !tbaa !5
  %585 = icmp slt i32 %584, 8
  br i1 %585, label %586, label %649

586:                                              ; preds = %583
  %587 = load i32, ptr %8, align 4, !tbaa !5
  %588 = add nsw i32 %587, 1
  store i32 %588, ptr %8, align 4, !tbaa !5
  br label %589

589:                                              ; preds = %586
  %590 = load i32, ptr %8, align 4, !tbaa !5
  %591 = load i32, ptr %5, align 4, !tbaa !5
  %592 = icmp sge i32 %590, %591
  br i1 %592, label %593, label %598

593:                                              ; preds = %589
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %594, ptr noundef @.str.24, ptr noundef @.str.38, ptr noundef @.str.25) #8
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %596, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %652

598:                                              ; preds = %589
  br label %599

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %599
  %601 = call ptr @__ctype_b_loc() #10
  %602 = load ptr, ptr %601, align 8, !tbaa !9
  %603 = load ptr, ptr %6, align 8, !tbaa !9
  %604 = load i32, ptr %8, align 4, !tbaa !5
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds ptr, ptr %603, i64 %605
  %607 = load ptr, ptr %606, align 8, !tbaa !9
  %608 = getelementptr inbounds i8, ptr %607, i64 0
  %609 = load i8, ptr %608, align 1, !tbaa !16
  %610 = sext i8 %609 to i32
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds i16, ptr %602, i64 %611
  %613 = load i16, ptr %612, align 2, !tbaa !21
  %614 = zext i16 %613 to i32
  %615 = and i32 %614, 2048
  %616 = icmp ne i32 %615, 0
  br i1 %616, label %634, label %617

617:                                              ; preds = %600
  %618 = load ptr, ptr %6, align 8, !tbaa !9
  %619 = load i32, ptr %8, align 4, !tbaa !5
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds ptr, ptr %618, i64 %620
  %622 = load ptr, ptr %621, align 8, !tbaa !9
  %623 = call i32 @strcmp(ptr noundef %622, ptr noundef @.str.26) #9
  %624 = icmp ne i32 %623, 0
  br i1 %624, label %625, label %634

625:                                              ; preds = %617
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = load i32, ptr %11, align 4, !tbaa !5
  %628 = load ptr, ptr %6, align 8, !tbaa !9
  %629 = load i32, ptr %8, align 4, !tbaa !5
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds ptr, ptr %628, i64 %630
  %632 = load ptr, ptr %631, align 8, !tbaa !9
  %633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef @.str.39, i32 noundef %627, ptr noundef %632) #8
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %652

634:                                              ; preds = %617, %600
  %635 = load ptr, ptr %6, align 8, !tbaa !9
  %636 = load i32, ptr %8, align 4, !tbaa !5
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds ptr, ptr %635, i64 %637
  %639 = load ptr, ptr %638, align 8, !tbaa !9
  %640 = call i32 @atoi(ptr noundef %639) #9
  %641 = load ptr, ptr %7, align 8, !tbaa !9
  %642 = getelementptr inbounds %struct.nt_opts, ptr %641, i32 0, i32 22
  %643 = load i32, ptr %11, align 4, !tbaa !5
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds [8 x i32], ptr %642, i64 0, i64 %644
  store i32 %640, ptr %645, align 4, !tbaa !5
  br label %646

646:                                              ; preds = %634
  %647 = load i32, ptr %11, align 4, !tbaa !5
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr %11, align 4, !tbaa !5
  br label %583, !llvm.loop !33

649:                                              ; preds = %583
  %650 = load ptr, ptr %7, align 8, !tbaa !9
  %651 = getelementptr inbounds %struct.nt_opts, ptr %650, i32 0, i32 19
  store i32 1, ptr %651, align 4, !tbaa !34
  store i32 0, ptr %9, align 4
  br label %652

652:                                              ; preds = %649, %625, %593
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  %653 = load i32, ptr %9, align 4
  switch i32 %653, label %1369 [
    i32 0, label %654
  ]

654:                                              ; preds = %652
  br label %1277

655:                                              ; preds = %571
  %656 = load ptr, ptr %6, align 8, !tbaa !9
  %657 = load i32, ptr %8, align 4, !tbaa !5
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds ptr, ptr %656, i64 %658
  %660 = load ptr, ptr %659, align 8, !tbaa !9
  %661 = call i32 @strncmp(ptr noundef %660, ptr noundef @.str.40, i64 noundef 10) #9
  %662 = icmp ne i32 %661, 0
  br i1 %662, label %663, label %671

663:                                              ; preds = %655
  %664 = load ptr, ptr %6, align 8, !tbaa !9
  %665 = load i32, ptr %8, align 4, !tbaa !5
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds ptr, ptr %664, i64 %666
  %668 = load ptr, ptr %667, align 8, !tbaa !9
  %669 = call i32 @strncmp(ptr noundef %668, ptr noundef @.str.41, i64 noundef 4) #9
  %670 = icmp ne i32 %669, 0
  br i1 %670, label %752, label %671

671:                                              ; preds = %663, %655
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  store i32 1, ptr %12, align 4, !tbaa !5
  br label %672

672:                                              ; preds = %727, %671
  %673 = load i32, ptr %12, align 4, !tbaa !5
  %674 = icmp sle i32 %673, 3
  br i1 %674, label %675, label %730

675:                                              ; preds = %672
  %676 = load i32, ptr %8, align 4, !tbaa !5
  %677 = add nsw i32 %676, 1
  store i32 %677, ptr %8, align 4, !tbaa !5
  br label %678

678:                                              ; preds = %675
  %679 = load i32, ptr %8, align 4, !tbaa !5
  %680 = load i32, ptr %5, align 4, !tbaa !5
  %681 = icmp sge i32 %679, %680
  br i1 %681, label %682, label %687

682:                                              ; preds = %678
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %683, ptr noundef @.str.24, ptr noundef @.str.41, ptr noundef @.str.42) #8
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

687:                                              ; preds = %678
  br label %688

688:                                              ; preds = %687
  br label %689

689:                                              ; preds = %688
  %690 = call ptr @__ctype_b_loc() #10
  %691 = load ptr, ptr %690, align 8, !tbaa !9
  %692 = load ptr, ptr %6, align 8, !tbaa !9
  %693 = load i32, ptr %8, align 4, !tbaa !5
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds ptr, ptr %692, i64 %694
  %696 = load ptr, ptr %695, align 8, !tbaa !9
  %697 = getelementptr inbounds i8, ptr %696, i64 0
  %698 = load i8, ptr %697, align 1, !tbaa !16
  %699 = sext i8 %698 to i32
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds i16, ptr %691, i64 %700
  %702 = load i16, ptr %701, align 2, !tbaa !21
  %703 = zext i16 %702 to i32
  %704 = and i32 %703, 2048
  %705 = icmp ne i32 %704, 0
  br i1 %705, label %715, label %706

706:                                              ; preds = %689
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = load i32, ptr %12, align 4, !tbaa !5
  %709 = load ptr, ptr %6, align 8, !tbaa !9
  %710 = load i32, ptr %8, align 4, !tbaa !5
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds ptr, ptr %709, i64 %711
  %713 = load ptr, ptr %712, align 8, !tbaa !9
  %714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %707, ptr noundef @.str.43, i32 noundef %708, ptr noundef %713) #8
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

715:                                              ; preds = %689
  %716 = load ptr, ptr %6, align 8, !tbaa !9
  %717 = load i32, ptr %8, align 4, !tbaa !5
  %718 = sext i32 %717 to i64
  %719 = getelementptr inbounds ptr, ptr %716, i64 %718
  %720 = load ptr, ptr %719, align 8, !tbaa !9
  %721 = call i32 @atoi(ptr noundef %720) #9
  %722 = load ptr, ptr %7, align 8, !tbaa !9
  %723 = getelementptr inbounds %struct.nt_opts, ptr %722, i32 0, i32 22
  %724 = load i32, ptr %12, align 4, !tbaa !5
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds [8 x i32], ptr %723, i64 0, i64 %725
  store i32 %721, ptr %726, align 4, !tbaa !5
  br label %727

727:                                              ; preds = %715
  %728 = load i32, ptr %12, align 4, !tbaa !5
  %729 = add nsw i32 %728, 1
  store i32 %729, ptr %12, align 4, !tbaa !5
  br label %672, !llvm.loop !35

730:                                              ; preds = %672
  %731 = load ptr, ptr %7, align 8, !tbaa !9
  %732 = getelementptr inbounds %struct.nt_opts, ptr %731, i32 0, i32 22
  %733 = getelementptr inbounds [8 x i32], ptr %732, i64 0, i64 0
  store i32 0, ptr %733, align 8, !tbaa !5
  store i32 4, ptr %12, align 4, !tbaa !5
  br label %734

734:                                              ; preds = %743, %730
  %735 = load i32, ptr %12, align 4, !tbaa !5
  %736 = icmp slt i32 %735, 8
  br i1 %736, label %737, label %746

737:                                              ; preds = %734
  %738 = load ptr, ptr %7, align 8, !tbaa !9
  %739 = getelementptr inbounds %struct.nt_opts, ptr %738, i32 0, i32 22
  %740 = load i32, ptr %12, align 4, !tbaa !5
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds [8 x i32], ptr %739, i64 0, i64 %741
  store i32 -1, ptr %742, align 4, !tbaa !5
  br label %743

743:                                              ; preds = %737
  %744 = load i32, ptr %12, align 4, !tbaa !5
  %745 = add nsw i32 %744, 1
  store i32 %745, ptr %12, align 4, !tbaa !5
  br label %734, !llvm.loop !36

746:                                              ; preds = %734
  %747 = load ptr, ptr %7, align 8, !tbaa !9
  %748 = getelementptr inbounds %struct.nt_opts, ptr %747, i32 0, i32 18
  store i32 1, ptr %748, align 8, !tbaa !37
  store i32 0, ptr %9, align 4
  br label %749

749:                                              ; preds = %746, %706, %682
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  %750 = load i32, ptr %9, align 4
  switch i32 %750, label %1369 [
    i32 0, label %751
  ]

751:                                              ; preds = %749
  br label %1276

752:                                              ; preds = %663
  %753 = load ptr, ptr %6, align 8, !tbaa !9
  %754 = load i32, ptr %8, align 4, !tbaa !5
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds ptr, ptr %753, i64 %755
  %757 = load ptr, ptr %756, align 8, !tbaa !9
  %758 = call i32 @strncmp(ptr noundef %757, ptr noundef @.str.44, i64 noundef 2) #9
  %759 = icmp ne i32 %758, 0
  br i1 %759, label %786, label %760

760:                                              ; preds = %752
  %761 = load i32, ptr %8, align 4, !tbaa !5
  %762 = add nsw i32 %761, 1
  store i32 %762, ptr %8, align 4, !tbaa !5
  br label %763

763:                                              ; preds = %760
  %764 = load i32, ptr %8, align 4, !tbaa !5
  %765 = load i32, ptr %5, align 4, !tbaa !5
  %766 = icmp sge i32 %764, %765
  br i1 %766, label %767, label %772

767:                                              ; preds = %763
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef @.str.14, ptr noundef @.str.44) #8
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %770, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

772:                                              ; preds = %763
  br label %773

773:                                              ; preds = %772
  br label %774

774:                                              ; preds = %773
  %775 = load ptr, ptr %7, align 8, !tbaa !9
  %776 = getelementptr inbounds %struct.nt_opts, ptr %775, i32 0, i32 31
  %777 = load ptr, ptr %6, align 8, !tbaa !9
  %778 = load i32, ptr %8, align 4, !tbaa !5
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds ptr, ptr %777, i64 %779
  %781 = load ptr, ptr %780, align 8, !tbaa !9
  %782 = call i32 @add_string(ptr noundef %776, ptr noundef %781)
  %783 = icmp ne i32 %782, 0
  br i1 %783, label %784, label %785

784:                                              ; preds = %774
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

785:                                              ; preds = %774
  br label %1275

786:                                              ; preds = %752
  %787 = load ptr, ptr %6, align 8, !tbaa !9
  %788 = load i32, ptr %8, align 4, !tbaa !5
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds ptr, ptr %787, i64 %789
  %791 = load ptr, ptr %790, align 8, !tbaa !9
  %792 = call i32 @strncmp(ptr noundef %791, ptr noundef @.str.45, i64 noundef 3) #9
  %793 = icmp ne i32 %792, 0
  br i1 %793, label %851, label %794

794:                                              ; preds = %786
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %795 = load i32, ptr %8, align 4, !tbaa !5
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr %8, align 4, !tbaa !5
  store i32 0, ptr %13, align 4, !tbaa !5
  br label %797

797:                                              ; preds = %825, %794
  %798 = load i32, ptr %8, align 4, !tbaa !5
  %799 = load i32, ptr %5, align 4, !tbaa !5
  %800 = icmp slt i32 %798, %799
  br i1 %800, label %801, label %811

801:                                              ; preds = %797
  %802 = load ptr, ptr %6, align 8, !tbaa !9
  %803 = load i32, ptr %8, align 4, !tbaa !5
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds ptr, ptr %802, i64 %804
  %806 = load ptr, ptr %805, align 8, !tbaa !9
  %807 = getelementptr inbounds i8, ptr %806, i64 0
  %808 = load i8, ptr %807, align 1, !tbaa !16
  %809 = sext i8 %808 to i32
  %810 = icmp ne i32 %809, 45
  br label %811

811:                                              ; preds = %801, %797
  %812 = phi i1 [ false, %797 ], [ %810, %801 ]
  br i1 %812, label %813, label %830

813:                                              ; preds = %811
  %814 = load ptr, ptr %7, align 8, !tbaa !9
  %815 = getelementptr inbounds %struct.nt_opts, ptr %814, i32 0, i32 33
  %816 = load ptr, ptr %6, align 8, !tbaa !9
  %817 = load i32, ptr %8, align 4, !tbaa !5
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds ptr, ptr %816, i64 %818
  %820 = load ptr, ptr %819, align 8, !tbaa !9
  %821 = call i32 @add_string(ptr noundef %815, ptr noundef %820)
  %822 = icmp ne i32 %821, 0
  br i1 %822, label %823, label %824

823:                                              ; preds = %813
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %848

824:                                              ; preds = %813
  br label %825

825:                                              ; preds = %824
  %826 = load i32, ptr %8, align 4, !tbaa !5
  %827 = add nsw i32 %826, 1
  store i32 %827, ptr %8, align 4, !tbaa !5
  %828 = load i32, ptr %13, align 4, !tbaa !5
  %829 = add nsw i32 %828, 1
  store i32 %829, ptr %13, align 4, !tbaa !5
  br label %797, !llvm.loop !38

830:                                              ; preds = %811
  %831 = load i32, ptr %13, align 4, !tbaa !5
  %832 = icmp sgt i32 %831, 0
  br i1 %832, label %833, label %840

833:                                              ; preds = %830
  %834 = load i32, ptr %8, align 4, !tbaa !5
  %835 = load i32, ptr %5, align 4, !tbaa !5
  %836 = icmp slt i32 %834, %835
  br i1 %836, label %837, label %840

837:                                              ; preds = %833
  %838 = load i32, ptr %8, align 4, !tbaa !5
  %839 = add nsw i32 %838, -1
  store i32 %839, ptr %8, align 4, !tbaa !5
  br label %840

840:                                              ; preds = %837, %833, %830
  %841 = load i32, ptr @g_debug, align 4, !tbaa !5
  %842 = icmp sgt i32 %841, 2
  br i1 %842, label %843, label %847

843:                                              ; preds = %840
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = load i32, ptr %13, align 4, !tbaa !5
  %846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %844, ptr noundef @.str.46, i32 noundef %845) #8
  br label %847

847:                                              ; preds = %843, %840
  store i32 0, ptr %9, align 4
  br label %848

848:                                              ; preds = %847, %823
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  %849 = load i32, ptr %9, align 4
  switch i32 %849, label %1369 [
    i32 0, label %850
  ]

850:                                              ; preds = %848
  br label %1274

851:                                              ; preds = %786
  %852 = load ptr, ptr %6, align 8, !tbaa !9
  %853 = load i32, ptr %8, align 4, !tbaa !5
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds ptr, ptr %852, i64 %854
  %856 = load ptr, ptr %855, align 8, !tbaa !9
  %857 = call i32 @strncmp(ptr noundef %856, ptr noundef @.str.47, i64 noundef 8) #9
  %858 = icmp ne i32 %857, 0
  br i1 %858, label %862, label %859

859:                                              ; preds = %851
  %860 = load ptr, ptr %7, align 8, !tbaa !9
  %861 = getelementptr inbounds %struct.nt_opts, ptr %860, i32 0, i32 21
  store i32 1, ptr %861, align 4, !tbaa !39
  br label %1273

862:                                              ; preds = %851
  %863 = load ptr, ptr %6, align 8, !tbaa !9
  %864 = load i32, ptr %8, align 4, !tbaa !5
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds ptr, ptr %863, i64 %865
  %867 = load ptr, ptr %866, align 8, !tbaa !9
  %868 = call i32 @strncmp(ptr noundef %867, ptr noundef @.str.48, i64 noundef 6) #9
  %869 = icmp ne i32 %868, 0
  br i1 %869, label %921, label %870

870:                                              ; preds = %862
  %871 = load i32, ptr %8, align 4, !tbaa !5
  %872 = add nsw i32 %871, 1
  store i32 %872, ptr %8, align 4, !tbaa !5
  br label %873

873:                                              ; preds = %870
  %874 = load i32, ptr %8, align 4, !tbaa !5
  %875 = load i32, ptr %5, align 4, !tbaa !5
  %876 = icmp sge i32 %874, %875
  br i1 %876, label %877, label %882

877:                                              ; preds = %873
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef @.str.14, ptr noundef @.str.48) #8
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %880, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

882:                                              ; preds = %873
  br label %883

883:                                              ; preds = %882
  br label %884

884:                                              ; preds = %883
  %885 = load ptr, ptr %7, align 8, !tbaa !9
  %886 = getelementptr inbounds %struct.nt_opts, ptr %885, i32 0, i32 31
  %887 = load ptr, ptr %6, align 8, !tbaa !9
  %888 = load i32, ptr %8, align 4, !tbaa !5
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds ptr, ptr %887, i64 %889
  %891 = load ptr, ptr %890, align 8, !tbaa !9
  %892 = call i32 @add_string(ptr noundef %886, ptr noundef %891)
  %893 = icmp ne i32 %892, 0
  br i1 %893, label %894, label %895

894:                                              ; preds = %884
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

895:                                              ; preds = %884
  %896 = load i32, ptr %8, align 4, !tbaa !5
  %897 = add nsw i32 %896, 1
  store i32 %897, ptr %8, align 4, !tbaa !5
  br label %898

898:                                              ; preds = %895
  %899 = load i32, ptr %8, align 4, !tbaa !5
  %900 = load i32, ptr %5, align 4, !tbaa !5
  %901 = icmp sge i32 %899, %900
  br i1 %901, label %902, label %907

902:                                              ; preds = %898
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %903, ptr noundef @.str.14, ptr noundef @.str.49) #8
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %905, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

907:                                              ; preds = %898
  br label %908

908:                                              ; preds = %907
  br label %909

909:                                              ; preds = %908
  %910 = load ptr, ptr %7, align 8, !tbaa !9
  %911 = getelementptr inbounds %struct.nt_opts, ptr %910, i32 0, i32 32
  %912 = load ptr, ptr %6, align 8, !tbaa !9
  %913 = load i32, ptr %8, align 4, !tbaa !5
  %914 = sext i32 %913 to i64
  %915 = getelementptr inbounds ptr, ptr %912, i64 %914
  %916 = load ptr, ptr %915, align 8, !tbaa !9
  %917 = call i32 @add_string(ptr noundef %911, ptr noundef %916)
  %918 = icmp ne i32 %917, 0
  br i1 %918, label %919, label %920

919:                                              ; preds = %909
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

920:                                              ; preds = %909
  br label %1272

921:                                              ; preds = %862
  %922 = load ptr, ptr %6, align 8, !tbaa !9
  %923 = load i32, ptr %8, align 4, !tbaa !5
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds ptr, ptr %922, i64 %924
  %926 = load ptr, ptr %925, align 8, !tbaa !9
  %927 = call i32 @strncmp(ptr noundef %926, ptr noundef @.str.50, i64 noundef 7) #9
  %928 = icmp ne i32 %927, 0
  br i1 %928, label %932, label %929

929:                                              ; preds = %921
  %930 = load ptr, ptr %7, align 8, !tbaa !9
  %931 = getelementptr inbounds %struct.nt_opts, ptr %930, i32 0, i32 10
  store i32 1, ptr %931, align 8, !tbaa !40
  br label %1271

932:                                              ; preds = %921
  %933 = load ptr, ptr %6, align 8, !tbaa !9
  %934 = load i32, ptr %8, align 4, !tbaa !5
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds ptr, ptr %933, i64 %935
  %937 = load ptr, ptr %936, align 8, !tbaa !9
  %938 = call i32 @strncmp(ptr noundef %937, ptr noundef @.str.51, i64 noundef 7) #9
  %939 = icmp ne i32 %938, 0
  br i1 %939, label %943, label %940

940:                                              ; preds = %932
  %941 = load ptr, ptr %7, align 8, !tbaa !9
  %942 = getelementptr inbounds %struct.nt_opts, ptr %941, i32 0, i32 11
  store i32 1, ptr %942, align 4, !tbaa !41
  br label %1270

943:                                              ; preds = %932
  %944 = load ptr, ptr %6, align 8, !tbaa !9
  %945 = load i32, ptr %8, align 4, !tbaa !5
  %946 = sext i32 %945 to i64
  %947 = getelementptr inbounds ptr, ptr %944, i64 %946
  %948 = load ptr, ptr %947, align 8, !tbaa !9
  %949 = call i32 @strncmp(ptr noundef %948, ptr noundef @.str.52, i64 noundef 5) #9
  %950 = icmp ne i32 %949, 0
  br i1 %950, label %954, label %951

951:                                              ; preds = %943
  %952 = load ptr, ptr %7, align 8, !tbaa !9
  %953 = getelementptr inbounds %struct.nt_opts, ptr %952, i32 0, i32 26
  store i32 1, ptr %953, align 8, !tbaa !42
  br label %1269

954:                                              ; preds = %943
  %955 = load ptr, ptr %6, align 8, !tbaa !9
  %956 = load i32, ptr %8, align 4, !tbaa !5
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds ptr, ptr %955, i64 %957
  %959 = load ptr, ptr %958, align 8, !tbaa !9
  %960 = call i32 @strncmp(ptr noundef %959, ptr noundef @.str.53, i64 noundef 8) #9
  %961 = icmp ne i32 %960, 0
  br i1 %961, label %1033, label %962

962:                                              ; preds = %954
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  store i32 0, ptr %14, align 4, !tbaa !5
  br label %963

963:                                              ; preds = %1026, %962
  %964 = load i32, ptr %14, align 4, !tbaa !5
  %965 = icmp slt i32 %964, 8
  br i1 %965, label %966, label %1029

966:                                              ; preds = %963
  %967 = load i32, ptr %8, align 4, !tbaa !5
  %968 = add nsw i32 %967, 1
  store i32 %968, ptr %8, align 4, !tbaa !5
  br label %969

969:                                              ; preds = %966
  %970 = load i32, ptr %8, align 4, !tbaa !5
  %971 = load i32, ptr %5, align 4, !tbaa !5
  %972 = icmp sge i32 %970, %971
  br i1 %972, label %973, label %978

973:                                              ; preds = %969
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %974, ptr noundef @.str.24, ptr noundef @.str.53, ptr noundef @.str.54) #8
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %976, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1030

978:                                              ; preds = %969
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979
  %981 = call ptr @__ctype_b_loc() #10
  %982 = load ptr, ptr %981, align 8, !tbaa !9
  %983 = load ptr, ptr %6, align 8, !tbaa !9
  %984 = load i32, ptr %8, align 4, !tbaa !5
  %985 = sext i32 %984 to i64
  %986 = getelementptr inbounds ptr, ptr %983, i64 %985
  %987 = load ptr, ptr %986, align 8, !tbaa !9
  %988 = getelementptr inbounds i8, ptr %987, i64 0
  %989 = load i8, ptr %988, align 1, !tbaa !16
  %990 = sext i8 %989 to i32
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds i16, ptr %982, i64 %991
  %993 = load i16, ptr %992, align 2, !tbaa !21
  %994 = zext i16 %993 to i32
  %995 = and i32 %994, 2048
  %996 = icmp ne i32 %995, 0
  br i1 %996, label %1014, label %997

997:                                              ; preds = %980
  %998 = load ptr, ptr %6, align 8, !tbaa !9
  %999 = load i32, ptr %8, align 4, !tbaa !5
  %1000 = sext i32 %999 to i64
  %1001 = getelementptr inbounds ptr, ptr %998, i64 %1000
  %1002 = load ptr, ptr %1001, align 8, !tbaa !9
  %1003 = call i32 @strcmp(ptr noundef %1002, ptr noundef @.str.26) #9
  %1004 = icmp ne i32 %1003, 0
  br i1 %1004, label %1005, label %1014

1005:                                             ; preds = %997
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = load i32, ptr %14, align 4, !tbaa !5
  %1008 = load ptr, ptr %6, align 8, !tbaa !9
  %1009 = load i32, ptr %8, align 4, !tbaa !5
  %1010 = sext i32 %1009 to i64
  %1011 = getelementptr inbounds ptr, ptr %1008, i64 %1010
  %1012 = load ptr, ptr %1011, align 8, !tbaa !9
  %1013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1006, ptr noundef @.str.55, i32 noundef %1007, ptr noundef %1012) #8
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1030

1014:                                             ; preds = %997, %980
  %1015 = load ptr, ptr %6, align 8, !tbaa !9
  %1016 = load i32, ptr %8, align 4, !tbaa !5
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds ptr, ptr %1015, i64 %1017
  %1019 = load ptr, ptr %1018, align 8, !tbaa !9
  %1020 = call i32 @atoi(ptr noundef %1019) #9
  %1021 = load ptr, ptr %7, align 8, !tbaa !9
  %1022 = getelementptr inbounds %struct.nt_opts, ptr %1021, i32 0, i32 23
  %1023 = load i32, ptr %14, align 4, !tbaa !5
  %1024 = sext i32 %1023 to i64
  %1025 = getelementptr inbounds [8 x i32], ptr %1022, i64 0, i64 %1024
  store i32 %1020, ptr %1025, align 4, !tbaa !5
  br label %1026

1026:                                             ; preds = %1014
  %1027 = load i32, ptr %14, align 4, !tbaa !5
  %1028 = add nsw i32 %1027, 1
  store i32 %1028, ptr %14, align 4, !tbaa !5
  br label %963, !llvm.loop !43

1029:                                             ; preds = %963
  store i32 0, ptr %9, align 4
  br label %1030

1030:                                             ; preds = %1029, %1005, %973
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  %1031 = load i32, ptr %9, align 4
  switch i32 %1031, label %1369 [
    i32 0, label %1032
  ]

1032:                                             ; preds = %1030
  br label %1268

1033:                                             ; preds = %954
  %1034 = load ptr, ptr %6, align 8, !tbaa !9
  %1035 = load i32, ptr %8, align 4, !tbaa !5
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds ptr, ptr %1034, i64 %1036
  %1038 = load ptr, ptr %1037, align 8, !tbaa !9
  %1039 = call i32 @strncmp(ptr noundef %1038, ptr noundef @.str.56, i64 noundef 10) #9
  %1040 = icmp ne i32 %1039, 0
  br i1 %1040, label %1064, label %1041

1041:                                             ; preds = %1033
  %1042 = load i32, ptr %8, align 4, !tbaa !5
  %1043 = add nsw i32 %1042, 1
  store i32 %1043, ptr %8, align 4, !tbaa !5
  br label %1044

1044:                                             ; preds = %1041
  %1045 = load i32, ptr %8, align 4, !tbaa !5
  %1046 = load i32, ptr %5, align 4, !tbaa !5
  %1047 = icmp sge i32 %1045, %1046
  br i1 %1047, label %1048, label %1053

1048:                                             ; preds = %1044
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1049, ptr noundef @.str.14, ptr noundef @.str.56) #8
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1051, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

1053:                                             ; preds = %1044
  br label %1054

1054:                                             ; preds = %1053
  br label %1055

1055:                                             ; preds = %1054
  %1056 = load ptr, ptr %6, align 8, !tbaa !9
  %1057 = load i32, ptr %8, align 4, !tbaa !5
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds ptr, ptr %1056, i64 %1058
  %1060 = load ptr, ptr %1059, align 8, !tbaa !9
  %1061 = call i32 @atoi(ptr noundef %1060) #9
  %1062 = load ptr, ptr %7, align 8, !tbaa !9
  %1063 = getelementptr inbounds %struct.nt_opts, ptr %1062, i32 0, i32 24
  store i32 %1061, ptr %1063, align 8, !tbaa !15
  br label %1267

1064:                                             ; preds = %1033
  %1065 = load ptr, ptr %6, align 8, !tbaa !9
  %1066 = load i32, ptr %8, align 4, !tbaa !5
  %1067 = sext i32 %1066 to i64
  %1068 = getelementptr inbounds ptr, ptr %1065, i64 %1067
  %1069 = load ptr, ptr %1068, align 8, !tbaa !9
  %1070 = call i32 @strncmp(ptr noundef %1069, ptr noundef @.str.57, i64 noundef 6) #9
  %1071 = icmp ne i32 %1070, 0
  br i1 %1071, label %1075, label %1072

1072:                                             ; preds = %1064
  %1073 = load ptr, ptr %7, align 8, !tbaa !9
  %1074 = getelementptr inbounds %struct.nt_opts, ptr %1073, i32 0, i32 27
  store i32 1, ptr %1074, align 4, !tbaa !44
  br label %1266

1075:                                             ; preds = %1064
  %1076 = load ptr, ptr %6, align 8, !tbaa !9
  %1077 = load i32, ptr %8, align 4, !tbaa !5
  %1078 = sext i32 %1077 to i64
  %1079 = getelementptr inbounds ptr, ptr %1076, i64 %1078
  %1080 = load ptr, ptr %1079, align 8, !tbaa !9
  %1081 = call i32 @strncmp(ptr noundef %1080, ptr noundef @.str.58, i64 noundef 4) #9
  %1082 = icmp ne i32 %1081, 0
  br i1 %1082, label %1105, label %1083

1083:                                             ; preds = %1075
  %1084 = load i32, ptr %8, align 4, !tbaa !5
  %1085 = add nsw i32 %1084, 1
  store i32 %1085, ptr %8, align 4, !tbaa !5
  br label %1086

1086:                                             ; preds = %1083
  %1087 = load i32, ptr %8, align 4, !tbaa !5
  %1088 = load i32, ptr %5, align 4, !tbaa !5
  %1089 = icmp sge i32 %1087, %1088
  br i1 %1089, label %1090, label %1095

1090:                                             ; preds = %1086
  %1091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1091, ptr noundef @.str.14, ptr noundef @.str.58) #8
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1093, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

1095:                                             ; preds = %1086
  br label %1096

1096:                                             ; preds = %1095
  br label %1097

1097:                                             ; preds = %1096
  %1098 = load ptr, ptr %6, align 8, !tbaa !9
  %1099 = load i32, ptr %8, align 4, !tbaa !5
  %1100 = sext i32 %1099 to i64
  %1101 = getelementptr inbounds ptr, ptr %1098, i64 %1100
  %1102 = load ptr, ptr %1101, align 8, !tbaa !9
  %1103 = load ptr, ptr %7, align 8, !tbaa !9
  %1104 = getelementptr inbounds %struct.nt_opts, ptr %1103, i32 0, i32 28
  store ptr %1102, ptr %1104, align 8, !tbaa !11
  br label %1265

1105:                                             ; preds = %1075
  %1106 = load ptr, ptr %6, align 8, !tbaa !9
  %1107 = load i32, ptr %8, align 4, !tbaa !5
  %1108 = sext i32 %1107 to i64
  %1109 = getelementptr inbounds ptr, ptr %1106, i64 %1108
  %1110 = load ptr, ptr %1109, align 8, !tbaa !9
  %1111 = call i32 @strncmp(ptr noundef %1110, ptr noundef @.str.59, i64 noundef 3) #9
  %1112 = icmp ne i32 %1111, 0
  br i1 %1112, label %1116, label %1113

1113:                                             ; preds = %1105
  %1114 = load ptr, ptr %7, align 8, !tbaa !9
  %1115 = getelementptr inbounds %struct.nt_opts, ptr %1114, i32 0, i32 25
  store i32 0, ptr %1115, align 4, !tbaa !14
  br label %1264

1116:                                             ; preds = %1105
  %1117 = load ptr, ptr %6, align 8, !tbaa !9
  %1118 = load i32, ptr %8, align 4, !tbaa !5
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds ptr, ptr %1117, i64 %1119
  %1121 = load ptr, ptr %1120, align 8, !tbaa !9
  %1122 = call i32 @strncmp(ptr noundef %1121, ptr noundef @.str.60, i64 noundef 7) #9
  %1123 = icmp ne i32 %1122, 0
  br i1 %1123, label %1207, label %1124

1124:                                             ; preds = %1116
  %1125 = load i32, ptr %8, align 4, !tbaa !5
  %1126 = add nsw i32 %1125, 1
  store i32 %1126, ptr %8, align 4, !tbaa !5
  br label %1127

1127:                                             ; preds = %1124
  %1128 = load i32, ptr %8, align 4, !tbaa !5
  %1129 = load i32, ptr %5, align 4, !tbaa !5
  %1130 = icmp sge i32 %1128, %1129
  br i1 %1130, label %1131, label %1136

1131:                                             ; preds = %1127
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1132, ptr noundef @.str.14, ptr noundef @.str.60) #8
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1134, ptr noundef @.str.15) #8
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

1136:                                             ; preds = %1127
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137
  %1139 = load ptr, ptr %6, align 8, !tbaa !9
  %1140 = load i32, ptr %8, align 4, !tbaa !5
  %1141 = sext i32 %1140 to i64
  %1142 = getelementptr inbounds ptr, ptr %1139, i64 %1141
  %1143 = load ptr, ptr %1142, align 8, !tbaa !9
  %1144 = call i32 @strcmp(ptr noundef %1143, ptr noundef @.str.61) #9
  %1145 = icmp eq i32 %1144, 0
  br i1 %1145, label %1146, label %1153

1146:                                             ; preds = %1138
  %1147 = load ptr, ptr %7, align 8, !tbaa !9
  %1148 = getelementptr inbounds %struct.nt_opts, ptr %1147, i32 0, i32 29
  %1149 = call i32 @add_string(ptr noundef %1148, ptr noundef @.str.26)
  %1150 = icmp ne i32 %1149, 0
  br i1 %1150, label %1151, label %1152

1151:                                             ; preds = %1146
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

1152:                                             ; preds = %1146
  br label %1204

1153:                                             ; preds = %1138
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %1154 = load ptr, ptr %6, align 8, !tbaa !9
  %1155 = load i32, ptr %8, align 4, !tbaa !5
  %1156 = sext i32 %1155 to i64
  %1157 = getelementptr inbounds ptr, ptr %1154, i64 %1156
  %1158 = load ptr, ptr %1157, align 8, !tbaa !9
  %1159 = call i32 @atoi(ptr noundef %1158) #9
  store i32 %1159, ptr %15, align 4, !tbaa !5
  %1160 = load i32, ptr %15, align 4, !tbaa !5
  %1161 = icmp ne i32 %1160, -1
  br i1 %1161, label %1162, label %1189

1162:                                             ; preds = %1153
  %1163 = load i32, ptr %15, align 4, !tbaa !5
  %1164 = icmp sgt i32 %1163, 1000
  br i1 %1164, label %1181, label %1165

1165:                                             ; preds = %1162
  %1166 = call ptr @__ctype_b_loc() #10
  %1167 = load ptr, ptr %1166, align 8, !tbaa !9
  %1168 = load ptr, ptr %6, align 8, !tbaa !9
  %1169 = load i32, ptr %8, align 4, !tbaa !5
  %1170 = sext i32 %1169 to i64
  %1171 = getelementptr inbounds ptr, ptr %1168, i64 %1170
  %1172 = load ptr, ptr %1171, align 8, !tbaa !9
  %1173 = load i8, ptr %1172, align 1, !tbaa !16
  %1174 = sext i8 %1173 to i32
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds i16, ptr %1167, i64 %1175
  %1177 = load i16, ptr %1176, align 2, !tbaa !21
  %1178 = zext i16 %1177 to i32
  %1179 = and i32 %1178, 2048
  %1180 = icmp ne i32 %1179, 0
  br i1 %1180, label %1189, label %1181

1181:                                             ; preds = %1165, %1162
  %1182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1183 = load ptr, ptr %6, align 8, !tbaa !9
  %1184 = load i32, ptr %8, align 4, !tbaa !5
  %1185 = sext i32 %1184 to i64
  %1186 = getelementptr inbounds ptr, ptr %1183, i64 %1185
  %1187 = load ptr, ptr %1186, align 8, !tbaa !9
  %1188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1182, ptr noundef @.str.62, ptr noundef %1187) #8
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1201

1189:                                             ; preds = %1165, %1153
  %1190 = load ptr, ptr %7, align 8, !tbaa !9
  %1191 = getelementptr inbounds %struct.nt_opts, ptr %1190, i32 0, i32 29
  %1192 = load ptr, ptr %6, align 8, !tbaa !9
  %1193 = load i32, ptr %8, align 4, !tbaa !5
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds ptr, ptr %1192, i64 %1194
  %1196 = load ptr, ptr %1195, align 8, !tbaa !9
  %1197 = call i32 @add_string(ptr noundef %1191, ptr noundef %1196)
  %1198 = icmp ne i32 %1197, 0
  br i1 %1198, label %1199, label %1200

1199:                                             ; preds = %1189
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1201

1200:                                             ; preds = %1189
  store i32 0, ptr %9, align 4
  br label %1201

1201:                                             ; preds = %1200, %1199, %1181
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  %1202 = load i32, ptr %9, align 4
  switch i32 %1202, label %1369 [
    i32 0, label %1203
  ]

1203:                                             ; preds = %1201
  br label %1204

1204:                                             ; preds = %1203, %1152
  %1205 = load ptr, ptr %7, align 8, !tbaa !9
  %1206 = getelementptr inbounds %struct.nt_opts, ptr %1205, i32 0, i32 9
  store i32 1, ptr %1206, align 4, !tbaa !45
  br label %1263

1207:                                             ; preds = %1116
  %1208 = load ptr, ptr %6, align 8, !tbaa !9
  %1209 = load i32, ptr %8, align 4, !tbaa !5
  %1210 = sext i32 %1209 to i64
  %1211 = getelementptr inbounds ptr, ptr %1208, i64 %1210
  %1212 = load ptr, ptr %1211, align 8, !tbaa !9
  %1213 = call i32 @strncmp(ptr noundef %1212, ptr noundef @.str.63, i64 noundef 6) #9
  %1214 = icmp ne i32 %1213, 0
  br i1 %1214, label %1218, label %1215

1215:                                             ; preds = %1207
  %1216 = load ptr, ptr %7, align 8, !tbaa !9
  %1217 = getelementptr inbounds %struct.nt_opts, ptr %1216, i32 0, i32 15
  store i32 1, ptr %1217, align 4, !tbaa !46
  br label %1262

1218:                                             ; preds = %1207
  %1219 = load ptr, ptr %6, align 8, !tbaa !9
  %1220 = load i32, ptr %8, align 4, !tbaa !5
  %1221 = sext i32 %1220 to i64
  %1222 = getelementptr inbounds ptr, ptr %1219, i64 %1221
  %1223 = load ptr, ptr %1222, align 8, !tbaa !9
  %1224 = call i32 @strncmp(ptr noundef %1223, ptr noundef @.str.64, i64 noundef 12) #9
  %1225 = icmp ne i32 %1224, 0
  br i1 %1225, label %1229, label %1226

1226:                                             ; preds = %1218
  %1227 = load ptr, ptr %7, align 8, !tbaa !9
  %1228 = getelementptr inbounds %struct.nt_opts, ptr %1227, i32 0, i32 13
  store i32 1, ptr %1228, align 4, !tbaa !47
  br label %1261

1229:                                             ; preds = %1218
  %1230 = load ptr, ptr %6, align 8, !tbaa !9
  %1231 = load i32, ptr %8, align 4, !tbaa !5
  %1232 = sext i32 %1231 to i64
  %1233 = getelementptr inbounds ptr, ptr %1230, i64 %1232
  %1234 = load ptr, ptr %1233, align 8, !tbaa !9
  %1235 = call i32 @strncmp(ptr noundef %1234, ptr noundef @.str.65, i64 noundef 12) #9
  %1236 = icmp ne i32 %1235, 0
  br i1 %1236, label %1240, label %1237

1237:                                             ; preds = %1229
  %1238 = load ptr, ptr %7, align 8, !tbaa !9
  %1239 = getelementptr inbounds %struct.nt_opts, ptr %1238, i32 0, i32 12
  store i32 1, ptr %1239, align 8, !tbaa !48
  br label %1260

1240:                                             ; preds = %1229
  %1241 = load ptr, ptr %6, align 8, !tbaa !9
  %1242 = load i32, ptr %8, align 4, !tbaa !5
  %1243 = sext i32 %1242 to i64
  %1244 = getelementptr inbounds ptr, ptr %1241, i64 %1243
  %1245 = load ptr, ptr %1244, align 8, !tbaa !9
  %1246 = call i32 @strncmp(ptr noundef %1245, ptr noundef @.str.66, i64 noundef 12) #9
  %1247 = icmp ne i32 %1246, 0
  br i1 %1247, label %1251, label %1248

1248:                                             ; preds = %1240
  %1249 = load ptr, ptr %7, align 8, !tbaa !9
  %1250 = getelementptr inbounds %struct.nt_opts, ptr %1249, i32 0, i32 14
  store i32 1, ptr %1250, align 8, !tbaa !49
  br label %1259

1251:                                             ; preds = %1240
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = load ptr, ptr %6, align 8, !tbaa !9
  %1254 = load i32, ptr %8, align 4, !tbaa !5
  %1255 = sext i32 %1254 to i64
  %1256 = getelementptr inbounds ptr, ptr %1253, i64 %1255
  %1257 = load ptr, ptr %1256, align 8, !tbaa !9
  %1258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1252, ptr noundef @.str.67, ptr noundef %1257) #8
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

1259:                                             ; preds = %1248
  br label %1260

1260:                                             ; preds = %1259, %1237
  br label %1261

1261:                                             ; preds = %1260, %1226
  br label %1262

1262:                                             ; preds = %1261, %1215
  br label %1263

1263:                                             ; preds = %1262, %1204
  br label %1264

1264:                                             ; preds = %1263, %1113
  br label %1265

1265:                                             ; preds = %1264, %1097
  br label %1266

1266:                                             ; preds = %1265, %1072
  br label %1267

1267:                                             ; preds = %1266, %1055
  br label %1268

1268:                                             ; preds = %1267, %1032
  br label %1269

1269:                                             ; preds = %1268, %951
  br label %1270

1270:                                             ; preds = %1269, %940
  br label %1271

1271:                                             ; preds = %1270, %929
  br label %1272

1272:                                             ; preds = %1271, %920
  br label %1273

1273:                                             ; preds = %1272, %859
  br label %1274

1274:                                             ; preds = %1273, %850
  br label %1275

1275:                                             ; preds = %1274, %785
  br label %1276

1276:                                             ; preds = %1275, %751
  br label %1277

1277:                                             ; preds = %1276, %654
  br label %1278

1278:                                             ; preds = %1277, %560
  br label %1279

1279:                                             ; preds = %1278, %541
  br label %1280

1280:                                             ; preds = %1279, %530
  br label %1281

1281:                                             ; preds = %1280, %519
  br label %1282

1282:                                             ; preds = %1281, %508
  br label %1283

1283:                                             ; preds = %1282, %497
  br label %1284

1284:                                             ; preds = %1283, %486
  br label %1285

1285:                                             ; preds = %1284, %469
  br label %1286

1286:                                             ; preds = %1285, %446
  br label %1287

1287:                                             ; preds = %1286, %352
  br label %1288

1288:                                             ; preds = %1287, %325
  br label %1289

1289:                                             ; preds = %1288, %314
  br label %1290

1290:                                             ; preds = %1289, %303
  br label %1291

1291:                                             ; preds = %1290, %261
  br label %1292

1292:                                             ; preds = %1291
  br label %1293

1293:                                             ; preds = %1292
  br label %1294

1294:                                             ; preds = %1293
  br label %1295

1295:                                             ; preds = %1294
  br label %1296

1296:                                             ; preds = %1295
  br label %1297

1297:                                             ; preds = %1296
  br label %1298

1298:                                             ; preds = %1297
  br label %1299

1299:                                             ; preds = %1298
  br label %1300

1300:                                             ; preds = %1299
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301
  %1303 = load i32, ptr %8, align 4, !tbaa !5
  %1304 = add nsw i32 %1303, 1
  store i32 %1304, ptr %8, align 4, !tbaa !5
  br label %43, !llvm.loop !50

1305:                                             ; preds = %43
  %1306 = load ptr, ptr %7, align 8, !tbaa !9
  %1307 = getelementptr inbounds %struct.nt_opts, ptr %1306, i32 0, i32 21
  %1308 = load i32, ptr %1307, align 4, !tbaa !39
  %1309 = icmp ne i32 %1308, 0
  br i1 %1309, label %1310, label %1328

1310:                                             ; preds = %1305
  %1311 = load ptr, ptr %7, align 8, !tbaa !9
  %1312 = getelementptr inbounds %struct.nt_opts, ptr %1311, i32 0, i32 33
  %1313 = getelementptr inbounds %struct.str_list, ptr %1312, i32 0, i32 0
  %1314 = load i32, ptr %1313, align 8, !tbaa !51
  %1315 = icmp sgt i32 %1314, 0
  br i1 %1315, label %1316, label %1319

1316:                                             ; preds = %1310
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1317, ptr noundef @.str.68) #8
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

1319:                                             ; preds = %1310
  %1320 = load ptr, ptr %7, align 8, !tbaa !9
  %1321 = getelementptr inbounds %struct.nt_opts, ptr %1320, i32 0, i32 16
  store i32 1, ptr %1321, align 8, !tbaa !20
  %1322 = load ptr, ptr %7, align 8, !tbaa !9
  %1323 = getelementptr inbounds %struct.nt_opts, ptr %1322, i32 0, i32 33
  %1324 = call i32 @add_string(ptr noundef %1323, ptr noundef @.str.69)
  %1325 = icmp ne i32 %1324, 0
  br i1 %1325, label %1326, label %1327

1326:                                             ; preds = %1319
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

1327:                                             ; preds = %1319
  br label %1328

1328:                                             ; preds = %1327, %1305
  %1329 = load ptr, ptr %7, align 8, !tbaa !9
  %1330 = getelementptr inbounds %struct.nt_opts, ptr %1329, i32 0, i32 8
  %1331 = load i32, ptr %1330, align 8, !tbaa !17
  %1332 = icmp ne i32 %1331, 0
  br i1 %1332, label %1333, label %1354

1333:                                             ; preds = %1328
  %1334 = load ptr, ptr %7, align 8, !tbaa !9
  %1335 = getelementptr inbounds %struct.nt_opts, ptr %1334, i32 0, i32 29
  %1336 = getelementptr inbounds %struct.str_list, ptr %1335, i32 0, i32 0
  %1337 = load i32, ptr %1336, align 8, !tbaa !52
  %1338 = load ptr, ptr %7, align 8, !tbaa !9
  %1339 = getelementptr inbounds %struct.nt_opts, ptr %1338, i32 0, i32 30
  %1340 = getelementptr inbounds %struct.int_list, ptr %1339, i32 0, i32 0
  %1341 = load i32, ptr %1340, align 8, !tbaa !53
  %1342 = icmp ne i32 %1337, %1341
  br i1 %1342, label %1343, label %1354

1343:                                             ; preds = %1333
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = load ptr, ptr %7, align 8, !tbaa !9
  %1346 = getelementptr inbounds %struct.nt_opts, ptr %1345, i32 0, i32 29
  %1347 = getelementptr inbounds %struct.str_list, ptr %1346, i32 0, i32 0
  %1348 = load i32, ptr %1347, align 8, !tbaa !52
  %1349 = load ptr, ptr %7, align 8, !tbaa !9
  %1350 = getelementptr inbounds %struct.nt_opts, ptr %1349, i32 0, i32 30
  %1351 = getelementptr inbounds %struct.int_list, ptr %1350, i32 0, i32 0
  %1352 = load i32, ptr %1351, align 8, !tbaa !53
  %1353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1344, ptr noundef @.str.70, i32 noundef %1348, i32 noundef %1352) #8
  store i32 -1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

1354:                                             ; preds = %1333, %1328
  %1355 = load ptr, ptr %7, align 8, !tbaa !9
  %1356 = getelementptr inbounds %struct.nt_opts, ptr %1355, i32 0, i32 25
  %1357 = load i32, ptr %1356, align 4, !tbaa !14
  store i32 %1357, ptr @g_debug, align 4, !tbaa !5
  %1358 = load i32, ptr @g_debug, align 4, !tbaa !5
  call void @nifti_set_debug_level(i32 noundef %1358)
  %1359 = load ptr, ptr %7, align 8, !tbaa !9
  %1360 = load i32, ptr %5, align 4, !tbaa !5
  %1361 = load ptr, ptr %6, align 8, !tbaa !9
  %1362 = call i32 @fill_cmd_string(ptr noundef %1359, i32 noundef %1360, ptr noundef %1361)
  %1363 = load i32, ptr @g_debug, align 4, !tbaa !5
  %1364 = icmp sgt i32 %1363, 2
  br i1 %1364, label %1365, label %1368

1365:                                             ; preds = %1354
  %1366 = load ptr, ptr %7, align 8, !tbaa !9
  %1367 = call i32 @disp_nt_opts(ptr noundef @.str.71, ptr noundef %1366)
  br label %1368

1368:                                             ; preds = %1365, %1354
  store i32 0, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %1369

1369:                                             ; preds = %1368, %1343, %1326, %1316, %1251, %1201, %1151, %1131, %1090, %1048, %1030, %919, %902, %894, %877, %848, %784, %767, %749, %652, %462, %444, %302, %296, %279, %260, %254, %237, %216, %207, %198, %185, %172, %159, %146, %133, %120, %111, %37
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  %1370 = load i32, ptr %4, align 4
  ret i32 %1370
}

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

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

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

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

declare i32 @nifti_disp_type_list(i32 noundef) #4

declare i32 @nifti_test_datatype_sizes(i32 noundef) #4

declare void @nifti_disp_lib_hist() #4

declare void @nifti_disp_lib_version() #4

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

declare i32 @nifti_compiled_with_zlib() #4

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

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

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__ctype_b_loc() #6

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

; Function Attrs: inlinehint nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #7

declare void @nifti_set_debug_level(i32 noundef) #4

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

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

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

!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 = !{!12, !10, i64 168}
!12 = !{!"", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !6, i64 48, !6, i64 52, !6, i64 56, !6, i64 60, !6, i64 64, !6, i64 68, !6, i64 72, !6, i64 76, !6, i64 80, !6, i64 84, !7, i64 88, !7, i64 120, !6, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !10, i64 168, !13, i64 176, !13, i64 192, !13, i64 208, !13, i64 224, !13, i64 240, !7, i64 256}
!13 = !{!"", !6, i64 0, !10, i64 8}
!14 = !{!12, !6, i64 156}
!15 = !{!12, !6, i64 152}
!16 = !{!7, !7, i64 0}
!17 = !{!12, !6, i64 32}
!18 = !{!12, !6, i64 0}
!19 = !{!12, !6, i64 4}
!20 = !{!12, !6, i64 64}
!21 = !{!22, !22, i64 0}
!22 = !{!"short", !7, i64 0}
!23 = distinct !{!23, !24}
!24 = !{!"llvm.loop.mustprogress"}
!25 = !{!12, !6, i64 68}
!26 = !{!12, !6, i64 8}
!27 = !{!12, !6, i64 12}
!28 = !{!12, !6, i64 28}
!29 = !{!12, !6, i64 16}
!30 = !{!12, !6, i64 20}
!31 = !{!12, !6, i64 24}
!32 = !{!12, !6, i64 80}
!33 = distinct !{!33, !24}
!34 = !{!12, !6, i64 76}
!35 = distinct !{!35, !24}
!36 = distinct !{!36, !24}
!37 = !{!12, !6, i64 72}
!38 = distinct !{!38, !24}
!39 = !{!12, !6, i64 84}
!40 = !{!12, !6, i64 40}
!41 = !{!12, !6, i64 44}
!42 = !{!12, !6, i64 160}
!43 = distinct !{!43, !24}
!44 = !{!12, !6, i64 164}
!45 = !{!12, !6, i64 36}
!46 = !{!12, !6, i64 60}
!47 = !{!12, !6, i64 52}
!48 = !{!12, !6, i64 48}
!49 = !{!12, !6, i64 56}
!50 = distinct !{!50, !24}
!51 = !{!12, !6, i64 240}
!52 = !{!12, !6, i64 176}
!53 = !{!12, !6, i64 192}


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

@.str = external hidden unnamed_addr constant [16 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [14 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.14 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [9 x i8], align 1
@g_debug = external hidden local_unnamed_addr global i32, align 4
@.str.46 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [15 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @process_opts(i32 noundef %0, ptr noundef %1, ptr noundef %2) local_unnamed_addr #0 {
  %4 = getelementptr inbounds i8, ptr %2, i64 168
  %5 = getelementptr inbounds i8, ptr %2, i64 156
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(2304) %2, i8 0, i64 2304, i1 false)
  store i32 1, ptr %5, align 4, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %2, i64 152
  store i32 4, ptr %6, align 8, !tbaa !12
  %7 = getelementptr inbounds i8, ptr %2, i64 120
  store <4 x i32> <i32 3, i32 1, i32 1, i32 1>, ptr %7, align 8, !tbaa !13
  %8 = icmp slt i32 %0, 2
  br i1 %8, label %63, label %.preheader488

.preheader488:                                    ; preds = %3
  %9 = getelementptr inbounds i8, ptr %2, i64 56
  %10 = getelementptr inbounds i8, ptr %2, i64 48
  %11 = getelementptr inbounds i8, ptr %2, i64 52
  %12 = getelementptr inbounds i8, ptr %2, i64 60
  %13 = getelementptr inbounds i8, ptr %2, i64 176
  %14 = getelementptr inbounds i8, ptr %2, i64 36
  %15 = getelementptr inbounds i8, ptr %2, i64 164
  %16 = getelementptr inbounds i8, ptr %2, i64 160
  %17 = getelementptr inbounds i8, ptr %2, i64 44
  %18 = getelementptr inbounds i8, ptr %2, i64 40
  %19 = getelementptr inbounds i8, ptr %2, i64 208
  %20 = getelementptr inbounds i8, ptr %2, i64 224
  %21 = getelementptr inbounds i8, ptr %2, i64 84
  %22 = getelementptr inbounds i8, ptr %2, i64 240
  %23 = getelementptr inbounds i8, ptr %2, i64 88
  %24 = getelementptr inbounds i8, ptr %2, i64 72
  %25 = getelementptr inbounds i8, ptr %2, i64 76
  %26 = getelementptr inbounds i8, ptr %2, i64 80
  %27 = getelementptr inbounds i8, ptr %2, i64 24
  %28 = getelementptr inbounds i8, ptr %2, i64 20
  %29 = getelementptr inbounds i8, ptr %2, i64 16
  %30 = getelementptr inbounds i8, ptr %2, i64 28
  %31 = getelementptr inbounds i8, ptr %2, i64 12
  %32 = getelementptr inbounds i8, ptr %2, i64 8
  %33 = getelementptr inbounds i8, ptr %2, i64 68
  %34 = getelementptr inbounds i8, ptr %2, i64 64
  %35 = getelementptr inbounds i8, ptr %2, i64 4
  %36 = getelementptr inbounds i8, ptr %2, i64 192
  %37 = getelementptr inbounds i8, ptr %2, i64 32
  %38 = zext nneg i32 %0 to i64
  %scevgep = getelementptr i8, ptr %2, i64 104
  %39 = getelementptr inbounds i8, ptr %2, i64 124
  %40 = getelementptr inbounds i8, ptr %2, i64 128
  %41 = getelementptr inbounds i8, ptr %2, i64 132
  %42 = getelementptr inbounds i8, ptr %2, i64 136
  %43 = getelementptr inbounds i8, ptr %2, i64 140
  %44 = getelementptr inbounds i8, ptr %2, i64 144
  %45 = getelementptr inbounds i8, ptr %2, i64 148
  %46 = getelementptr inbounds i8, ptr %2, i64 92
  %47 = getelementptr inbounds i8, ptr %2, i64 96
  %48 = getelementptr inbounds i8, ptr %2, i64 100
  %49 = getelementptr inbounds i8, ptr %2, i64 92
  %50 = getelementptr inbounds i8, ptr %2, i64 96
  %51 = getelementptr inbounds i8, ptr %2, i64 100
  %52 = getelementptr inbounds i8, ptr %2, i64 104
  %53 = getelementptr inbounds i8, ptr %2, i64 108
  %54 = getelementptr inbounds i8, ptr %2, i64 112
  %55 = getelementptr inbounds i8, ptr %2, i64 116
  %56 = getelementptr inbounds i8, ptr %2, i64 92
  %57 = getelementptr inbounds i8, ptr %2, i64 96
  %58 = getelementptr inbounds i8, ptr %2, i64 100
  %59 = getelementptr inbounds i8, ptr %2, i64 104
  %60 = getelementptr inbounds i8, ptr %2, i64 108
  %61 = getelementptr inbounds i8, ptr %2, i64 112
  %62 = getelementptr inbounds i8, ptr %2, i64 116
  br label %66

63:                                               ; preds = %3
  %64 = load ptr, ptr %1, align 8, !tbaa !14
  %65 = tail call i32 @usage(ptr noundef %64, i32 noundef 2)
  br label %.thread

66:                                               ; preds = %.preheader488, %.thread476
  %.0344593 = phi i32 [ 1, %.preheader488 ], [ %719, %.thread476 ]
  %67 = sext i32 %.0344593 to i64
  %68 = getelementptr inbounds ptr, ptr %1, i64 %67
  %69 = load ptr, ptr %68, align 8, !tbaa !14
  %70 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str, i64 noundef 9) #8
  %.not380 = icmp eq i32 %70, 0
  br i1 %.not380, label %71, label %88

71:                                               ; preds = %66
  %72 = add nsw i32 %.0344593, 1
  %.not381 = icmp slt i32 %72, %0
  br i1 %.not381, label %75, label %73

73:                                               ; preds = %71
  %74 = tail call i32 @nifti_disp_type_list(i32 noundef 3) #9
  br label %.thread

75:                                               ; preds = %71
  %76 = sext i32 %72 to i64
  %77 = getelementptr inbounds ptr, ptr %1, i64 %76
  %78 = load ptr, ptr %77, align 8, !tbaa !14
  %79 = load i8, ptr %78, align 1, !tbaa !15
  %80 = add i8 %79, -68
  %81 = tail call i8 @llvm.fshl.i8(i8 %80, i8 %80, i8 4)
  switch i8 %81, label %86 [
    i8 2, label %82
    i8 0, label %82
    i8 3, label %84
    i8 1, label %84
  ]

82:                                               ; preds = %75, %75
  %83 = tail call i32 @nifti_disp_type_list(i32 noundef 1) #9
  br label %.thread

84:                                               ; preds = %75, %75
  %85 = tail call i32 @nifti_test_datatype_sizes(i32 noundef 1) #9
  br label %.thread

86:                                               ; preds = %75
  %87 = tail call i32 @nifti_disp_type_list(i32 noundef 2) #9
  br label %.thread

88:                                               ; preds = %66
  %89 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.1, i64 noundef 9) #8
  %.not382 = icmp eq i32 %89, 0
  br i1 %.not382, label %90, label %93

90:                                               ; preds = %88
  %91 = load ptr, ptr %1, align 8, !tbaa !14
  %92 = tail call i32 @usage(ptr noundef %91, i32 noundef 4)
  br label %.thread

93:                                               ; preds = %88
  %94 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.2, i64 noundef 9) #8
  %.not383 = icmp eq i32 %94, 0
  br i1 %.not383, label %95, label %98

95:                                               ; preds = %93
  %96 = load ptr, ptr %1, align 8, !tbaa !14
  %97 = tail call i32 @usage(ptr noundef %96, i32 noundef 5)
  br label %.thread

98:                                               ; preds = %93
  %99 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.3, i64 noundef 9) #8
  %.not384 = icmp eq i32 %99, 0
  br i1 %.not384, label %100, label %103

100:                                              ; preds = %98
  %101 = load ptr, ptr %1, align 8, !tbaa !14
  %102 = tail call i32 @usage(ptr noundef %101, i32 noundef 6)
  br label %.thread

103:                                              ; preds = %98
  %104 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.4, i64 noundef 5) #8
  %.not385 = icmp eq i32 %104, 0
  br i1 %.not385, label %105, label %108

105:                                              ; preds = %103
  %106 = load ptr, ptr %1, align 8, !tbaa !14
  %107 = tail call i32 @usage(ptr noundef %106, i32 noundef 2)
  br label %.thread

108:                                              ; preds = %103
  %109 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.5, i64 noundef 5) #8
  %.not386 = icmp eq i32 %109, 0
  br i1 %.not386, label %110, label %113

110:                                              ; preds = %108
  %111 = load ptr, ptr %1, align 8, !tbaa !14
  %112 = tail call i32 @usage(ptr noundef %111, i32 noundef 3)
  br label %.thread

113:                                              ; preds = %108
  %114 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.6, i64 noundef 2) #8
  %.not387 = icmp eq i32 %114, 0
  br i1 %.not387, label %115, label %118

115:                                              ; preds = %113
  %116 = load ptr, ptr %1, align 8, !tbaa !14
  %117 = tail call i32 @usage(ptr noundef %116, i32 noundef 8)
  br label %.thread

118:                                              ; preds = %113
  %119 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.7, i64 noundef 11) #8
  %.not388 = icmp eq i32 %119, 0
  br i1 %.not388, label %120, label %121

120:                                              ; preds = %118
  tail call void @nifti_disp_lib_hist() #9
  br label %.thread

121:                                              ; preds = %118
  %122 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.8, i64 noundef 10) #8
  %.not389 = icmp eq i32 %122, 0
  br i1 %.not389, label %123, label %124

123:                                              ; preds = %121
  tail call void @nifti_disp_lib_version() #9
  br label %.thread

124:                                              ; preds = %121
  %125 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.9, i64 noundef 5) #8
  %.not390 = icmp eq i32 %125, 0
  br i1 %.not390, label %126, label %130

126:                                              ; preds = %124
  %127 = tail call i32 @nifti_compiled_with_zlib() #9
  %.not391 = icmp eq i32 %127, 0
  %128 = select i1 %.not391, ptr @.str.12, ptr @.str.11
  %129 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.10, ptr noundef nonnull %128)
  br label %.thread

130:                                              ; preds = %124
  %131 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.13, i64 noundef 9) #8
  %.not392 = icmp eq i32 %131, 0
  br i1 %.not392, label %132, label %147

132:                                              ; preds = %130
  %133 = add nsw i32 %.0344593, 1
  %.not393 = icmp slt i32 %133, %0
  br i1 %.not393, label %139, label %134

134:                                              ; preds = %132
  %135 = load ptr, ptr @stderr, align 8, !tbaa !14
  %136 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %135, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.13) #10
  %137 = load ptr, ptr @stderr, align 8, !tbaa !14
  %138 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef nonnull @.str.15) #10
  br label %.thread

139:                                              ; preds = %132
  %140 = sext i32 %133 to i64
  %141 = getelementptr inbounds ptr, ptr %1, i64 %140
  %142 = load ptr, ptr %141, align 8, !tbaa !14
  %143 = tail call i32 @add_string(ptr noundef nonnull %13, ptr noundef %142)
  %.not394 = icmp eq i32 %143, 0
  br i1 %.not394, label %144, label %.thread

144:                                              ; preds = %139
  %145 = tail call i32 @add_int(ptr noundef nonnull %36, i32 noundef 4)
  %.not395 = icmp eq i32 %145, 0
  br i1 %.not395, label %146, label %.thread

146:                                              ; preds = %144
  store i32 1, ptr %37, align 8, !tbaa !16
  br label %.thread476

147:                                              ; preds = %130
  %148 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.16, i64 noundef 9) #8
  %.not396 = icmp eq i32 %148, 0
  br i1 %.not396, label %149, label %164

149:                                              ; preds = %147
  %150 = add nsw i32 %.0344593, 1
  %.not397 = icmp slt i32 %150, %0
  br i1 %.not397, label %156, label %151

151:                                              ; preds = %149
  %152 = load ptr, ptr @stderr, align 8, !tbaa !14
  %153 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %152, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.16) #10
  %154 = load ptr, ptr @stderr, align 8, !tbaa !14
  %155 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %154, ptr noundef nonnull @.str.15) #10
  br label %.thread

156:                                              ; preds = %149
  %157 = sext i32 %150 to i64
  %158 = getelementptr inbounds ptr, ptr %1, i64 %157
  %159 = load ptr, ptr %158, align 8, !tbaa !14
  %160 = tail call i32 @add_string(ptr noundef nonnull %13, ptr noundef %159)
  %.not398 = icmp eq i32 %160, 0
  br i1 %.not398, label %161, label %.thread

161:                                              ; preds = %156
  %162 = tail call i32 @add_int(ptr noundef nonnull %36, i32 noundef 6)
  %.not399 = icmp eq i32 %162, 0
  br i1 %.not399, label %163, label %.thread

163:                                              ; preds = %161
  store i32 1, ptr %37, align 8, !tbaa !16
  br label %.thread476

164:                                              ; preds = %147
  %165 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.17, i64 noundef 10) #8
  %.not400 = icmp eq i32 %165, 0
  br i1 %.not400, label %166, label %167

166:                                              ; preds = %164
  store i32 1, ptr %2, align 8, !tbaa !17
  br label %.thread476

167:                                              ; preds = %164
  %168 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.18, i64 noundef 10) #8
  %.not401 = icmp eq i32 %168, 0
  br i1 %.not401, label %169, label %170

169:                                              ; preds = %167
  store i32 1, ptr %35, align 4, !tbaa !18
  br label %.thread476

170:                                              ; preds = %167
  %171 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.19, i64 noundef 11) #8
  %.not402 = icmp eq i32 %171, 0
  br i1 %.not402, label %176, label %172

172:                                              ; preds = %170
  %173 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.20, i64 noundef 10) #8
  %.not403 = icmp eq i32 %173, 0
  br i1 %.not403, label %176, label %174

174:                                              ; preds = %172
  %175 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.21, i64 noundef 4) #8
  %.not404 = icmp eq i32 %175, 0
  br i1 %.not404, label %176, label %177

176:                                              ; preds = %174, %172, %170
  store i32 1, ptr %34, align 8, !tbaa !19
  br label %.thread476

177:                                              ; preds = %174
  %178 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.22, i64 noundef 10) #8
  %.not405 = icmp eq i32 %178, 0
  br i1 %.not405, label %181, label %179

179:                                              ; preds = %177
  %180 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.23, i64 noundef 4) #8
  %.not406 = icmp eq i32 %180, 0
  br i1 %.not406, label %181, label %277

181:                                              ; preds = %179, %177
  store i32 0, ptr %23, align 8, !tbaa !13
  %indvars.iv.next710 = add nsw i64 %67, 1
  %.not407 = icmp slt i64 %indvars.iv.next710, %38
  br i1 %.not407, label %187, label %182

182:                                              ; preds = %262, %250, %238, %226, %214, %202, %181
  %183 = load ptr, ptr @stderr, align 8, !tbaa !14
  %184 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %183, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.25) #10
  %185 = load ptr, ptr @stderr, align 8, !tbaa !14
  %186 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %185, ptr noundef nonnull @.str.15) #10
  br label %.thread

187:                                              ; preds = %181
  %188 = tail call ptr @__ctype_b_loc() #11
  %189 = load ptr, ptr %188, align 8, !tbaa !14
  %190 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next710
  %191 = load ptr, ptr %190, align 8, !tbaa !14
  %192 = load i8, ptr %191, align 1, !tbaa !15
  %193 = sext i8 %192 to i64
  %194 = getelementptr inbounds i16, ptr %189, i64 %193
  %195 = load i16, ptr %194, align 2, !tbaa !20
  %196 = and i16 %195, 2048
  %.not408 = icmp eq i16 %196, 0
  br i1 %.not408, label %197, label %202

197:                                              ; preds = %187
  %198 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %191, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not409 = icmp eq i32 %198, 0
  br i1 %.not409, label %202, label %199

199:                                              ; preds = %272, %260, %248, %236, %224, %212, %197
  %.lcssa617 = phi ptr [ %191, %197 ], [ %206, %212 ], [ %218, %224 ], [ %230, %236 ], [ %242, %248 ], [ %254, %260 ], [ %266, %272 ]
  %.0337592.lcssa615.wide = phi i32 [ 1, %197 ], [ 2, %212 ], [ 3, %224 ], [ 4, %236 ], [ 5, %248 ], [ 6, %260 ], [ 7, %272 ]
  %200 = load ptr, ptr @stderr, align 8, !tbaa !14
  %201 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %200, ptr noundef nonnull @.str.27, i32 noundef %.0337592.lcssa615.wide, ptr noundef nonnull %.lcssa617) #10
  br label %.thread

202:                                              ; preds = %197, %187
  %203 = tail call i32 @atoi(ptr nocapture noundef %191) #8
  store i32 %203, ptr %56, align 4, !tbaa !13
  %indvars.iv.next710.1 = add nsw i64 %67, 2
  %.not407.1 = icmp slt i64 %indvars.iv.next710.1, %38
  br i1 %.not407.1, label %204, label %182

204:                                              ; preds = %202
  %205 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next710.1
  %206 = load ptr, ptr %205, align 8, !tbaa !14
  %207 = load i8, ptr %206, align 1, !tbaa !15
  %208 = sext i8 %207 to i64
  %209 = getelementptr inbounds i16, ptr %189, i64 %208
  %210 = load i16, ptr %209, align 2, !tbaa !20
  %211 = and i16 %210, 2048
  %.not408.1 = icmp eq i16 %211, 0
  br i1 %.not408.1, label %212, label %214

212:                                              ; preds = %204
  %213 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %206, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not409.1 = icmp eq i32 %213, 0
  br i1 %.not409.1, label %214, label %199

214:                                              ; preds = %212, %204
  %215 = tail call i32 @atoi(ptr nocapture noundef %206) #8
  store i32 %215, ptr %57, align 4, !tbaa !13
  %indvars.iv.next710.2 = add nsw i64 %67, 3
  %.not407.2 = icmp slt i64 %indvars.iv.next710.2, %38
  br i1 %.not407.2, label %216, label %182

216:                                              ; preds = %214
  %217 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next710.2
  %218 = load ptr, ptr %217, align 8, !tbaa !14
  %219 = load i8, ptr %218, align 1, !tbaa !15
  %220 = sext i8 %219 to i64
  %221 = getelementptr inbounds i16, ptr %189, i64 %220
  %222 = load i16, ptr %221, align 2, !tbaa !20
  %223 = and i16 %222, 2048
  %.not408.2 = icmp eq i16 %223, 0
  br i1 %.not408.2, label %224, label %226

224:                                              ; preds = %216
  %225 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %218, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not409.2 = icmp eq i32 %225, 0
  br i1 %.not409.2, label %226, label %199

226:                                              ; preds = %224, %216
  %227 = tail call i32 @atoi(ptr nocapture noundef %218) #8
  store i32 %227, ptr %58, align 4, !tbaa !13
  %indvars.iv.next710.3 = add nsw i64 %67, 4
  %.not407.3 = icmp slt i64 %indvars.iv.next710.3, %38
  br i1 %.not407.3, label %228, label %182

228:                                              ; preds = %226
  %229 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next710.3
  %230 = load ptr, ptr %229, align 8, !tbaa !14
  %231 = load i8, ptr %230, align 1, !tbaa !15
  %232 = sext i8 %231 to i64
  %233 = getelementptr inbounds i16, ptr %189, i64 %232
  %234 = load i16, ptr %233, align 2, !tbaa !20
  %235 = and i16 %234, 2048
  %.not408.3 = icmp eq i16 %235, 0
  br i1 %.not408.3, label %236, label %238

236:                                              ; preds = %228
  %237 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %230, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not409.3 = icmp eq i32 %237, 0
  br i1 %.not409.3, label %238, label %199

238:                                              ; preds = %236, %228
  %239 = tail call i32 @atoi(ptr nocapture noundef %230) #8
  store i32 %239, ptr %59, align 4, !tbaa !13
  %indvars.iv.next710.4 = add nsw i64 %67, 5
  %.not407.4 = icmp slt i64 %indvars.iv.next710.4, %38
  br i1 %.not407.4, label %240, label %182

240:                                              ; preds = %238
  %241 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next710.4
  %242 = load ptr, ptr %241, align 8, !tbaa !14
  %243 = load i8, ptr %242, align 1, !tbaa !15
  %244 = sext i8 %243 to i64
  %245 = getelementptr inbounds i16, ptr %189, i64 %244
  %246 = load i16, ptr %245, align 2, !tbaa !20
  %247 = and i16 %246, 2048
  %.not408.4 = icmp eq i16 %247, 0
  br i1 %.not408.4, label %248, label %250

248:                                              ; preds = %240
  %249 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %242, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not409.4 = icmp eq i32 %249, 0
  br i1 %.not409.4, label %250, label %199

250:                                              ; preds = %248, %240
  %251 = tail call i32 @atoi(ptr nocapture noundef %242) #8
  store i32 %251, ptr %60, align 4, !tbaa !13
  %indvars.iv.next710.5 = add nsw i64 %67, 6
  %.not407.5 = icmp slt i64 %indvars.iv.next710.5, %38
  br i1 %.not407.5, label %252, label %182

252:                                              ; preds = %250
  %253 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next710.5
  %254 = load ptr, ptr %253, align 8, !tbaa !14
  %255 = load i8, ptr %254, align 1, !tbaa !15
  %256 = sext i8 %255 to i64
  %257 = getelementptr inbounds i16, ptr %189, i64 %256
  %258 = load i16, ptr %257, align 2, !tbaa !20
  %259 = and i16 %258, 2048
  %.not408.5 = icmp eq i16 %259, 0
  br i1 %.not408.5, label %260, label %262

260:                                              ; preds = %252
  %261 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %254, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not409.5 = icmp eq i32 %261, 0
  br i1 %.not409.5, label %262, label %199

262:                                              ; preds = %260, %252
  %263 = tail call i32 @atoi(ptr nocapture noundef %254) #8
  store i32 %263, ptr %61, align 4, !tbaa !13
  %indvars.iv.next710.6 = add nsw i64 %67, 7
  %.not407.6 = icmp slt i64 %indvars.iv.next710.6, %38
  br i1 %.not407.6, label %264, label %182

264:                                              ; preds = %262
  %265 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next710.6
  %266 = load ptr, ptr %265, align 8, !tbaa !14
  %267 = load i8, ptr %266, align 1, !tbaa !15
  %268 = sext i8 %267 to i64
  %269 = getelementptr inbounds i16, ptr %189, i64 %268
  %270 = load i16, ptr %269, align 2, !tbaa !20
  %271 = and i16 %270, 2048
  %.not408.6 = icmp eq i16 %271, 0
  br i1 %.not408.6, label %272, label %274

272:                                              ; preds = %264
  %273 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %266, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not409.6 = icmp eq i32 %273, 0
  br i1 %.not409.6, label %274, label %199

274:                                              ; preds = %272, %264
  %275 = tail call i32 @atoi(ptr nocapture noundef %266) #8
  store i32 %275, ptr %62, align 4, !tbaa !13
  %276 = trunc nsw i64 %indvars.iv.next710.6 to i32
  store i32 1, ptr %33, align 4, !tbaa !22
  br label %.thread476

277:                                              ; preds = %179
  %278 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.28, i64 noundef 6) #8
  %.not410 = icmp eq i32 %278, 0
  br i1 %.not410, label %279, label %291

279:                                              ; preds = %277
  %280 = add nsw i32 %.0344593, 1
  %.not411 = icmp slt i32 %280, %0
  br i1 %.not411, label %286, label %281

281:                                              ; preds = %279
  %282 = load ptr, ptr @stderr, align 8, !tbaa !14
  %283 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %282, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.28) #10
  %284 = load ptr, ptr @stderr, align 8, !tbaa !14
  %285 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %284, ptr noundef nonnull @.str.15) #10
  br label %.thread

286:                                              ; preds = %279
  %287 = sext i32 %280 to i64
  %288 = getelementptr inbounds ptr, ptr %1, i64 %287
  %289 = load ptr, ptr %288, align 8, !tbaa !14
  %290 = tail call i32 @atoi(ptr nocapture noundef %289) #8
  store i32 %290, ptr %5, align 4, !tbaa !5
  br label %.thread476

291:                                              ; preds = %277
  %292 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.29, i64 noundef 8) #8
  %.not412 = icmp eq i32 %292, 0
  br i1 %.not412, label %293, label %294

293:                                              ; preds = %291
  store i32 1, ptr %32, align 8, !tbaa !23
  br label %.thread476

294:                                              ; preds = %291
  %295 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.30, i64 noundef 8) #8
  %.not413 = icmp eq i32 %295, 0
  br i1 %.not413, label %296, label %297

296:                                              ; preds = %294
  store i32 1, ptr %31, align 4, !tbaa !24
  br label %.thread476

297:                                              ; preds = %294
  %298 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.31, i64 noundef 7) #8
  %.not414 = icmp eq i32 %298, 0
  br i1 %.not414, label %299, label %300

299:                                              ; preds = %297
  store i32 1, ptr %30, align 4, !tbaa !25
  br label %.thread476

300:                                              ; preds = %297
  %301 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.32, i64 noundef 8) #8
  %.not415 = icmp eq i32 %301, 0
  br i1 %.not415, label %302, label %303

302:                                              ; preds = %300
  store i32 1, ptr %29, align 8, !tbaa !26
  br label %.thread476

303:                                              ; preds = %300
  %304 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.33, i64 noundef 8) #8
  %.not416 = icmp eq i32 %304, 0
  br i1 %.not416, label %305, label %306

305:                                              ; preds = %303
  store i32 1, ptr %28, align 4, !tbaa !27
  br label %.thread476

306:                                              ; preds = %303
  %307 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.34, i64 noundef 8) #8
  %.not417 = icmp eq i32 %307, 0
  br i1 %.not417, label %308, label %309

308:                                              ; preds = %306
  store i32 1, ptr %27, align 8, !tbaa !28
  br label %.thread476

309:                                              ; preds = %306
  %310 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.35, i64 noundef 6) #8
  %.not418 = icmp eq i32 %310, 0
  br i1 %.not418, label %313, label %311

311:                                              ; preds = %309
  %312 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.36, i64 noundef 6) #8
  %.not419 = icmp eq i32 %312, 0
  br i1 %.not419, label %313, label %314

313:                                              ; preds = %311, %309
  store i32 1, ptr %26, align 8, !tbaa !29
  br label %.thread476

314:                                              ; preds = %311
  %315 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.37, i64 noundef 10) #8
  %.not420 = icmp eq i32 %315, 0
  br i1 %.not420, label %318, label %316

316:                                              ; preds = %314
  %317 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.38, i64 noundef 8) #8
  %.not421 = icmp eq i32 %317, 0
  br i1 %.not421, label %318, label %414

318:                                              ; preds = %316, %314
  store i32 0, ptr %23, align 8, !tbaa !13
  %indvars.iv.next702 = add nsw i64 %67, 1
  %.not422 = icmp slt i64 %indvars.iv.next702, %38
  br i1 %.not422, label %324, label %319

319:                                              ; preds = %399, %387, %375, %363, %351, %339, %318
  %320 = load ptr, ptr @stderr, align 8, !tbaa !14
  %321 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %320, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.25) #10
  %322 = load ptr, ptr @stderr, align 8, !tbaa !14
  %323 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %322, ptr noundef nonnull @.str.15) #10
  br label %.thread

324:                                              ; preds = %318
  %325 = tail call ptr @__ctype_b_loc() #11
  %326 = load ptr, ptr %325, align 8, !tbaa !14
  %327 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next702
  %328 = load ptr, ptr %327, align 8, !tbaa !14
  %329 = load i8, ptr %328, align 1, !tbaa !15
  %330 = sext i8 %329 to i64
  %331 = getelementptr inbounds i16, ptr %326, i64 %330
  %332 = load i16, ptr %331, align 2, !tbaa !20
  %333 = and i16 %332, 2048
  %.not423 = icmp eq i16 %333, 0
  br i1 %.not423, label %334, label %339

334:                                              ; preds = %324
  %335 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %328, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not424 = icmp eq i32 %335, 0
  br i1 %.not424, label %339, label %336

336:                                              ; preds = %409, %397, %385, %373, %361, %349, %334
  %.lcssa611 = phi ptr [ %328, %334 ], [ %343, %349 ], [ %355, %361 ], [ %367, %373 ], [ %379, %385 ], [ %391, %397 ], [ %403, %409 ]
  %.0336590.lcssa609.wide = phi i32 [ 1, %334 ], [ 2, %349 ], [ 3, %361 ], [ 4, %373 ], [ 5, %385 ], [ 6, %397 ], [ 7, %409 ]
  %337 = load ptr, ptr @stderr, align 8, !tbaa !14
  %338 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %337, ptr noundef nonnull @.str.39, i32 noundef %.0336590.lcssa609.wide, ptr noundef nonnull %.lcssa611) #10
  br label %.thread

339:                                              ; preds = %334, %324
  %340 = tail call i32 @atoi(ptr nocapture noundef %328) #8
  store i32 %340, ptr %49, align 4, !tbaa !13
  %indvars.iv.next702.1 = add nsw i64 %67, 2
  %.not422.1 = icmp slt i64 %indvars.iv.next702.1, %38
  br i1 %.not422.1, label %341, label %319

341:                                              ; preds = %339
  %342 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next702.1
  %343 = load ptr, ptr %342, align 8, !tbaa !14
  %344 = load i8, ptr %343, align 1, !tbaa !15
  %345 = sext i8 %344 to i64
  %346 = getelementptr inbounds i16, ptr %326, i64 %345
  %347 = load i16, ptr %346, align 2, !tbaa !20
  %348 = and i16 %347, 2048
  %.not423.1 = icmp eq i16 %348, 0
  br i1 %.not423.1, label %349, label %351

349:                                              ; preds = %341
  %350 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %343, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not424.1 = icmp eq i32 %350, 0
  br i1 %.not424.1, label %351, label %336

351:                                              ; preds = %349, %341
  %352 = tail call i32 @atoi(ptr nocapture noundef %343) #8
  store i32 %352, ptr %50, align 4, !tbaa !13
  %indvars.iv.next702.2 = add nsw i64 %67, 3
  %.not422.2 = icmp slt i64 %indvars.iv.next702.2, %38
  br i1 %.not422.2, label %353, label %319

353:                                              ; preds = %351
  %354 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next702.2
  %355 = load ptr, ptr %354, align 8, !tbaa !14
  %356 = load i8, ptr %355, align 1, !tbaa !15
  %357 = sext i8 %356 to i64
  %358 = getelementptr inbounds i16, ptr %326, i64 %357
  %359 = load i16, ptr %358, align 2, !tbaa !20
  %360 = and i16 %359, 2048
  %.not423.2 = icmp eq i16 %360, 0
  br i1 %.not423.2, label %361, label %363

361:                                              ; preds = %353
  %362 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %355, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not424.2 = icmp eq i32 %362, 0
  br i1 %.not424.2, label %363, label %336

363:                                              ; preds = %361, %353
  %364 = tail call i32 @atoi(ptr nocapture noundef %355) #8
  store i32 %364, ptr %51, align 4, !tbaa !13
  %indvars.iv.next702.3 = add nsw i64 %67, 4
  %.not422.3 = icmp slt i64 %indvars.iv.next702.3, %38
  br i1 %.not422.3, label %365, label %319

365:                                              ; preds = %363
  %366 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next702.3
  %367 = load ptr, ptr %366, align 8, !tbaa !14
  %368 = load i8, ptr %367, align 1, !tbaa !15
  %369 = sext i8 %368 to i64
  %370 = getelementptr inbounds i16, ptr %326, i64 %369
  %371 = load i16, ptr %370, align 2, !tbaa !20
  %372 = and i16 %371, 2048
  %.not423.3 = icmp eq i16 %372, 0
  br i1 %.not423.3, label %373, label %375

373:                                              ; preds = %365
  %374 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %367, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not424.3 = icmp eq i32 %374, 0
  br i1 %.not424.3, label %375, label %336

375:                                              ; preds = %373, %365
  %376 = tail call i32 @atoi(ptr nocapture noundef %367) #8
  store i32 %376, ptr %52, align 4, !tbaa !13
  %indvars.iv.next702.4 = add nsw i64 %67, 5
  %.not422.4 = icmp slt i64 %indvars.iv.next702.4, %38
  br i1 %.not422.4, label %377, label %319

377:                                              ; preds = %375
  %378 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next702.4
  %379 = load ptr, ptr %378, align 8, !tbaa !14
  %380 = load i8, ptr %379, align 1, !tbaa !15
  %381 = sext i8 %380 to i64
  %382 = getelementptr inbounds i16, ptr %326, i64 %381
  %383 = load i16, ptr %382, align 2, !tbaa !20
  %384 = and i16 %383, 2048
  %.not423.4 = icmp eq i16 %384, 0
  br i1 %.not423.4, label %385, label %387

385:                                              ; preds = %377
  %386 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %379, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not424.4 = icmp eq i32 %386, 0
  br i1 %.not424.4, label %387, label %336

387:                                              ; preds = %385, %377
  %388 = tail call i32 @atoi(ptr nocapture noundef %379) #8
  store i32 %388, ptr %53, align 4, !tbaa !13
  %indvars.iv.next702.5 = add nsw i64 %67, 6
  %.not422.5 = icmp slt i64 %indvars.iv.next702.5, %38
  br i1 %.not422.5, label %389, label %319

389:                                              ; preds = %387
  %390 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next702.5
  %391 = load ptr, ptr %390, align 8, !tbaa !14
  %392 = load i8, ptr %391, align 1, !tbaa !15
  %393 = sext i8 %392 to i64
  %394 = getelementptr inbounds i16, ptr %326, i64 %393
  %395 = load i16, ptr %394, align 2, !tbaa !20
  %396 = and i16 %395, 2048
  %.not423.5 = icmp eq i16 %396, 0
  br i1 %.not423.5, label %397, label %399

397:                                              ; preds = %389
  %398 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %391, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not424.5 = icmp eq i32 %398, 0
  br i1 %.not424.5, label %399, label %336

399:                                              ; preds = %397, %389
  %400 = tail call i32 @atoi(ptr nocapture noundef %391) #8
  store i32 %400, ptr %54, align 4, !tbaa !13
  %indvars.iv.next702.6 = add nsw i64 %67, 7
  %.not422.6 = icmp slt i64 %indvars.iv.next702.6, %38
  br i1 %.not422.6, label %401, label %319

401:                                              ; preds = %399
  %402 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next702.6
  %403 = load ptr, ptr %402, align 8, !tbaa !14
  %404 = load i8, ptr %403, align 1, !tbaa !15
  %405 = sext i8 %404 to i64
  %406 = getelementptr inbounds i16, ptr %326, i64 %405
  %407 = load i16, ptr %406, align 2, !tbaa !20
  %408 = and i16 %407, 2048
  %.not423.6 = icmp eq i16 %408, 0
  br i1 %.not423.6, label %409, label %411

409:                                              ; preds = %401
  %410 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %403, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not424.6 = icmp eq i32 %410, 0
  br i1 %.not424.6, label %411, label %336

411:                                              ; preds = %409, %401
  %412 = tail call i32 @atoi(ptr nocapture noundef %403) #8
  store i32 %412, ptr %55, align 4, !tbaa !13
  %413 = trunc nsw i64 %indvars.iv.next702.6 to i32
  store i32 1, ptr %25, align 4, !tbaa !30
  br label %.thread476

414:                                              ; preds = %316
  %415 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.40, i64 noundef 10) #8
  %.not425 = icmp eq i32 %415, 0
  br i1 %.not425, label %418, label %416

416:                                              ; preds = %414
  %417 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.41, i64 noundef 4) #8
  %.not426 = icmp eq i32 %417, 0
  br i1 %.not426, label %418, label %460

418:                                              ; preds = %416, %414
  %indvars.iv.next691 = add nsw i64 %67, 1
  %.not427 = icmp slt i64 %indvars.iv.next691, %38
  br i1 %.not427, label %424, label %419

419:                                              ; preds = %447, %437, %418
  %420 = load ptr, ptr @stderr, align 8, !tbaa !14
  %421 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %420, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.42) #10
  %422 = load ptr, ptr @stderr, align 8, !tbaa !14
  %423 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %422, ptr noundef nonnull @.str.15) #10
  br label %.thread

424:                                              ; preds = %418
  %425 = tail call ptr @__ctype_b_loc() #11
  %426 = load ptr, ptr %425, align 8, !tbaa !14
  %427 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next691
  %428 = load ptr, ptr %427, align 8, !tbaa !14
  %429 = load i8, ptr %428, align 1, !tbaa !15
  %430 = sext i8 %429 to i64
  %431 = getelementptr inbounds i16, ptr %426, i64 %430
  %432 = load i16, ptr %431, align 2, !tbaa !20
  %433 = and i16 %432, 2048
  %.not428 = icmp eq i16 %433, 0
  br i1 %.not428, label %434, label %437

434:                                              ; preds = %449, %439, %424
  %.lcssa605 = phi ptr [ %428, %424 ], [ %441, %439 ], [ %451, %449 ]
  %.0334587.lcssa603.wide = phi i32 [ 1, %424 ], [ 2, %439 ], [ 3, %449 ]
  %435 = load ptr, ptr @stderr, align 8, !tbaa !14
  %436 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %435, ptr noundef nonnull @.str.43, i32 noundef %.0334587.lcssa603.wide, ptr noundef nonnull %.lcssa605) #10
  br label %.thread

437:                                              ; preds = %424
  %438 = tail call i32 @atoi(ptr nocapture noundef %428) #8
  store i32 %438, ptr %46, align 4, !tbaa !13
  %indvars.iv.next691.1 = add nsw i64 %67, 2
  %.not427.1 = icmp slt i64 %indvars.iv.next691.1, %38
  br i1 %.not427.1, label %439, label %419

439:                                              ; preds = %437
  %440 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next691.1
  %441 = load ptr, ptr %440, align 8, !tbaa !14
  %442 = load i8, ptr %441, align 1, !tbaa !15
  %443 = sext i8 %442 to i64
  %444 = getelementptr inbounds i16, ptr %426, i64 %443
  %445 = load i16, ptr %444, align 2, !tbaa !20
  %446 = and i16 %445, 2048
  %.not428.1 = icmp eq i16 %446, 0
  br i1 %.not428.1, label %434, label %447

447:                                              ; preds = %439
  %448 = tail call i32 @atoi(ptr nocapture noundef %441) #8
  store i32 %448, ptr %47, align 4, !tbaa !13
  %indvars.iv.next691.2 = add nsw i64 %67, 3
  %.not427.2 = icmp slt i64 %indvars.iv.next691.2, %38
  br i1 %.not427.2, label %449, label %419

449:                                              ; preds = %447
  %450 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next691.2
  %451 = load ptr, ptr %450, align 8, !tbaa !14
  %452 = load i8, ptr %451, align 1, !tbaa !15
  %453 = sext i8 %452 to i64
  %454 = getelementptr inbounds i16, ptr %426, i64 %453
  %455 = load i16, ptr %454, align 2, !tbaa !20
  %456 = and i16 %455, 2048
  %.not428.2 = icmp eq i16 %456, 0
  br i1 %.not428.2, label %434, label %457

457:                                              ; preds = %449
  %458 = tail call i32 @atoi(ptr nocapture noundef %451) #8
  store i32 %458, ptr %48, align 4, !tbaa !13
  store i32 0, ptr %23, align 8, !tbaa !13
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %scevgep, i8 -1, i64 16, i1 false), !tbaa !13
  %459 = trunc nsw i64 %indvars.iv.next691.2 to i32
  store i32 1, ptr %24, align 8, !tbaa !31
  br label %.thread476

460:                                              ; preds = %416
  %461 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.44, i64 noundef 2) #8
  %.not429 = icmp eq i32 %461, 0
  br i1 %.not429, label %462, label %474

462:                                              ; preds = %460
  %463 = add nsw i32 %.0344593, 1
  %.not430 = icmp slt i32 %463, %0
  br i1 %.not430, label %469, label %464

464:                                              ; preds = %462
  %465 = load ptr, ptr @stderr, align 8, !tbaa !14
  %466 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %465, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.44) #10
  %467 = load ptr, ptr @stderr, align 8, !tbaa !14
  %468 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %467, ptr noundef nonnull @.str.15) #10
  br label %.thread

469:                                              ; preds = %462
  %470 = sext i32 %463 to i64
  %471 = getelementptr inbounds ptr, ptr %1, i64 %470
  %472 = load ptr, ptr %471, align 8, !tbaa !14
  %473 = tail call i32 @add_string(ptr noundef nonnull %19, ptr noundef %472)
  %.not431 = icmp eq i32 %473, 0
  br i1 %.not431, label %.thread476, label %.thread

474:                                              ; preds = %460
  %475 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.45, i64 noundef 3) #8
  %.not432 = icmp eq i32 %475, 0
  br i1 %.not432, label %.preheader, label %498

.preheader:                                       ; preds = %474
  %.7351576 = add nsw i32 %.0344593, 1
  %476 = icmp slt i32 %.7351576, %0
  br i1 %476, label %.lr.ph.preheader, label %.critedge.thread

.lr.ph.preheader:                                 ; preds = %.preheader
  %477 = sext i32 %.7351576 to i64
  %478 = xor i32 %.0344593, -1
  %479 = add i32 %478, %0
  %480 = getelementptr inbounds ptr, ptr %1, i64 %477
  %481 = load ptr, ptr %480, align 8, !tbaa !14
  %482 = load i8, ptr %481, align 1, !tbaa !15
  %.not433852 = icmp eq i8 %482, 45
  br i1 %.not433852, label %.critedge, label %.lr.ph855

.lr.ph:                                           ; preds = %491
  %483 = add nuw nsw i32 %.0333578854, 1
  %484 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next
  %485 = load ptr, ptr %484, align 8, !tbaa !14
  %486 = load i8, ptr %485, align 1, !tbaa !15
  %.not433 = icmp eq i8 %486, 45
  %487 = trunc nsw i64 %indvars.iv.next to i32
  br i1 %.not433, label %.critedge, label %.lr.ph855, !llvm.loop !32

.lr.ph855:                                        ; preds = %.lr.ph.preheader, %.lr.ph
  %488 = phi i32 [ %487, %.lr.ph ], [ %.7351576, %.lr.ph.preheader ]
  %489 = phi ptr [ %485, %.lr.ph ], [ %481, %.lr.ph.preheader ]
  %.0333578854 = phi i32 [ %483, %.lr.ph ], [ 0, %.lr.ph.preheader ]
  %indvars.iv853 = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %477, %.lr.ph.preheader ]
  %490 = tail call i32 @add_string(ptr noundef nonnull %22, ptr noundef nonnull %489)
  %.not435 = icmp eq i32 %490, 0
  br i1 %.not435, label %491, label %.thread

491:                                              ; preds = %.lr.ph855
  %indvars.iv.next = add nsw i64 %indvars.iv853, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %38
  br i1 %exitcond.not, label %.critedge, label %.lr.ph, !llvm.loop !32

.critedge:                                        ; preds = %491, %.lr.ph, %.lr.ph.preheader
  %.0333.lcssa = phi i32 [ 0, %.lr.ph.preheader ], [ %479, %491 ], [ %483, %.lr.ph ]
  %.7351.lcssa = phi i32 [ %.7351576, %.lr.ph.preheader ], [ %0, %491 ], [ %487, %.lr.ph ]
  %spec.select = phi i32 [ %.0344593, %.lr.ph.preheader ], [ %0, %491 ], [ %488, %.lr.ph ]
  %.0333.lcssa.fr = freeze i32 %.0333.lcssa
  %.not434 = icmp eq i32 %.0333.lcssa.fr, 0
  %spec.select787 = select i1 %.not434, i32 %.7351.lcssa, i32 %spec.select
  br label %.critedge.thread

.critedge.thread:                                 ; preds = %.critedge, %.preheader
  %.0333.lcssa720 = phi i32 [ 0, %.preheader ], [ %.0333.lcssa.fr, %.critedge ]
  %492 = phi i32 [ %.7351576, %.preheader ], [ %spec.select787, %.critedge ]
  %493 = load i32, ptr @g_debug, align 4, !tbaa !13
  %494 = icmp sgt i32 %493, 2
  br i1 %494, label %495, label %.thread476

495:                                              ; preds = %.critedge.thread
  %496 = load ptr, ptr @stderr, align 8, !tbaa !14
  %497 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %496, ptr noundef nonnull @.str.46, i32 noundef %.0333.lcssa720) #10
  br label %.thread476

498:                                              ; preds = %474
  %499 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.47, i64 noundef 8) #8
  %.not436 = icmp eq i32 %499, 0
  br i1 %.not436, label %500, label %501

500:                                              ; preds = %498
  store i32 1, ptr %21, align 4, !tbaa !34
  br label %.thread476

501:                                              ; preds = %498
  %502 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.48, i64 noundef 6) #8
  %.not437 = icmp eq i32 %502, 0
  br i1 %.not437, label %503, label %527

503:                                              ; preds = %501
  %504 = add nsw i32 %.0344593, 1
  %.not438 = icmp slt i32 %504, %0
  br i1 %.not438, label %510, label %505

505:                                              ; preds = %503
  %506 = load ptr, ptr @stderr, align 8, !tbaa !14
  %507 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %506, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.48) #10
  %508 = load ptr, ptr @stderr, align 8, !tbaa !14
  %509 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull @.str.15) #10
  br label %.thread

510:                                              ; preds = %503
  %511 = sext i32 %504 to i64
  %512 = getelementptr inbounds ptr, ptr %1, i64 %511
  %513 = load ptr, ptr %512, align 8, !tbaa !14
  %514 = tail call i32 @add_string(ptr noundef nonnull %19, ptr noundef %513)
  %.not439 = icmp eq i32 %514, 0
  br i1 %.not439, label %515, label %.thread

515:                                              ; preds = %510
  %516 = add nsw i32 %.0344593, 2
  %.not440 = icmp slt i32 %516, %0
  br i1 %.not440, label %522, label %517

517:                                              ; preds = %515
  %518 = load ptr, ptr @stderr, align 8, !tbaa !14
  %519 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.49) #10
  %520 = load ptr, ptr @stderr, align 8, !tbaa !14
  %521 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %520, ptr noundef nonnull @.str.15) #10
  br label %.thread

522:                                              ; preds = %515
  %523 = sext i32 %516 to i64
  %524 = getelementptr inbounds ptr, ptr %1, i64 %523
  %525 = load ptr, ptr %524, align 8, !tbaa !14
  %526 = tail call i32 @add_string(ptr noundef nonnull %20, ptr noundef %525)
  %.not441 = icmp eq i32 %526, 0
  br i1 %.not441, label %.thread476, label %.thread

527:                                              ; preds = %501
  %528 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.50, i64 noundef 7) #8
  %.not442 = icmp eq i32 %528, 0
  br i1 %.not442, label %529, label %530

529:                                              ; preds = %527
  store i32 1, ptr %18, align 8, !tbaa !35
  br label %.thread476

530:                                              ; preds = %527
  %531 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.51, i64 noundef 7) #8
  %.not443 = icmp eq i32 %531, 0
  br i1 %.not443, label %532, label %533

532:                                              ; preds = %530
  store i32 1, ptr %17, align 4, !tbaa !36
  br label %.thread476

533:                                              ; preds = %530
  %534 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.52, i64 noundef 5) #8
  %.not444 = icmp eq i32 %534, 0
  br i1 %.not444, label %535, label %536

535:                                              ; preds = %533
  store i32 1, ptr %16, align 8, !tbaa !37
  br label %.thread476

536:                                              ; preds = %533
  %537 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.53, i64 noundef 8) #8
  %.not445 = icmp eq i32 %537, 0
  br i1 %.not445, label %.preheader487.preheader, label %637

.preheader487.preheader:                          ; preds = %536
  %indvars.iv.next683 = add nsw i64 %67, 1
  %.not446 = icmp slt i64 %indvars.iv.next683, %38
  br i1 %.not446, label %543, label %538

538:                                              ; preds = %.preheader487.7, %.preheader487.6, %.preheader487.5, %.preheader487.4, %.preheader487.3, %.preheader487.2, %.preheader487.1, %.preheader487.preheader
  %539 = load ptr, ptr @stderr, align 8, !tbaa !14
  %540 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.54) #10
  %541 = load ptr, ptr @stderr, align 8, !tbaa !14
  %542 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %541, ptr noundef nonnull @.str.15) #10
  br label %.thread

543:                                              ; preds = %.preheader487.preheader
  %544 = tail call ptr @__ctype_b_loc() #11
  %545 = load ptr, ptr %544, align 8, !tbaa !14
  %546 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next683
  %547 = load ptr, ptr %546, align 8, !tbaa !14
  %548 = load i8, ptr %547, align 1, !tbaa !15
  %549 = sext i8 %548 to i64
  %550 = getelementptr inbounds i16, ptr %545, i64 %549
  %551 = load i16, ptr %550, align 2, !tbaa !20
  %552 = and i16 %551, 2048
  %.not447 = icmp eq i16 %552, 0
  br i1 %.not447, label %553, label %.preheader487.1

553:                                              ; preds = %543
  %554 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %547, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not448 = icmp eq i32 %554, 0
  br i1 %.not448, label %.preheader487.1, label %555

555:                                              ; preds = %633, %622, %611, %600, %589, %578, %567, %553
  %.lcssa599 = phi ptr [ %547, %553 ], [ %561, %567 ], [ %572, %578 ], [ %583, %589 ], [ %594, %600 ], [ %605, %611 ], [ %616, %622 ], [ %627, %633 ]
  %.0332575.lcssa597.wide = phi i32 [ 0, %553 ], [ 1, %567 ], [ 2, %578 ], [ 3, %589 ], [ 4, %600 ], [ 5, %611 ], [ 6, %622 ], [ 7, %633 ]
  %556 = load ptr, ptr @stderr, align 8, !tbaa !14
  %557 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %556, ptr noundef nonnull @.str.55, i32 noundef %.0332575.lcssa597.wide, ptr noundef nonnull %.lcssa599) #10
  br label %.thread

.preheader487.1:                                  ; preds = %553, %543
  %558 = tail call i32 @atoi(ptr nocapture noundef %547) #8
  store i32 %558, ptr %7, align 4, !tbaa !13
  %indvars.iv.next683.1 = add nsw i64 %67, 2
  %.not446.1 = icmp slt i64 %indvars.iv.next683.1, %38
  br i1 %.not446.1, label %559, label %538

559:                                              ; preds = %.preheader487.1
  %560 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next683.1
  %561 = load ptr, ptr %560, align 8, !tbaa !14
  %562 = load i8, ptr %561, align 1, !tbaa !15
  %563 = sext i8 %562 to i64
  %564 = getelementptr inbounds i16, ptr %545, i64 %563
  %565 = load i16, ptr %564, align 2, !tbaa !20
  %566 = and i16 %565, 2048
  %.not447.1 = icmp eq i16 %566, 0
  br i1 %.not447.1, label %567, label %.preheader487.2

567:                                              ; preds = %559
  %568 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %561, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not448.1 = icmp eq i32 %568, 0
  br i1 %.not448.1, label %.preheader487.2, label %555

.preheader487.2:                                  ; preds = %567, %559
  %569 = tail call i32 @atoi(ptr nocapture noundef %561) #8
  store i32 %569, ptr %39, align 4, !tbaa !13
  %indvars.iv.next683.2 = add nsw i64 %67, 3
  %.not446.2 = icmp slt i64 %indvars.iv.next683.2, %38
  br i1 %.not446.2, label %570, label %538

570:                                              ; preds = %.preheader487.2
  %571 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next683.2
  %572 = load ptr, ptr %571, align 8, !tbaa !14
  %573 = load i8, ptr %572, align 1, !tbaa !15
  %574 = sext i8 %573 to i64
  %575 = getelementptr inbounds i16, ptr %545, i64 %574
  %576 = load i16, ptr %575, align 2, !tbaa !20
  %577 = and i16 %576, 2048
  %.not447.2 = icmp eq i16 %577, 0
  br i1 %.not447.2, label %578, label %.preheader487.3

578:                                              ; preds = %570
  %579 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %572, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not448.2 = icmp eq i32 %579, 0
  br i1 %.not448.2, label %.preheader487.3, label %555

.preheader487.3:                                  ; preds = %578, %570
  %580 = tail call i32 @atoi(ptr nocapture noundef %572) #8
  store i32 %580, ptr %40, align 4, !tbaa !13
  %indvars.iv.next683.3 = add nsw i64 %67, 4
  %.not446.3 = icmp slt i64 %indvars.iv.next683.3, %38
  br i1 %.not446.3, label %581, label %538

581:                                              ; preds = %.preheader487.3
  %582 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next683.3
  %583 = load ptr, ptr %582, align 8, !tbaa !14
  %584 = load i8, ptr %583, align 1, !tbaa !15
  %585 = sext i8 %584 to i64
  %586 = getelementptr inbounds i16, ptr %545, i64 %585
  %587 = load i16, ptr %586, align 2, !tbaa !20
  %588 = and i16 %587, 2048
  %.not447.3 = icmp eq i16 %588, 0
  br i1 %.not447.3, label %589, label %.preheader487.4

589:                                              ; preds = %581
  %590 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %583, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not448.3 = icmp eq i32 %590, 0
  br i1 %.not448.3, label %.preheader487.4, label %555

.preheader487.4:                                  ; preds = %589, %581
  %591 = tail call i32 @atoi(ptr nocapture noundef %583) #8
  store i32 %591, ptr %41, align 4, !tbaa !13
  %indvars.iv.next683.4 = add nsw i64 %67, 5
  %.not446.4 = icmp slt i64 %indvars.iv.next683.4, %38
  br i1 %.not446.4, label %592, label %538

592:                                              ; preds = %.preheader487.4
  %593 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next683.4
  %594 = load ptr, ptr %593, align 8, !tbaa !14
  %595 = load i8, ptr %594, align 1, !tbaa !15
  %596 = sext i8 %595 to i64
  %597 = getelementptr inbounds i16, ptr %545, i64 %596
  %598 = load i16, ptr %597, align 2, !tbaa !20
  %599 = and i16 %598, 2048
  %.not447.4 = icmp eq i16 %599, 0
  br i1 %.not447.4, label %600, label %.preheader487.5

600:                                              ; preds = %592
  %601 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %594, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not448.4 = icmp eq i32 %601, 0
  br i1 %.not448.4, label %.preheader487.5, label %555

.preheader487.5:                                  ; preds = %600, %592
  %602 = tail call i32 @atoi(ptr nocapture noundef %594) #8
  store i32 %602, ptr %42, align 4, !tbaa !13
  %indvars.iv.next683.5 = add nsw i64 %67, 6
  %.not446.5 = icmp slt i64 %indvars.iv.next683.5, %38
  br i1 %.not446.5, label %603, label %538

603:                                              ; preds = %.preheader487.5
  %604 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next683.5
  %605 = load ptr, ptr %604, align 8, !tbaa !14
  %606 = load i8, ptr %605, align 1, !tbaa !15
  %607 = sext i8 %606 to i64
  %608 = getelementptr inbounds i16, ptr %545, i64 %607
  %609 = load i16, ptr %608, align 2, !tbaa !20
  %610 = and i16 %609, 2048
  %.not447.5 = icmp eq i16 %610, 0
  br i1 %.not447.5, label %611, label %.preheader487.6

611:                                              ; preds = %603
  %612 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %605, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not448.5 = icmp eq i32 %612, 0
  br i1 %.not448.5, label %.preheader487.6, label %555

.preheader487.6:                                  ; preds = %611, %603
  %613 = tail call i32 @atoi(ptr nocapture noundef %605) #8
  store i32 %613, ptr %43, align 4, !tbaa !13
  %indvars.iv.next683.6 = add nsw i64 %67, 7
  %.not446.6 = icmp slt i64 %indvars.iv.next683.6, %38
  br i1 %.not446.6, label %614, label %538

614:                                              ; preds = %.preheader487.6
  %615 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next683.6
  %616 = load ptr, ptr %615, align 8, !tbaa !14
  %617 = load i8, ptr %616, align 1, !tbaa !15
  %618 = sext i8 %617 to i64
  %619 = getelementptr inbounds i16, ptr %545, i64 %618
  %620 = load i16, ptr %619, align 2, !tbaa !20
  %621 = and i16 %620, 2048
  %.not447.6 = icmp eq i16 %621, 0
  br i1 %.not447.6, label %622, label %.preheader487.7

622:                                              ; preds = %614
  %623 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %616, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not448.6 = icmp eq i32 %623, 0
  br i1 %.not448.6, label %.preheader487.7, label %555

.preheader487.7:                                  ; preds = %622, %614
  %624 = tail call i32 @atoi(ptr nocapture noundef %616) #8
  store i32 %624, ptr %44, align 4, !tbaa !13
  %indvars.iv.next683.7 = add nsw i64 %67, 8
  %.not446.7 = icmp slt i64 %indvars.iv.next683.7, %38
  br i1 %.not446.7, label %625, label %538

625:                                              ; preds = %.preheader487.7
  %626 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv.next683.7
  %627 = load ptr, ptr %626, align 8, !tbaa !14
  %628 = load i8, ptr %627, align 1, !tbaa !15
  %629 = sext i8 %628 to i64
  %630 = getelementptr inbounds i16, ptr %545, i64 %629
  %631 = load i16, ptr %630, align 2, !tbaa !20
  %632 = and i16 %631, 2048
  %.not447.7 = icmp eq i16 %632, 0
  br i1 %.not447.7, label %633, label %.thread476.loopexit

633:                                              ; preds = %625
  %634 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %627, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not448.7 = icmp eq i32 %634, 0
  br i1 %.not448.7, label %.thread476.loopexit, label %555

.thread476.loopexit:                              ; preds = %633, %625
  %635 = tail call i32 @atoi(ptr nocapture noundef %627) #8
  store i32 %635, ptr %45, align 4, !tbaa !13
  %636 = trunc nsw i64 %indvars.iv.next683.7 to i32
  br label %.thread476

637:                                              ; preds = %536
  %638 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.56, i64 noundef 10) #8
  %.not449 = icmp eq i32 %638, 0
  br i1 %.not449, label %639, label %651

639:                                              ; preds = %637
  %640 = add nsw i32 %.0344593, 1
  %.not450 = icmp slt i32 %640, %0
  br i1 %.not450, label %646, label %641

641:                                              ; preds = %639
  %642 = load ptr, ptr @stderr, align 8, !tbaa !14
  %643 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %642, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.56) #10
  %644 = load ptr, ptr @stderr, align 8, !tbaa !14
  %645 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %644, ptr noundef nonnull @.str.15) #10
  br label %.thread

646:                                              ; preds = %639
  %647 = sext i32 %640 to i64
  %648 = getelementptr inbounds ptr, ptr %1, i64 %647
  %649 = load ptr, ptr %648, align 8, !tbaa !14
  %650 = tail call i32 @atoi(ptr nocapture noundef %649) #8
  store i32 %650, ptr %6, align 8, !tbaa !12
  br label %.thread476

651:                                              ; preds = %637
  %652 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.57, i64 noundef 6) #8
  %.not451 = icmp eq i32 %652, 0
  br i1 %.not451, label %653, label %654

653:                                              ; preds = %651
  store i32 1, ptr %15, align 4, !tbaa !38
  br label %.thread476

654:                                              ; preds = %651
  %655 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.58, i64 noundef 4) #8
  %.not452 = icmp eq i32 %655, 0
  br i1 %.not452, label %656, label %667

656:                                              ; preds = %654
  %657 = add nsw i32 %.0344593, 1
  %.not453 = icmp slt i32 %657, %0
  br i1 %.not453, label %663, label %658

658:                                              ; preds = %656
  %659 = load ptr, ptr @stderr, align 8, !tbaa !14
  %660 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %659, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.58) #10
  %661 = load ptr, ptr @stderr, align 8, !tbaa !14
  %662 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %661, ptr noundef nonnull @.str.15) #10
  br label %.thread

663:                                              ; preds = %656
  %664 = sext i32 %657 to i64
  %665 = getelementptr inbounds ptr, ptr %1, i64 %664
  %666 = load ptr, ptr %665, align 8, !tbaa !14
  store ptr %666, ptr %4, align 8, !tbaa !39
  br label %.thread476

667:                                              ; preds = %654
  %668 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.59, i64 noundef 3) #8
  %.not454 = icmp eq i32 %668, 0
  br i1 %.not454, label %669, label %670

669:                                              ; preds = %667
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %.thread476

670:                                              ; preds = %667
  %671 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.60, i64 noundef 7) #8
  %.not455 = icmp eq i32 %671, 0
  br i1 %.not455, label %672, label %704

672:                                              ; preds = %670
  %673 = add nsw i32 %.0344593, 1
  %.not456 = icmp slt i32 %673, %0
  br i1 %.not456, label %679, label %674

674:                                              ; preds = %672
  %675 = load ptr, ptr @stderr, align 8, !tbaa !14
  %676 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %675, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.60) #10
  %677 = load ptr, ptr @stderr, align 8, !tbaa !14
  %678 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %677, ptr noundef nonnull @.str.15) #10
  br label %.thread

679:                                              ; preds = %672
  %680 = sext i32 %673 to i64
  %681 = getelementptr inbounds ptr, ptr %1, i64 %680
  %682 = load ptr, ptr %681, align 8, !tbaa !14
  %683 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %682, ptr noundef nonnull dereferenceable(1) @.str.61) #8
  %684 = icmp eq i32 %683, 0
  br i1 %684, label %685, label %687

685:                                              ; preds = %679
  %686 = tail call i32 @add_string(ptr noundef nonnull %13, ptr noundef nonnull @.str.26)
  %.not460 = icmp eq i32 %686, 0
  br i1 %.not460, label %703, label %.thread

687:                                              ; preds = %679
  %688 = tail call i32 @atoi(ptr nocapture noundef %682) #8
  %.not457 = icmp eq i32 %688, -1
  br i1 %.not457, label %701, label %689

689:                                              ; preds = %687
  %690 = icmp sgt i32 %688, 1000
  br i1 %690, label %.thread484, label %691

691:                                              ; preds = %689
  %692 = tail call ptr @__ctype_b_loc() #11
  %693 = load ptr, ptr %692, align 8, !tbaa !14
  %694 = load i8, ptr %682, align 1, !tbaa !15
  %695 = sext i8 %694 to i64
  %696 = getelementptr inbounds i16, ptr %693, i64 %695
  %697 = load i16, ptr %696, align 2, !tbaa !20
  %698 = and i16 %697, 2048
  %.not458 = icmp eq i16 %698, 0
  br i1 %.not458, label %.thread484, label %701

.thread484:                                       ; preds = %689, %691
  %699 = load ptr, ptr @stderr, align 8, !tbaa !14
  %700 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %699, ptr noundef nonnull @.str.62, ptr noundef nonnull %682) #10
  br label %.thread

701:                                              ; preds = %687, %691
  %702 = tail call i32 @add_string(ptr noundef nonnull %13, ptr noundef nonnull %682)
  %.not459 = icmp eq i32 %702, 0
  br i1 %.not459, label %703, label %.thread

703:                                              ; preds = %701, %685
  store i32 1, ptr %14, align 4, !tbaa !40
  br label %.thread476

704:                                              ; preds = %670
  %705 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.63, i64 noundef 6) #8
  %.not461 = icmp eq i32 %705, 0
  br i1 %.not461, label %706, label %707

706:                                              ; preds = %704
  store i32 1, ptr %12, align 4, !tbaa !41
  br label %.thread476

707:                                              ; preds = %704
  %708 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.64, i64 noundef 12) #8
  %.not462 = icmp eq i32 %708, 0
  br i1 %.not462, label %709, label %710

709:                                              ; preds = %707
  store i32 1, ptr %11, align 4, !tbaa !42
  br label %.thread476

710:                                              ; preds = %707
  %711 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.65, i64 noundef 12) #8
  %.not463 = icmp eq i32 %711, 0
  br i1 %.not463, label %712, label %713

712:                                              ; preds = %710
  store i32 1, ptr %10, align 8, !tbaa !43
  br label %.thread476

713:                                              ; preds = %710
  %714 = tail call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.66, i64 noundef 12) #8
  %.not464 = icmp eq i32 %714, 0
  br i1 %.not464, label %715, label %716

715:                                              ; preds = %713
  store i32 1, ptr %9, align 8, !tbaa !44
  br label %.thread476

716:                                              ; preds = %713
  %717 = load ptr, ptr @stderr, align 8, !tbaa !14
  %718 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %717, ptr noundef nonnull @.str.67, ptr noundef %69) #10
  br label %.thread

.thread476:                                       ; preds = %.thread476.loopexit, %457, %.critedge.thread, %495, %411, %274, %146, %166, %176, %286, %296, %302, %308, %469, %500, %529, %535, %646, %663, %703, %709, %715, %712, %706, %669, %653, %532, %522, %313, %305, %299, %293, %169, %163
  %.12 = phi i32 [ %.0344593, %715 ], [ %.0344593, %712 ], [ %.0344593, %709 ], [ %.0344593, %706 ], [ %673, %703 ], [ %.0344593, %669 ], [ %657, %663 ], [ %.0344593, %653 ], [ %640, %646 ], [ %.0344593, %535 ], [ %.0344593, %532 ], [ %.0344593, %529 ], [ %516, %522 ], [ %.0344593, %500 ], [ %463, %469 ], [ %459, %457 ], [ %413, %411 ], [ %.0344593, %313 ], [ %.0344593, %308 ], [ %.0344593, %305 ], [ %.0344593, %302 ], [ %.0344593, %299 ], [ %.0344593, %296 ], [ %.0344593, %293 ], [ %280, %286 ], [ %276, %274 ], [ %.0344593, %176 ], [ %.0344593, %169 ], [ %.0344593, %166 ], [ %150, %163 ], [ %133, %146 ], [ %492, %495 ], [ %492, %.critedge.thread ], [ %636, %.thread476.loopexit ]
  %719 = add nsw i32 %.12, 1
  %720 = icmp slt i32 %719, %0
  br i1 %720, label %66, label %721, !llvm.loop !45

721:                                              ; preds = %.thread476
  %722 = load i32, ptr %21, align 4, !tbaa !34
  %.not = icmp eq i32 %722, 0
  br i1 %.not, label %731, label %723

723:                                              ; preds = %721
  %724 = load i32, ptr %22, align 8, !tbaa !46
  %725 = icmp sgt i32 %724, 0
  br i1 %725, label %726, label %729

726:                                              ; preds = %723
  %727 = load ptr, ptr @stderr, align 8, !tbaa !14
  %728 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %727, ptr noundef nonnull @.str.68) #10
  br label %.thread

729:                                              ; preds = %723
  store i32 1, ptr %34, align 8, !tbaa !19
  %730 = tail call i32 @add_string(ptr noundef nonnull %22, ptr noundef nonnull @.str.69)
  %.not377 = icmp eq i32 %730, 0
  br i1 %.not377, label %731, label %.thread

731:                                              ; preds = %729, %721
  %732 = load i32, ptr %37, align 8, !tbaa !16
  %.not378 = icmp eq i32 %732, 0
  br i1 %.not378, label %739, label %733

733:                                              ; preds = %731
  %734 = load i32, ptr %13, align 8, !tbaa !47
  %735 = load i32, ptr %36, align 8, !tbaa !48
  %.not379 = icmp eq i32 %734, %735
  br i1 %.not379, label %739, label %736

736:                                              ; preds = %733
  %737 = load ptr, ptr @stderr, align 8, !tbaa !14
  %738 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %737, ptr noundef nonnull @.str.70, i32 noundef %734, i32 noundef %735) #10
  br label %.thread

739:                                              ; preds = %733, %731
  %740 = load i32, ptr %5, align 4, !tbaa !5
  store i32 %740, ptr @g_debug, align 4, !tbaa !13
  tail call void @nifti_set_debug_level(i32 noundef %740) #9
  %741 = tail call i32 @fill_cmd_string(ptr noundef nonnull %2, i32 noundef %0, ptr noundef %1)
  %742 = load i32, ptr @g_debug, align 4, !tbaa !13
  %743 = icmp sgt i32 %742, 2
  br i1 %743, label %744, label %.thread

744:                                              ; preds = %739
  %745 = tail call i32 @disp_nt_opts(ptr noundef nonnull @.str.71, ptr noundef nonnull %2)
  br label %.thread

.thread:                                          ; preds = %685, %522, %510, %469, %161, %156, %144, %139, %701, %.lr.ph855, %538, %555, %419, %434, %319, %336, %182, %199, %.thread484, %739, %744, %729, %73, %84, %86, %82, %736, %726, %716, %674, %658, %641, %517, %505, %464, %281, %151, %134, %126, %123, %120, %115, %110, %105, %100, %95, %90, %63
  %.9 = phi i32 [ %65, %63 ], [ -1, %716 ], [ 1, %674 ], [ 1, %658 ], [ 1, %641 ], [ 1, %505 ], [ 1, %517 ], [ 1, %464 ], [ 1, %281 ], [ 1, %151 ], [ 1, %134 ], [ 1, %126 ], [ 1, %123 ], [ 1, %120 ], [ %117, %115 ], [ %112, %110 ], [ %107, %105 ], [ %102, %100 ], [ %97, %95 ], [ %92, %90 ], [ -1, %726 ], [ -1, %736 ], [ 1, %82 ], [ 1, %86 ], [ 1, %84 ], [ 1, %73 ], [ -1, %729 ], [ 0, %744 ], [ 0, %739 ], [ -1, %.thread484 ], [ -1, %199 ], [ 1, %182 ], [ -1, %336 ], [ 1, %319 ], [ -1, %434 ], [ 1, %419 ], [ -1, %555 ], [ 1, %538 ], [ -1, %.lr.ph855 ], [ -1, %701 ], [ -1, %139 ], [ -1, %144 ], [ -1, %156 ], [ -1, %161 ], [ -1, %469 ], [ -1, %510 ], [ -1, %522 ], [ -1, %685 ]
  ret i32 %.9
}

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

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

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

declare i32 @nifti_disp_type_list(i32 noundef) local_unnamed_addr #3

declare i32 @nifti_test_datatype_sizes(i32 noundef) local_unnamed_addr #3

declare void @nifti_disp_lib_hist() local_unnamed_addr #3

declare void @nifti_disp_lib_version() local_unnamed_addr #3

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

declare i32 @nifti_compiled_with_zlib() local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__ctype_b_loc() local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr nocapture noundef nonnull) local_unnamed_addr #6

declare void @nifti_set_debug_level(i32 noundef) local_unnamed_addr #3

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i8 @llvm.fshl.i8(i8, i8, i8) #7

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

!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, !7, i64 156}
!6 = !{!"", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !7, i64 72, !7, i64 76, !7, i64 80, !7, i64 84, !8, i64 88, !8, i64 120, !7, i64 152, !7, i64 156, !7, i64 160, !7, i64 164, !10, i64 168, !11, i64 176, !11, i64 192, !11, i64 208, !11, i64 224, !11, i64 240, !8, i64 256}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"", !7, i64 0, !10, i64 8}
!12 = !{!6, !7, i64 152}
!13 = !{!7, !7, i64 0}
!14 = !{!10, !10, i64 0}
!15 = !{!8, !8, i64 0}
!16 = !{!6, !7, i64 32}
!17 = !{!6, !7, i64 0}
!18 = !{!6, !7, i64 4}
!19 = !{!6, !7, i64 64}
!20 = !{!21, !21, i64 0}
!21 = !{!"short", !8, i64 0}
!22 = !{!6, !7, i64 68}
!23 = !{!6, !7, i64 8}
!24 = !{!6, !7, i64 12}
!25 = !{!6, !7, i64 28}
!26 = !{!6, !7, i64 16}
!27 = !{!6, !7, i64 20}
!28 = !{!6, !7, i64 24}
!29 = !{!6, !7, i64 80}
!30 = !{!6, !7, i64 76}
!31 = !{!6, !7, i64 72}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = !{!6, !7, i64 84}
!35 = !{!6, !7, i64 40}
!36 = !{!6, !7, i64 44}
!37 = !{!6, !7, i64 160}
!38 = !{!6, !7, i64 164}
!39 = !{!6, !10, i64 168}
!40 = !{!6, !7, i64 36}
!41 = !{!6, !7, i64 60}
!42 = !{!6, !7, i64 52}
!43 = !{!6, !7, i64 48}
!44 = !{!6, !7, i64 56}
!45 = distinct !{!45, !33}
!46 = !{!6, !7, i64 240}
!47 = !{!6, !7, i64 176}
!48 = !{!6, !7, i64 192}


; Effective O3 passes: ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass