; LLVM IR from InsightSoftwareConsortium/ITK :: Modules/ThirdParty/MINC/src/libminc/nifti (nifti1_io)

; 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.mat44 = type { [4 x [4 x float]] }
%struct.nifti_image = type { i32, i32, i32, i32, i32, i32, i32, i32, [8 x i32], i64, i32, i32, float, float, float, float, float, float, float, [8 x float], float, float, float, float, i32, i32, i32, i32, i32, i32, i32, i32, float, float, float, float, float, float, float, float, %struct.mat44, %struct.mat44, %struct.mat44, %struct.mat44, float, i32, i32, i32, i32, float, float, float, [16 x i8], [80 x i8], [24 x i8], ptr, ptr, i32, i32, i32, ptr, i32, ptr, i32 }

@stderr = external global ptr, align 8
@.str.261 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [8 x i8], align 1

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

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @nifti_image_free(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local ptr @nifti_strdup(ptr noundef) #2

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

; Function Attrs: nounwind uwtable
declare dso_local void @nifti_quatern_to_mat44(ptr dead_on_unwind noalias writable sret(%struct.mat44) align 4, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef) #2

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

; Function Attrs: nounwind uwtable
declare dso_local void @nifti_mat44_inverse(ptr dead_on_unwind noalias writable sret(%struct.mat44) align 4, ptr noundef byval(%struct.mat44) align 8) #2

; Function Attrs: nounwind
declare ptr @strncpy(ptr noundef, ptr noundef, i64 noundef) #1

; Function Attrs: nounwind allocsize(0,1)
declare noalias ptr @calloc(i64 noundef, i64 noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local i32 @nifti_short_order() #2

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

; Function Attrs: nounwind uwtable
define dso_local ptr @nifti_image_from_ascii(ptr noundef %0, ptr noundef %1) #2 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca [1024 x i8], align 16
  %7 = alloca [1024 x i8], align 16
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca %struct.mat44, align 4
  %14 = alloca %struct.mat44, align 4
  %15 = alloca %struct.mat44, align 4
  %16 = alloca %struct.mat44, align 8
  %17 = alloca %struct.mat44, align 4
  %18 = alloca %struct.mat44, align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1024, ptr %6) #7
  call void @llvm.lifetime.start.p0(i64 1024, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %19 = load ptr, ptr %4, align 8, !tbaa !5
  %20 = icmp eq ptr %19, null
  br i1 %20, label %26, label %21

21:                                               ; preds = %2
  %22 = load ptr, ptr %4, align 8, !tbaa !5
  %23 = load i8, ptr %22, align 1, !tbaa !9
  %24 = sext i8 %23 to i32
  %25 = icmp eq i32 %24, 0
  br i1 %25, label %26, label %27

26:                                               ; preds = %21, %2
  store ptr null, ptr %3, align 8
  store i32 1, ptr %12, align 4
  br label %1173

27:                                               ; preds = %21
  store i32 0, ptr %9, align 4, !tbaa !10
  %28 = load ptr, ptr %4, align 8, !tbaa !5
  %29 = load i32, ptr %9, align 4, !tbaa !10
  %30 = sext i32 %29 to i64
  %31 = getelementptr inbounds i8, ptr %28, i64 %30
  %32 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %33 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %31, ptr noundef @.str.321, ptr noundef %32, ptr noundef %10) #7
  store i32 %33, ptr %8, align 4, !tbaa !10
  %34 = load i32, ptr %10, align 4, !tbaa !10
  %35 = load i32, ptr %9, align 4, !tbaa !10
  %36 = add nsw i32 %35, %34
  store i32 %36, ptr %9, align 4, !tbaa !10
  %37 = load i32, ptr %8, align 4, !tbaa !10
  %38 = icmp eq i32 %37, 0
  br i1 %38, label %43, label %39

39:                                               ; preds = %27
  %40 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %41 = call i32 @strcmp(ptr noundef %40, ptr noundef @.str.322) #8
  %42 = icmp ne i32 %41, 0
  br i1 %42, label %43, label %44

43:                                               ; preds = %39, %27
  store ptr null, ptr %3, align 8
  store i32 1, ptr %12, align 4
  br label %1173

44:                                               ; preds = %39
  %45 = call noalias ptr @calloc(i64 noundef 1, i64 noundef 696) #9
  store ptr %45, ptr %11, align 8, !tbaa !5
  %46 = load ptr, ptr %11, align 8, !tbaa !5
  %47 = icmp ne ptr %46, null
  br i1 %47, label %51, label %48

48:                                               ; preds = %44
  %49 = load ptr, ptr @stderr, align 8, !tbaa !5
  %50 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %49, ptr noundef @.str.323) #7
  store ptr null, ptr %3, align 8
  store i32 1, ptr %12, align 4
  br label %1173

51:                                               ; preds = %44
  %52 = load ptr, ptr %11, align 8, !tbaa !5
  %53 = getelementptr inbounds %struct.nifti_image, ptr %52, i32 0, i32 7
  store i32 1, ptr %53, align 4, !tbaa !12
  %54 = load ptr, ptr %11, align 8, !tbaa !5
  %55 = getelementptr inbounds %struct.nifti_image, ptr %54, i32 0, i32 6
  store i32 1, ptr %55, align 8, !tbaa !17
  %56 = load ptr, ptr %11, align 8, !tbaa !5
  %57 = getelementptr inbounds %struct.nifti_image, ptr %56, i32 0, i32 5
  store i32 1, ptr %57, align 4, !tbaa !18
  %58 = load ptr, ptr %11, align 8, !tbaa !5
  %59 = getelementptr inbounds %struct.nifti_image, ptr %58, i32 0, i32 4
  store i32 1, ptr %59, align 8, !tbaa !19
  %60 = load ptr, ptr %11, align 8, !tbaa !5
  %61 = getelementptr inbounds %struct.nifti_image, ptr %60, i32 0, i32 3
  store i32 1, ptr %61, align 4, !tbaa !20
  %62 = load ptr, ptr %11, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct.nifti_image, ptr %62, i32 0, i32 2
  store i32 1, ptr %63, align 8, !tbaa !21
  %64 = load ptr, ptr %11, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.nifti_image, ptr %64, i32 0, i32 1
  store i32 1, ptr %65, align 4, !tbaa !22
  %66 = load ptr, ptr %11, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.nifti_image, ptr %66, i32 0, i32 18
  store float 0.000000e+00, ptr %67, align 8, !tbaa !23
  %68 = load ptr, ptr %11, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.nifti_image, ptr %68, i32 0, i32 17
  store float 0.000000e+00, ptr %69, align 4, !tbaa !24
  %70 = load ptr, ptr %11, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.nifti_image, ptr %70, i32 0, i32 16
  store float 0.000000e+00, ptr %71, align 8, !tbaa !25
  %72 = load ptr, ptr %11, align 8, !tbaa !5
  %73 = getelementptr inbounds %struct.nifti_image, ptr %72, i32 0, i32 15
  store float 0.000000e+00, ptr %73, align 4, !tbaa !26
  %74 = load ptr, ptr %11, align 8, !tbaa !5
  %75 = getelementptr inbounds %struct.nifti_image, ptr %74, i32 0, i32 14
  store float 0.000000e+00, ptr %75, align 8, !tbaa !27
  %76 = load ptr, ptr %11, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.nifti_image, ptr %76, i32 0, i32 13
  store float 0.000000e+00, ptr %77, align 4, !tbaa !28
  %78 = load ptr, ptr %11, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.nifti_image, ptr %78, i32 0, i32 12
  store float 0.000000e+00, ptr %79, align 8, !tbaa !29
  %80 = load ptr, ptr %11, align 8, !tbaa !5
  %81 = getelementptr inbounds %struct.nifti_image, ptr %80, i32 0, i32 39
  store float 1.000000e+00, ptr %81, align 8, !tbaa !30
  %82 = call i32 @nifti_short_order()
  %83 = load ptr, ptr %11, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.nifti_image, ptr %83, i32 0, i32 59
  store i32 %82, ptr %84, align 8, !tbaa !31
  br label %85

85:                                               ; preds = %952, %51
  br label %86

86:                                               ; preds = %85
  br label %87

87:                                               ; preds = %102, %86
  %88 = call ptr @__ctype_b_loc() #10
  %89 = load ptr, ptr %88, align 8, !tbaa !5
  %90 = load ptr, ptr %4, align 8, !tbaa !5
  %91 = load i32, ptr %9, align 4, !tbaa !10
  %92 = sext i32 %91 to i64
  %93 = getelementptr inbounds i8, ptr %90, i64 %92
  %94 = load i8, ptr %93, align 1, !tbaa !9
  %95 = sext i8 %94 to i32
  %96 = sext i32 %95 to i64
  %97 = getelementptr inbounds i16, ptr %89, i64 %96
  %98 = load i16, ptr %97, align 2, !tbaa !32
  %99 = zext i16 %98 to i32
  %100 = and i32 %99, 8192
  %101 = icmp ne i32 %100, 0
  br i1 %101, label %102, label %105

102:                                              ; preds = %87
  %103 = load i32, ptr %9, align 4, !tbaa !10
  %104 = add nsw i32 %103, 1
  store i32 %104, ptr %9, align 4, !tbaa !10
  br label %87, !llvm.loop !34

105:                                              ; preds = %87
  %106 = load ptr, ptr %4, align 8, !tbaa !5
  %107 = load i32, ptr %9, align 4, !tbaa !10
  %108 = sext i32 %107 to i64
  %109 = getelementptr inbounds i8, ptr %106, i64 %108
  %110 = load i8, ptr %109, align 1, !tbaa !9
  %111 = sext i8 %110 to i32
  %112 = icmp eq i32 %111, 0
  br i1 %112, label %113, label %114

113:                                              ; preds = %105
  br label %953

114:                                              ; preds = %105
  %115 = load ptr, ptr %4, align 8, !tbaa !5
  %116 = load i32, ptr %9, align 4, !tbaa !10
  %117 = sext i32 %116 to i64
  %118 = getelementptr inbounds i8, ptr %115, i64 %117
  %119 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %120 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %118, ptr noundef @.str.321, ptr noundef %119, ptr noundef %10) #7
  store i32 %120, ptr %8, align 4, !tbaa !10
  %121 = load i32, ptr %10, align 4, !tbaa !10
  %122 = load i32, ptr %9, align 4, !tbaa !10
  %123 = add nsw i32 %122, %121
  store i32 %123, ptr %9, align 4, !tbaa !10
  %124 = load i32, ptr %8, align 4, !tbaa !10
  %125 = icmp eq i32 %124, 0
  br i1 %125, label %130, label %126

126:                                              ; preds = %114
  %127 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %128 = call i32 @strcmp(ptr noundef %127, ptr noundef @.str.324) #8
  %129 = icmp eq i32 %128, 0
  br i1 %129, label %130, label %131

130:                                              ; preds = %126, %114
  br label %953

131:                                              ; preds = %126
  br label %132

132:                                              ; preds = %157, %131
  %133 = call ptr @__ctype_b_loc() #10
  %134 = load ptr, ptr %133, align 8, !tbaa !5
  %135 = load ptr, ptr %4, align 8, !tbaa !5
  %136 = load i32, ptr %9, align 4, !tbaa !10
  %137 = sext i32 %136 to i64
  %138 = getelementptr inbounds i8, ptr %135, i64 %137
  %139 = load i8, ptr %138, align 1, !tbaa !9
  %140 = sext i8 %139 to i32
  %141 = sext i32 %140 to i64
  %142 = getelementptr inbounds i16, ptr %134, i64 %141
  %143 = load i16, ptr %142, align 2, !tbaa !32
  %144 = zext i16 %143 to i32
  %145 = and i32 %144, 8192
  %146 = icmp ne i32 %145, 0
  br i1 %146, label %155, label %147

147:                                              ; preds = %132
  %148 = load ptr, ptr %4, align 8, !tbaa !5
  %149 = load i32, ptr %9, align 4, !tbaa !10
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds i8, ptr %148, i64 %150
  %152 = load i8, ptr %151, align 1, !tbaa !9
  %153 = sext i8 %152 to i32
  %154 = icmp eq i32 %153, 61
  br label %155

155:                                              ; preds = %147, %132
  %156 = phi i1 [ true, %132 ], [ %154, %147 ]
  br i1 %156, label %157, label %160

157:                                              ; preds = %155
  %158 = load i32, ptr %9, align 4, !tbaa !10
  %159 = add nsw i32 %158, 1
  store i32 %159, ptr %9, align 4, !tbaa !10
  br label %132, !llvm.loop !36

160:                                              ; preds = %155
  %161 = load ptr, ptr %4, align 8, !tbaa !5
  %162 = load i32, ptr %9, align 4, !tbaa !10
  %163 = sext i32 %162 to i64
  %164 = getelementptr inbounds i8, ptr %161, i64 %163
  %165 = load i8, ptr %164, align 1, !tbaa !9
  %166 = sext i8 %165 to i32
  %167 = icmp eq i32 %166, 0
  br i1 %167, label %168, label %169

168:                                              ; preds = %160
  br label %953

169:                                              ; preds = %160
  %170 = load ptr, ptr %4, align 8, !tbaa !5
  %171 = load i32, ptr %9, align 4, !tbaa !10
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds i8, ptr %170, i64 %172
  %174 = load i8, ptr %173, align 1, !tbaa !9
  %175 = sext i8 %174 to i32
  %176 = icmp eq i32 %175, 39
  br i1 %176, label %177, label %235

177:                                              ; preds = %169
  %178 = load i32, ptr %9, align 4, !tbaa !10
  %179 = add nsw i32 %178, 1
  store i32 %179, ptr %8, align 4, !tbaa !10
  br label %180

180:                                              ; preds = %198, %177
  %181 = load ptr, ptr %4, align 8, !tbaa !5
  %182 = load i32, ptr %8, align 4, !tbaa !10
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds i8, ptr %181, i64 %183
  %185 = load i8, ptr %184, align 1, !tbaa !9
  %186 = sext i8 %185 to i32
  %187 = icmp ne i32 %186, 0
  br i1 %187, label %188, label %196

188:                                              ; preds = %180
  %189 = load ptr, ptr %4, align 8, !tbaa !5
  %190 = load i32, ptr %8, align 4, !tbaa !10
  %191 = sext i32 %190 to i64
  %192 = getelementptr inbounds i8, ptr %189, i64 %191
  %193 = load i8, ptr %192, align 1, !tbaa !9
  %194 = sext i8 %193 to i32
  %195 = icmp ne i32 %194, 39
  br label %196

196:                                              ; preds = %188, %180
  %197 = phi i1 [ false, %180 ], [ %195, %188 ]
  br i1 %197, label %198, label %201

198:                                              ; preds = %196
  %199 = load i32, ptr %8, align 4, !tbaa !10
  %200 = add nsw i32 %199, 1
  store i32 %200, ptr %8, align 4, !tbaa !10
  br label %180, !llvm.loop !37

201:                                              ; preds = %196
  %202 = load i32, ptr %8, align 4, !tbaa !10
  %203 = load i32, ptr %9, align 4, !tbaa !10
  %204 = sub nsw i32 %202, %203
  %205 = sub nsw i32 %204, 1
  store i32 %205, ptr %10, align 4, !tbaa !10
  %206 = load i32, ptr %10, align 4, !tbaa !10
  %207 = icmp sgt i32 %206, 1023
  br i1 %207, label %208, label %209

208:                                              ; preds = %201
  store i32 1023, ptr %10, align 4, !tbaa !10
  br label %209

209:                                              ; preds = %208, %201
  %210 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %211 = load ptr, ptr %4, align 8, !tbaa !5
  %212 = load i32, ptr %9, align 4, !tbaa !10
  %213 = sext i32 %212 to i64
  %214 = getelementptr inbounds i8, ptr %211, i64 %213
  %215 = getelementptr inbounds i8, ptr %214, i64 1
  %216 = load i32, ptr %10, align 4, !tbaa !10
  %217 = sext i32 %216 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %210, ptr align 1 %215, i64 %217, i1 false)
  %218 = load i32, ptr %10, align 4, !tbaa !10
  %219 = sext i32 %218 to i64
  %220 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 %219
  store i8 0, ptr %220, align 1, !tbaa !9
  %221 = load ptr, ptr %4, align 8, !tbaa !5
  %222 = load i32, ptr %8, align 4, !tbaa !10
  %223 = sext i32 %222 to i64
  %224 = getelementptr inbounds i8, ptr %221, i64 %223
  %225 = load i8, ptr %224, align 1, !tbaa !9
  %226 = sext i8 %225 to i32
  %227 = icmp eq i32 %226, 39
  br i1 %227, label %228, label %231

228:                                              ; preds = %209
  %229 = load i32, ptr %8, align 4, !tbaa !10
  %230 = add nsw i32 %229, 1
  br label %233

231:                                              ; preds = %209
  %232 = load i32, ptr %8, align 4, !tbaa !10
  br label %233

233:                                              ; preds = %231, %228
  %234 = phi i32 [ %230, %228 ], [ %232, %231 ]
  store i32 %234, ptr %9, align 4, !tbaa !10
  br label %249

235:                                              ; preds = %169
  %236 = load ptr, ptr %4, align 8, !tbaa !5
  %237 = load i32, ptr %9, align 4, !tbaa !10
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds i8, ptr %236, i64 %238
  %240 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %241 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %239, ptr noundef @.str.321, ptr noundef %240, ptr noundef %10) #7
  store i32 %241, ptr %8, align 4, !tbaa !10
  %242 = load i32, ptr %10, align 4, !tbaa !10
  %243 = load i32, ptr %9, align 4, !tbaa !10
  %244 = add nsw i32 %243, %242
  store i32 %244, ptr %9, align 4, !tbaa !10
  %245 = load i32, ptr %8, align 4, !tbaa !10
  %246 = icmp eq i32 %245, 0
  br i1 %246, label %247, label %248

247:                                              ; preds = %235
  br label %953

248:                                              ; preds = %235
  br label %249

249:                                              ; preds = %248, %233
  %250 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %251 = call i32 @unescape_string(ptr noundef %250)
  %252 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %253 = call i32 @strcmp(ptr noundef %252, ptr noundef @.str.325) #8
  %254 = icmp eq i32 %253, 0
  br i1 %254, label %255, label %287

255:                                              ; preds = %249
  %256 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %257 = call i32 @strcmp(ptr noundef %256, ptr noundef @.str.264) #8
  %258 = icmp eq i32 %257, 0
  br i1 %258, label %259, label %262

259:                                              ; preds = %255
  %260 = load ptr, ptr %11, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.nifti_image, ptr %260, i32 0, i32 47
  store i32 0, ptr %261, align 8, !tbaa !38
  br label %286

262:                                              ; preds = %255
  %263 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %264 = call i32 @strcmp(ptr noundef %263, ptr noundef @.str.261) #8
  %265 = icmp eq i32 %264, 0
  br i1 %265, label %266, label %269

266:                                              ; preds = %262
  %267 = load ptr, ptr %11, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.nifti_image, ptr %267, i32 0, i32 47
  store i32 1, ptr %268, align 8, !tbaa !38
  br label %285

269:                                              ; preds = %262
  %270 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %271 = call i32 @strcmp(ptr noundef %270, ptr noundef @.str.262) #8
  %272 = icmp eq i32 %271, 0
  br i1 %272, label %273, label %276

273:                                              ; preds = %269
  %274 = load ptr, ptr %11, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.nifti_image, ptr %274, i32 0, i32 47
  store i32 2, ptr %275, align 8, !tbaa !38
  br label %284

276:                                              ; preds = %269
  %277 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %278 = call i32 @strcmp(ptr noundef %277, ptr noundef @.str.263) #8
  %279 = icmp eq i32 %278, 0
  br i1 %279, label %280, label %283

280:                                              ; preds = %276
  %281 = load ptr, ptr %11, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.nifti_image, ptr %281, i32 0, i32 47
  store i32 3, ptr %282, align 8, !tbaa !38
  br label %283

283:                                              ; preds = %280, %276
  br label %284

284:                                              ; preds = %283, %273
  br label %285

285:                                              ; preds = %284, %266
  br label %286

286:                                              ; preds = %285, %259
  br label %952

287:                                              ; preds = %249
  %288 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %289 = call i32 @strcmp(ptr noundef %288, ptr noundef @.str.326) #8
  %290 = icmp eq i32 %289, 0
  br i1 %290, label %291, label %296

291:                                              ; preds = %287
  %292 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %293 = call ptr @nifti_strdup(ptr noundef %292)
  %294 = load ptr, ptr %11, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.nifti_image, ptr %294, i32 0, i32 55
  store ptr %293, ptr %295, align 8, !tbaa !39
  br label %951

296:                                              ; preds = %287
  %297 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %298 = call i32 @strcmp(ptr noundef %297, ptr noundef @.str.327) #8
  %299 = icmp eq i32 %298, 0
  br i1 %299, label %300, label %305

300:                                              ; preds = %296
  %301 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %302 = call ptr @nifti_strdup(ptr noundef %301)
  %303 = load ptr, ptr %11, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.nifti_image, ptr %303, i32 0, i32 56
  store ptr %302, ptr %304, align 8, !tbaa !40
  br label %950

305:                                              ; preds = %296
  %306 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %307 = call i32 @strcmp(ptr noundef %306, ptr noundef @.str.328) #8
  %308 = icmp eq i32 %307, 0
  br i1 %308, label %309, label %392

309:                                              ; preds = %305
  %310 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %311 = load ptr, ptr %11, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.nifti_image, ptr %311, i32 0, i32 42
  %313 = getelementptr inbounds %struct.mat44, ptr %312, i32 0, i32 0
  %314 = getelementptr inbounds [4 x [4 x float]], ptr %313, i64 0, i64 0
  %315 = getelementptr inbounds [4 x float], ptr %314, i64 0, i64 0
  %316 = load ptr, ptr %11, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.nifti_image, ptr %316, i32 0, i32 42
  %318 = getelementptr inbounds %struct.mat44, ptr %317, i32 0, i32 0
  %319 = getelementptr inbounds [4 x [4 x float]], ptr %318, i64 0, i64 0
  %320 = getelementptr inbounds [4 x float], ptr %319, i64 0, i64 1
  %321 = load ptr, ptr %11, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.nifti_image, ptr %321, i32 0, i32 42
  %323 = getelementptr inbounds %struct.mat44, ptr %322, i32 0, i32 0
  %324 = getelementptr inbounds [4 x [4 x float]], ptr %323, i64 0, i64 0
  %325 = getelementptr inbounds [4 x float], ptr %324, i64 0, i64 2
  %326 = load ptr, ptr %11, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.nifti_image, ptr %326, i32 0, i32 42
  %328 = getelementptr inbounds %struct.mat44, ptr %327, i32 0, i32 0
  %329 = getelementptr inbounds [4 x [4 x float]], ptr %328, i64 0, i64 0
  %330 = getelementptr inbounds [4 x float], ptr %329, i64 0, i64 3
  %331 = load ptr, ptr %11, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.nifti_image, ptr %331, i32 0, i32 42
  %333 = getelementptr inbounds %struct.mat44, ptr %332, i32 0, i32 0
  %334 = getelementptr inbounds [4 x [4 x float]], ptr %333, i64 0, i64 1
  %335 = getelementptr inbounds [4 x float], ptr %334, i64 0, i64 0
  %336 = load ptr, ptr %11, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.nifti_image, ptr %336, i32 0, i32 42
  %338 = getelementptr inbounds %struct.mat44, ptr %337, i32 0, i32 0
  %339 = getelementptr inbounds [4 x [4 x float]], ptr %338, i64 0, i64 1
  %340 = getelementptr inbounds [4 x float], ptr %339, i64 0, i64 1
  %341 = load ptr, ptr %11, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.nifti_image, ptr %341, i32 0, i32 42
  %343 = getelementptr inbounds %struct.mat44, ptr %342, i32 0, i32 0
  %344 = getelementptr inbounds [4 x [4 x float]], ptr %343, i64 0, i64 1
  %345 = getelementptr inbounds [4 x float], ptr %344, i64 0, i64 2
  %346 = load ptr, ptr %11, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.nifti_image, ptr %346, i32 0, i32 42
  %348 = getelementptr inbounds %struct.mat44, ptr %347, i32 0, i32 0
  %349 = getelementptr inbounds [4 x [4 x float]], ptr %348, i64 0, i64 1
  %350 = getelementptr inbounds [4 x float], ptr %349, i64 0, i64 3
  %351 = load ptr, ptr %11, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.nifti_image, ptr %351, i32 0, i32 42
  %353 = getelementptr inbounds %struct.mat44, ptr %352, i32 0, i32 0
  %354 = getelementptr inbounds [4 x [4 x float]], ptr %353, i64 0, i64 2
  %355 = getelementptr inbounds [4 x float], ptr %354, i64 0, i64 0
  %356 = load ptr, ptr %11, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.nifti_image, ptr %356, i32 0, i32 42
  %358 = getelementptr inbounds %struct.mat44, ptr %357, i32 0, i32 0
  %359 = getelementptr inbounds [4 x [4 x float]], ptr %358, i64 0, i64 2
  %360 = getelementptr inbounds [4 x float], ptr %359, i64 0, i64 1
  %361 = load ptr, ptr %11, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.nifti_image, ptr %361, i32 0, i32 42
  %363 = getelementptr inbounds %struct.mat44, ptr %362, i32 0, i32 0
  %364 = getelementptr inbounds [4 x [4 x float]], ptr %363, i64 0, i64 2
  %365 = getelementptr inbounds [4 x float], ptr %364, i64 0, i64 2
  %366 = load ptr, ptr %11, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.nifti_image, ptr %366, i32 0, i32 42
  %368 = getelementptr inbounds %struct.mat44, ptr %367, i32 0, i32 0
  %369 = getelementptr inbounds [4 x [4 x float]], ptr %368, i64 0, i64 2
  %370 = getelementptr inbounds [4 x float], ptr %369, i64 0, i64 3
  %371 = load ptr, ptr %11, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.nifti_image, ptr %371, i32 0, i32 42
  %373 = getelementptr inbounds %struct.mat44, ptr %372, i32 0, i32 0
  %374 = getelementptr inbounds [4 x [4 x float]], ptr %373, i64 0, i64 3
  %375 = getelementptr inbounds [4 x float], ptr %374, i64 0, i64 0
  %376 = load ptr, ptr %11, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.nifti_image, ptr %376, i32 0, i32 42
  %378 = getelementptr inbounds %struct.mat44, ptr %377, i32 0, i32 0
  %379 = getelementptr inbounds [4 x [4 x float]], ptr %378, i64 0, i64 3
  %380 = getelementptr inbounds [4 x float], ptr %379, i64 0, i64 1
  %381 = load ptr, ptr %11, align 8, !tbaa !5
  %382 = getelementptr inbounds %struct.nifti_image, ptr %381, i32 0, i32 42
  %383 = getelementptr inbounds %struct.mat44, ptr %382, i32 0, i32 0
  %384 = getelementptr inbounds [4 x [4 x float]], ptr %383, i64 0, i64 3
  %385 = getelementptr inbounds [4 x float], ptr %384, i64 0, i64 2
  %386 = load ptr, ptr %11, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.nifti_image, ptr %386, i32 0, i32 42
  %388 = getelementptr inbounds %struct.mat44, ptr %387, i32 0, i32 0
  %389 = getelementptr inbounds [4 x [4 x float]], ptr %388, i64 0, i64 3
  %390 = getelementptr inbounds [4 x float], ptr %389, i64 0, i64 3
  %391 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %310, ptr noundef @.str.329, ptr noundef %315, ptr noundef %320, ptr noundef %325, ptr noundef %330, ptr noundef %335, ptr noundef %340, ptr noundef %345, ptr noundef %350, ptr noundef %355, ptr noundef %360, ptr noundef %365, ptr noundef %370, ptr noundef %375, ptr noundef %380, ptr noundef %385, ptr noundef %390) #7
  br label %949

392:                                              ; preds = %305
  %393 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %394 = call i32 @strcmp(ptr noundef %393, ptr noundef @.str.330) #8
  %395 = icmp eq i32 %394, 0
  br i1 %395, label %396, label %411

396:                                              ; preds = %392
  %397 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %398 = call i32 @strcmp(ptr noundef %397, ptr noundef @.str.288) #8
  %399 = icmp eq i32 %398, 0
  br i1 %399, label %400, label %403

400:                                              ; preds = %396
  %401 = load ptr, ptr %11, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.nifti_image, ptr %401, i32 0, i32 59
  store i32 2, ptr %402, align 8, !tbaa !31
  br label %403

403:                                              ; preds = %400, %396
  %404 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %405 = call i32 @strcmp(ptr noundef %404, ptr noundef @.str.289) #8
  %406 = icmp eq i32 %405, 0
  br i1 %406, label %407, label %410

407:                                              ; preds = %403
  %408 = load ptr, ptr %11, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.nifti_image, ptr %408, i32 0, i32 59
  store i32 1, ptr %409, align 8, !tbaa !31
  br label %410

410:                                              ; preds = %407, %403
  br label %948

411:                                              ; preds = %392
  %412 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %413 = call i32 @strcmp(ptr noundef %412, ptr noundef @.str.331) #8
  %414 = icmp eq i32 %413, 0
  br i1 %414, label %415, label %421

415:                                              ; preds = %411
  %416 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %417 = call double @strtod(ptr noundef %416, ptr noundef null) #7
  %418 = fptosi double %417 to i32
  %419 = load ptr, ptr %11, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.nifti_image, ptr %419, i32 0, i32 57
  store i32 %418, ptr %420, align 8, !tbaa !41
  br label %947

421:                                              ; preds = %411
  %422 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %423 = call i32 @strcmp(ptr noundef %422, ptr noundef @.str.332) #8
  %424 = icmp eq i32 %423, 0
  br i1 %424, label %425, label %431

425:                                              ; preds = %421
  %426 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %427 = call double @strtod(ptr noundef %426, ptr noundef null) #7
  %428 = fptosi double %427 to i32
  %429 = load ptr, ptr %11, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.nifti_image, ptr %429, i32 0, i32 11
  store i32 %428, ptr %430, align 4, !tbaa !42
  br label %946

431:                                              ; preds = %421
  %432 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %433 = call i32 @strcmp(ptr noundef %432, ptr noundef @.str.333) #8
  %434 = icmp eq i32 %433, 0
  br i1 %434, label %435, label %441

435:                                              ; preds = %431
  %436 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %437 = call double @strtod(ptr noundef %436, ptr noundef null) #7
  %438 = fptosi double %437 to i32
  %439 = load ptr, ptr %11, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.nifti_image, ptr %439, i32 0, i32 0
  store i32 %438, ptr %440, align 8, !tbaa !43
  br label %945

441:                                              ; preds = %431
  %442 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %443 = call i32 @strcmp(ptr noundef %442, ptr noundef @.str.334) #8
  %444 = icmp eq i32 %443, 0
  br i1 %444, label %445, label %451

445:                                              ; preds = %441
  %446 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %447 = call double @strtod(ptr noundef %446, ptr noundef null) #7
  %448 = fptosi double %447 to i32
  %449 = load ptr, ptr %11, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.nifti_image, ptr %449, i32 0, i32 1
  store i32 %448, ptr %450, align 4, !tbaa !22
  br label %944

451:                                              ; preds = %441
  %452 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %453 = call i32 @strcmp(ptr noundef %452, ptr noundef @.str.335) #8
  %454 = icmp eq i32 %453, 0
  br i1 %454, label %455, label %461

455:                                              ; preds = %451
  %456 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %457 = call double @strtod(ptr noundef %456, ptr noundef null) #7
  %458 = fptosi double %457 to i32
  %459 = load ptr, ptr %11, align 8, !tbaa !5
  %460 = getelementptr inbounds %struct.nifti_image, ptr %459, i32 0, i32 2
  store i32 %458, ptr %460, align 8, !tbaa !21
  br label %943

461:                                              ; preds = %451
  %462 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %463 = call i32 @strcmp(ptr noundef %462, ptr noundef @.str.336) #8
  %464 = icmp eq i32 %463, 0
  br i1 %464, label %465, label %471

465:                                              ; preds = %461
  %466 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %467 = call double @strtod(ptr noundef %466, ptr noundef null) #7
  %468 = fptosi double %467 to i32
  %469 = load ptr, ptr %11, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.nifti_image, ptr %469, i32 0, i32 3
  store i32 %468, ptr %470, align 4, !tbaa !20
  br label %942

471:                                              ; preds = %461
  %472 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %473 = call i32 @strcmp(ptr noundef %472, ptr noundef @.str.337) #8
  %474 = icmp eq i32 %473, 0
  br i1 %474, label %475, label %481

475:                                              ; preds = %471
  %476 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %477 = call double @strtod(ptr noundef %476, ptr noundef null) #7
  %478 = fptosi double %477 to i32
  %479 = load ptr, ptr %11, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.nifti_image, ptr %479, i32 0, i32 4
  store i32 %478, ptr %480, align 8, !tbaa !19
  br label %941

481:                                              ; preds = %471
  %482 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %483 = call i32 @strcmp(ptr noundef %482, ptr noundef @.str.338) #8
  %484 = icmp eq i32 %483, 0
  br i1 %484, label %485, label %491

485:                                              ; preds = %481
  %486 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %487 = call double @strtod(ptr noundef %486, ptr noundef null) #7
  %488 = fptosi double %487 to i32
  %489 = load ptr, ptr %11, align 8, !tbaa !5
  %490 = getelementptr inbounds %struct.nifti_image, ptr %489, i32 0, i32 5
  store i32 %488, ptr %490, align 4, !tbaa !18
  br label %940

491:                                              ; preds = %481
  %492 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %493 = call i32 @strcmp(ptr noundef %492, ptr noundef @.str.339) #8
  %494 = icmp eq i32 %493, 0
  br i1 %494, label %495, label %501

495:                                              ; preds = %491
  %496 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %497 = call double @strtod(ptr noundef %496, ptr noundef null) #7
  %498 = fptosi double %497 to i32
  %499 = load ptr, ptr %11, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.nifti_image, ptr %499, i32 0, i32 6
  store i32 %498, ptr %500, align 8, !tbaa !17
  br label %939

501:                                              ; preds = %491
  %502 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %503 = call i32 @strcmp(ptr noundef %502, ptr noundef @.str.340) #8
  %504 = icmp eq i32 %503, 0
  br i1 %504, label %505, label %511

505:                                              ; preds = %501
  %506 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %507 = call double @strtod(ptr noundef %506, ptr noundef null) #7
  %508 = fptosi double %507 to i32
  %509 = load ptr, ptr %11, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.nifti_image, ptr %509, i32 0, i32 7
  store i32 %508, ptr %510, align 4, !tbaa !12
  br label %938

511:                                              ; preds = %501
  %512 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %513 = call i32 @strcmp(ptr noundef %512, ptr noundef @.str.341) #8
  %514 = icmp eq i32 %513, 0
  br i1 %514, label %515, label %521

515:                                              ; preds = %511
  %516 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %517 = call double @strtod(ptr noundef %516, ptr noundef null) #7
  %518 = fptrunc double %517 to float
  %519 = load ptr, ptr %11, align 8, !tbaa !5
  %520 = getelementptr inbounds %struct.nifti_image, ptr %519, i32 0, i32 12
  store float %518, ptr %520, align 8, !tbaa !29
  br label %937

521:                                              ; preds = %511
  %522 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %523 = call i32 @strcmp(ptr noundef %522, ptr noundef @.str.342) #8
  %524 = icmp eq i32 %523, 0
  br i1 %524, label %525, label %531

525:                                              ; preds = %521
  %526 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %527 = call double @strtod(ptr noundef %526, ptr noundef null) #7
  %528 = fptrunc double %527 to float
  %529 = load ptr, ptr %11, align 8, !tbaa !5
  %530 = getelementptr inbounds %struct.nifti_image, ptr %529, i32 0, i32 13
  store float %528, ptr %530, align 4, !tbaa !28
  br label %936

531:                                              ; preds = %521
  %532 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %533 = call i32 @strcmp(ptr noundef %532, ptr noundef @.str.343) #8
  %534 = icmp eq i32 %533, 0
  br i1 %534, label %535, label %541

535:                                              ; preds = %531
  %536 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %537 = call double @strtod(ptr noundef %536, ptr noundef null) #7
  %538 = fptrunc double %537 to float
  %539 = load ptr, ptr %11, align 8, !tbaa !5
  %540 = getelementptr inbounds %struct.nifti_image, ptr %539, i32 0, i32 14
  store float %538, ptr %540, align 8, !tbaa !27
  br label %935

541:                                              ; preds = %531
  %542 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %543 = call i32 @strcmp(ptr noundef %542, ptr noundef @.str.344) #8
  %544 = icmp eq i32 %543, 0
  br i1 %544, label %545, label %551

545:                                              ; preds = %541
  %546 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %547 = call double @strtod(ptr noundef %546, ptr noundef null) #7
  %548 = fptrunc double %547 to float
  %549 = load ptr, ptr %11, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.nifti_image, ptr %549, i32 0, i32 15
  store float %548, ptr %550, align 4, !tbaa !26
  br label %934

551:                                              ; preds = %541
  %552 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %553 = call i32 @strcmp(ptr noundef %552, ptr noundef @.str.345) #8
  %554 = icmp eq i32 %553, 0
  br i1 %554, label %555, label %561

555:                                              ; preds = %551
  %556 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %557 = call double @strtod(ptr noundef %556, ptr noundef null) #7
  %558 = fptrunc double %557 to float
  %559 = load ptr, ptr %11, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.nifti_image, ptr %559, i32 0, i32 16
  store float %558, ptr %560, align 8, !tbaa !25
  br label %933

561:                                              ; preds = %551
  %562 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %563 = call i32 @strcmp(ptr noundef %562, ptr noundef @.str.346) #8
  %564 = icmp eq i32 %563, 0
  br i1 %564, label %565, label %571

565:                                              ; preds = %561
  %566 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %567 = call double @strtod(ptr noundef %566, ptr noundef null) #7
  %568 = fptrunc double %567 to float
  %569 = load ptr, ptr %11, align 8, !tbaa !5
  %570 = getelementptr inbounds %struct.nifti_image, ptr %569, i32 0, i32 17
  store float %568, ptr %570, align 4, !tbaa !24
  br label %932

571:                                              ; preds = %561
  %572 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %573 = call i32 @strcmp(ptr noundef %572, ptr noundef @.str.347) #8
  %574 = icmp eq i32 %573, 0
  br i1 %574, label %575, label %581

575:                                              ; preds = %571
  %576 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %577 = call double @strtod(ptr noundef %576, ptr noundef null) #7
  %578 = fptrunc double %577 to float
  %579 = load ptr, ptr %11, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.nifti_image, ptr %579, i32 0, i32 18
  store float %578, ptr %580, align 8, !tbaa !23
  br label %931

581:                                              ; preds = %571
  %582 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %583 = call i32 @strcmp(ptr noundef %582, ptr noundef @.str.348) #8
  %584 = icmp eq i32 %583, 0
  br i1 %584, label %585, label %591

585:                                              ; preds = %581
  %586 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %587 = call double @strtod(ptr noundef %586, ptr noundef null) #7
  %588 = fptrunc double %587 to float
  %589 = load ptr, ptr %11, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.nifti_image, ptr %589, i32 0, i32 22
  store float %588, ptr %590, align 4, !tbaa !44
  br label %930

591:                                              ; preds = %581
  %592 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %593 = call i32 @strcmp(ptr noundef %592, ptr noundef @.str.349) #8
  %594 = icmp eq i32 %593, 0
  br i1 %594, label %595, label %601

595:                                              ; preds = %591
  %596 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %597 = call double @strtod(ptr noundef %596, ptr noundef null) #7
  %598 = fptrunc double %597 to float
  %599 = load ptr, ptr %11, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.nifti_image, ptr %599, i32 0, i32 23
  store float %598, ptr %600, align 8, !tbaa !45
  br label %929

601:                                              ; preds = %591
  %602 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %603 = call i32 @strcmp(ptr noundef %602, ptr noundef @.str.350) #8
  %604 = icmp eq i32 %603, 0
  br i1 %604, label %605, label %611

605:                                              ; preds = %601
  %606 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %607 = call double @strtod(ptr noundef %606, ptr noundef null) #7
  %608 = fptrunc double %607 to float
  %609 = load ptr, ptr %11, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.nifti_image, ptr %609, i32 0, i32 20
  store float %608, ptr %610, align 4, !tbaa !46
  br label %928

611:                                              ; preds = %601
  %612 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %613 = call i32 @strcmp(ptr noundef %612, ptr noundef @.str.351) #8
  %614 = icmp eq i32 %613, 0
  br i1 %614, label %615, label %621

615:                                              ; preds = %611
  %616 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %617 = call double @strtod(ptr noundef %616, ptr noundef null) #7
  %618 = fptrunc double %617 to float
  %619 = load ptr, ptr %11, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.nifti_image, ptr %619, i32 0, i32 21
  store float %618, ptr %620, align 8, !tbaa !47
  br label %927

621:                                              ; preds = %611
  %622 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %623 = call i32 @strcmp(ptr noundef %622, ptr noundef @.str.352) #8
  %624 = icmp eq i32 %623, 0
  br i1 %624, label %625, label %631

625:                                              ; preds = %621
  %626 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %627 = call double @strtod(ptr noundef %626, ptr noundef null) #7
  %628 = fptosi double %627 to i32
  %629 = load ptr, ptr %11, align 8, !tbaa !5
  %630 = getelementptr inbounds %struct.nifti_image, ptr %629, i32 0, i32 48
  store i32 %628, ptr %630, align 4, !tbaa !48
  br label %926

631:                                              ; preds = %621
  %632 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %633 = call i32 @strcmp(ptr noundef %632, ptr noundef @.str.353) #8
  %634 = icmp eq i32 %633, 0
  br i1 %634, label %635, label %641

635:                                              ; preds = %631
  %636 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %637 = call double @strtod(ptr noundef %636, ptr noundef null) #7
  %638 = fptrunc double %637 to float
  %639 = load ptr, ptr %11, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.nifti_image, ptr %639, i32 0, i32 49
  store float %638, ptr %640, align 8, !tbaa !49
  br label %925

641:                                              ; preds = %631
  %642 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %643 = call i32 @strcmp(ptr noundef %642, ptr noundef @.str.354) #8
  %644 = icmp eq i32 %643, 0
  br i1 %644, label %645, label %651

645:                                              ; preds = %641
  %646 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %647 = call double @strtod(ptr noundef %646, ptr noundef null) #7
  %648 = fptrunc double %647 to float
  %649 = load ptr, ptr %11, align 8, !tbaa !5
  %650 = getelementptr inbounds %struct.nifti_image, ptr %649, i32 0, i32 50
  store float %648, ptr %650, align 4, !tbaa !50
  br label %924

651:                                              ; preds = %641
  %652 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %653 = call i32 @strcmp(ptr noundef %652, ptr noundef @.str.355) #8
  %654 = icmp eq i32 %653, 0
  br i1 %654, label %655, label %661

655:                                              ; preds = %651
  %656 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %657 = call double @strtod(ptr noundef %656, ptr noundef null) #7
  %658 = fptrunc double %657 to float
  %659 = load ptr, ptr %11, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.nifti_image, ptr %659, i32 0, i32 51
  store float %658, ptr %660, align 8, !tbaa !51
  br label %923

661:                                              ; preds = %651
  %662 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %663 = call i32 @strcmp(ptr noundef %662, ptr noundef @.str.356) #8
  %664 = icmp eq i32 %663, 0
  br i1 %664, label %665, label %674

665:                                              ; preds = %661
  %666 = load ptr, ptr %11, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.nifti_image, ptr %666, i32 0, i32 52
  %668 = getelementptr inbounds [16 x i8], ptr %667, i64 0, i64 0
  %669 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %670 = call ptr @strncpy(ptr noundef %668, ptr noundef %669, i64 noundef 15) #7
  %671 = load ptr, ptr %11, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.nifti_image, ptr %671, i32 0, i32 52
  %673 = getelementptr inbounds [16 x i8], ptr %672, i64 0, i64 15
  store i8 0, ptr %673, align 1, !tbaa !9
  br label %922

674:                                              ; preds = %661
  %675 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %676 = call i32 @strcmp(ptr noundef %675, ptr noundef @.str.357) #8
  %677 = icmp eq i32 %676, 0
  br i1 %677, label %678, label %684

678:                                              ; preds = %674
  %679 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %680 = call double @strtod(ptr noundef %679, ptr noundef null) #7
  %681 = fptrunc double %680 to float
  %682 = load ptr, ptr %11, align 8, !tbaa !5
  %683 = getelementptr inbounds %struct.nifti_image, ptr %682, i32 0, i32 44
  store float %681, ptr %683, align 4, !tbaa !52
  br label %921

684:                                              ; preds = %674
  %685 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %686 = call i32 @strcmp(ptr noundef %685, ptr noundef @.str.358) #8
  %687 = icmp eq i32 %686, 0
  br i1 %687, label %688, label %694

688:                                              ; preds = %684
  %689 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %690 = call double @strtod(ptr noundef %689, ptr noundef null) #7
  %691 = fptosi double %690 to i32
  %692 = load ptr, ptr %11, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.nifti_image, ptr %692, i32 0, i32 45
  store i32 %691, ptr %693, align 8, !tbaa !53
  br label %920

694:                                              ; preds = %684
  %695 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %696 = call i32 @strcmp(ptr noundef %695, ptr noundef @.str.359) #8
  %697 = icmp eq i32 %696, 0
  br i1 %697, label %698, label %704

698:                                              ; preds = %694
  %699 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %700 = call double @strtod(ptr noundef %699, ptr noundef null) #7
  %701 = fptosi double %700 to i32
  %702 = load ptr, ptr %11, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.nifti_image, ptr %702, i32 0, i32 46
  store i32 %701, ptr %703, align 4, !tbaa !54
  br label %919

704:                                              ; preds = %694
  %705 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %706 = call i32 @strcmp(ptr noundef %705, ptr noundef @.str.360) #8
  %707 = icmp eq i32 %706, 0
  br i1 %707, label %708, label %717

708:                                              ; preds = %704
  %709 = load ptr, ptr %11, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.nifti_image, ptr %709, i32 0, i32 53
  %711 = getelementptr inbounds [80 x i8], ptr %710, i64 0, i64 0
  %712 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %713 = call ptr @strncpy(ptr noundef %711, ptr noundef %712, i64 noundef 79) #7
  %714 = load ptr, ptr %11, align 8, !tbaa !5
  %715 = getelementptr inbounds %struct.nifti_image, ptr %714, i32 0, i32 53
  %716 = getelementptr inbounds [80 x i8], ptr %715, i64 0, i64 79
  store i8 0, ptr %716, align 1, !tbaa !9
  br label %918

717:                                              ; preds = %704
  %718 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %719 = call i32 @strcmp(ptr noundef %718, ptr noundef @.str.361) #8
  %720 = icmp eq i32 %719, 0
  br i1 %720, label %721, label %730

721:                                              ; preds = %717
  %722 = load ptr, ptr %11, align 8, !tbaa !5
  %723 = getelementptr inbounds %struct.nifti_image, ptr %722, i32 0, i32 54
  %724 = getelementptr inbounds [24 x i8], ptr %723, i64 0, i64 0
  %725 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %726 = call ptr @strncpy(ptr noundef %724, ptr noundef %725, i64 noundef 23) #7
  %727 = load ptr, ptr %11, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.nifti_image, ptr %727, i32 0, i32 54
  %729 = getelementptr inbounds [24 x i8], ptr %728, i64 0, i64 23
  store i8 0, ptr %729, align 1, !tbaa !9
  br label %917

730:                                              ; preds = %717
  %731 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %732 = call i32 @strcmp(ptr noundef %731, ptr noundef @.str.362) #8
  %733 = icmp eq i32 %732, 0
  br i1 %733, label %734, label %740

734:                                              ; preds = %730
  %735 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %736 = call double @strtod(ptr noundef %735, ptr noundef null) #7
  %737 = fptosi double %736 to i32
  %738 = load ptr, ptr %11, align 8, !tbaa !5
  %739 = getelementptr inbounds %struct.nifti_image, ptr %738, i32 0, i32 24
  store i32 %737, ptr %739, align 4, !tbaa !55
  br label %916

740:                                              ; preds = %730
  %741 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %742 = call i32 @strcmp(ptr noundef %741, ptr noundef @.str.363) #8
  %743 = icmp eq i32 %742, 0
  br i1 %743, label %744, label %750

744:                                              ; preds = %740
  %745 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %746 = call double @strtod(ptr noundef %745, ptr noundef null) #7
  %747 = fptrunc double %746 to float
  %748 = load ptr, ptr %11, align 8, !tbaa !5
  %749 = getelementptr inbounds %struct.nifti_image, ptr %748, i32 0, i32 33
  store float %747, ptr %749, align 8, !tbaa !56
  br label %915

750:                                              ; preds = %740
  %751 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %752 = call i32 @strcmp(ptr noundef %751, ptr noundef @.str.364) #8
  %753 = icmp eq i32 %752, 0
  br i1 %753, label %754, label %760

754:                                              ; preds = %750
  %755 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %756 = call double @strtod(ptr noundef %755, ptr noundef null) #7
  %757 = fptrunc double %756 to float
  %758 = load ptr, ptr %11, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.nifti_image, ptr %758, i32 0, i32 34
  store float %757, ptr %759, align 4, !tbaa !57
  br label %914

760:                                              ; preds = %750
  %761 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %762 = call i32 @strcmp(ptr noundef %761, ptr noundef @.str.365) #8
  %763 = icmp eq i32 %762, 0
  br i1 %763, label %764, label %770

764:                                              ; preds = %760
  %765 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %766 = call double @strtod(ptr noundef %765, ptr noundef null) #7
  %767 = fptrunc double %766 to float
  %768 = load ptr, ptr %11, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.nifti_image, ptr %768, i32 0, i32 35
  store float %767, ptr %769, align 8, !tbaa !58
  br label %913

770:                                              ; preds = %760
  %771 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %772 = call i32 @strcmp(ptr noundef %771, ptr noundef @.str.366) #8
  %773 = icmp eq i32 %772, 0
  br i1 %773, label %774, label %780

774:                                              ; preds = %770
  %775 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %776 = call double @strtod(ptr noundef %775, ptr noundef null) #7
  %777 = fptrunc double %776 to float
  %778 = load ptr, ptr %11, align 8, !tbaa !5
  %779 = getelementptr inbounds %struct.nifti_image, ptr %778, i32 0, i32 36
  store float %777, ptr %779, align 4, !tbaa !59
  br label %912

780:                                              ; preds = %770
  %781 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %782 = call i32 @strcmp(ptr noundef %781, ptr noundef @.str.367) #8
  %783 = icmp eq i32 %782, 0
  br i1 %783, label %784, label %790

784:                                              ; preds = %780
  %785 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %786 = call double @strtod(ptr noundef %785, ptr noundef null) #7
  %787 = fptrunc double %786 to float
  %788 = load ptr, ptr %11, align 8, !tbaa !5
  %789 = getelementptr inbounds %struct.nifti_image, ptr %788, i32 0, i32 37
  store float %787, ptr %789, align 8, !tbaa !60
  br label %911

790:                                              ; preds = %780
  %791 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %792 = call i32 @strcmp(ptr noundef %791, ptr noundef @.str.368) #8
  %793 = icmp eq i32 %792, 0
  br i1 %793, label %794, label %800

794:                                              ; preds = %790
  %795 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %796 = call double @strtod(ptr noundef %795, ptr noundef null) #7
  %797 = fptrunc double %796 to float
  %798 = load ptr, ptr %11, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.nifti_image, ptr %798, i32 0, i32 38
  store float %797, ptr %799, align 4, !tbaa !61
  br label %910

800:                                              ; preds = %790
  %801 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %802 = call i32 @strcmp(ptr noundef %801, ptr noundef @.str.369) #8
  %803 = icmp eq i32 %802, 0
  br i1 %803, label %804, label %810

804:                                              ; preds = %800
  %805 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %806 = call double @strtod(ptr noundef %805, ptr noundef null) #7
  %807 = fptrunc double %806 to float
  %808 = load ptr, ptr %11, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.nifti_image, ptr %808, i32 0, i32 39
  store float %807, ptr %809, align 8, !tbaa !30
  br label %909

810:                                              ; preds = %800
  %811 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %812 = call i32 @strcmp(ptr noundef %811, ptr noundef @.str.370) #8
  %813 = icmp eq i32 %812, 0
  br i1 %813, label %814, label %820

814:                                              ; preds = %810
  %815 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %816 = call double @strtod(ptr noundef %815, ptr noundef null) #7
  %817 = fptosi double %816 to i32
  %818 = load ptr, ptr %11, align 8, !tbaa !5
  %819 = getelementptr inbounds %struct.nifti_image, ptr %818, i32 0, i32 25
  store i32 %817, ptr %819, align 8, !tbaa !62
  br label %908

820:                                              ; preds = %810
  %821 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %822 = call i32 @strcmp(ptr noundef %821, ptr noundef @.str.371) #8
  %823 = icmp eq i32 %822, 0
  br i1 %823, label %824, label %830

824:                                              ; preds = %820
  %825 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %826 = call double @strtod(ptr noundef %825, ptr noundef null) #7
  %827 = fptosi double %826 to i32
  %828 = load ptr, ptr %11, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.nifti_image, ptr %828, i32 0, i32 26
  store i32 %827, ptr %829, align 4, !tbaa !63
  br label %907

830:                                              ; preds = %820
  %831 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %832 = call i32 @strcmp(ptr noundef %831, ptr noundef @.str.372) #8
  %833 = icmp eq i32 %832, 0
  br i1 %833, label %834, label %840

834:                                              ; preds = %830
  %835 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %836 = call double @strtod(ptr noundef %835, ptr noundef null) #7
  %837 = fptosi double %836 to i32
  %838 = load ptr, ptr %11, align 8, !tbaa !5
  %839 = getelementptr inbounds %struct.nifti_image, ptr %838, i32 0, i32 27
  store i32 %837, ptr %839, align 8, !tbaa !64
  br label %906

840:                                              ; preds = %830
  %841 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %842 = call i32 @strcmp(ptr noundef %841, ptr noundef @.str.373) #8
  %843 = icmp eq i32 %842, 0
  br i1 %843, label %844, label %850

844:                                              ; preds = %840
  %845 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %846 = call double @strtod(ptr noundef %845, ptr noundef null) #7
  %847 = fptosi double %846 to i32
  %848 = load ptr, ptr %11, align 8, !tbaa !5
  %849 = getelementptr inbounds %struct.nifti_image, ptr %848, i32 0, i32 28
  store i32 %847, ptr %849, align 4, !tbaa !65
  br label %905

850:                                              ; preds = %840
  %851 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %852 = call i32 @strcmp(ptr noundef %851, ptr noundef @.str.374) #8
  %853 = icmp eq i32 %852, 0
  br i1 %853, label %854, label %860

854:                                              ; preds = %850
  %855 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %856 = call double @strtod(ptr noundef %855, ptr noundef null) #7
  %857 = fptosi double %856 to i32
  %858 = load ptr, ptr %11, align 8, !tbaa !5
  %859 = getelementptr inbounds %struct.nifti_image, ptr %858, i32 0, i32 29
  store i32 %857, ptr %859, align 8, !tbaa !66
  br label %904

860:                                              ; preds = %850
  %861 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %862 = call i32 @strcmp(ptr noundef %861, ptr noundef @.str.375) #8
  %863 = icmp eq i32 %862, 0
  br i1 %863, label %864, label %870

864:                                              ; preds = %860
  %865 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %866 = call double @strtod(ptr noundef %865, ptr noundef null) #7
  %867 = fptosi double %866 to i32
  %868 = load ptr, ptr %11, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.nifti_image, ptr %868, i32 0, i32 30
  store i32 %867, ptr %869, align 4, !tbaa !67
  br label %903

870:                                              ; preds = %860
  %871 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %872 = call i32 @strcmp(ptr noundef %871, ptr noundef @.str.376) #8
  %873 = icmp eq i32 %872, 0
  br i1 %873, label %874, label %880

874:                                              ; preds = %870
  %875 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %876 = call double @strtod(ptr noundef %875, ptr noundef null) #7
  %877 = fptosi double %876 to i32
  %878 = load ptr, ptr %11, align 8, !tbaa !5
  %879 = getelementptr inbounds %struct.nifti_image, ptr %878, i32 0, i32 31
  store i32 %877, ptr %879, align 8, !tbaa !68
  br label %902

880:                                              ; preds = %870
  %881 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %882 = call i32 @strcmp(ptr noundef %881, ptr noundef @.str.377) #8
  %883 = icmp eq i32 %882, 0
  br i1 %883, label %884, label %890

884:                                              ; preds = %880
  %885 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %886 = call double @strtod(ptr noundef %885, ptr noundef null) #7
  %887 = fptrunc double %886 to float
  %888 = load ptr, ptr %11, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.nifti_image, ptr %888, i32 0, i32 32
  store float %887, ptr %889, align 4, !tbaa !69
  br label %901

890:                                              ; preds = %880
  %891 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 0
  %892 = call i32 @strcmp(ptr noundef %891, ptr noundef @.str.378) #8
  %893 = icmp eq i32 %892, 0
  br i1 %893, label %894, label %900

894:                                              ; preds = %890
  %895 = getelementptr inbounds [1024 x i8], ptr %7, i64 0, i64 0
  %896 = call double @strtod(ptr noundef %895, ptr noundef null) #7
  %897 = fptosi double %896 to i32
  %898 = load ptr, ptr %11, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.nifti_image, ptr %898, i32 0, i32 61
  store i32 %897, ptr %899, align 8, !tbaa !70
  br label %900

900:                                              ; preds = %894, %890
  br label %901

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

902:                                              ; preds = %901, %874
  br label %903

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

932:                                              ; preds = %931, %565
  br label %933

933:                                              ; preds = %932, %555
  br label %934

934:                                              ; preds = %933, %545
  br label %935

935:                                              ; preds = %934, %535
  br label %936

936:                                              ; preds = %935, %525
  br label %937

937:                                              ; preds = %936, %515
  br label %938

938:                                              ; preds = %937, %505
  br label %939

939:                                              ; preds = %938, %495
  br label %940

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

941:                                              ; preds = %940, %475
  br label %942

942:                                              ; preds = %941, %465
  br label %943

943:                                              ; preds = %942, %455
  br label %944

944:                                              ; preds = %943, %445
  br label %945

945:                                              ; preds = %944, %435
  br label %946

946:                                              ; preds = %945, %425
  br label %947

947:                                              ; preds = %946, %415
  br label %948

948:                                              ; preds = %947, %410
  br label %949

949:                                              ; preds = %948, %309
  br label %950

950:                                              ; preds = %949, %300
  br label %951

951:                                              ; preds = %950, %291
  br label %952

952:                                              ; preds = %951, %286
  br label %85

953:                                              ; preds = %247, %168, %130, %113
  %954 = load ptr, ptr %5, align 8, !tbaa !5
  %955 = icmp ne ptr %954, null
  br i1 %955, label %956, label %960

956:                                              ; preds = %953
  %957 = load i32, ptr %9, align 4, !tbaa !10
  %958 = add nsw i32 %957, 1
  %959 = load ptr, ptr %5, align 8, !tbaa !5
  store i32 %958, ptr %959, align 4, !tbaa !10
  br label %960

960:                                              ; preds = %956, %953
  %961 = load ptr, ptr %11, align 8, !tbaa !5
  %962 = getelementptr inbounds %struct.nifti_image, ptr %961, i32 0, i32 0
  %963 = load i32, ptr %962, align 8, !tbaa !43
  %964 = icmp sle i32 %963, 0
  br i1 %964, label %965, label %967

965:                                              ; preds = %960
  %966 = load ptr, ptr %11, align 8, !tbaa !5
  call void @nifti_image_free(ptr noundef %966)
  store ptr null, ptr %3, align 8
  store i32 1, ptr %12, align 4
  br label %1173

967:                                              ; preds = %960
  %968 = load ptr, ptr %11, align 8, !tbaa !5
  %969 = getelementptr inbounds %struct.nifti_image, ptr %968, i32 0, i32 11
  %970 = load i32, ptr %969, align 4, !tbaa !42
  %971 = load ptr, ptr %11, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.nifti_image, ptr %971, i32 0, i32 10
  %973 = load ptr, ptr %11, align 8, !tbaa !5
  %974 = getelementptr inbounds %struct.nifti_image, ptr %973, i32 0, i32 58
  call void @nifti_datatype_sizes(i32 noundef %970, ptr noundef %972, ptr noundef %974)
  %975 = load ptr, ptr %11, align 8, !tbaa !5
  %976 = getelementptr inbounds %struct.nifti_image, ptr %975, i32 0, i32 10
  %977 = load i32, ptr %976, align 8, !tbaa !71
  %978 = icmp eq i32 %977, 0
  br i1 %978, label %979, label %981

979:                                              ; preds = %967
  %980 = load ptr, ptr %11, align 8, !tbaa !5
  call void @nifti_image_free(ptr noundef %980)
  store ptr null, ptr %3, align 8
  store i32 1, ptr %12, align 4
  br label %1173

981:                                              ; preds = %967
  %982 = load ptr, ptr %11, align 8, !tbaa !5
  %983 = getelementptr inbounds %struct.nifti_image, ptr %982, i32 0, i32 0
  %984 = load i32, ptr %983, align 8, !tbaa !43
  %985 = load ptr, ptr %11, align 8, !tbaa !5
  %986 = getelementptr inbounds %struct.nifti_image, ptr %985, i32 0, i32 8
  %987 = getelementptr inbounds [8 x i32], ptr %986, i64 0, i64 0
  store i32 %984, ptr %987, align 8, !tbaa !10
  %988 = load ptr, ptr %11, align 8, !tbaa !5
  %989 = getelementptr inbounds %struct.nifti_image, ptr %988, i32 0, i32 1
  %990 = load i32, ptr %989, align 4, !tbaa !22
  %991 = load ptr, ptr %11, align 8, !tbaa !5
  %992 = getelementptr inbounds %struct.nifti_image, ptr %991, i32 0, i32 8
  %993 = getelementptr inbounds [8 x i32], ptr %992, i64 0, i64 1
  store i32 %990, ptr %993, align 4, !tbaa !10
  %994 = load ptr, ptr %11, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.nifti_image, ptr %994, i32 0, i32 12
  %996 = load float, ptr %995, align 8, !tbaa !29
  %997 = load ptr, ptr %11, align 8, !tbaa !5
  %998 = getelementptr inbounds %struct.nifti_image, ptr %997, i32 0, i32 19
  %999 = getelementptr inbounds [8 x float], ptr %998, i64 0, i64 1
  store float %996, ptr %999, align 4, !tbaa !72
  %1000 = load ptr, ptr %11, align 8, !tbaa !5
  %1001 = getelementptr inbounds %struct.nifti_image, ptr %1000, i32 0, i32 2
  %1002 = load i32, ptr %1001, align 8, !tbaa !21
  %1003 = load ptr, ptr %11, align 8, !tbaa !5
  %1004 = getelementptr inbounds %struct.nifti_image, ptr %1003, i32 0, i32 8
  %1005 = getelementptr inbounds [8 x i32], ptr %1004, i64 0, i64 2
  store i32 %1002, ptr %1005, align 8, !tbaa !10
  %1006 = load ptr, ptr %11, align 8, !tbaa !5
  %1007 = getelementptr inbounds %struct.nifti_image, ptr %1006, i32 0, i32 13
  %1008 = load float, ptr %1007, align 4, !tbaa !28
  %1009 = load ptr, ptr %11, align 8, !tbaa !5
  %1010 = getelementptr inbounds %struct.nifti_image, ptr %1009, i32 0, i32 19
  %1011 = getelementptr inbounds [8 x float], ptr %1010, i64 0, i64 2
  store float %1008, ptr %1011, align 4, !tbaa !72
  %1012 = load ptr, ptr %11, align 8, !tbaa !5
  %1013 = getelementptr inbounds %struct.nifti_image, ptr %1012, i32 0, i32 3
  %1014 = load i32, ptr %1013, align 4, !tbaa !20
  %1015 = load ptr, ptr %11, align 8, !tbaa !5
  %1016 = getelementptr inbounds %struct.nifti_image, ptr %1015, i32 0, i32 8
  %1017 = getelementptr inbounds [8 x i32], ptr %1016, i64 0, i64 3
  store i32 %1014, ptr %1017, align 4, !tbaa !10
  %1018 = load ptr, ptr %11, align 8, !tbaa !5
  %1019 = getelementptr inbounds %struct.nifti_image, ptr %1018, i32 0, i32 14
  %1020 = load float, ptr %1019, align 8, !tbaa !27
  %1021 = load ptr, ptr %11, align 8, !tbaa !5
  %1022 = getelementptr inbounds %struct.nifti_image, ptr %1021, i32 0, i32 19
  %1023 = getelementptr inbounds [8 x float], ptr %1022, i64 0, i64 3
  store float %1020, ptr %1023, align 4, !tbaa !72
  %1024 = load ptr, ptr %11, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.nifti_image, ptr %1024, i32 0, i32 4
  %1026 = load i32, ptr %1025, align 8, !tbaa !19
  %1027 = load ptr, ptr %11, align 8, !tbaa !5
  %1028 = getelementptr inbounds %struct.nifti_image, ptr %1027, i32 0, i32 8
  %1029 = getelementptr inbounds [8 x i32], ptr %1028, i64 0, i64 4
  store i32 %1026, ptr %1029, align 8, !tbaa !10
  %1030 = load ptr, ptr %11, align 8, !tbaa !5
  %1031 = getelementptr inbounds %struct.nifti_image, ptr %1030, i32 0, i32 15
  %1032 = load float, ptr %1031, align 4, !tbaa !26
  %1033 = load ptr, ptr %11, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.nifti_image, ptr %1033, i32 0, i32 19
  %1035 = getelementptr inbounds [8 x float], ptr %1034, i64 0, i64 4
  store float %1032, ptr %1035, align 4, !tbaa !72
  %1036 = load ptr, ptr %11, align 8, !tbaa !5
  %1037 = getelementptr inbounds %struct.nifti_image, ptr %1036, i32 0, i32 5
  %1038 = load i32, ptr %1037, align 4, !tbaa !18
  %1039 = load ptr, ptr %11, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.nifti_image, ptr %1039, i32 0, i32 8
  %1041 = getelementptr inbounds [8 x i32], ptr %1040, i64 0, i64 5
  store i32 %1038, ptr %1041, align 4, !tbaa !10
  %1042 = load ptr, ptr %11, align 8, !tbaa !5
  %1043 = getelementptr inbounds %struct.nifti_image, ptr %1042, i32 0, i32 16
  %1044 = load float, ptr %1043, align 8, !tbaa !25
  %1045 = load ptr, ptr %11, align 8, !tbaa !5
  %1046 = getelementptr inbounds %struct.nifti_image, ptr %1045, i32 0, i32 19
  %1047 = getelementptr inbounds [8 x float], ptr %1046, i64 0, i64 5
  store float %1044, ptr %1047, align 4, !tbaa !72
  %1048 = load ptr, ptr %11, align 8, !tbaa !5
  %1049 = getelementptr inbounds %struct.nifti_image, ptr %1048, i32 0, i32 6
  %1050 = load i32, ptr %1049, align 8, !tbaa !17
  %1051 = load ptr, ptr %11, align 8, !tbaa !5
  %1052 = getelementptr inbounds %struct.nifti_image, ptr %1051, i32 0, i32 8
  %1053 = getelementptr inbounds [8 x i32], ptr %1052, i64 0, i64 6
  store i32 %1050, ptr %1053, align 8, !tbaa !10
  %1054 = load ptr, ptr %11, align 8, !tbaa !5
  %1055 = getelementptr inbounds %struct.nifti_image, ptr %1054, i32 0, i32 17
  %1056 = load float, ptr %1055, align 4, !tbaa !24
  %1057 = load ptr, ptr %11, align 8, !tbaa !5
  %1058 = getelementptr inbounds %struct.nifti_image, ptr %1057, i32 0, i32 19
  %1059 = getelementptr inbounds [8 x float], ptr %1058, i64 0, i64 6
  store float %1056, ptr %1059, align 4, !tbaa !72
  %1060 = load ptr, ptr %11, align 8, !tbaa !5
  %1061 = getelementptr inbounds %struct.nifti_image, ptr %1060, i32 0, i32 7
  %1062 = load i32, ptr %1061, align 4, !tbaa !12
  %1063 = load ptr, ptr %11, align 8, !tbaa !5
  %1064 = getelementptr inbounds %struct.nifti_image, ptr %1063, i32 0, i32 8
  %1065 = getelementptr inbounds [8 x i32], ptr %1064, i64 0, i64 7
  store i32 %1062, ptr %1065, align 4, !tbaa !10
  %1066 = load ptr, ptr %11, align 8, !tbaa !5
  %1067 = getelementptr inbounds %struct.nifti_image, ptr %1066, i32 0, i32 18
  %1068 = load float, ptr %1067, align 8, !tbaa !23
  %1069 = load ptr, ptr %11, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.nifti_image, ptr %1069, i32 0, i32 19
  %1071 = getelementptr inbounds [8 x float], ptr %1070, i64 0, i64 7
  store float %1068, ptr %1071, align 4, !tbaa !72
  %1072 = load ptr, ptr %11, align 8, !tbaa !5
  %1073 = getelementptr inbounds %struct.nifti_image, ptr %1072, i32 0, i32 1
  %1074 = load i32, ptr %1073, align 4, !tbaa !22
  %1075 = sext i32 %1074 to i64
  %1076 = load ptr, ptr %11, align 8, !tbaa !5
  %1077 = getelementptr inbounds %struct.nifti_image, ptr %1076, i32 0, i32 2
  %1078 = load i32, ptr %1077, align 8, !tbaa !21
  %1079 = sext i32 %1078 to i64
  %1080 = mul i64 %1075, %1079
  %1081 = load ptr, ptr %11, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.nifti_image, ptr %1081, i32 0, i32 3
  %1083 = load i32, ptr %1082, align 4, !tbaa !20
  %1084 = sext i32 %1083 to i64
  %1085 = mul i64 %1080, %1084
  %1086 = load ptr, ptr %11, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.nifti_image, ptr %1086, i32 0, i32 4
  %1088 = load i32, ptr %1087, align 8, !tbaa !19
  %1089 = sext i32 %1088 to i64
  %1090 = mul i64 %1085, %1089
  %1091 = load ptr, ptr %11, align 8, !tbaa !5
  %1092 = getelementptr inbounds %struct.nifti_image, ptr %1091, i32 0, i32 5
  %1093 = load i32, ptr %1092, align 4, !tbaa !18
  %1094 = sext i32 %1093 to i64
  %1095 = mul i64 %1090, %1094
  %1096 = load ptr, ptr %11, align 8, !tbaa !5
  %1097 = getelementptr inbounds %struct.nifti_image, ptr %1096, i32 0, i32 6
  %1098 = load i32, ptr %1097, align 8, !tbaa !17
  %1099 = sext i32 %1098 to i64
  %1100 = mul i64 %1095, %1099
  %1101 = load ptr, ptr %11, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.nifti_image, ptr %1101, i32 0, i32 7
  %1103 = load i32, ptr %1102, align 4, !tbaa !12
  %1104 = sext i32 %1103 to i64
  %1105 = mul i64 %1100, %1104
  %1106 = load ptr, ptr %11, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.nifti_image, ptr %1106, i32 0, i32 9
  store i64 %1105, ptr %1107, align 8, !tbaa !73
  %1108 = load ptr, ptr %11, align 8, !tbaa !5
  %1109 = getelementptr inbounds %struct.nifti_image, ptr %1108, i32 0, i32 24
  %1110 = load i32, ptr %1109, align 4, !tbaa !55
  %1111 = icmp sgt i32 %1110, 0
  br i1 %1111, label %1112, label %1145

1112:                                             ; preds = %981
  %1113 = load ptr, ptr %11, align 8, !tbaa !5
  %1114 = getelementptr inbounds %struct.nifti_image, ptr %1113, i32 0, i32 40
  call void @llvm.lifetime.start.p0(i64 64, ptr %13) #7
  %1115 = load ptr, ptr %11, align 8, !tbaa !5
  %1116 = getelementptr inbounds %struct.nifti_image, ptr %1115, i32 0, i32 33
  %1117 = load float, ptr %1116, align 8, !tbaa !56
  %1118 = load ptr, ptr %11, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.nifti_image, ptr %1118, i32 0, i32 34
  %1120 = load float, ptr %1119, align 4, !tbaa !57
  %1121 = load ptr, ptr %11, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.nifti_image, ptr %1121, i32 0, i32 35
  %1123 = load float, ptr %1122, align 8, !tbaa !58
  %1124 = load ptr, ptr %11, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.nifti_image, ptr %1124, i32 0, i32 36
  %1126 = load float, ptr %1125, align 4, !tbaa !59
  %1127 = load ptr, ptr %11, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.nifti_image, ptr %1127, i32 0, i32 37
  %1129 = load float, ptr %1128, align 8, !tbaa !60
  %1130 = load ptr, ptr %11, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.nifti_image, ptr %1130, i32 0, i32 38
  %1132 = load float, ptr %1131, align 4, !tbaa !61
  %1133 = load ptr, ptr %11, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.nifti_image, ptr %1133, i32 0, i32 12
  %1135 = load float, ptr %1134, align 8, !tbaa !29
  %1136 = load ptr, ptr %11, align 8, !tbaa !5
  %1137 = getelementptr inbounds %struct.nifti_image, ptr %1136, i32 0, i32 13
  %1138 = load float, ptr %1137, align 4, !tbaa !28
  %1139 = load ptr, ptr %11, align 8, !tbaa !5
  %1140 = getelementptr inbounds %struct.nifti_image, ptr %1139, i32 0, i32 14
  %1141 = load float, ptr %1140, align 8, !tbaa !27
  %1142 = load ptr, ptr %11, align 8, !tbaa !5
  %1143 = getelementptr inbounds %struct.nifti_image, ptr %1142, i32 0, i32 39
  %1144 = load float, ptr %1143, align 8, !tbaa !30
  call void @nifti_quatern_to_mat44(ptr dead_on_unwind writable sret(%struct.mat44) align 4 %13, float noundef %1117, float noundef %1120, float noundef %1123, float noundef %1126, float noundef %1129, float noundef %1132, float noundef %1135, float noundef %1138, float noundef %1141, float noundef %1144)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1114, ptr align 4 %13, i64 64, i1 false), !tbaa.struct !74
  call void @llvm.lifetime.end.p0(i64 64, ptr %13) #7
  br label %1157

1145:                                             ; preds = %981
  %1146 = load ptr, ptr %11, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.nifti_image, ptr %1146, i32 0, i32 40
  call void @llvm.lifetime.start.p0(i64 64, ptr %14) #7
  %1148 = load ptr, ptr %11, align 8, !tbaa !5
  %1149 = getelementptr inbounds %struct.nifti_image, ptr %1148, i32 0, i32 12
  %1150 = load float, ptr %1149, align 8, !tbaa !29
  %1151 = load ptr, ptr %11, align 8, !tbaa !5
  %1152 = getelementptr inbounds %struct.nifti_image, ptr %1151, i32 0, i32 13
  %1153 = load float, ptr %1152, align 4, !tbaa !28
  %1154 = load ptr, ptr %11, align 8, !tbaa !5
  %1155 = getelementptr inbounds %struct.nifti_image, ptr %1154, i32 0, i32 14
  %1156 = load float, ptr %1155, align 8, !tbaa !27
  call void @nifti_quatern_to_mat44(ptr dead_on_unwind writable sret(%struct.mat44) align 4 %14, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef %1150, float noundef %1153, float noundef %1156, float noundef 0.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1147, ptr align 4 %14, i64 64, i1 false), !tbaa.struct !74
  call void @llvm.lifetime.end.p0(i64 64, ptr %14) #7
  br label %1157

1157:                                             ; preds = %1145, %1112
  %1158 = load ptr, ptr %11, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.nifti_image, ptr %1158, i32 0, i32 41
  call void @llvm.lifetime.start.p0(i64 64, ptr %15) #7
  %1160 = load ptr, ptr %11, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.nifti_image, ptr %1160, i32 0, i32 40
  call void @llvm.lifetime.start.p0(i64 64, ptr %16) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %16, ptr align 4 %1161, i64 64, i1 false), !tbaa.struct !74
  call void @nifti_mat44_inverse(ptr dead_on_unwind writable sret(%struct.mat44) align 4 %15, ptr noundef byval(%struct.mat44) align 8 %16)
  call void @llvm.lifetime.end.p0(i64 64, ptr %16) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1159, ptr align 4 %15, i64 64, i1 false), !tbaa.struct !74
  call void @llvm.lifetime.end.p0(i64 64, ptr %15) #7
  %1162 = load ptr, ptr %11, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.nifti_image, ptr %1162, i32 0, i32 25
  %1164 = load i32, ptr %1163, align 8, !tbaa !62
  %1165 = icmp sgt i32 %1164, 0
  br i1 %1165, label %1166, label %1171

1166:                                             ; preds = %1157
  %1167 = load ptr, ptr %11, align 8, !tbaa !5
  %1168 = getelementptr inbounds %struct.nifti_image, ptr %1167, i32 0, i32 43
  call void @llvm.lifetime.start.p0(i64 64, ptr %17) #7
  %1169 = load ptr, ptr %11, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.nifti_image, ptr %1169, i32 0, i32 42
  call void @llvm.lifetime.start.p0(i64 64, ptr %18) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %18, ptr align 4 %1170, i64 64, i1 false), !tbaa.struct !74
  call void @nifti_mat44_inverse(ptr dead_on_unwind writable sret(%struct.mat44) align 4 %17, ptr noundef byval(%struct.mat44) align 8 %18)
  call void @llvm.lifetime.end.p0(i64 64, ptr %18) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1168, ptr align 4 %17, i64 64, i1 false), !tbaa.struct !74
  call void @llvm.lifetime.end.p0(i64 64, ptr %17) #7
  br label %1171

1171:                                             ; preds = %1166, %1157
  %1172 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %1172, ptr %3, align 8
  store i32 1, ptr %12, align 4
  br label %1173

1173:                                             ; preds = %1171, %979, %965, %48, %43, %26
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 1024, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 1024, ptr %6) #7
  %1174 = load ptr, ptr %3, align 8
  ret ptr %1174
}

; Function Attrs: nounwind
declare i32 @__isoc99_sscanf(ptr noundef, ptr noundef, ...) #1

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

; Function Attrs: nounwind uwtable
declare hidden i32 @unescape_string(ptr noundef) #2

; Function Attrs: nounwind
declare double @strtod(ptr noundef, ptr noundef) #1

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind allocsize(0,1) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #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 = { nounwind }
attributes #8 = { nounwind willreturn memory(read) }
attributes #9 = { nounwind allocsize(0,1) }
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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"int", !7, i64 0}
!12 = !{!13, !11, i64 28}
!13 = !{!"", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !7, i64 32, !14, i64 64, !11, i64 72, !11, i64 76, !15, i64 80, !15, i64 84, !15, i64 88, !15, i64 92, !15, i64 96, !15, i64 100, !15, i64 104, !7, i64 108, !15, i64 140, !15, i64 144, !15, i64 148, !15, i64 152, !11, i64 156, !11, i64 160, !11, i64 164, !11, i64 168, !11, i64 172, !11, i64 176, !11, i64 180, !11, i64 184, !15, i64 188, !15, i64 192, !15, i64 196, !15, i64 200, !15, i64 204, !15, i64 208, !15, i64 212, !15, i64 216, !16, i64 220, !16, i64 284, !16, i64 348, !16, i64 412, !15, i64 476, !11, i64 480, !11, i64 484, !11, i64 488, !11, i64 492, !15, i64 496, !15, i64 500, !15, i64 504, !7, i64 508, !7, i64 524, !7, i64 604, !6, i64 632, !6, i64 640, !11, i64 648, !11, i64 652, !11, i64 656, !6, i64 664, !11, i64 672, !6, i64 680, !11, i64 688}
!14 = !{!"long", !7, i64 0}
!15 = !{!"float", !7, i64 0}
!16 = !{!"", !7, i64 0}
!17 = !{!13, !11, i64 24}
!18 = !{!13, !11, i64 20}
!19 = !{!13, !11, i64 16}
!20 = !{!13, !11, i64 12}
!21 = !{!13, !11, i64 8}
!22 = !{!13, !11, i64 4}
!23 = !{!13, !15, i64 104}
!24 = !{!13, !15, i64 100}
!25 = !{!13, !15, i64 96}
!26 = !{!13, !15, i64 92}
!27 = !{!13, !15, i64 88}
!28 = !{!13, !15, i64 84}
!29 = !{!13, !15, i64 80}
!30 = !{!13, !15, i64 216}
!31 = !{!13, !11, i64 656}
!32 = !{!33, !33, i64 0}
!33 = !{!"short", !7, i64 0}
!34 = distinct !{!34, !35}
!35 = !{!"llvm.loop.mustprogress"}
!36 = distinct !{!36, !35}
!37 = distinct !{!37, !35}
!38 = !{!13, !11, i64 488}
!39 = !{!13, !6, i64 632}
!40 = !{!13, !6, i64 640}
!41 = !{!13, !11, i64 648}
!42 = !{!13, !11, i64 76}
!43 = !{!13, !11, i64 0}
!44 = !{!13, !15, i64 148}
!45 = !{!13, !15, i64 152}
!46 = !{!13, !15, i64 140}
!47 = !{!13, !15, i64 144}
!48 = !{!13, !11, i64 492}
!49 = !{!13, !15, i64 496}
!50 = !{!13, !15, i64 500}
!51 = !{!13, !15, i64 504}
!52 = !{!13, !15, i64 476}
!53 = !{!13, !11, i64 480}
!54 = !{!13, !11, i64 484}
!55 = !{!13, !11, i64 156}
!56 = !{!13, !15, i64 192}
!57 = !{!13, !15, i64 196}
!58 = !{!13, !15, i64 200}
!59 = !{!13, !15, i64 204}
!60 = !{!13, !15, i64 208}
!61 = !{!13, !15, i64 212}
!62 = !{!13, !11, i64 160}
!63 = !{!13, !11, i64 164}
!64 = !{!13, !11, i64 168}
!65 = !{!13, !11, i64 172}
!66 = !{!13, !11, i64 176}
!67 = !{!13, !11, i64 180}
!68 = !{!13, !11, i64 184}
!69 = !{!13, !15, i64 188}
!70 = !{!13, !11, i64 672}
!71 = !{!13, !11, i64 72}
!72 = !{!15, !15, i64 0}
!73 = !{!13, !14, i64 64}
!74 = !{i64 0, i64 64, !9}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.mat44 = type { [4 x [4 x float]] }

@stderr = external local_unnamed_addr global ptr, align 8
@.str.261 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [8 x i8], align 1

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

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

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

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

; Function Attrs: nounwind uwtable
declare dso_local ptr @nifti_strdup(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
declare dso_local void @nifti_quatern_to_mat44(ptr dead_on_unwind noalias writable sret(%struct.mat44) align 4, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef) local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
declare dso_local void @nifti_mat44_inverse(ptr dead_on_unwind noalias writable sret(%struct.mat44) align 4, ptr noundef byval(%struct.mat44) align 8) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite)
declare ptr @strncpy(ptr noalias noundef returned writeonly, ptr noalias nocapture noundef readonly, i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
declare dso_local i32 @nifti_short_order() local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
define dso_local noundef ptr @nifti_image_from_ascii(ptr noundef readonly %0, ptr noundef writeonly %1) local_unnamed_addr #2 {
  %3 = alloca [1024 x i8], align 16
  %4 = alloca [1024 x i8], align 16
  %5 = alloca i32, align 4
  %6 = alloca %struct.mat44, align 4
  %7 = alloca %struct.mat44, align 4
  %8 = alloca %struct.mat44, align 4
  %9 = alloca %struct.mat44, align 8
  %10 = alloca %struct.mat44, align 4
  %11 = alloca %struct.mat44, align 8
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %3) #11
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #11
  %12 = icmp eq ptr %0, null
  br i1 %12, label %560, label %13

13:                                               ; preds = %2
  %14 = load i8, ptr %0, align 1, !tbaa !5
  %15 = icmp eq i8 %14, 0
  br i1 %15, label %560, label %16

16:                                               ; preds = %13
  %17 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %0, ptr noundef nonnull @.str.321, ptr noundef nonnull %3, ptr noundef nonnull %5) #11
  %18 = load i32, ptr %5, align 4, !tbaa !8
  %19 = icmp eq i32 %17, 0
  br i1 %19, label %560, label %20

20:                                               ; preds = %16
  %21 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.322) #12
  %.not = icmp eq i32 %21, 0
  br i1 %.not, label %22, label %560

22:                                               ; preds = %20
  %23 = call noalias dereferenceable_or_null(696) ptr @calloc(i64 noundef 1, i64 noundef 696) #13
  %.not213 = icmp eq ptr %23, null
  br i1 %.not213, label %24, label %27

24:                                               ; preds = %22
  %25 = load ptr, ptr @stderr, align 8, !tbaa !10
  %26 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25, ptr noundef nonnull @.str.323) #14
  br label %560

27:                                               ; preds = %22
  %28 = getelementptr inbounds i8, ptr %23, i64 28
  store i32 1, ptr %28, align 4, !tbaa !12
  %29 = getelementptr inbounds i8, ptr %23, i64 24
  store i32 1, ptr %29, align 8, !tbaa !17
  %30 = getelementptr inbounds i8, ptr %23, i64 20
  store i32 1, ptr %30, align 4, !tbaa !18
  %31 = getelementptr inbounds i8, ptr %23, i64 16
  %32 = getelementptr inbounds i8, ptr %23, i64 12
  %33 = getelementptr inbounds i8, ptr %23, i64 8
  %34 = getelementptr inbounds i8, ptr %23, i64 4
  store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, ptr %34, align 4, !tbaa !8
  %35 = getelementptr inbounds i8, ptr %23, i64 104
  %36 = getelementptr inbounds i8, ptr %23, i64 100
  %37 = getelementptr inbounds i8, ptr %23, i64 96
  %38 = getelementptr inbounds i8, ptr %23, i64 92
  %39 = getelementptr inbounds i8, ptr %23, i64 88
  %40 = getelementptr inbounds i8, ptr %23, i64 84
  %41 = getelementptr inbounds i8, ptr %23, i64 80
  %42 = getelementptr inbounds i8, ptr %23, i64 216
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %41, i8 0, i64 28, i1 false)
  store float 1.000000e+00, ptr %42, align 8, !tbaa !19
  %43 = call i32 @nifti_short_order()
  %44 = getelementptr inbounds i8, ptr %23, i64 656
  store i32 %43, ptr %44, align 8, !tbaa !20
  %45 = tail call ptr @__ctype_b_loc() #15
  %46 = getelementptr inbounds i8, ptr %23, i64 672
  %47 = getelementptr inbounds i8, ptr %23, i64 188
  %48 = getelementptr inbounds i8, ptr %23, i64 184
  %49 = getelementptr inbounds i8, ptr %23, i64 180
  %50 = getelementptr inbounds i8, ptr %23, i64 176
  %51 = getelementptr inbounds i8, ptr %23, i64 172
  %52 = getelementptr inbounds i8, ptr %23, i64 168
  %53 = getelementptr inbounds i8, ptr %23, i64 164
  %54 = getelementptr inbounds i8, ptr %23, i64 160
  %55 = getelementptr inbounds i8, ptr %23, i64 212
  %56 = getelementptr inbounds i8, ptr %23, i64 208
  %57 = getelementptr inbounds i8, ptr %23, i64 204
  %58 = getelementptr inbounds i8, ptr %23, i64 200
  %59 = getelementptr inbounds i8, ptr %23, i64 196
  %60 = getelementptr inbounds i8, ptr %23, i64 192
  %61 = getelementptr inbounds i8, ptr %23, i64 156
  %62 = getelementptr inbounds i8, ptr %23, i64 604
  %63 = getelementptr inbounds i8, ptr %23, i64 627
  %64 = getelementptr inbounds i8, ptr %23, i64 524
  %65 = getelementptr inbounds i8, ptr %23, i64 603
  %66 = getelementptr inbounds i8, ptr %23, i64 484
  %67 = getelementptr inbounds i8, ptr %23, i64 480
  %68 = getelementptr inbounds i8, ptr %23, i64 476
  %69 = getelementptr inbounds i8, ptr %23, i64 508
  %70 = getelementptr inbounds i8, ptr %23, i64 523
  %71 = getelementptr inbounds i8, ptr %23, i64 504
  %72 = getelementptr inbounds i8, ptr %23, i64 500
  %73 = getelementptr inbounds i8, ptr %23, i64 496
  %74 = getelementptr inbounds i8, ptr %23, i64 492
  %75 = getelementptr inbounds i8, ptr %23, i64 144
  %76 = getelementptr inbounds i8, ptr %23, i64 140
  %77 = getelementptr inbounds i8, ptr %23, i64 152
  %78 = getelementptr inbounds i8, ptr %23, i64 148
  %79 = getelementptr inbounds i8, ptr %23, i64 76
  %80 = getelementptr inbounds i8, ptr %23, i64 648
  %81 = getelementptr inbounds i8, ptr %23, i64 348
  %82 = getelementptr inbounds i8, ptr %23, i64 352
  %83 = getelementptr inbounds i8, ptr %23, i64 356
  %84 = getelementptr inbounds i8, ptr %23, i64 360
  %85 = getelementptr inbounds i8, ptr %23, i64 364
  %86 = getelementptr inbounds i8, ptr %23, i64 368
  %87 = getelementptr inbounds i8, ptr %23, i64 372
  %88 = getelementptr inbounds i8, ptr %23, i64 376
  %89 = getelementptr inbounds i8, ptr %23, i64 380
  %90 = getelementptr inbounds i8, ptr %23, i64 384
  %91 = getelementptr inbounds i8, ptr %23, i64 388
  %92 = getelementptr inbounds i8, ptr %23, i64 392
  %93 = getelementptr inbounds i8, ptr %23, i64 396
  %94 = getelementptr inbounds i8, ptr %23, i64 400
  %95 = getelementptr inbounds i8, ptr %23, i64 404
  %96 = getelementptr inbounds i8, ptr %23, i64 408
  %97 = getelementptr inbounds i8, ptr %23, i64 640
  %98 = getelementptr inbounds i8, ptr %23, i64 632
  %99 = getelementptr inbounds i8, ptr %23, i64 488
  br label %100

100:                                              ; preds = %.backedge, %27
  %.0206 = phi i32 [ %18, %27 ], [ %.3, %.backedge ]
  %101 = load ptr, ptr %45, align 8, !tbaa !10
  %102 = sext i32 %.0206 to i64
  br label %103

103:                                              ; preds = %103, %100
  %indvars.iv232 = phi i32 [ %indvars.iv.next233, %103 ], [ %.0206, %100 ]
  %indvars.iv = phi i64 [ %indvars.iv.next, %103 ], [ %102, %100 ]
  %104 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv
  %105 = load i8, ptr %104, align 1, !tbaa !5
  %106 = sext i8 %105 to i64
  %107 = getelementptr inbounds i16, ptr %101, i64 %106
  %108 = load i16, ptr %107, align 2, !tbaa !21
  %109 = and i16 %108, 8192
  %.not214 = icmp eq i16 %109, 0
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %indvars.iv.next233 = add i32 %indvars.iv232, 1
  br i1 %.not214, label %110, label %103, !llvm.loop !23

110:                                              ; preds = %103
  %111 = icmp eq i8 %105, 0
  br i1 %111, label %.split.loop.exit252, label %112

112:                                              ; preds = %110
  %113 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv
  %114 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %113, ptr noundef nonnull @.str.321, ptr noundef nonnull %3, ptr noundef nonnull %5) #11
  %115 = load i32, ptr %5, align 4, !tbaa !8
  %116 = icmp eq i32 %114, 0
  br i1 %116, label %.split.loop.exit248, label %117

117:                                              ; preds = %112
  %118 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.324) #12
  %119 = icmp eq i32 %118, 0
  br i1 %119, label %.split.loop.exit250, label %.preheader219

.preheader219:                                    ; preds = %117
  %120 = load ptr, ptr %45, align 8, !tbaa !10
  %121 = add i32 %115, %indvars.iv232
  %122 = sext i32 %121 to i64
  br label %.critedge

.critedge:                                        ; preds = %.critedge, %.preheader219
  %indvars.iv234 = phi i64 [ %indvars.iv.next235, %.critedge ], [ %122, %.preheader219 ]
  %123 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv234
  %124 = load i8, ptr %123, align 1, !tbaa !5
  %125 = sext i8 %124 to i64
  %126 = getelementptr inbounds i16, ptr %120, i64 %125
  %127 = load i16, ptr %126, align 2, !tbaa !21
  %128 = and i16 %127, 8192
  %.not215 = icmp ne i16 %128, 0
  %129 = icmp eq i8 %124, 61
  %or.cond = or i1 %129, %.not215
  %indvars.iv.next235 = add nsw i64 %indvars.iv234, 1
  br i1 %or.cond, label %.critedge, label %130, !llvm.loop !25

130:                                              ; preds = %.critedge
  %131 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv234
  %132 = trunc nsw i64 %indvars.iv234 to i32
  switch i8 %124, label %144 [
    i8 0, label %.split.loop.exit
    i8 39, label %.preheader
  ]

.preheader:                                       ; preds = %130, %.preheader
  %indvars.iv237 = phi i64 [ %indvars.iv.next238, %.preheader ], [ %indvars.iv234, %130 ]
  %indvars.iv.next238 = add nsw i64 %indvars.iv237, 1
  %133 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv.next238
  %134 = load i8, ptr %133, align 1, !tbaa !5
  switch i8 %134, label %.preheader [
    i8 0, label %.critedge2
    i8 39, label %.critedge2
  ], !llvm.loop !26

.critedge2:                                       ; preds = %.preheader, %.preheader
  %135 = trunc nsw i64 %indvars.iv237 to i32
  %136 = trunc nsw i64 %indvars.iv.next238 to i32
  %137 = sub i32 %135, %132
  %spec.store.select = call i32 @llvm.smin.i32(i32 %137, i32 1023)
  store i32 %spec.store.select, ptr %5, align 4
  %138 = getelementptr inbounds i8, ptr %131, i64 1
  %139 = sext i32 %spec.store.select to i64
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 16 %4, ptr nonnull align 1 %138, i64 %139, i1 false)
  %140 = getelementptr inbounds [1024 x i8], ptr %4, i64 0, i64 %139
  store i8 0, ptr %140, align 1, !tbaa !5
  %141 = icmp eq i8 %134, 39
  %142 = add nsw i32 %135, 2
  %143 = select i1 %141, i32 %142, i32 %136
  br label %149

144:                                              ; preds = %130
  %145 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %131, ptr noundef nonnull @.str.321, ptr noundef nonnull %4, ptr noundef nonnull %5) #11
  %146 = load i32, ptr %5, align 4, !tbaa !8
  %147 = add nsw i32 %146, %132
  %148 = icmp eq i32 %145, 0
  br i1 %148, label %.split.loop.exit, label %149

149:                                              ; preds = %144, %.critedge2
  %.3 = phi i32 [ %143, %.critedge2 ], [ %147, %144 ]
  %150 = call i32 @unescape_string(ptr noundef nonnull %4)
  %151 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.325) #12
  %152 = icmp eq i32 %151, 0
  br i1 %152, label %153, label %169

153:                                              ; preds = %149
  %154 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) @.str.264) #12
  %155 = icmp eq i32 %154, 0
  br i1 %155, label %156, label %157

156:                                              ; preds = %153
  store i32 0, ptr %99, align 8, !tbaa !27
  br label %.backedge

157:                                              ; preds = %153
  %158 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) @.str.261) #12
  %159 = icmp eq i32 %158, 0
  br i1 %159, label %160, label %161

160:                                              ; preds = %157
  store i32 1, ptr %99, align 8, !tbaa !27
  br label %.backedge

161:                                              ; preds = %157
  %162 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) @.str.262) #12
  %163 = icmp eq i32 %162, 0
  br i1 %163, label %164, label %165

164:                                              ; preds = %161
  store i32 2, ptr %99, align 8, !tbaa !27
  br label %.backedge

165:                                              ; preds = %161
  %166 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) @.str.263) #12
  %167 = icmp eq i32 %166, 0
  br i1 %167, label %168, label %.backedge

168:                                              ; preds = %165
  store i32 3, ptr %99, align 8, !tbaa !27
  br label %.backedge

169:                                              ; preds = %149
  %170 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.326) #12
  %171 = icmp eq i32 %170, 0
  br i1 %171, label %172, label %174

172:                                              ; preds = %169
  %173 = call ptr @nifti_strdup(ptr noundef nonnull %4)
  store ptr %173, ptr %98, align 8, !tbaa !28
  br label %.backedge

.backedge:                                        ; preds = %172, %182, %198, %210, %222, %234, %246, %258, %270, %282, %294, %306, %318, %330, %342, %353, %365, %376, %387, %399, %411, %423, %435, %447, %459, %471, %477, %474, %465, %453, %441, %429, %417, %405, %393, %381, %371, %359, %348, %336, %324, %312, %300, %288, %276, %264, %252, %240, %228, %216, %204, %191, %194, %177, %156, %164, %168, %165, %160
  br label %100

174:                                              ; preds = %169
  %175 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.327) #12
  %176 = icmp eq i32 %175, 0
  br i1 %176, label %177, label %179

177:                                              ; preds = %174
  %178 = call ptr @nifti_strdup(ptr noundef nonnull %4)
  store ptr %178, ptr %97, align 8, !tbaa !29
  br label %.backedge

179:                                              ; preds = %174
  %180 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.328) #12
  %181 = icmp eq i32 %180, 0
  br i1 %181, label %182, label %184

182:                                              ; preds = %179
  %183 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %4, ptr noundef nonnull @.str.329, ptr noundef nonnull %81, ptr noundef nonnull %82, ptr noundef nonnull %83, ptr noundef nonnull %84, ptr noundef nonnull %85, ptr noundef nonnull %86, ptr noundef nonnull %87, ptr noundef nonnull %88, ptr noundef nonnull %89, ptr noundef nonnull %90, ptr noundef nonnull %91, ptr noundef nonnull %92, ptr noundef nonnull %93, ptr noundef nonnull %94, ptr noundef nonnull %95, ptr noundef nonnull %96) #11
  br label %.backedge

184:                                              ; preds = %179
  %185 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.330) #12
  %186 = icmp eq i32 %185, 0
  br i1 %186, label %187, label %195

187:                                              ; preds = %184
  %188 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) @.str.288) #12
  %189 = icmp eq i32 %188, 0
  br i1 %189, label %190, label %191

190:                                              ; preds = %187
  store i32 2, ptr %44, align 8, !tbaa !20
  br label %191

191:                                              ; preds = %190, %187
  %192 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) @.str.289) #12
  %193 = icmp eq i32 %192, 0
  br i1 %193, label %194, label %.backedge

194:                                              ; preds = %191
  store i32 1, ptr %44, align 8, !tbaa !20
  br label %.backedge

195:                                              ; preds = %184
  %196 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.331) #12
  %197 = icmp eq i32 %196, 0
  br i1 %197, label %198, label %201

198:                                              ; preds = %195
  %199 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %200 = fptosi double %199 to i32
  store i32 %200, ptr %80, align 8, !tbaa !30
  br label %.backedge

201:                                              ; preds = %195
  %202 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.332) #12
  %203 = icmp eq i32 %202, 0
  br i1 %203, label %204, label %207

204:                                              ; preds = %201
  %205 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %206 = fptosi double %205 to i32
  store i32 %206, ptr %79, align 4, !tbaa !31
  br label %.backedge

207:                                              ; preds = %201
  %208 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.333) #12
  %209 = icmp eq i32 %208, 0
  br i1 %209, label %210, label %213

210:                                              ; preds = %207
  %211 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %212 = fptosi double %211 to i32
  store i32 %212, ptr %23, align 8, !tbaa !32
  br label %.backedge

213:                                              ; preds = %207
  %214 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.334) #12
  %215 = icmp eq i32 %214, 0
  br i1 %215, label %216, label %219

216:                                              ; preds = %213
  %217 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %218 = fptosi double %217 to i32
  store i32 %218, ptr %34, align 4, !tbaa !33
  br label %.backedge

219:                                              ; preds = %213
  %220 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.335) #12
  %221 = icmp eq i32 %220, 0
  br i1 %221, label %222, label %225

222:                                              ; preds = %219
  %223 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %224 = fptosi double %223 to i32
  store i32 %224, ptr %33, align 8, !tbaa !34
  br label %.backedge

225:                                              ; preds = %219
  %226 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.336) #12
  %227 = icmp eq i32 %226, 0
  br i1 %227, label %228, label %231

228:                                              ; preds = %225
  %229 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %230 = fptosi double %229 to i32
  store i32 %230, ptr %32, align 4, !tbaa !35
  br label %.backedge

231:                                              ; preds = %225
  %232 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.337) #12
  %233 = icmp eq i32 %232, 0
  br i1 %233, label %234, label %237

234:                                              ; preds = %231
  %235 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %236 = fptosi double %235 to i32
  store i32 %236, ptr %31, align 8, !tbaa !36
  br label %.backedge

237:                                              ; preds = %231
  %238 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.338) #12
  %239 = icmp eq i32 %238, 0
  br i1 %239, label %240, label %243

240:                                              ; preds = %237
  %241 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %242 = fptosi double %241 to i32
  store i32 %242, ptr %30, align 4, !tbaa !18
  br label %.backedge

243:                                              ; preds = %237
  %244 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.339) #12
  %245 = icmp eq i32 %244, 0
  br i1 %245, label %246, label %249

246:                                              ; preds = %243
  %247 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %248 = fptosi double %247 to i32
  store i32 %248, ptr %29, align 8, !tbaa !17
  br label %.backedge

249:                                              ; preds = %243
  %250 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.340) #12
  %251 = icmp eq i32 %250, 0
  br i1 %251, label %252, label %255

252:                                              ; preds = %249
  %253 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %254 = fptosi double %253 to i32
  store i32 %254, ptr %28, align 4, !tbaa !12
  br label %.backedge

255:                                              ; preds = %249
  %256 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.341) #12
  %257 = icmp eq i32 %256, 0
  br i1 %257, label %258, label %261

258:                                              ; preds = %255
  %259 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %260 = fptrunc double %259 to float
  store float %260, ptr %41, align 8, !tbaa !37
  br label %.backedge

261:                                              ; preds = %255
  %262 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.342) #12
  %263 = icmp eq i32 %262, 0
  br i1 %263, label %264, label %267

264:                                              ; preds = %261
  %265 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %266 = fptrunc double %265 to float
  store float %266, ptr %40, align 4, !tbaa !38
  br label %.backedge

267:                                              ; preds = %261
  %268 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.343) #12
  %269 = icmp eq i32 %268, 0
  br i1 %269, label %270, label %273

270:                                              ; preds = %267
  %271 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %272 = fptrunc double %271 to float
  store float %272, ptr %39, align 8, !tbaa !39
  br label %.backedge

273:                                              ; preds = %267
  %274 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.344) #12
  %275 = icmp eq i32 %274, 0
  br i1 %275, label %276, label %279

276:                                              ; preds = %273
  %277 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %278 = fptrunc double %277 to float
  store float %278, ptr %38, align 4, !tbaa !40
  br label %.backedge

279:                                              ; preds = %273
  %280 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.345) #12
  %281 = icmp eq i32 %280, 0
  br i1 %281, label %282, label %285

282:                                              ; preds = %279
  %283 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %284 = fptrunc double %283 to float
  store float %284, ptr %37, align 8, !tbaa !41
  br label %.backedge

285:                                              ; preds = %279
  %286 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.346) #12
  %287 = icmp eq i32 %286, 0
  br i1 %287, label %288, label %291

288:                                              ; preds = %285
  %289 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %290 = fptrunc double %289 to float
  store float %290, ptr %36, align 4, !tbaa !42
  br label %.backedge

291:                                              ; preds = %285
  %292 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.347) #12
  %293 = icmp eq i32 %292, 0
  br i1 %293, label %294, label %297

294:                                              ; preds = %291
  %295 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %296 = fptrunc double %295 to float
  store float %296, ptr %35, align 8, !tbaa !43
  br label %.backedge

297:                                              ; preds = %291
  %298 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.348) #12
  %299 = icmp eq i32 %298, 0
  br i1 %299, label %300, label %303

300:                                              ; preds = %297
  %301 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %302 = fptrunc double %301 to float
  store float %302, ptr %78, align 4, !tbaa !44
  br label %.backedge

303:                                              ; preds = %297
  %304 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.349) #12
  %305 = icmp eq i32 %304, 0
  br i1 %305, label %306, label %309

306:                                              ; preds = %303
  %307 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %308 = fptrunc double %307 to float
  store float %308, ptr %77, align 8, !tbaa !45
  br label %.backedge

309:                                              ; preds = %303
  %310 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.350) #12
  %311 = icmp eq i32 %310, 0
  br i1 %311, label %312, label %315

312:                                              ; preds = %309
  %313 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %314 = fptrunc double %313 to float
  store float %314, ptr %76, align 4, !tbaa !46
  br label %.backedge

315:                                              ; preds = %309
  %316 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.351) #12
  %317 = icmp eq i32 %316, 0
  br i1 %317, label %318, label %321

318:                                              ; preds = %315
  %319 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %320 = fptrunc double %319 to float
  store float %320, ptr %75, align 8, !tbaa !47
  br label %.backedge

321:                                              ; preds = %315
  %322 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.352) #12
  %323 = icmp eq i32 %322, 0
  br i1 %323, label %324, label %327

324:                                              ; preds = %321
  %325 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %326 = fptosi double %325 to i32
  store i32 %326, ptr %74, align 4, !tbaa !48
  br label %.backedge

327:                                              ; preds = %321
  %328 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.353) #12
  %329 = icmp eq i32 %328, 0
  br i1 %329, label %330, label %333

330:                                              ; preds = %327
  %331 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %332 = fptrunc double %331 to float
  store float %332, ptr %73, align 8, !tbaa !49
  br label %.backedge

333:                                              ; preds = %327
  %334 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.354) #12
  %335 = icmp eq i32 %334, 0
  br i1 %335, label %336, label %339

336:                                              ; preds = %333
  %337 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %338 = fptrunc double %337 to float
  store float %338, ptr %72, align 4, !tbaa !50
  br label %.backedge

339:                                              ; preds = %333
  %340 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.355) #12
  %341 = icmp eq i32 %340, 0
  br i1 %341, label %342, label %345

342:                                              ; preds = %339
  %343 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %344 = fptrunc double %343 to float
  store float %344, ptr %71, align 8, !tbaa !51
  br label %.backedge

345:                                              ; preds = %339
  %346 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.356) #12
  %347 = icmp eq i32 %346, 0
  br i1 %347, label %348, label %350

348:                                              ; preds = %345
  %349 = call ptr @strncpy(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) %4, i64 noundef 15) #11
  store i8 0, ptr %70, align 1, !tbaa !5
  br label %.backedge

350:                                              ; preds = %345
  %351 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.357) #12
  %352 = icmp eq i32 %351, 0
  br i1 %352, label %353, label %356

353:                                              ; preds = %350
  %354 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %355 = fptrunc double %354 to float
  store float %355, ptr %68, align 4, !tbaa !52
  br label %.backedge

356:                                              ; preds = %350
  %357 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.358) #12
  %358 = icmp eq i32 %357, 0
  br i1 %358, label %359, label %362

359:                                              ; preds = %356
  %360 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %361 = fptosi double %360 to i32
  store i32 %361, ptr %67, align 8, !tbaa !53
  br label %.backedge

362:                                              ; preds = %356
  %363 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.359) #12
  %364 = icmp eq i32 %363, 0
  br i1 %364, label %365, label %368

365:                                              ; preds = %362
  %366 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %367 = fptosi double %366 to i32
  store i32 %367, ptr %66, align 4, !tbaa !54
  br label %.backedge

368:                                              ; preds = %362
  %369 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.360) #12
  %370 = icmp eq i32 %369, 0
  br i1 %370, label %371, label %373

371:                                              ; preds = %368
  %372 = call ptr @strncpy(ptr noundef nonnull dereferenceable(1) %64, ptr noundef nonnull dereferenceable(1) %4, i64 noundef 79) #11
  store i8 0, ptr %65, align 1, !tbaa !5
  br label %.backedge

373:                                              ; preds = %368
  %374 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.361) #12
  %375 = icmp eq i32 %374, 0
  br i1 %375, label %376, label %378

376:                                              ; preds = %373
  %377 = call ptr @strncpy(ptr noundef nonnull dereferenceable(1) %62, ptr noundef nonnull dereferenceable(1) %4, i64 noundef 23) #11
  store i8 0, ptr %63, align 1, !tbaa !5
  br label %.backedge

378:                                              ; preds = %373
  %379 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.362) #12
  %380 = icmp eq i32 %379, 0
  br i1 %380, label %381, label %384

381:                                              ; preds = %378
  %382 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %383 = fptosi double %382 to i32
  store i32 %383, ptr %61, align 4, !tbaa !55
  br label %.backedge

384:                                              ; preds = %378
  %385 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.363) #12
  %386 = icmp eq i32 %385, 0
  br i1 %386, label %387, label %390

387:                                              ; preds = %384
  %388 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %389 = fptrunc double %388 to float
  store float %389, ptr %60, align 8, !tbaa !56
  br label %.backedge

390:                                              ; preds = %384
  %391 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.364) #12
  %392 = icmp eq i32 %391, 0
  br i1 %392, label %393, label %396

393:                                              ; preds = %390
  %394 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %395 = fptrunc double %394 to float
  store float %395, ptr %59, align 4, !tbaa !57
  br label %.backedge

396:                                              ; preds = %390
  %397 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.365) #12
  %398 = icmp eq i32 %397, 0
  br i1 %398, label %399, label %402

399:                                              ; preds = %396
  %400 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %401 = fptrunc double %400 to float
  store float %401, ptr %58, align 8, !tbaa !58
  br label %.backedge

402:                                              ; preds = %396
  %403 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.366) #12
  %404 = icmp eq i32 %403, 0
  br i1 %404, label %405, label %408

405:                                              ; preds = %402
  %406 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %407 = fptrunc double %406 to float
  store float %407, ptr %57, align 4, !tbaa !59
  br label %.backedge

408:                                              ; preds = %402
  %409 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.367) #12
  %410 = icmp eq i32 %409, 0
  br i1 %410, label %411, label %414

411:                                              ; preds = %408
  %412 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %413 = fptrunc double %412 to float
  store float %413, ptr %56, align 8, !tbaa !60
  br label %.backedge

414:                                              ; preds = %408
  %415 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.368) #12
  %416 = icmp eq i32 %415, 0
  br i1 %416, label %417, label %420

417:                                              ; preds = %414
  %418 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %419 = fptrunc double %418 to float
  store float %419, ptr %55, align 4, !tbaa !61
  br label %.backedge

420:                                              ; preds = %414
  %421 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.369) #12
  %422 = icmp eq i32 %421, 0
  br i1 %422, label %423, label %426

423:                                              ; preds = %420
  %424 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %425 = fptrunc double %424 to float
  store float %425, ptr %42, align 8, !tbaa !19
  br label %.backedge

426:                                              ; preds = %420
  %427 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.370) #12
  %428 = icmp eq i32 %427, 0
  br i1 %428, label %429, label %432

429:                                              ; preds = %426
  %430 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %431 = fptosi double %430 to i32
  store i32 %431, ptr %54, align 8, !tbaa !62
  br label %.backedge

432:                                              ; preds = %426
  %433 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.371) #12
  %434 = icmp eq i32 %433, 0
  br i1 %434, label %435, label %438

435:                                              ; preds = %432
  %436 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %437 = fptosi double %436 to i32
  store i32 %437, ptr %53, align 4, !tbaa !63
  br label %.backedge

438:                                              ; preds = %432
  %439 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.372) #12
  %440 = icmp eq i32 %439, 0
  br i1 %440, label %441, label %444

441:                                              ; preds = %438
  %442 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %443 = fptosi double %442 to i32
  store i32 %443, ptr %52, align 8, !tbaa !64
  br label %.backedge

444:                                              ; preds = %438
  %445 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.373) #12
  %446 = icmp eq i32 %445, 0
  br i1 %446, label %447, label %450

447:                                              ; preds = %444
  %448 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %449 = fptosi double %448 to i32
  store i32 %449, ptr %51, align 4, !tbaa !65
  br label %.backedge

450:                                              ; preds = %444
  %451 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.374) #12
  %452 = icmp eq i32 %451, 0
  br i1 %452, label %453, label %456

453:                                              ; preds = %450
  %454 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %455 = fptosi double %454 to i32
  store i32 %455, ptr %50, align 8, !tbaa !66
  br label %.backedge

456:                                              ; preds = %450
  %457 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.375) #12
  %458 = icmp eq i32 %457, 0
  br i1 %458, label %459, label %462

459:                                              ; preds = %456
  %460 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %461 = fptosi double %460 to i32
  store i32 %461, ptr %49, align 4, !tbaa !67
  br label %.backedge

462:                                              ; preds = %456
  %463 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.376) #12
  %464 = icmp eq i32 %463, 0
  br i1 %464, label %465, label %468

465:                                              ; preds = %462
  %466 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %467 = fptosi double %466 to i32
  store i32 %467, ptr %48, align 8, !tbaa !68
  br label %.backedge

468:                                              ; preds = %462
  %469 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.377) #12
  %470 = icmp eq i32 %469, 0
  br i1 %470, label %471, label %474

471:                                              ; preds = %468
  %472 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %473 = fptrunc double %472 to float
  store float %473, ptr %47, align 4, !tbaa !69
  br label %.backedge

474:                                              ; preds = %468
  %475 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.378) #12
  %476 = icmp eq i32 %475, 0
  br i1 %476, label %477, label %.backedge

477:                                              ; preds = %474
  %478 = call double @strtod(ptr nocapture noundef nonnull %4, ptr noundef null) #11
  %479 = fptosi double %478 to i32
  store i32 %479, ptr %46, align 8, !tbaa !70
  br label %.backedge

.split.loop.exit248:                              ; preds = %112
  %480 = trunc nsw i64 %indvars.iv to i32
  %481 = add nsw i32 %115, %480
  br label %.split.loop.exit

.split.loop.exit250:                              ; preds = %117
  %482 = trunc nsw i64 %indvars.iv to i32
  %483 = add nsw i32 %115, %482
  br label %.split.loop.exit

.split.loop.exit252:                              ; preds = %110
  %484 = trunc nsw i64 %indvars.iv to i32
  br label %.split.loop.exit

.split.loop.exit:                                 ; preds = %144, %130, %.split.loop.exit252, %.split.loop.exit250, %.split.loop.exit248
  %.4 = phi i32 [ %481, %.split.loop.exit248 ], [ %483, %.split.loop.exit250 ], [ %484, %.split.loop.exit252 ], [ %132, %130 ], [ %147, %144 ]
  %.not218 = icmp eq ptr %1, null
  br i1 %.not218, label %487, label %485

485:                                              ; preds = %.split.loop.exit
  %486 = add nsw i32 %.4, 1
  store i32 %486, ptr %1, align 4, !tbaa !8
  br label %487

487:                                              ; preds = %485, %.split.loop.exit
  %488 = load i32, ptr %23, align 8, !tbaa !32
  %489 = icmp slt i32 %488, 1
  br i1 %489, label %490, label %491

490:                                              ; preds = %487
  call void @nifti_image_free(ptr noundef nonnull %23)
  br label %560

491:                                              ; preds = %487
  %492 = load i32, ptr %79, align 4, !tbaa !31
  %493 = getelementptr inbounds i8, ptr %23, i64 72
  %494 = getelementptr inbounds i8, ptr %23, i64 652
  call void @nifti_datatype_sizes(i32 noundef %492, ptr noundef nonnull %493, ptr noundef nonnull %494)
  %495 = load i32, ptr %493, align 8, !tbaa !71
  %496 = icmp eq i32 %495, 0
  br i1 %496, label %497, label %498

497:                                              ; preds = %491
  call void @nifti_image_free(ptr noundef nonnull %23)
  br label %560

498:                                              ; preds = %491
  %499 = load i32, ptr %23, align 8, !tbaa !32
  %500 = getelementptr inbounds i8, ptr %23, i64 32
  store i32 %499, ptr %500, align 8, !tbaa !8
  %501 = load i32, ptr %34, align 4, !tbaa !33
  %502 = getelementptr inbounds i8, ptr %23, i64 36
  store i32 %501, ptr %502, align 4, !tbaa !8
  %503 = getelementptr inbounds i8, ptr %23, i64 112
  %504 = load i32, ptr %33, align 8, !tbaa !34
  %505 = getelementptr inbounds i8, ptr %23, i64 40
  store i32 %504, ptr %505, align 8, !tbaa !8
  %506 = load i32, ptr %32, align 4, !tbaa !35
  %507 = getelementptr inbounds i8, ptr %23, i64 44
  store i32 %506, ptr %507, align 4, !tbaa !8
  %508 = load i32, ptr %31, align 8, !tbaa !36
  %509 = getelementptr inbounds i8, ptr %23, i64 48
  store i32 %508, ptr %509, align 8, !tbaa !8
  %510 = load <4 x float>, ptr %41, align 8, !tbaa !72
  store <4 x float> %510, ptr %503, align 4, !tbaa !72
  %511 = load i32, ptr %30, align 4, !tbaa !18
  %512 = getelementptr inbounds i8, ptr %23, i64 52
  store i32 %511, ptr %512, align 4, !tbaa !8
  %513 = getelementptr inbounds i8, ptr %23, i64 128
  %514 = load i32, ptr %29, align 8, !tbaa !17
  %515 = getelementptr inbounds i8, ptr %23, i64 56
  store i32 %514, ptr %515, align 8, !tbaa !8
  %516 = load <2 x float>, ptr %37, align 8, !tbaa !72
  store <2 x float> %516, ptr %513, align 4, !tbaa !72
  %517 = load i32, ptr %28, align 4, !tbaa !12
  %518 = getelementptr inbounds i8, ptr %23, i64 60
  store i32 %517, ptr %518, align 4, !tbaa !8
  %519 = load float, ptr %35, align 8, !tbaa !43
  %520 = getelementptr inbounds i8, ptr %23, i64 136
  store float %519, ptr %520, align 4, !tbaa !72
  %521 = sext i32 %501 to i64
  %522 = sext i32 %504 to i64
  %523 = mul nsw i64 %522, %521
  %524 = sext i32 %506 to i64
  %525 = mul i64 %523, %524
  %526 = sext i32 %508 to i64
  %527 = mul i64 %525, %526
  %528 = sext i32 %511 to i64
  %529 = mul i64 %527, %528
  %530 = sext i32 %514 to i64
  %531 = mul i64 %529, %530
  %532 = sext i32 %517 to i64
  %533 = mul i64 %531, %532
  %534 = getelementptr inbounds i8, ptr %23, i64 64
  store i64 %533, ptr %534, align 8, !tbaa !73
  %535 = load i32, ptr %61, align 4, !tbaa !55
  %536 = icmp sgt i32 %535, 0
  %537 = getelementptr inbounds i8, ptr %23, i64 220
  br i1 %536, label %538, label %549

538:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %6) #11
  %539 = load float, ptr %60, align 8, !tbaa !56
  %540 = load float, ptr %59, align 4, !tbaa !57
  %541 = load float, ptr %58, align 8, !tbaa !58
  %542 = load float, ptr %57, align 4, !tbaa !59
  %543 = load float, ptr %56, align 8, !tbaa !60
  %544 = load float, ptr %55, align 4, !tbaa !61
  %545 = load float, ptr %42, align 8, !tbaa !19
  %546 = extractelement <4 x float> %510, i64 0
  %547 = extractelement <4 x float> %510, i64 1
  %548 = extractelement <4 x float> %510, i64 2
  call void @nifti_quatern_to_mat44(ptr dead_on_unwind nonnull writable sret(%struct.mat44) align 4 %6, float noundef %539, float noundef %540, float noundef %541, float noundef %542, float noundef %543, float noundef %544, float noundef %546, float noundef %547, float noundef %548, float noundef %545)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %537, ptr noundef nonnull align 4 dereferenceable(64) %6, i64 64, i1 false), !tbaa.struct !74
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %6) #11
  br label %553

549:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %7) #11
  %550 = extractelement <4 x float> %510, i64 0
  %551 = extractelement <4 x float> %510, i64 1
  %552 = extractelement <4 x float> %510, i64 2
  call void @nifti_quatern_to_mat44(ptr dead_on_unwind nonnull writable sret(%struct.mat44) align 4 %7, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef %550, float noundef %551, float noundef %552, float noundef 0.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %537, ptr noundef nonnull align 4 dereferenceable(64) %7, i64 64, i1 false), !tbaa.struct !74
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #11
  br label %553

553:                                              ; preds = %549, %538
  %554 = getelementptr inbounds i8, ptr %23, i64 284
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %8) #11
  %555 = getelementptr inbounds i8, ptr %23, i64 220
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %9) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %9, ptr noundef nonnull align 4 dereferenceable(64) %555, i64 64, i1 false), !tbaa.struct !74
  call void @nifti_mat44_inverse(ptr dead_on_unwind nonnull writable sret(%struct.mat44) align 4 %8, ptr noundef nonnull byval(%struct.mat44) align 8 %9)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %554, ptr noundef nonnull align 4 dereferenceable(64) %8, i64 64, i1 false), !tbaa.struct !74
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %8) #11
  %556 = load i32, ptr %54, align 8, !tbaa !62
  %557 = icmp sgt i32 %556, 0
  br i1 %557, label %558, label %560

558:                                              ; preds = %553
  %559 = getelementptr inbounds i8, ptr %23, i64 412
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %10) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %11) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %11, ptr noundef nonnull align 4 dereferenceable(64) %81, i64 64, i1 false), !tbaa.struct !74
  call void @nifti_mat44_inverse(ptr dead_on_unwind nonnull writable sret(%struct.mat44) align 4 %10, ptr noundef nonnull byval(%struct.mat44) align 8 %11)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %11) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %559, ptr noundef nonnull align 4 dereferenceable(64) %10, i64 64, i1 false), !tbaa.struct !74
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %10) #11
  br label %560

560:                                              ; preds = %553, %558, %16, %20, %2, %13, %497, %490, %24
  %.0 = phi ptr [ null, %490 ], [ null, %497 ], [ null, %24 ], [ null, %13 ], [ null, %2 ], [ null, %20 ], [ null, %16 ], [ %23, %558 ], [ %23, %553 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %3) #11
  ret ptr %.0
}

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn
declare double @strtod(ptr noundef readonly, ptr nocapture noundef) local_unnamed_addr #8

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite) "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 nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #8 = { mustprogress nofree nounwind willreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(read) }
attributes #13 = { nounwind allocsize(0,1) }
attributes #14 = { cold nounwind }
attributes #15 = { 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 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"int", !6, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"any pointer", !6, i64 0}
!12 = !{!13, !9, i64 28}
!13 = !{!"", !9, i64 0, !9, i64 4, !9, i64 8, !9, i64 12, !9, i64 16, !9, i64 20, !9, i64 24, !9, i64 28, !6, i64 32, !14, i64 64, !9, i64 72, !9, i64 76, !15, i64 80, !15, i64 84, !15, i64 88, !15, i64 92, !15, i64 96, !15, i64 100, !15, i64 104, !6, i64 108, !15, i64 140, !15, i64 144, !15, i64 148, !15, i64 152, !9, i64 156, !9, i64 160, !9, i64 164, !9, i64 168, !9, i64 172, !9, i64 176, !9, i64 180, !9, i64 184, !15, i64 188, !15, i64 192, !15, i64 196, !15, i64 200, !15, i64 204, !15, i64 208, !15, i64 212, !15, i64 216, !16, i64 220, !16, i64 284, !16, i64 348, !16, i64 412, !15, i64 476, !9, i64 480, !9, i64 484, !9, i64 488, !9, i64 492, !15, i64 496, !15, i64 500, !15, i64 504, !6, i64 508, !6, i64 524, !6, i64 604, !11, i64 632, !11, i64 640, !9, i64 648, !9, i64 652, !9, i64 656, !11, i64 664, !9, i64 672, !11, i64 680, !9, i64 688}
!14 = !{!"long", !6, i64 0}
!15 = !{!"float", !6, i64 0}
!16 = !{!"", !6, i64 0}
!17 = !{!13, !9, i64 24}
!18 = !{!13, !9, i64 20}
!19 = !{!13, !15, i64 216}
!20 = !{!13, !9, i64 656}
!21 = !{!22, !22, i64 0}
!22 = !{!"short", !6, i64 0}
!23 = distinct !{!23, !24}
!24 = !{!"llvm.loop.mustprogress"}
!25 = distinct !{!25, !24}
!26 = distinct !{!26, !24}
!27 = !{!13, !9, i64 488}
!28 = !{!13, !11, i64 632}
!29 = !{!13, !11, i64 640}
!30 = !{!13, !9, i64 648}
!31 = !{!13, !9, i64 76}
!32 = !{!13, !9, i64 0}
!33 = !{!13, !9, i64 4}
!34 = !{!13, !9, i64 8}
!35 = !{!13, !9, i64 12}
!36 = !{!13, !9, i64 16}
!37 = !{!13, !15, i64 80}
!38 = !{!13, !15, i64 84}
!39 = !{!13, !15, i64 88}
!40 = !{!13, !15, i64 92}
!41 = !{!13, !15, i64 96}
!42 = !{!13, !15, i64 100}
!43 = !{!13, !15, i64 104}
!44 = !{!13, !15, i64 148}
!45 = !{!13, !15, i64 152}
!46 = !{!13, !15, i64 140}
!47 = !{!13, !15, i64 144}
!48 = !{!13, !9, i64 492}
!49 = !{!13, !15, i64 496}
!50 = !{!13, !15, i64 500}
!51 = !{!13, !15, i64 504}
!52 = !{!13, !15, i64 476}
!53 = !{!13, !9, i64 480}
!54 = !{!13, !9, i64 484}
!55 = !{!13, !9, i64 156}
!56 = !{!13, !15, i64 192}
!57 = !{!13, !15, i64 196}
!58 = !{!13, !15, i64 200}
!59 = !{!13, !15, i64 204}
!60 = !{!13, !15, i64 208}
!61 = !{!13, !15, i64 212}
!62 = !{!13, !9, i64 160}
!63 = !{!13, !9, i64 164}
!64 = !{!13, !9, i64 168}
!65 = !{!13, !9, i64 172}
!66 = !{!13, !9, i64 176}
!67 = !{!13, !9, i64 180}
!68 = !{!13, !9, i64 184}
!69 = !{!13, !15, i64 188}
!70 = !{!13, !9, i64 672}
!71 = !{!13, !9, i64 72}
!72 = !{!15, !15, i64 0}
!73 = !{!13, !14, i64 64}
!74 = !{i64 0, i64 64, !5}


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