; LLVM IR from zeux/meshoptimizer :: gltf (gltfpack)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.Settings = type { i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, float, float, i8, i8, i8, float, i32, i8, i8, i8, i8, i8, [4 x float], [4 x i32], [4 x i32], [4 x i32], i32, i8, i8, i8, i8, i32 }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@stderr = external global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [87 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z10getVersionB5cxx11v(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8) #0

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z8gltfpackPKcS0_S0_8Settings(ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.Settings) align 8) #0

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z8defaultsv(ptr dead_on_unwind noalias writable sret(%struct.Settings) align 4) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11textureMaskPKc(ptr noundef) #4

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #5 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca %struct.Settings, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca i8, align 1
  %13 = alloca %"class.std::vector.8", align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca float, align 4
  %25 = alloca i32, align 4
  %26 = alloca float, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca i64, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %struct.Settings, align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %struct.Settings, align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  %36 = call ptr @setlocale(i32 noundef 6, ptr noundef @.str.20) #9
  call void @meshopt_encodeVertexVersion(i32 noundef 0)
  call void @meshopt_encodeIndexVersion(i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 148, ptr %6) #9
  call void @_Z8defaultsv(ptr dead_on_unwind writable sret(%struct.Settings) align 4 %6)
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  store ptr null, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  store ptr null, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  store ptr null, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #9
  store i8 0, ptr %10, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #9
  store i8 0, ptr %11, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #9
  store i8 0, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #9
  call void @_ZNSt6vectorIPKcSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  store i32 1, ptr %14, align 4, !tbaa !5
  br label %37

37:                                               ; preds = %1141, %2
  %38 = load i32, ptr %14, align 4, !tbaa !5
  %39 = load i32, ptr %4, align 4, !tbaa !5
  %40 = icmp slt i32 %38, %39
  br i1 %40, label %42, label %41

41:                                               ; preds = %37
  store i32 2, ptr %15, align 4
  br label %1145

42:                                               ; preds = %37
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %43 = load ptr, ptr %5, align 8, !tbaa !9
  %44 = load i32, ptr %14, align 4, !tbaa !5
  %45 = sext i32 %44 to i64
  %46 = getelementptr inbounds ptr, ptr %43, i64 %45
  %47 = load ptr, ptr %46, align 8, !tbaa !9
  store ptr %47, ptr %16, align 8, !tbaa !9
  %48 = load ptr, ptr %16, align 8, !tbaa !9
  %49 = call i32 @strcmp(ptr noundef %48, ptr noundef @.str.21) #10
  %50 = icmp eq i32 %49, 0
  br i1 %50, label %51, label %83

51:                                               ; preds = %42
  %52 = load i32, ptr %14, align 4, !tbaa !5
  %53 = add nsw i32 %52, 1
  %54 = load i32, ptr %4, align 4, !tbaa !5
  %55 = icmp slt i32 %53, %54
  br i1 %55, label %56, label %83

56:                                               ; preds = %51
  %57 = load ptr, ptr %5, align 8, !tbaa !9
  %58 = load i32, ptr %14, align 4, !tbaa !5
  %59 = add nsw i32 %58, 1
  %60 = sext i32 %59 to i64
  %61 = getelementptr inbounds ptr, ptr %57, i64 %60
  %62 = load ptr, ptr %61, align 8, !tbaa !9
  %63 = getelementptr inbounds i8, ptr %62, i64 0
  %64 = load i8, ptr %63, align 1, !tbaa !13
  %65 = sext i8 %64 to i32
  %66 = call i32 @isdigit(i32 noundef %65) #10
  %67 = icmp ne i32 %66, 0
  br i1 %67, label %68, label %83

68:                                               ; preds = %56
  %69 = load ptr, ptr %5, align 8, !tbaa !9
  %70 = load i32, ptr %14, align 4, !tbaa !5
  %71 = add nsw i32 %70, 1
  store i32 %71, ptr %14, align 4, !tbaa !5
  %72 = sext i32 %71 to i64
  %73 = getelementptr inbounds ptr, ptr %69, i64 %72
  %74 = load ptr, ptr %73, align 8, !tbaa !9
  %75 = call i32 @atoi(ptr noundef %74) #10
  %76 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %75, i32 noundef 1, i32 noundef 16)
          to label %77 unwind label %79

77:                                               ; preds = %68
  %78 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 0
  store i32 %76, ptr %78, align 4, !tbaa !14
  br label %1137

79:                                               ; preds = %1078, %1037, %939, %527, %494, %443, %410, %328, %296, %264, %232, %168, %136, %104, %68
  %80 = landingpad { ptr, i32 }
          cleanup
  %81 = extractvalue { ptr, i32 } %80, 0
  store ptr %81, ptr %17, align 8
  %82 = extractvalue { ptr, i32 } %80, 1
  store i32 %82, ptr %18, align 4
  br label %1144

83:                                               ; preds = %56, %51, %42
  %84 = load ptr, ptr %16, align 8, !tbaa !9
  %85 = call i32 @strcmp(ptr noundef %84, ptr noundef @.str.22) #10
  %86 = icmp eq i32 %85, 0
  br i1 %86, label %87, label %115

87:                                               ; preds = %83
  %88 = load i32, ptr %14, align 4, !tbaa !5
  %89 = add nsw i32 %88, 1
  %90 = load i32, ptr %4, align 4, !tbaa !5
  %91 = icmp slt i32 %89, %90
  br i1 %91, label %92, label %115

92:                                               ; preds = %87
  %93 = load ptr, ptr %5, align 8, !tbaa !9
  %94 = load i32, ptr %14, align 4, !tbaa !5
  %95 = add nsw i32 %94, 1
  %96 = sext i32 %95 to i64
  %97 = getelementptr inbounds ptr, ptr %93, i64 %96
  %98 = load ptr, ptr %97, align 8, !tbaa !9
  %99 = getelementptr inbounds i8, ptr %98, i64 0
  %100 = load i8, ptr %99, align 1, !tbaa !13
  %101 = sext i8 %100 to i32
  %102 = call i32 @isdigit(i32 noundef %101) #10
  %103 = icmp ne i32 %102, 0
  br i1 %103, label %104, label %115

104:                                              ; preds = %92
  %105 = load ptr, ptr %5, align 8, !tbaa !9
  %106 = load i32, ptr %14, align 4, !tbaa !5
  %107 = add nsw i32 %106, 1
  store i32 %107, ptr %14, align 4, !tbaa !5
  %108 = sext i32 %107 to i64
  %109 = getelementptr inbounds ptr, ptr %105, i64 %108
  %110 = load ptr, ptr %109, align 8, !tbaa !9
  %111 = call i32 @atoi(ptr noundef %110) #10
  %112 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %111, i32 noundef 1, i32 noundef 16)
          to label %113 unwind label %79

113:                                              ; preds = %104
  %114 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 1
  store i32 %112, ptr %114, align 4, !tbaa !17
  br label %1136

115:                                              ; preds = %92, %87, %83
  %116 = load ptr, ptr %16, align 8, !tbaa !9
  %117 = call i32 @strcmp(ptr noundef %116, ptr noundef @.str.23) #10
  %118 = icmp eq i32 %117, 0
  br i1 %118, label %119, label %147

119:                                              ; preds = %115
  %120 = load i32, ptr %14, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  %122 = load i32, ptr %4, align 4, !tbaa !5
  %123 = icmp slt i32 %121, %122
  br i1 %123, label %124, label %147

124:                                              ; preds = %119
  %125 = load ptr, ptr %5, align 8, !tbaa !9
  %126 = load i32, ptr %14, align 4, !tbaa !5
  %127 = add nsw i32 %126, 1
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds ptr, ptr %125, i64 %128
  %130 = load ptr, ptr %129, align 8, !tbaa !9
  %131 = getelementptr inbounds i8, ptr %130, i64 0
  %132 = load i8, ptr %131, align 1, !tbaa !13
  %133 = sext i8 %132 to i32
  %134 = call i32 @isdigit(i32 noundef %133) #10
  %135 = icmp ne i32 %134, 0
  br i1 %135, label %136, label %147

136:                                              ; preds = %124
  %137 = load ptr, ptr %5, align 8, !tbaa !9
  %138 = load i32, ptr %14, align 4, !tbaa !5
  %139 = add nsw i32 %138, 1
  store i32 %139, ptr %14, align 4, !tbaa !5
  %140 = sext i32 %139 to i64
  %141 = getelementptr inbounds ptr, ptr %137, i64 %140
  %142 = load ptr, ptr %141, align 8, !tbaa !9
  %143 = call i32 @atoi(ptr noundef %142) #10
  %144 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %143, i32 noundef 1, i32 noundef 16)
          to label %145 unwind label %79

145:                                              ; preds = %136
  %146 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 2
  store i32 %144, ptr %146, align 4, !tbaa !18
  br label %1135

147:                                              ; preds = %124, %119, %115
  %148 = load ptr, ptr %16, align 8, !tbaa !9
  %149 = call i32 @strcmp(ptr noundef %148, ptr noundef @.str.24) #10
  %150 = icmp eq i32 %149, 0
  br i1 %150, label %151, label %179

151:                                              ; preds = %147
  %152 = load i32, ptr %14, align 4, !tbaa !5
  %153 = add nsw i32 %152, 1
  %154 = load i32, ptr %4, align 4, !tbaa !5
  %155 = icmp slt i32 %153, %154
  br i1 %155, label %156, label %179

156:                                              ; preds = %151
  %157 = load ptr, ptr %5, align 8, !tbaa !9
  %158 = load i32, ptr %14, align 4, !tbaa !5
  %159 = add nsw i32 %158, 1
  %160 = sext i32 %159 to i64
  %161 = getelementptr inbounds ptr, ptr %157, i64 %160
  %162 = load ptr, ptr %161, align 8, !tbaa !9
  %163 = getelementptr inbounds i8, ptr %162, i64 0
  %164 = load i8, ptr %163, align 1, !tbaa !13
  %165 = sext i8 %164 to i32
  %166 = call i32 @isdigit(i32 noundef %165) #10
  %167 = icmp ne i32 %166, 0
  br i1 %167, label %168, label %179

168:                                              ; preds = %156
  %169 = load ptr, ptr %5, align 8, !tbaa !9
  %170 = load i32, ptr %14, align 4, !tbaa !5
  %171 = add nsw i32 %170, 1
  store i32 %171, ptr %14, align 4, !tbaa !5
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds ptr, ptr %169, i64 %172
  %174 = load ptr, ptr %173, align 8, !tbaa !9
  %175 = call i32 @atoi(ptr noundef %174) #10
  %176 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %175, i32 noundef 1, i32 noundef 16)
          to label %177 unwind label %79

177:                                              ; preds = %168
  %178 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 3
  store i32 %176, ptr %178, align 4, !tbaa !19
  br label %1134

179:                                              ; preds = %156, %151, %147
  %180 = load ptr, ptr %16, align 8, !tbaa !9
  %181 = call i32 @strcmp(ptr noundef %180, ptr noundef @.str.25) #10
  %182 = icmp eq i32 %181, 0
  br i1 %182, label %183, label %186

183:                                              ; preds = %179
  %184 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 5
  store i8 0, ptr %184, align 1, !tbaa !20
  %185 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 4
  store i8 0, ptr %185, align 4, !tbaa !21
  br label %1133

186:                                              ; preds = %179
  %187 = load ptr, ptr %16, align 8, !tbaa !9
  %188 = call i32 @strcmp(ptr noundef %187, ptr noundef @.str.26) #10
  %189 = icmp eq i32 %188, 0
  br i1 %189, label %190, label %193

190:                                              ; preds = %186
  %191 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 5
  store i8 0, ptr %191, align 1, !tbaa !20
  %192 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 4
  store i8 1, ptr %192, align 4, !tbaa !21
  br label %1132

193:                                              ; preds = %186
  %194 = load ptr, ptr %16, align 8, !tbaa !9
  %195 = call i32 @strcmp(ptr noundef %194, ptr noundef @.str.27) #10
  %196 = icmp eq i32 %195, 0
  br i1 %196, label %197, label %199

197:                                              ; preds = %193
  %198 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 5
  store i8 1, ptr %198, align 1, !tbaa !20
  br label %1131

199:                                              ; preds = %193
  %200 = load ptr, ptr %16, align 8, !tbaa !9
  %201 = call i32 @strcmp(ptr noundef %200, ptr noundef @.str.28) #10
  %202 = icmp eq i32 %201, 0
  br i1 %202, label %203, label %205

203:                                              ; preds = %199
  %204 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 6
  store i8 1, ptr %204, align 2, !tbaa !22
  br label %1130

205:                                              ; preds = %199
  %206 = load ptr, ptr %16, align 8, !tbaa !9
  %207 = call i32 @strcmp(ptr noundef %206, ptr noundef @.str.29) #10
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %211

209:                                              ; preds = %205
  %210 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 7
  store i8 1, ptr %210, align 1, !tbaa !23
  br label %1129

211:                                              ; preds = %205
  %212 = load ptr, ptr %16, align 8, !tbaa !9
  %213 = call i32 @strcmp(ptr noundef %212, ptr noundef @.str.30) #10
  %214 = icmp eq i32 %213, 0
  br i1 %214, label %215, label %243

215:                                              ; preds = %211
  %216 = load i32, ptr %14, align 4, !tbaa !5
  %217 = add nsw i32 %216, 1
  %218 = load i32, ptr %4, align 4, !tbaa !5
  %219 = icmp slt i32 %217, %218
  br i1 %219, label %220, label %243

220:                                              ; preds = %215
  %221 = load ptr, ptr %5, align 8, !tbaa !9
  %222 = load i32, ptr %14, align 4, !tbaa !5
  %223 = add nsw i32 %222, 1
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds ptr, ptr %221, i64 %224
  %226 = load ptr, ptr %225, align 8, !tbaa !9
  %227 = getelementptr inbounds i8, ptr %226, i64 0
  %228 = load i8, ptr %227, align 1, !tbaa !13
  %229 = sext i8 %228 to i32
  %230 = call i32 @isdigit(i32 noundef %229) #10
  %231 = icmp ne i32 %230, 0
  br i1 %231, label %232, label %243

232:                                              ; preds = %220
  %233 = load ptr, ptr %5, align 8, !tbaa !9
  %234 = load i32, ptr %14, align 4, !tbaa !5
  %235 = add nsw i32 %234, 1
  store i32 %235, ptr %14, align 4, !tbaa !5
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds ptr, ptr %233, i64 %236
  %238 = load ptr, ptr %237, align 8, !tbaa !9
  %239 = call i32 @atoi(ptr noundef %238) #10
  %240 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %239, i32 noundef 1, i32 noundef 24)
          to label %241 unwind label %79

241:                                              ; preds = %232
  %242 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 8
  store i32 %240, ptr %242, align 4, !tbaa !24
  br label %1128

243:                                              ; preds = %220, %215, %211
  %244 = load ptr, ptr %16, align 8, !tbaa !9
  %245 = call i32 @strcmp(ptr noundef %244, ptr noundef @.str.31) #10
  %246 = icmp eq i32 %245, 0
  br i1 %246, label %247, label %275

247:                                              ; preds = %243
  %248 = load i32, ptr %14, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  %250 = load i32, ptr %4, align 4, !tbaa !5
  %251 = icmp slt i32 %249, %250
  br i1 %251, label %252, label %275

252:                                              ; preds = %247
  %253 = load ptr, ptr %5, align 8, !tbaa !9
  %254 = load i32, ptr %14, align 4, !tbaa !5
  %255 = add nsw i32 %254, 1
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds ptr, ptr %253, i64 %256
  %258 = load ptr, ptr %257, align 8, !tbaa !9
  %259 = getelementptr inbounds i8, ptr %258, i64 0
  %260 = load i8, ptr %259, align 1, !tbaa !13
  %261 = sext i8 %260 to i32
  %262 = call i32 @isdigit(i32 noundef %261) #10
  %263 = icmp ne i32 %262, 0
  br i1 %263, label %264, label %275

264:                                              ; preds = %252
  %265 = load ptr, ptr %5, align 8, !tbaa !9
  %266 = load i32, ptr %14, align 4, !tbaa !5
  %267 = add nsw i32 %266, 1
  store i32 %267, ptr %14, align 4, !tbaa !5
  %268 = sext i32 %267 to i64
  %269 = getelementptr inbounds ptr, ptr %265, i64 %268
  %270 = load ptr, ptr %269, align 8, !tbaa !9
  %271 = call i32 @atoi(ptr noundef %270) #10
  %272 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %271, i32 noundef 4, i32 noundef 16)
          to label %273 unwind label %79

273:                                              ; preds = %264
  %274 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 9
  store i32 %272, ptr %274, align 4, !tbaa !25
  br label %1127

275:                                              ; preds = %252, %247, %243
  %276 = load ptr, ptr %16, align 8, !tbaa !9
  %277 = call i32 @strcmp(ptr noundef %276, ptr noundef @.str.32) #10
  %278 = icmp eq i32 %277, 0
  br i1 %278, label %279, label %307

279:                                              ; preds = %275
  %280 = load i32, ptr %14, align 4, !tbaa !5
  %281 = add nsw i32 %280, 1
  %282 = load i32, ptr %4, align 4, !tbaa !5
  %283 = icmp slt i32 %281, %282
  br i1 %283, label %284, label %307

284:                                              ; preds = %279
  %285 = load ptr, ptr %5, align 8, !tbaa !9
  %286 = load i32, ptr %14, align 4, !tbaa !5
  %287 = add nsw i32 %286, 1
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds ptr, ptr %285, i64 %288
  %290 = load ptr, ptr %289, align 8, !tbaa !9
  %291 = getelementptr inbounds i8, ptr %290, i64 0
  %292 = load i8, ptr %291, align 1, !tbaa !13
  %293 = sext i8 %292 to i32
  %294 = call i32 @isdigit(i32 noundef %293) #10
  %295 = icmp ne i32 %294, 0
  br i1 %295, label %296, label %307

296:                                              ; preds = %284
  %297 = load ptr, ptr %5, align 8, !tbaa !9
  %298 = load i32, ptr %14, align 4, !tbaa !5
  %299 = add nsw i32 %298, 1
  store i32 %299, ptr %14, align 4, !tbaa !5
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds ptr, ptr %297, i64 %300
  %302 = load ptr, ptr %301, align 8, !tbaa !9
  %303 = call i32 @atoi(ptr noundef %302) #10
  %304 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %303, i32 noundef 1, i32 noundef 24)
          to label %305 unwind label %79

305:                                              ; preds = %296
  %306 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 10
  store i32 %304, ptr %306, align 4, !tbaa !26
  br label %1126

307:                                              ; preds = %284, %279, %275
  %308 = load ptr, ptr %16, align 8, !tbaa !9
  %309 = call i32 @strcmp(ptr noundef %308, ptr noundef @.str.33) #10
  %310 = icmp eq i32 %309, 0
  br i1 %310, label %311, label %339

311:                                              ; preds = %307
  %312 = load i32, ptr %14, align 4, !tbaa !5
  %313 = add nsw i32 %312, 1
  %314 = load i32, ptr %4, align 4, !tbaa !5
  %315 = icmp slt i32 %313, %314
  br i1 %315, label %316, label %339

316:                                              ; preds = %311
  %317 = load ptr, ptr %5, align 8, !tbaa !9
  %318 = load i32, ptr %14, align 4, !tbaa !5
  %319 = add nsw i32 %318, 1
  %320 = sext i32 %319 to i64
  %321 = getelementptr inbounds ptr, ptr %317, i64 %320
  %322 = load ptr, ptr %321, align 8, !tbaa !9
  %323 = getelementptr inbounds i8, ptr %322, i64 0
  %324 = load i8, ptr %323, align 1, !tbaa !13
  %325 = sext i8 %324 to i32
  %326 = call i32 @isdigit(i32 noundef %325) #10
  %327 = icmp ne i32 %326, 0
  br i1 %327, label %328, label %339

328:                                              ; preds = %316
  %329 = load ptr, ptr %5, align 8, !tbaa !9
  %330 = load i32, ptr %14, align 4, !tbaa !5
  %331 = add nsw i32 %330, 1
  store i32 %331, ptr %14, align 4, !tbaa !5
  %332 = sext i32 %331 to i64
  %333 = getelementptr inbounds ptr, ptr %329, i64 %332
  %334 = load ptr, ptr %333, align 8, !tbaa !9
  %335 = call i32 @atoi(ptr noundef %334) #10
  %336 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %335, i32 noundef 0, i32 noundef 100)
          to label %337 unwind label %79

337:                                              ; preds = %328
  %338 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 11
  store i32 %336, ptr %338, align 4, !tbaa !27
  br label %1125

339:                                              ; preds = %316, %311, %307
  %340 = load ptr, ptr %16, align 8, !tbaa !9
  %341 = call i32 @strcmp(ptr noundef %340, ptr noundef @.str.34) #10
  %342 = icmp eq i32 %341, 0
  br i1 %342, label %343, label %345

343:                                              ; preds = %339
  %344 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 12
  store i8 1, ptr %344, align 4, !tbaa !28
  br label %1124

345:                                              ; preds = %339
  %346 = load ptr, ptr %16, align 8, !tbaa !9
  %347 = call i32 @strcmp(ptr noundef %346, ptr noundef @.str.35) #10
  %348 = icmp eq i32 %347, 0
  br i1 %348, label %349, label %351

349:                                              ; preds = %345
  %350 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 13
  store i8 1, ptr %350, align 1, !tbaa !29
  br label %1123

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

355:                                              ; preds = %351
  %356 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 14
  store i8 1, ptr %356, align 2, !tbaa !30
  br label %1122

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

361:                                              ; preds = %357
  %362 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 15
  store i8 1, ptr %362, align 1, !tbaa !31
  br label %1121

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

367:                                              ; preds = %363
  %368 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 16
  store i8 1, ptr %368, align 4, !tbaa !32
  br label %1120

369:                                              ; preds = %363
  %370 = load ptr, ptr %16, align 8, !tbaa !9
  %371 = call i32 @strcmp(ptr noundef %370, ptr noundef @.str.39) #10
  %372 = icmp eq i32 %371, 0
  br i1 %372, label %373, label %377

373:                                              ; preds = %369
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %374, ptr noundef @.str.40) #9
  %376 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 17
  store i8 0, ptr %376, align 1, !tbaa !33
  br label %1119

377:                                              ; preds = %369
  %378 = load ptr, ptr %16, align 8, !tbaa !9
  %379 = call i32 @strcmp(ptr noundef %378, ptr noundef @.str.41) #10
  %380 = icmp eq i32 %379, 0
  br i1 %380, label %381, label %383

381:                                              ; preds = %377
  %382 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 18
  store i8 1, ptr %382, align 2, !tbaa !34
  br label %1118

383:                                              ; preds = %377
  %384 = load ptr, ptr %16, align 8, !tbaa !9
  %385 = call i32 @strcmp(ptr noundef %384, ptr noundef @.str.42) #10
  %386 = icmp eq i32 %385, 0
  br i1 %386, label %387, label %389

387:                                              ; preds = %383
  %388 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 19
  store i8 1, ptr %388, align 1, !tbaa !35
  br label %1117

389:                                              ; preds = %383
  %390 = load ptr, ptr %16, align 8, !tbaa !9
  %391 = call i32 @strcmp(ptr noundef %390, ptr noundef @.str.43) #10
  %392 = icmp eq i32 %391, 0
  br i1 %392, label %393, label %422

393:                                              ; preds = %389
  %394 = load i32, ptr %14, align 4, !tbaa !5
  %395 = add nsw i32 %394, 1
  %396 = load i32, ptr %4, align 4, !tbaa !5
  %397 = icmp slt i32 %395, %396
  br i1 %397, label %398, label %422

398:                                              ; preds = %393
  %399 = load ptr, ptr %5, align 8, !tbaa !9
  %400 = load i32, ptr %14, align 4, !tbaa !5
  %401 = add nsw i32 %400, 1
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds ptr, ptr %399, i64 %402
  %404 = load ptr, ptr %403, align 8, !tbaa !9
  %405 = getelementptr inbounds i8, ptr %404, i64 0
  %406 = load i8, ptr %405, align 1, !tbaa !13
  %407 = sext i8 %406 to i32
  %408 = call i32 @isdigit(i32 noundef %407) #10
  %409 = icmp ne i32 %408, 0
  br i1 %409, label %410, label %422

410:                                              ; preds = %398
  %411 = load ptr, ptr %5, align 8, !tbaa !9
  %412 = load i32, ptr %14, align 4, !tbaa !5
  %413 = add nsw i32 %412, 1
  store i32 %413, ptr %14, align 4, !tbaa !5
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds ptr, ptr %411, i64 %414
  %416 = load ptr, ptr %415, align 8, !tbaa !9
  %417 = call double @atof(ptr noundef %416) #10
  %418 = fptrunc double %417 to float
  %419 = invoke noundef float @_Z5clampIfET_S0_S0_S0_(float noundef %418, float noundef 0.000000e+00, float noundef 1.000000e+00)
          to label %420 unwind label %79

420:                                              ; preds = %410
  %421 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 20
  store float %419, ptr %421, align 4, !tbaa !36
  br label %1116

422:                                              ; preds = %398, %393, %389
  %423 = load ptr, ptr %16, align 8, !tbaa !9
  %424 = call i32 @strcmp(ptr noundef %423, ptr noundef @.str.44) #10
  %425 = icmp eq i32 %424, 0
  br i1 %425, label %426, label %455

426:                                              ; preds = %422
  %427 = load i32, ptr %14, align 4, !tbaa !5
  %428 = add nsw i32 %427, 1
  %429 = load i32, ptr %4, align 4, !tbaa !5
  %430 = icmp slt i32 %428, %429
  br i1 %430, label %431, label %455

431:                                              ; preds = %426
  %432 = load ptr, ptr %5, align 8, !tbaa !9
  %433 = load i32, ptr %14, align 4, !tbaa !5
  %434 = add nsw i32 %433, 1
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds ptr, ptr %432, i64 %435
  %437 = load ptr, ptr %436, align 8, !tbaa !9
  %438 = getelementptr inbounds i8, ptr %437, i64 0
  %439 = load i8, ptr %438, align 1, !tbaa !13
  %440 = sext i8 %439 to i32
  %441 = call i32 @isdigit(i32 noundef %440) #10
  %442 = icmp ne i32 %441, 0
  br i1 %442, label %443, label %455

443:                                              ; preds = %431
  %444 = load ptr, ptr %5, align 8, !tbaa !9
  %445 = load i32, ptr %14, align 4, !tbaa !5
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr %14, align 4, !tbaa !5
  %447 = sext i32 %446 to i64
  %448 = getelementptr inbounds ptr, ptr %444, i64 %447
  %449 = load ptr, ptr %448, align 8, !tbaa !9
  %450 = call double @atof(ptr noundef %449) #10
  %451 = fptrunc double %450 to float
  %452 = invoke noundef float @_Z5clampIfET_S0_S0_S0_(float noundef %451, float noundef 0.000000e+00, float noundef 1.000000e+00)
          to label %453 unwind label %79

453:                                              ; preds = %443
  %454 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 21
  store float %452, ptr %454, align 4, !tbaa !37
  br label %1115

455:                                              ; preds = %431, %426, %422
  %456 = load ptr, ptr %16, align 8, !tbaa !9
  %457 = call i32 @strcmp(ptr noundef %456, ptr noundef @.str.45) #10
  %458 = icmp eq i32 %457, 0
  br i1 %458, label %459, label %461

459:                                              ; preds = %455
  %460 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 22
  store i8 1, ptr %460, align 4, !tbaa !38
  br label %1114

461:                                              ; preds = %455
  %462 = load ptr, ptr %16, align 8, !tbaa !9
  %463 = call i32 @strcmp(ptr noundef %462, ptr noundef @.str.46) #10
  %464 = icmp eq i32 %463, 0
  br i1 %464, label %465, label %467

465:                                              ; preds = %461
  %466 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 23
  store i8 1, ptr %466, align 1, !tbaa !39
  br label %1113

467:                                              ; preds = %461
  %468 = load ptr, ptr %16, align 8, !tbaa !9
  %469 = call i32 @strcmp(ptr noundef %468, ptr noundef @.str.47) #10
  %470 = icmp eq i32 %469, 0
  br i1 %470, label %471, label %473

471:                                              ; preds = %467
  %472 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 24
  store i8 1, ptr %472, align 2, !tbaa !40
  br label %1112

473:                                              ; preds = %467
  %474 = load ptr, ptr %16, align 8, !tbaa !9
  %475 = call i32 @strcmp(ptr noundef %474, ptr noundef @.str.48) #10
  %476 = icmp eq i32 %475, 0
  br i1 %476, label %477, label %506

477:                                              ; preds = %473
  %478 = load i32, ptr %14, align 4, !tbaa !5
  %479 = add nsw i32 %478, 1
  %480 = load i32, ptr %4, align 4, !tbaa !5
  %481 = icmp slt i32 %479, %480
  br i1 %481, label %482, label %506

482:                                              ; preds = %477
  %483 = load ptr, ptr %5, align 8, !tbaa !9
  %484 = load i32, ptr %14, align 4, !tbaa !5
  %485 = add nsw i32 %484, 1
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds ptr, ptr %483, i64 %486
  %488 = load ptr, ptr %487, align 8, !tbaa !9
  %489 = getelementptr inbounds i8, ptr %488, i64 0
  %490 = load i8, ptr %489, align 1, !tbaa !13
  %491 = sext i8 %490 to i32
  %492 = call i32 @isdigit(i32 noundef %491) #10
  %493 = icmp ne i32 %492, 0
  br i1 %493, label %494, label %506

494:                                              ; preds = %482
  %495 = load ptr, ptr %5, align 8, !tbaa !9
  %496 = load i32, ptr %14, align 4, !tbaa !5
  %497 = add nsw i32 %496, 1
  store i32 %497, ptr %14, align 4, !tbaa !5
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds ptr, ptr %495, i64 %498
  %500 = load ptr, ptr %499, align 8, !tbaa !9
  %501 = call double @atof(ptr noundef %500) #10
  %502 = fptrunc double %501 to float
  %503 = invoke noundef float @_Z5clampIfET_S0_S0_S0_(float noundef %502, float noundef 0.000000e+00, float noundef 1.000000e+00)
          to label %504 unwind label %79

504:                                              ; preds = %494
  %505 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 25
  store float %503, ptr %505, align 4, !tbaa !41
  br label %1111

506:                                              ; preds = %482, %477, %473
  %507 = load ptr, ptr %16, align 8, !tbaa !9
  %508 = call i32 @strcmp(ptr noundef %507, ptr noundef @.str.49) #10
  %509 = icmp eq i32 %508, 0
  br i1 %509, label %510, label %538

510:                                              ; preds = %506
  %511 = load i32, ptr %14, align 4, !tbaa !5
  %512 = add nsw i32 %511, 1
  %513 = load i32, ptr %4, align 4, !tbaa !5
  %514 = icmp slt i32 %512, %513
  br i1 %514, label %515, label %538

515:                                              ; preds = %510
  %516 = load ptr, ptr %5, align 8, !tbaa !9
  %517 = load i32, ptr %14, align 4, !tbaa !5
  %518 = add nsw i32 %517, 1
  %519 = sext i32 %518 to i64
  %520 = getelementptr inbounds ptr, ptr %516, i64 %519
  %521 = load ptr, ptr %520, align 8, !tbaa !9
  %522 = getelementptr inbounds i8, ptr %521, i64 0
  %523 = load i8, ptr %522, align 1, !tbaa !13
  %524 = sext i8 %523 to i32
  %525 = call i32 @isdigit(i32 noundef %524) #10
  %526 = icmp ne i32 %525, 0
  br i1 %526, label %527, label %538

527:                                              ; preds = %515
  %528 = load ptr, ptr %5, align 8, !tbaa !9
  %529 = load i32, ptr %14, align 4, !tbaa !5
  %530 = add nsw i32 %529, 1
  store i32 %530, ptr %14, align 4, !tbaa !5
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds ptr, ptr %528, i64 %531
  %533 = load ptr, ptr %532, align 8, !tbaa !9
  %534 = call i32 @atoi(ptr noundef %533) #10
  %535 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %534, i32 noundef 3, i32 noundef 255)
          to label %536 unwind label %79

536:                                              ; preds = %527
  %537 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 26
  store i32 %535, ptr %537, align 4, !tbaa !42
  br label %1110

538:                                              ; preds = %515, %510, %506
  %539 = load ptr, ptr %16, align 8, !tbaa !9
  %540 = call i32 @strcmp(ptr noundef %539, ptr noundef @.str.50) #10
  %541 = icmp eq i32 %540, 0
  br i1 %541, label %542, label %576

542:                                              ; preds = %538
  %543 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 27
  store i8 1, ptr %543, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 -1, ptr %19, align 4, !tbaa !5
  %544 = load i32, ptr %14, align 4, !tbaa !5
  %545 = add nsw i32 %544, 1
  %546 = load i32, ptr %4, align 4, !tbaa !5
  %547 = icmp slt i32 %545, %546
  br i1 %547, label %548, label %568

548:                                              ; preds = %542
  %549 = load ptr, ptr %5, align 8, !tbaa !9
  %550 = load i32, ptr %14, align 4, !tbaa !5
  %551 = add nsw i32 %550, 1
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds ptr, ptr %549, i64 %552
  %554 = load ptr, ptr %553, align 8, !tbaa !9
  %555 = getelementptr inbounds i8, ptr %554, i64 0
  %556 = load i8, ptr %555, align 1, !tbaa !13
  %557 = sext i8 %556 to i32
  %558 = call i32 @isalpha(i32 noundef %557) #10
  %559 = icmp ne i32 %558, 0
  br i1 %559, label %560, label %568

560:                                              ; preds = %548
  %561 = load ptr, ptr %5, align 8, !tbaa !9
  %562 = load i32, ptr %14, align 4, !tbaa !5
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr %14, align 4, !tbaa !5
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds ptr, ptr %561, i64 %564
  %566 = load ptr, ptr %565, align 8, !tbaa !9
  %567 = call noundef i32 @_Z11textureMaskPKc(ptr noundef %566)
  store i32 %567, ptr %19, align 4, !tbaa !5
  br label %568

568:                                              ; preds = %560, %548, %542
  %569 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 34
  %570 = load i32, ptr %19, align 4, !tbaa !5
  invoke void @_Z12applySettingI11TextureModeEvRA4_T_S1_j(ptr noundef nonnull align 4 dereferenceable(16) %569, i32 noundef 2, i32 noundef %570)
          to label %571 unwind label %572

571:                                              ; preds = %568
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %1109

572:                                              ; preds = %568
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %17, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %1144

576:                                              ; preds = %538
  %577 = load ptr, ptr %16, align 8, !tbaa !9
  %578 = call i32 @strcmp(ptr noundef %577, ptr noundef @.str.51) #10
  %579 = icmp eq i32 %578, 0
  br i1 %579, label %580, label %614

580:                                              ; preds = %576
  %581 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 27
  store i8 1, ptr %581, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 -1, ptr %20, align 4, !tbaa !5
  %582 = load i32, ptr %14, align 4, !tbaa !5
  %583 = add nsw i32 %582, 1
  %584 = load i32, ptr %4, align 4, !tbaa !5
  %585 = icmp slt i32 %583, %584
  br i1 %585, label %586, label %606

586:                                              ; preds = %580
  %587 = load ptr, ptr %5, align 8, !tbaa !9
  %588 = load i32, ptr %14, align 4, !tbaa !5
  %589 = add nsw i32 %588, 1
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds ptr, ptr %587, i64 %590
  %592 = load ptr, ptr %591, align 8, !tbaa !9
  %593 = getelementptr inbounds i8, ptr %592, i64 0
  %594 = load i8, ptr %593, align 1, !tbaa !13
  %595 = sext i8 %594 to i32
  %596 = call i32 @isalpha(i32 noundef %595) #10
  %597 = icmp ne i32 %596, 0
  br i1 %597, label %598, label %606

598:                                              ; preds = %586
  %599 = load ptr, ptr %5, align 8, !tbaa !9
  %600 = load i32, ptr %14, align 4, !tbaa !5
  %601 = add nsw i32 %600, 1
  store i32 %601, ptr %14, align 4, !tbaa !5
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds ptr, ptr %599, i64 %602
  %604 = load ptr, ptr %603, align 8, !tbaa !9
  %605 = call noundef i32 @_Z11textureMaskPKc(ptr noundef %604)
  store i32 %605, ptr %20, align 4, !tbaa !5
  br label %606

606:                                              ; preds = %598, %586, %580
  %607 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 34
  %608 = load i32, ptr %20, align 4, !tbaa !5
  invoke void @_Z12applySettingI11TextureModeEvRA4_T_S1_j(ptr noundef nonnull align 4 dereferenceable(16) %607, i32 noundef 1, i32 noundef %608)
          to label %609 unwind label %610

609:                                              ; preds = %606
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %1108

610:                                              ; preds = %606
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %17, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %1144

614:                                              ; preds = %576
  %615 = load ptr, ptr %16, align 8, !tbaa !9
  %616 = call i32 @strcmp(ptr noundef %615, ptr noundef @.str.52) #10
  %617 = icmp eq i32 %616, 0
  br i1 %617, label %618, label %652

618:                                              ; preds = %614
  %619 = load i32, ptr %14, align 4, !tbaa !5
  %620 = add nsw i32 %619, 1
  %621 = load i32, ptr %4, align 4, !tbaa !5
  %622 = icmp slt i32 %620, %621
  br i1 %622, label %623, label %652

623:                                              ; preds = %618
  %624 = load ptr, ptr %5, align 8, !tbaa !9
  %625 = load i32, ptr %14, align 4, !tbaa !5
  %626 = add nsw i32 %625, 1
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds ptr, ptr %624, i64 %627
  %629 = load ptr, ptr %628, align 8, !tbaa !9
  %630 = getelementptr inbounds i8, ptr %629, i64 0
  %631 = load i8, ptr %630, align 1, !tbaa !13
  %632 = sext i8 %631 to i32
  %633 = call i32 @isdigit(i32 noundef %632) #10
  %634 = icmp ne i32 %633, 0
  br i1 %634, label %635, label %652

635:                                              ; preds = %623
  store i8 1, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %636 = load ptr, ptr %5, align 8, !tbaa !9
  %637 = load i32, ptr %14, align 4, !tbaa !5
  %638 = add nsw i32 %637, 1
  store i32 %638, ptr %14, align 4, !tbaa !5
  %639 = sext i32 %638 to i64
  %640 = getelementptr inbounds ptr, ptr %636, i64 %639
  %641 = load ptr, ptr %640, align 8, !tbaa !9
  %642 = call i32 @atoi(ptr noundef %641) #10
  %643 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %642, i32 noundef 1, i32 noundef 10)
          to label %644 unwind label %648

644:                                              ; preds = %635
  store i32 %643, ptr %21, align 4, !tbaa !5
  %645 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 35
  %646 = load i32, ptr %21, align 4, !tbaa !5
  invoke void @_Z12applySettingIiEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %645, i32 noundef %646, i32 noundef -1)
          to label %647 unwind label %648

647:                                              ; preds = %644
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %1107

648:                                              ; preds = %644, %635
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %17, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %1144

652:                                              ; preds = %623, %618, %614
  %653 = load ptr, ptr %16, align 8, !tbaa !9
  %654 = call i32 @strcmp(ptr noundef %653, ptr noundef @.str.52) #10
  %655 = icmp eq i32 %654, 0
  br i1 %655, label %656, label %710

656:                                              ; preds = %652
  %657 = load i32, ptr %14, align 4, !tbaa !5
  %658 = add nsw i32 %657, 2
  %659 = load i32, ptr %4, align 4, !tbaa !5
  %660 = icmp slt i32 %658, %659
  br i1 %660, label %661, label %710

661:                                              ; preds = %656
  %662 = load ptr, ptr %5, align 8, !tbaa !9
  %663 = load i32, ptr %14, align 4, !tbaa !5
  %664 = add nsw i32 %663, 1
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds ptr, ptr %662, i64 %665
  %667 = load ptr, ptr %666, align 8, !tbaa !9
  %668 = getelementptr inbounds i8, ptr %667, i64 0
  %669 = load i8, ptr %668, align 1, !tbaa !13
  %670 = sext i8 %669 to i32
  %671 = call i32 @isalpha(i32 noundef %670) #10
  %672 = icmp ne i32 %671, 0
  br i1 %672, label %673, label %710

673:                                              ; preds = %661
  %674 = load ptr, ptr %5, align 8, !tbaa !9
  %675 = load i32, ptr %14, align 4, !tbaa !5
  %676 = add nsw i32 %675, 2
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds ptr, ptr %674, i64 %677
  %679 = load ptr, ptr %678, align 8, !tbaa !9
  %680 = getelementptr inbounds i8, ptr %679, i64 0
  %681 = load i8, ptr %680, align 1, !tbaa !13
  %682 = sext i8 %681 to i32
  %683 = call i32 @isdigit(i32 noundef %682) #10
  %684 = icmp ne i32 %683, 0
  br i1 %684, label %685, label %710

685:                                              ; preds = %673
  store i8 1, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %686 = load ptr, ptr %5, align 8, !tbaa !9
  %687 = load i32, ptr %14, align 4, !tbaa !5
  %688 = add nsw i32 %687, 1
  store i32 %688, ptr %14, align 4, !tbaa !5
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds ptr, ptr %686, i64 %689
  %691 = load ptr, ptr %690, align 8, !tbaa !9
  %692 = call noundef i32 @_Z11textureMaskPKc(ptr noundef %691)
  store i32 %692, ptr %22, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %693 = load ptr, ptr %5, align 8, !tbaa !9
  %694 = load i32, ptr %14, align 4, !tbaa !5
  %695 = add nsw i32 %694, 1
  store i32 %695, ptr %14, align 4, !tbaa !5
  %696 = sext i32 %695 to i64
  %697 = getelementptr inbounds ptr, ptr %693, i64 %696
  %698 = load ptr, ptr %697, align 8, !tbaa !9
  %699 = call i32 @atoi(ptr noundef %698) #10
  %700 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %699, i32 noundef 1, i32 noundef 10)
          to label %701 unwind label %706

701:                                              ; preds = %685
  store i32 %700, ptr %23, align 4, !tbaa !5
  %702 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 35
  %703 = load i32, ptr %23, align 4, !tbaa !5
  %704 = load i32, ptr %22, align 4, !tbaa !5
  invoke void @_Z12applySettingIiEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %702, i32 noundef %703, i32 noundef %704)
          to label %705 unwind label %706

705:                                              ; preds = %701
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %1106

706:                                              ; preds = %701, %685
  %707 = landingpad { ptr, i32 }
          cleanup
  %708 = extractvalue { ptr, i32 } %707, 0
  store ptr %708, ptr %17, align 8
  %709 = extractvalue { ptr, i32 } %707, 1
  store i32 %709, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %1144

710:                                              ; preds = %673, %661, %656, %652
  %711 = load ptr, ptr %16, align 8, !tbaa !9
  %712 = call i32 @strcmp(ptr noundef %711, ptr noundef @.str.53) #10
  %713 = icmp eq i32 %712, 0
  br i1 %713, label %714, label %749

714:                                              ; preds = %710
  %715 = load i32, ptr %14, align 4, !tbaa !5
  %716 = add nsw i32 %715, 1
  %717 = load i32, ptr %4, align 4, !tbaa !5
  %718 = icmp slt i32 %716, %717
  br i1 %718, label %719, label %749

719:                                              ; preds = %714
  %720 = load ptr, ptr %5, align 8, !tbaa !9
  %721 = load i32, ptr %14, align 4, !tbaa !5
  %722 = add nsw i32 %721, 1
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds ptr, ptr %720, i64 %723
  %725 = load ptr, ptr %724, align 8, !tbaa !9
  %726 = getelementptr inbounds i8, ptr %725, i64 0
  %727 = load i8, ptr %726, align 1, !tbaa !13
  %728 = sext i8 %727 to i32
  %729 = call i32 @isdigit(i32 noundef %728) #10
  %730 = icmp ne i32 %729, 0
  br i1 %730, label %731, label %749

731:                                              ; preds = %719
  store i8 1, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %732 = load ptr, ptr %5, align 8, !tbaa !9
  %733 = load i32, ptr %14, align 4, !tbaa !5
  %734 = add nsw i32 %733, 1
  store i32 %734, ptr %14, align 4, !tbaa !5
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds ptr, ptr %732, i64 %735
  %737 = load ptr, ptr %736, align 8, !tbaa !9
  %738 = call double @atof(ptr noundef %737) #10
  %739 = fptrunc double %738 to float
  %740 = invoke noundef float @_Z5clampIfET_S0_S0_S0_(float noundef %739, float noundef 0.000000e+00, float noundef 1.000000e+00)
          to label %741 unwind label %745

741:                                              ; preds = %731
  store float %740, ptr %24, align 4, !tbaa !44
  %742 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 32
  %743 = load float, ptr %24, align 4, !tbaa !44
  invoke void @_Z12applySettingIfEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %742, float noundef %743, i32 noundef -1)
          to label %744 unwind label %745

744:                                              ; preds = %741
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %1105

745:                                              ; preds = %741, %731
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %17, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %1144

749:                                              ; preds = %719, %714, %710
  %750 = load ptr, ptr %16, align 8, !tbaa !9
  %751 = call i32 @strcmp(ptr noundef %750, ptr noundef @.str.53) #10
  %752 = icmp eq i32 %751, 0
  br i1 %752, label %753, label %808

753:                                              ; preds = %749
  %754 = load i32, ptr %14, align 4, !tbaa !5
  %755 = add nsw i32 %754, 2
  %756 = load i32, ptr %4, align 4, !tbaa !5
  %757 = icmp slt i32 %755, %756
  br i1 %757, label %758, label %808

758:                                              ; preds = %753
  %759 = load ptr, ptr %5, align 8, !tbaa !9
  %760 = load i32, ptr %14, align 4, !tbaa !5
  %761 = add nsw i32 %760, 1
  %762 = sext i32 %761 to i64
  %763 = getelementptr inbounds ptr, ptr %759, i64 %762
  %764 = load ptr, ptr %763, align 8, !tbaa !9
  %765 = getelementptr inbounds i8, ptr %764, i64 0
  %766 = load i8, ptr %765, align 1, !tbaa !13
  %767 = sext i8 %766 to i32
  %768 = call i32 @isalpha(i32 noundef %767) #10
  %769 = icmp ne i32 %768, 0
  br i1 %769, label %770, label %808

770:                                              ; preds = %758
  %771 = load ptr, ptr %5, align 8, !tbaa !9
  %772 = load i32, ptr %14, align 4, !tbaa !5
  %773 = add nsw i32 %772, 2
  %774 = sext i32 %773 to i64
  %775 = getelementptr inbounds ptr, ptr %771, i64 %774
  %776 = load ptr, ptr %775, align 8, !tbaa !9
  %777 = getelementptr inbounds i8, ptr %776, i64 0
  %778 = load i8, ptr %777, align 1, !tbaa !13
  %779 = sext i8 %778 to i32
  %780 = call i32 @isdigit(i32 noundef %779) #10
  %781 = icmp ne i32 %780, 0
  br i1 %781, label %782, label %808

782:                                              ; preds = %770
  store i8 1, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %783 = load ptr, ptr %5, align 8, !tbaa !9
  %784 = load i32, ptr %14, align 4, !tbaa !5
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr %14, align 4, !tbaa !5
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds ptr, ptr %783, i64 %786
  %788 = load ptr, ptr %787, align 8, !tbaa !9
  %789 = call noundef i32 @_Z11textureMaskPKc(ptr noundef %788)
  store i32 %789, ptr %25, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %790 = load ptr, ptr %5, align 8, !tbaa !9
  %791 = load i32, ptr %14, align 4, !tbaa !5
  %792 = add nsw i32 %791, 1
  store i32 %792, ptr %14, align 4, !tbaa !5
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds ptr, ptr %790, i64 %793
  %795 = load ptr, ptr %794, align 8, !tbaa !9
  %796 = call double @atof(ptr noundef %795) #10
  %797 = fptrunc double %796 to float
  %798 = invoke noundef float @_Z5clampIfET_S0_S0_S0_(float noundef %797, float noundef 0.000000e+00, float noundef 1.000000e+00)
          to label %799 unwind label %804

799:                                              ; preds = %782
  store float %798, ptr %26, align 4, !tbaa !44
  %800 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 32
  %801 = load float, ptr %26, align 4, !tbaa !44
  %802 = load i32, ptr %25, align 4, !tbaa !5
  invoke void @_Z12applySettingIfEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %800, float noundef %801, i32 noundef %802)
          to label %803 unwind label %804

803:                                              ; preds = %799
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1104

804:                                              ; preds = %799, %782
  %805 = landingpad { ptr, i32 }
          cleanup
  %806 = extractvalue { ptr, i32 } %805, 0
  store ptr %806, ptr %17, align 8
  %807 = extractvalue { ptr, i32 } %805, 1
  store i32 %807, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1144

808:                                              ; preds = %770, %758, %753, %749
  %809 = load ptr, ptr %16, align 8, !tbaa !9
  %810 = call i32 @strcmp(ptr noundef %809, ptr noundef @.str.54) #10
  %811 = icmp eq i32 %810, 0
  br i1 %811, label %812, label %844

812:                                              ; preds = %808
  %813 = load i32, ptr %14, align 4, !tbaa !5
  %814 = add nsw i32 %813, 1
  %815 = load i32, ptr %4, align 4, !tbaa !5
  %816 = icmp slt i32 %814, %815
  br i1 %816, label %817, label %844

817:                                              ; preds = %812
  %818 = load ptr, ptr %5, align 8, !tbaa !9
  %819 = load i32, ptr %14, align 4, !tbaa !5
  %820 = add nsw i32 %819, 1
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds ptr, ptr %818, i64 %821
  %823 = load ptr, ptr %822, align 8, !tbaa !9
  %824 = getelementptr inbounds i8, ptr %823, i64 0
  %825 = load i8, ptr %824, align 1, !tbaa !13
  %826 = sext i8 %825 to i32
  %827 = call i32 @isdigit(i32 noundef %826) #10
  %828 = icmp ne i32 %827, 0
  br i1 %828, label %829, label %844

829:                                              ; preds = %817
  store i8 1, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %830 = load ptr, ptr %5, align 8, !tbaa !9
  %831 = load i32, ptr %14, align 4, !tbaa !5
  %832 = add nsw i32 %831, 1
  store i32 %832, ptr %14, align 4, !tbaa !5
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds ptr, ptr %830, i64 %833
  %835 = load ptr, ptr %834, align 8, !tbaa !9
  %836 = call i32 @atoi(ptr noundef %835) #10
  store i32 %836, ptr %27, align 4, !tbaa !5
  %837 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 33
  %838 = load i32, ptr %27, align 4, !tbaa !5
  invoke void @_Z12applySettingIiEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %837, i32 noundef %838, i32 noundef -1)
          to label %839 unwind label %840

839:                                              ; preds = %829
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %1103

840:                                              ; preds = %829
  %841 = landingpad { ptr, i32 }
          cleanup
  %842 = extractvalue { ptr, i32 } %841, 0
  store ptr %842, ptr %17, align 8
  %843 = extractvalue { ptr, i32 } %841, 1
  store i32 %843, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %1144

844:                                              ; preds = %817, %812, %808
  %845 = load ptr, ptr %16, align 8, !tbaa !9
  %846 = call i32 @strcmp(ptr noundef %845, ptr noundef @.str.54) #10
  %847 = icmp eq i32 %846, 0
  br i1 %847, label %848, label %900

848:                                              ; preds = %844
  %849 = load i32, ptr %14, align 4, !tbaa !5
  %850 = add nsw i32 %849, 2
  %851 = load i32, ptr %4, align 4, !tbaa !5
  %852 = icmp slt i32 %850, %851
  br i1 %852, label %853, label %900

853:                                              ; preds = %848
  %854 = load ptr, ptr %5, align 8, !tbaa !9
  %855 = load i32, ptr %14, align 4, !tbaa !5
  %856 = add nsw i32 %855, 1
  %857 = sext i32 %856 to i64
  %858 = getelementptr inbounds ptr, ptr %854, i64 %857
  %859 = load ptr, ptr %858, align 8, !tbaa !9
  %860 = getelementptr inbounds i8, ptr %859, i64 0
  %861 = load i8, ptr %860, align 1, !tbaa !13
  %862 = sext i8 %861 to i32
  %863 = call i32 @isalpha(i32 noundef %862) #10
  %864 = icmp ne i32 %863, 0
  br i1 %864, label %865, label %900

865:                                              ; preds = %853
  %866 = load ptr, ptr %5, align 8, !tbaa !9
  %867 = load i32, ptr %14, align 4, !tbaa !5
  %868 = add nsw i32 %867, 2
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds ptr, ptr %866, i64 %869
  %871 = load ptr, ptr %870, align 8, !tbaa !9
  %872 = getelementptr inbounds i8, ptr %871, i64 0
  %873 = load i8, ptr %872, align 1, !tbaa !13
  %874 = sext i8 %873 to i32
  %875 = call i32 @isdigit(i32 noundef %874) #10
  %876 = icmp ne i32 %875, 0
  br i1 %876, label %877, label %900

877:                                              ; preds = %865
  store i8 1, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %878 = load ptr, ptr %5, align 8, !tbaa !9
  %879 = load i32, ptr %14, align 4, !tbaa !5
  %880 = add nsw i32 %879, 1
  store i32 %880, ptr %14, align 4, !tbaa !5
  %881 = sext i32 %880 to i64
  %882 = getelementptr inbounds ptr, ptr %878, i64 %881
  %883 = load ptr, ptr %882, align 8, !tbaa !9
  %884 = call noundef i32 @_Z11textureMaskPKc(ptr noundef %883)
  store i32 %884, ptr %28, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %885 = load ptr, ptr %5, align 8, !tbaa !9
  %886 = load i32, ptr %14, align 4, !tbaa !5
  %887 = add nsw i32 %886, 1
  store i32 %887, ptr %14, align 4, !tbaa !5
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds ptr, ptr %885, i64 %888
  %890 = load ptr, ptr %889, align 8, !tbaa !9
  %891 = call i32 @atoi(ptr noundef %890) #10
  store i32 %891, ptr %29, align 4, !tbaa !5
  %892 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 33
  %893 = load i32, ptr %29, align 4, !tbaa !5
  %894 = load i32, ptr %28, align 4, !tbaa !5
  invoke void @_Z12applySettingIiEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %892, i32 noundef %893, i32 noundef %894)
          to label %895 unwind label %896

895:                                              ; preds = %877
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1102

896:                                              ; preds = %877
  %897 = landingpad { ptr, i32 }
          cleanup
  %898 = extractvalue { ptr, i32 } %897, 0
  store ptr %898, ptr %17, align 8
  %899 = extractvalue { ptr, i32 } %897, 1
  store i32 %899, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1144

900:                                              ; preds = %865, %853, %848, %844
  %901 = load ptr, ptr %16, align 8, !tbaa !9
  %902 = call i32 @strcmp(ptr noundef %901, ptr noundef @.str.55) #10
  %903 = icmp eq i32 %902, 0
  br i1 %903, label %904, label %906

904:                                              ; preds = %900
  store i8 1, ptr %12, align 1, !tbaa !11
  %905 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 30
  store i8 1, ptr %905, align 1, !tbaa !45
  br label %1101

906:                                              ; preds = %900
  %907 = load ptr, ptr %16, align 8, !tbaa !9
  %908 = call i32 @strcmp(ptr noundef %907, ptr noundef @.str.56) #10
  %909 = icmp eq i32 %908, 0
  br i1 %909, label %910, label %912

910:                                              ; preds = %906
  store i8 1, ptr %12, align 1, !tbaa !11
  %911 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 31
  store i8 1, ptr %911, align 4, !tbaa !46
  br label %1100

912:                                              ; preds = %906
  %913 = load ptr, ptr %16, align 8, !tbaa !9
  %914 = call i32 @strcmp(ptr noundef %913, ptr noundef @.str.57) #10
  %915 = icmp eq i32 %914, 0
  br i1 %915, label %916, label %918

916:                                              ; preds = %912
  %917 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 29
  store i8 1, ptr %917, align 2, !tbaa !47
  br label %1099

918:                                              ; preds = %912
  %919 = load ptr, ptr %16, align 8, !tbaa !9
  %920 = call i32 @strcmp(ptr noundef %919, ptr noundef @.str.58) #10
  %921 = icmp eq i32 %920, 0
  br i1 %921, label %922, label %950

922:                                              ; preds = %918
  %923 = load i32, ptr %14, align 4, !tbaa !5
  %924 = add nsw i32 %923, 1
  %925 = load i32, ptr %4, align 4, !tbaa !5
  %926 = icmp slt i32 %924, %925
  br i1 %926, label %927, label %950

927:                                              ; preds = %922
  %928 = load ptr, ptr %5, align 8, !tbaa !9
  %929 = load i32, ptr %14, align 4, !tbaa !5
  %930 = add nsw i32 %929, 1
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds ptr, ptr %928, i64 %931
  %933 = load ptr, ptr %932, align 8, !tbaa !9
  %934 = getelementptr inbounds i8, ptr %933, i64 0
  %935 = load i8, ptr %934, align 1, !tbaa !13
  %936 = sext i8 %935 to i32
  %937 = call i32 @isdigit(i32 noundef %936) #10
  %938 = icmp ne i32 %937, 0
  br i1 %938, label %939, label %950

939:                                              ; preds = %927
  %940 = load ptr, ptr %5, align 8, !tbaa !9
  %941 = load i32, ptr %14, align 4, !tbaa !5
  %942 = add nsw i32 %941, 1
  store i32 %942, ptr %14, align 4, !tbaa !5
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds ptr, ptr %940, i64 %943
  %945 = load ptr, ptr %944, align 8, !tbaa !9
  %946 = call i32 @atoi(ptr noundef %945) #10
  %947 = invoke noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %946, i32 noundef 0, i32 noundef 128)
          to label %948 unwind label %79

948:                                              ; preds = %939
  %949 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 36
  store i32 %947, ptr %949, align 4, !tbaa !48
  br label %1098

950:                                              ; preds = %927, %922, %918
  %951 = load ptr, ptr %16, align 8, !tbaa !9
  %952 = call i32 @strcmp(ptr noundef %951, ptr noundef @.str.59) #10
  %953 = icmp eq i32 %952, 0
  br i1 %953, label %954, label %956

954:                                              ; preds = %950
  %955 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 37
  store i8 0, ptr %955, align 4, !tbaa !49
  br label %1097

956:                                              ; preds = %950
  %957 = load ptr, ptr %16, align 8, !tbaa !9
  %958 = call i32 @strcmp(ptr noundef %957, ptr noundef @.str.60) #10
  %959 = icmp eq i32 %958, 0
  br i1 %959, label %960, label %975

960:                                              ; preds = %956
  %961 = load i32, ptr %14, align 4, !tbaa !5
  %962 = add nsw i32 %961, 1
  %963 = load i32, ptr %4, align 4, !tbaa !5
  %964 = icmp slt i32 %962, %963
  br i1 %964, label %965, label %975

965:                                              ; preds = %960
  %966 = load ptr, ptr %7, align 8, !tbaa !9
  %967 = icmp ne ptr %966, null
  br i1 %967, label %975, label %968

968:                                              ; preds = %965
  %969 = load ptr, ptr %5, align 8, !tbaa !9
  %970 = load i32, ptr %14, align 4, !tbaa !5
  %971 = add nsw i32 %970, 1
  store i32 %971, ptr %14, align 4, !tbaa !5
  %972 = sext i32 %971 to i64
  %973 = getelementptr inbounds ptr, ptr %969, i64 %972
  %974 = load ptr, ptr %973, align 8, !tbaa !9
  store ptr %974, ptr %7, align 8, !tbaa !9
  br label %1096

975:                                              ; preds = %965, %960, %956
  %976 = load ptr, ptr %16, align 8, !tbaa !9
  %977 = call i32 @strcmp(ptr noundef %976, ptr noundef @.str.61) #10
  %978 = icmp eq i32 %977, 0
  br i1 %978, label %979, label %994

979:                                              ; preds = %975
  %980 = load i32, ptr %14, align 4, !tbaa !5
  %981 = add nsw i32 %980, 1
  %982 = load i32, ptr %4, align 4, !tbaa !5
  %983 = icmp slt i32 %981, %982
  br i1 %983, label %984, label %994

984:                                              ; preds = %979
  %985 = load ptr, ptr %8, align 8, !tbaa !9
  %986 = icmp ne ptr %985, null
  br i1 %986, label %994, label %987

987:                                              ; preds = %984
  %988 = load ptr, ptr %5, align 8, !tbaa !9
  %989 = load i32, ptr %14, align 4, !tbaa !5
  %990 = add nsw i32 %989, 1
  store i32 %990, ptr %14, align 4, !tbaa !5
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds ptr, ptr %988, i64 %991
  %993 = load ptr, ptr %992, align 8, !tbaa !9
  store ptr %993, ptr %8, align 8, !tbaa !9
  br label %1095

994:                                              ; preds = %984, %979, %975
  %995 = load ptr, ptr %16, align 8, !tbaa !9
  %996 = call i32 @strcmp(ptr noundef %995, ptr noundef @.str.62) #10
  %997 = icmp eq i32 %996, 0
  br i1 %997, label %998, label %1013

998:                                              ; preds = %994
  %999 = load i32, ptr %14, align 4, !tbaa !5
  %1000 = add nsw i32 %999, 1
  %1001 = load i32, ptr %4, align 4, !tbaa !5
  %1002 = icmp slt i32 %1000, %1001
  br i1 %1002, label %1003, label %1013

1003:                                             ; preds = %998
  %1004 = load ptr, ptr %9, align 8, !tbaa !9
  %1005 = icmp ne ptr %1004, null
  br i1 %1005, label %1013, label %1006

1006:                                             ; preds = %1003
  %1007 = load ptr, ptr %5, align 8, !tbaa !9
  %1008 = load i32, ptr %14, align 4, !tbaa !5
  %1009 = add nsw i32 %1008, 1
  store i32 %1009, ptr %14, align 4, !tbaa !5
  %1010 = sext i32 %1009 to i64
  %1011 = getelementptr inbounds ptr, ptr %1007, i64 %1010
  %1012 = load ptr, ptr %1011, align 8, !tbaa !9
  store ptr %1012, ptr %9, align 8, !tbaa !9
  br label %1094

1013:                                             ; preds = %1003, %998, %994
  %1014 = load ptr, ptr %16, align 8, !tbaa !9
  %1015 = call i32 @strcmp(ptr noundef %1014, ptr noundef @.str.63) #10
  %1016 = icmp eq i32 %1015, 0
  br i1 %1016, label %1017, label %1019

1017:                                             ; preds = %1013
  %1018 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 38
  store i8 1, ptr %1018, align 1, !tbaa !50
  br label %1093

1019:                                             ; preds = %1013
  %1020 = load ptr, ptr %16, align 8, !tbaa !9
  %1021 = call i32 @strcmp(ptr noundef %1020, ptr noundef @.str.64) #10
  %1022 = icmp eq i32 %1021, 0
  br i1 %1022, label %1023, label %1026

1023:                                             ; preds = %1019
  %1024 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 38
  store i8 1, ptr %1024, align 1, !tbaa !50
  %1025 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 39
  store i8 1, ptr %1025, align 2, !tbaa !51
  br label %1092

1026:                                             ; preds = %1019
  %1027 = load ptr, ptr %16, align 8, !tbaa !9
  %1028 = call i32 @strcmp(ptr noundef %1027, ptr noundef @.str.65) #10
  %1029 = icmp eq i32 %1028, 0
  br i1 %1029, label %1030, label %1033

1030:                                             ; preds = %1026
  %1031 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 38
  store i8 1, ptr %1031, align 1, !tbaa !50
  %1032 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 40
  store i8 1, ptr %1032, align 1, !tbaa !52
  br label %1091

1033:                                             ; preds = %1026
  %1034 = load ptr, ptr %16, align 8, !tbaa !9
  %1035 = call i32 @strcmp(ptr noundef %1034, ptr noundef @.str.66) #10
  %1036 = icmp eq i32 %1035, 0
  br i1 %1036, label %1037, label %1043

1037:                                             ; preds = %1033
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1038, ptr noundef @.str.67) #9
  invoke void @meshopt_encodeVertexVersion(i32 noundef 1)
          to label %1040 unwind label %79

1040:                                             ; preds = %1037
  %1041 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 38
  store i8 1, ptr %1041, align 1, !tbaa !50
  %1042 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 39
  store i8 1, ptr %1042, align 2, !tbaa !51
  br label %1090

1043:                                             ; preds = %1033
  %1044 = load ptr, ptr %16, align 8, !tbaa !9
  %1045 = call i32 @strcmp(ptr noundef %1044, ptr noundef @.str.68) #10
  %1046 = icmp eq i32 %1045, 0
  br i1 %1046, label %1047, label %1049

1047:                                             ; preds = %1043
  %1048 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 41
  store i32 1, ptr %1048, align 4, !tbaa !53
  br label %1089

1049:                                             ; preds = %1043
  %1050 = load ptr, ptr %16, align 8, !tbaa !9
  %1051 = call i32 @strcmp(ptr noundef %1050, ptr noundef @.str.69) #10
  %1052 = icmp eq i32 %1051, 0
  br i1 %1052, label %1053, label %1055

1053:                                             ; preds = %1049
  %1054 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 41
  store i32 2, ptr %1054, align 4, !tbaa !53
  br label %1088

1055:                                             ; preds = %1049
  %1056 = load ptr, ptr %16, align 8, !tbaa !9
  %1057 = call i32 @strcmp(ptr noundef %1056, ptr noundef @.str.70) #10
  %1058 = icmp eq i32 %1057, 0
  br i1 %1058, label %1059, label %1060

1059:                                             ; preds = %1055
  store i8 1, ptr %10, align 1, !tbaa !11
  br label %1087

1060:                                             ; preds = %1055
  %1061 = load ptr, ptr %16, align 8, !tbaa !9
  %1062 = call i32 @strcmp(ptr noundef %1061, ptr noundef @.str.71) #10
  %1063 = icmp eq i32 %1062, 0
  br i1 %1063, label %1064, label %1065

1064:                                             ; preds = %1060
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %1086

1065:                                             ; preds = %1060
  %1066 = load ptr, ptr %16, align 8, !tbaa !9
  %1067 = getelementptr inbounds i8, ptr %1066, i64 0
  %1068 = load i8, ptr %1067, align 1, !tbaa !13
  %1069 = sext i8 %1068 to i32
  %1070 = icmp eq i32 %1069, 45
  br i1 %1070, label %1071, label %1075

1071:                                             ; preds = %1065
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = load ptr, ptr %16, align 8, !tbaa !9
  %1074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1072, ptr noundef @.str.72, ptr noundef %1073) #9
  store i32 1, ptr %3, align 4
  store i32 1, ptr %15, align 4
  br label %1138

1075:                                             ; preds = %1065
  %1076 = load i8, ptr %11, align 1, !tbaa !11, !range !54, !noundef !55
  %1077 = trunc i8 %1076 to i1
  br i1 %1077, label %1078, label %1080

1078:                                             ; preds = %1075
  invoke void @_ZNSt6vectorIPKcSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %1079 unwind label %79

1079:                                             ; preds = %1078
  br label %1084

1080:                                             ; preds = %1075
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = load ptr, ptr %16, align 8, !tbaa !9
  %1083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1081, ptr noundef @.str.73, ptr noundef %1082) #9
  store i32 1, ptr %3, align 4
  store i32 1, ptr %15, align 4
  br label %1138

1084:                                             ; preds = %1079
  br label %1085

1085:                                             ; preds = %1084
  br label %1086

1086:                                             ; preds = %1085, %1064
  br label %1087

1087:                                             ; preds = %1086, %1059
  br label %1088

1088:                                             ; preds = %1087, %1053
  br label %1089

1089:                                             ; preds = %1088, %1047
  br label %1090

1090:                                             ; preds = %1089, %1040
  br label %1091

1091:                                             ; preds = %1090, %1030
  br label %1092

1092:                                             ; preds = %1091, %1023
  br label %1093

1093:                                             ; preds = %1092, %1017
  br label %1094

1094:                                             ; preds = %1093, %1006
  br label %1095

1095:                                             ; preds = %1094, %987
  br label %1096

1096:                                             ; preds = %1095, %968
  br label %1097

1097:                                             ; preds = %1096, %954
  br label %1098

1098:                                             ; preds = %1097, %948
  br label %1099

1099:                                             ; preds = %1098, %916
  br label %1100

1100:                                             ; preds = %1099, %910
  br label %1101

1101:                                             ; preds = %1100, %904
  br label %1102

1102:                                             ; preds = %1101, %895
  br label %1103

1103:                                             ; preds = %1102, %839
  br label %1104

1104:                                             ; preds = %1103, %803
  br label %1105

1105:                                             ; preds = %1104, %744
  br label %1106

1106:                                             ; preds = %1105, %705
  br label %1107

1107:                                             ; preds = %1106, %647
  br label %1108

1108:                                             ; preds = %1107, %609
  br label %1109

1109:                                             ; preds = %1108, %571
  br label %1110

1110:                                             ; preds = %1109, %536
  br label %1111

1111:                                             ; preds = %1110, %504
  br label %1112

1112:                                             ; preds = %1111, %471
  br label %1113

1113:                                             ; preds = %1112, %465
  br label %1114

1114:                                             ; preds = %1113, %459
  br label %1115

1115:                                             ; preds = %1114, %453
  br label %1116

1116:                                             ; preds = %1115, %420
  br label %1117

1117:                                             ; preds = %1116, %387
  br label %1118

1118:                                             ; preds = %1117, %381
  br label %1119

1119:                                             ; preds = %1118, %373
  br label %1120

1120:                                             ; preds = %1119, %367
  br label %1121

1121:                                             ; preds = %1120, %361
  br label %1122

1122:                                             ; preds = %1121, %355
  br label %1123

1123:                                             ; preds = %1122, %349
  br label %1124

1124:                                             ; preds = %1123, %343
  br label %1125

1125:                                             ; preds = %1124, %337
  br label %1126

1126:                                             ; preds = %1125, %305
  br label %1127

1127:                                             ; preds = %1126, %273
  br label %1128

1128:                                             ; preds = %1127, %241
  br label %1129

1129:                                             ; preds = %1128, %209
  br label %1130

1130:                                             ; preds = %1129, %203
  br label %1131

1131:                                             ; preds = %1130, %197
  br label %1132

1132:                                             ; preds = %1131, %190
  br label %1133

1133:                                             ; preds = %1132, %183
  br label %1134

1134:                                             ; preds = %1133, %177
  br label %1135

1135:                                             ; preds = %1134, %145
  br label %1136

1136:                                             ; preds = %1135, %113
  br label %1137

1137:                                             ; preds = %1136, %77
  store i32 0, ptr %15, align 4
  br label %1138

1138:                                             ; preds = %1137, %1080, %1071
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  %1139 = load i32, ptr %15, align 4
  switch i32 %1139, label %1145 [
    i32 0, label %1140
  ]

1140:                                             ; preds = %1138
  br label %1141

1141:                                             ; preds = %1140
  %1142 = load i32, ptr %14, align 4, !tbaa !5
  %1143 = add nsw i32 %1142, 1
  store i32 %1143, ptr %14, align 4, !tbaa !5
  br label %37, !llvm.loop !56

1144:                                             ; preds = %896, %840, %804, %745, %706, %648, %610, %572, %79
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %1428

1145:                                             ; preds = %1138, %41
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  %1146 = load i32, ptr %15, align 4
  switch i32 %1146, label %1426 [
    i32 2, label %1147
  ]

1147:                                             ; preds = %1145
  %1148 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 41
  %1149 = load i32, ptr %1148, align 4, !tbaa !53
  %1150 = icmp ne i32 %1149, 0
  br i1 %1150, label %1151, label %1168

1151:                                             ; preds = %1147
  %1152 = load i32, ptr %4, align 4, !tbaa !5
  %1153 = icmp eq i32 %1152, 2
  br i1 %1153, label %1154, label %1168

1154:                                             ; preds = %1151
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #9
  invoke void @_Z10getVersionB5cxx11v(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30)
          to label %1155 unwind label %1159

1155:                                             ; preds = %1154
  %1156 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  %1157 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.74, ptr noundef %1156)
          to label %1158 unwind label %1163

1158:                                             ; preds = %1155
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #9
  store i32 0, ptr %3, align 4
  store i32 1, ptr %15, align 4
  br label %1426

1159:                                             ; preds = %1154
  %1160 = landingpad { ptr, i32 }
          cleanup
  %1161 = extractvalue { ptr, i32 } %1160, 0
  store ptr %1161, ptr %17, align 8
  %1162 = extractvalue { ptr, i32 } %1160, 1
  store i32 %1162, ptr %18, align 4
  br label %1167

1163:                                             ; preds = %1155
  %1164 = landingpad { ptr, i32 }
          cleanup
  %1165 = extractvalue { ptr, i32 } %1164, 0
  store ptr %1165, ptr %17, align 8
  %1166 = extractvalue { ptr, i32 } %1164, 1
  store i32 %1166, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %1167

1167:                                             ; preds = %1163, %1159
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #9
  br label %1428

1168:                                             ; preds = %1151, %1147
  %1169 = load i8, ptr %11, align 1, !tbaa !11, !range !54, !noundef !55
  %1170 = trunc i8 %1169 to i1
  br i1 %1170, label %1171, label %1195

1171:                                             ; preds = %1168
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  store i64 0, ptr %31, align 8, !tbaa !58
  br label %1172

1172:                                             ; preds = %1187, %1171
  %1173 = load i64, ptr %31, align 8, !tbaa !58
  %1174 = call noundef i64 @_ZNKSt6vectorIPKcSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #9
  %1175 = icmp ult i64 %1173, %1174
  br i1 %1175, label %1177, label %1176

1176:                                             ; preds = %1172
  store i32 5, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %1194

1177:                                             ; preds = %1172
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %1178 = load i64, ptr %31, align 8, !tbaa !58
  %1179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKcSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %1178) #9
  %1180 = load ptr, ptr %1179, align 8, !tbaa !9
  store ptr %1180, ptr %32, align 8, !tbaa !9
  %1181 = load ptr, ptr %32, align 8, !tbaa !9
  %1182 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.75, ptr noundef %1181)
          to label %1183 unwind label %1190

1183:                                             ; preds = %1177
  %1184 = load ptr, ptr %32, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %33, ptr align 4 %6, i64 148, i1 false), !tbaa.struct !60
  %1185 = invoke noundef i32 @_Z8gltfpackPKcS0_S0_8Settings(ptr noundef %1184, ptr noundef null, ptr noundef null, ptr noundef byval(%struct.Settings) align 8 %33)
          to label %1186 unwind label %1190

1186:                                             ; preds = %1183
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br label %1187

1187:                                             ; preds = %1186
  %1188 = load i64, ptr %31, align 8, !tbaa !58
  %1189 = add i64 %1188, 1
  store i64 %1189, ptr %31, align 8, !tbaa !58
  br label %1172, !llvm.loop !61

1190:                                             ; preds = %1183, %1177
  %1191 = landingpad { ptr, i32 }
          cleanup
  %1192 = extractvalue { ptr, i32 } %1191, 0
  store ptr %1192, ptr %17, align 8
  %1193 = extractvalue { ptr, i32 } %1191, 1
  store i32 %1193, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %1428

1194:                                             ; preds = %1176
  store i32 0, ptr %3, align 4
  store i32 1, ptr %15, align 4
  br label %1426

1195:                                             ; preds = %1168
  %1196 = load ptr, ptr %7, align 8, !tbaa !9
  %1197 = icmp ne ptr %1196, null
  br i1 %1197, label %1198, label %1204

1198:                                             ; preds = %1195
  %1199 = load ptr, ptr %8, align 8, !tbaa !9
  %1200 = icmp ne ptr %1199, null
  br i1 %1200, label %1201, label %1204

1201:                                             ; preds = %1198
  %1202 = load i8, ptr %10, align 1, !tbaa !11, !range !54, !noundef !55
  %1203 = trunc i8 %1202 to i1
  br i1 %1203, label %1204, label %1350

1204:                                             ; preds = %1201, %1198, %1195
  %1205 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #9
  invoke void @_Z10getVersionB5cxx11v(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34)
          to label %1206 unwind label %1330

1206:                                             ; preds = %1204
  %1207 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  %1208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1205, ptr noundef @.str.74, ptr noundef %1207) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1209, ptr noundef @.str.76) #9
  %1211 = load i8, ptr %10, align 1, !tbaa !11, !range !54, !noundef !55
  %1212 = trunc i8 %1211 to i1
  br i1 %1212, label %1213, label %1334

1213:                                             ; preds = %1206
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1214, ptr noundef @.str.77) #9
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1216, ptr noundef @.str.78) #9
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef @.str.79) #9
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1220, ptr noundef @.str.80) #9
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1222, ptr noundef @.str.81) #9
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1224, ptr noundef @.str.82) #9
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1226, ptr noundef @.str.83) #9
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef @.str.84) #9
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1230, ptr noundef @.str.85) #9
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1232, ptr noundef @.str.86) #9
  %1234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1234, ptr noundef @.str.87) #9
  %1236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1236, ptr noundef @.str.88) #9
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1238, ptr noundef @.str.89) #9
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1240, ptr noundef @.str.90) #9
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1242, ptr noundef @.str.91) #9
  %1244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1244, ptr noundef @.str.92) #9
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1246, ptr noundef @.str.93) #9
  %1248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1248, ptr noundef @.str.94) #9
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1250, ptr noundef @.str.95) #9
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1252, ptr noundef @.str.96) #9
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1254, ptr noundef @.str.97) #9
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1256, ptr noundef @.str.98) #9
  %1258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1258, ptr noundef @.str.99) #9
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1260, ptr noundef @.str.100) #9
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1262, ptr noundef @.str.101) #9
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1264, ptr noundef @.str.102) #9
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1266, ptr noundef @.str.103) #9
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1268, ptr noundef @.str.104) #9
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1270, ptr noundef @.str.105) #9
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1272, ptr noundef @.str.106) #9
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1274, ptr noundef @.str.107) #9
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1276, ptr noundef @.str.108) #9
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1278, ptr noundef @.str.109) #9
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1280, ptr noundef @.str.110) #9
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1282, ptr noundef @.str.111) #9
  %1284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1284, ptr noundef @.str.112) #9
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1286, ptr noundef @.str.113) #9
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1288, ptr noundef @.str.114) #9
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1290, ptr noundef @.str.115) #9
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1292, ptr noundef @.str.116) #9
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1294, ptr noundef @.str.117) #9
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1296, ptr noundef @.str.118) #9
  %1298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1298, ptr noundef @.str.119) #9
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1300, ptr noundef @.str.120) #9
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1302, ptr noundef @.str.121) #9
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1304, ptr noundef @.str.122) #9
  %1306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1306, ptr noundef @.str.123) #9
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1308, ptr noundef @.str.124) #9
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1310, ptr noundef @.str.125) #9
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1312, ptr noundef @.str.126) #9
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1314, ptr noundef @.str.127) #9
  %1316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1316, ptr noundef @.str.128) #9
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1318, ptr noundef @.str.129) #9
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1320, ptr noundef @.str.130) #9
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1322, ptr noundef @.str.131) #9
  %1324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1324, ptr noundef @.str.132) #9
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1326, ptr noundef @.str.133) #9
  %1328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1328, ptr noundef @.str.134) #9
  br label %1349

1330:                                             ; preds = %1204
  %1331 = landingpad { ptr, i32 }
          cleanup
  %1332 = extractvalue { ptr, i32 } %1331, 0
  store ptr %1332, ptr %17, align 8
  %1333 = extractvalue { ptr, i32 } %1331, 1
  store i32 %1333, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  br label %1428

1334:                                             ; preds = %1206
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1335, ptr noundef @.str.77) #9
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1337, ptr noundef @.str.78) #9
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1339, ptr noundef @.str.79) #9
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1341, ptr noundef @.str.80) #9
  %1343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1343, ptr noundef @.str.82) #9
  %1345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1345, ptr noundef @.str.135) #9
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1347, ptr noundef @.str.136) #9
  br label %1349

1349:                                             ; preds = %1334, %1213
  store i32 1, ptr %3, align 4
  store i32 1, ptr %15, align 4
  br label %1426

1350:                                             ; preds = %1201
  %1351 = load i8, ptr %12, align 1, !tbaa !11, !range !54, !noundef !55
  %1352 = trunc i8 %1351 to i1
  br i1 %1352, label %1353, label %1360

1353:                                             ; preds = %1350
  %1354 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 27
  %1355 = load i8, ptr %1354, align 4, !tbaa !43, !range !54, !noundef !55
  %1356 = trunc i8 %1355 to i1
  br i1 %1356, label %1360, label %1357

1357:                                             ; preds = %1353
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1358, ptr noundef @.str.137) #9
  store i32 1, ptr %3, align 4
  store i32 1, ptr %15, align 4
  br label %1426

1360:                                             ; preds = %1353, %1350
  %1361 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 29
  %1362 = load i8, ptr %1361, align 2, !tbaa !47, !range !54, !noundef !55
  %1363 = trunc i8 %1362 to i1
  br i1 %1363, label %1364, label %1371

1364:                                             ; preds = %1360
  %1365 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 27
  %1366 = load i8, ptr %1365, align 4, !tbaa !43, !range !54, !noundef !55
  %1367 = trunc i8 %1366 to i1
  br i1 %1367, label %1368, label %1371

1368:                                             ; preds = %1364
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1369, ptr noundef @.str.138) #9
  store i32 1, ptr %3, align 4
  store i32 1, ptr %15, align 4
  br label %1426

1371:                                             ; preds = %1364, %1360
  %1372 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 40
  %1373 = load i8, ptr %1372, align 1, !tbaa !52, !range !54, !noundef !55
  %1374 = trunc i8 %1373 to i1
  br i1 %1374, label %1375, label %1382

1375:                                             ; preds = %1371
  %1376 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 39
  %1377 = load i8, ptr %1376, align 2, !tbaa !51, !range !54, !noundef !55
  %1378 = trunc i8 %1377 to i1
  br i1 %1378, label %1379, label %1382

1379:                                             ; preds = %1375
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1380, ptr noundef @.str.139) #9
  store i32 1, ptr %3, align 4
  store i32 1, ptr %15, align 4
  br label %1426

1382:                                             ; preds = %1375, %1371
  %1383 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 40
  %1384 = load i8, ptr %1383, align 1, !tbaa !52, !range !54, !noundef !55
  %1385 = trunc i8 %1384 to i1
  br i1 %1385, label %1386, label %1401

1386:                                             ; preds = %1382
  %1387 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 5
  %1388 = load i8, ptr %1387, align 1, !tbaa !20, !range !54, !noundef !55
  %1389 = trunc i8 %1388 to i1
  br i1 %1389, label %1398, label %1390

1390:                                             ; preds = %1386
  %1391 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 6
  %1392 = load i8, ptr %1391, align 2, !tbaa !22, !range !54, !noundef !55
  %1393 = trunc i8 %1392 to i1
  br i1 %1393, label %1398, label %1394

1394:                                             ; preds = %1390
  %1395 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 7
  %1396 = load i8, ptr %1395, align 1, !tbaa !23, !range !54, !noundef !55
  %1397 = trunc i8 %1396 to i1
  br i1 %1397, label %1398, label %1401

1398:                                             ; preds = %1394, %1390, %1386
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1399, ptr noundef @.str.140) #9
  store i32 1, ptr %3, align 4
  store i32 1, ptr %15, align 4
  br label %1426

1401:                                             ; preds = %1394, %1382
  %1402 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 13
  %1403 = load i8, ptr %1402, align 1, !tbaa !29, !range !54, !noundef !55
  %1404 = trunc i8 %1403 to i1
  br i1 %1404, label %1405, label %1416

1405:                                             ; preds = %1401
  %1406 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 18
  %1407 = load i8, ptr %1406, align 2, !tbaa !34, !range !54, !noundef !55
  %1408 = trunc i8 %1407 to i1
  br i1 %1408, label %1413, label %1409

1409:                                             ; preds = %1405
  %1410 = getelementptr inbounds %struct.Settings, ptr %6, i32 0, i32 19
  %1411 = load i8, ptr %1410, align 1, !tbaa !35, !range !54, !noundef !55
  %1412 = trunc i8 %1411 to i1
  br i1 %1412, label %1413, label %1416

1413:                                             ; preds = %1409, %1405
  %1414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1414, ptr noundef @.str.141) #9
  br label %1416

1416:                                             ; preds = %1413, %1409, %1401
  %1417 = load ptr, ptr %7, align 8, !tbaa !9
  %1418 = load ptr, ptr %8, align 8, !tbaa !9
  %1419 = load ptr, ptr %9, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %35, ptr align 4 %6, i64 148, i1 false), !tbaa.struct !60
  %1420 = invoke noundef i32 @_Z8gltfpackPKcS0_S0_8Settings(ptr noundef %1417, ptr noundef %1418, ptr noundef %1419, ptr noundef byval(%struct.Settings) align 8 %35)
          to label %1421 unwind label %1422

1421:                                             ; preds = %1416
  store i32 %1420, ptr %3, align 4
  store i32 1, ptr %15, align 4
  br label %1426

1422:                                             ; preds = %1416
  %1423 = landingpad { ptr, i32 }
          cleanup
  %1424 = extractvalue { ptr, i32 } %1423, 0
  store ptr %1424, ptr %17, align 8
  %1425 = extractvalue { ptr, i32 } %1423, 1
  store i32 %1425, ptr %18, align 4
  br label %1428

1426:                                             ; preds = %1421, %1398, %1379, %1368, %1357, %1349, %1194, %1158, %1145
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 148, ptr %6) #9
  %1427 = load i32, ptr %3, align 4
  ret i32 %1427

1428:                                             ; preds = %1422, %1330, %1190, %1167, %1144
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 148, ptr %6) #9
  br label %1429

1429:                                             ; preds = %1428
  %1430 = load ptr, ptr %17, align 8
  %1431 = load i32, ptr %18, align 4
  %1432 = insertvalue { ptr, i32 } poison, ptr %1430, 0
  %1433 = insertvalue { ptr, i32 } %1432, i32 %1431, 1
  resume { ptr, i32 } %1433
}

; Function Attrs: nounwind
declare ptr @setlocale(i32 noundef, ptr noundef) #2

declare void @meshopt_encodeVertexVersion(i32 noundef) #6

declare void @meshopt_encodeIndexVersion(i32 noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIPKcSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef, i32 noundef, i32 noundef) #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_Z5clampIfET_S0_S0_S0_(float noundef, float noundef, float noundef) #4

; Function Attrs: inlinehint mustprogress nounwind willreturn memory(read) uwtable
declare double @atof(ptr noundef nonnull) #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z12applySettingI11TextureModeEvRA4_T_S1_j(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z12applySettingIiEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z12applySettingIfEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16), float noundef, i32 noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIPKcSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIPKcSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKcSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #4 align 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) #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #4 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !6, i64 0}
!15 = !{!"_ZTS8Settings", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !12, i64 16, !12, i64 17, !12, i64 18, !12, i64 19, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !12, i64 36, !12, i64 37, !12, i64 38, !12, i64 39, !12, i64 40, !12, i64 41, !12, i64 42, !12, i64 43, !16, i64 44, !16, i64 48, !12, i64 52, !12, i64 53, !12, i64 54, !16, i64 56, !6, i64 60, !12, i64 64, !12, i64 65, !12, i64 66, !12, i64 67, !12, i64 68, !7, i64 72, !7, i64 88, !7, i64 104, !7, i64 120, !6, i64 136, !12, i64 140, !12, i64 141, !12, i64 142, !12, i64 143, !6, i64 144}
!16 = !{!"float", !7, i64 0}
!17 = !{!15, !6, i64 4}
!18 = !{!15, !6, i64 8}
!19 = !{!15, !6, i64 12}
!20 = !{!15, !12, i64 17}
!21 = !{!15, !12, i64 16}
!22 = !{!15, !12, i64 18}
!23 = !{!15, !12, i64 19}
!24 = !{!15, !6, i64 20}
!25 = !{!15, !6, i64 24}
!26 = !{!15, !6, i64 28}
!27 = !{!15, !6, i64 32}
!28 = !{!15, !12, i64 36}
!29 = !{!15, !12, i64 37}
!30 = !{!15, !12, i64 38}
!31 = !{!15, !12, i64 39}
!32 = !{!15, !12, i64 40}
!33 = !{!15, !12, i64 41}
!34 = !{!15, !12, i64 42}
!35 = !{!15, !12, i64 43}
!36 = !{!15, !16, i64 44}
!37 = !{!15, !16, i64 48}
!38 = !{!15, !12, i64 52}
!39 = !{!15, !12, i64 53}
!40 = !{!15, !12, i64 54}
!41 = !{!15, !16, i64 56}
!42 = !{!15, !6, i64 60}
!43 = !{!15, !12, i64 64}
!44 = !{!16, !16, i64 0}
!45 = !{!15, !12, i64 67}
!46 = !{!15, !12, i64 68}
!47 = !{!15, !12, i64 66}
!48 = !{!15, !6, i64 136}
!49 = !{!15, !12, i64 140}
!50 = !{!15, !12, i64 141}
!51 = !{!15, !12, i64 142}
!52 = !{!15, !12, i64 143}
!53 = !{!15, !6, i64 144}
!54 = !{i8 0, i8 2}
!55 = !{}
!56 = distinct !{!56, !57}
!57 = !{!"llvm.loop.mustprogress"}
!58 = !{!59, !59, i64 0}
!59 = !{!"long", !7, i64 0}
!60 = !{i64 0, i64 4, !5, i64 4, i64 4, !5, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !11, i64 17, i64 1, !11, i64 18, i64 1, !11, i64 19, i64 1, !11, i64 20, i64 4, !5, i64 24, i64 4, !5, i64 28, i64 4, !5, i64 32, i64 4, !5, i64 36, i64 1, !11, i64 37, i64 1, !11, i64 38, i64 1, !11, i64 39, i64 1, !11, i64 40, i64 1, !11, i64 41, i64 1, !11, i64 42, i64 1, !11, i64 43, i64 1, !11, i64 44, i64 4, !44, i64 48, i64 4, !44, i64 52, i64 1, !11, i64 53, i64 1, !11, i64 54, i64 1, !11, i64 56, i64 4, !44, i64 60, i64 4, !5, i64 64, i64 1, !11, i64 65, i64 1, !11, i64 66, i64 1, !11, i64 67, i64 1, !11, i64 68, i64 1, !11, i64 72, i64 16, !13, i64 88, i64 16, !13, i64 104, i64 16, !13, i64 120, i64 16, !13, i64 136, i64 4, !5, i64 140, i64 1, !11, i64 141, i64 1, !11, i64 142, i64 1, !11, i64 143, i64 1, !11, i64 144, i64 4, !5}
!61 = distinct !{!61, !57}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.Settings = type { i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, float, float, i8, i8, i8, float, i32, i8, i8, i8, i8, i8, [4 x float], [4 x i32], [4 x i32], [4 x i32], i32, i8, i8, i8, i8, i32 }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@stderr = external local_unnamed_addr global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [87 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z10getVersionB5cxx11v(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8) local_unnamed_addr #0

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z8gltfpackPKcS0_S0_8Settings(ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.Settings) align 8) local_unnamed_addr #0

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) 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 #3

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z8defaultsv(ptr dead_on_unwind noalias writable sret(%struct.Settings) align 4) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11textureMaskPKc(ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #5 personality ptr @__gxx_personality_v0 {
  %3 = alloca %struct.Settings, align 8
  %4 = alloca %"class.std::vector.8", align 8
  %5 = alloca ptr, align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = tail call ptr @setlocale(i32 noundef 6, ptr noundef nonnull @.str.20) #10
  tail call void @meshopt_encodeVertexVersion(i32 noundef 0)
  tail call void @meshopt_encodeIndexVersion(i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 148, ptr nonnull %3) #10
  call void @_Z8defaultsv(ptr dead_on_unwind nonnull writable sret(%struct.Settings) align 4 %3)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #10
  call void @_ZNSt6vectorIPKcSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #10
  %invariant.gep = getelementptr i8, ptr %1, i64 8
  %.not299357 = icmp sgt i32 %0, 1
  br i1 %.not299357, label %.lr.ph, label %.thread400

.lr.ph:                                           ; preds = %2
  %9 = getelementptr inbounds i8, ptr %3, i64 120
  %10 = getelementptr inbounds i8, ptr %3, i64 72
  %11 = getelementptr inbounds i8, ptr %3, i64 88
  %12 = getelementptr inbounds i8, ptr %3, i64 144
  %13 = getelementptr inbounds i8, ptr %3, i64 141
  %14 = getelementptr inbounds i8, ptr %3, i64 142
  %15 = getelementptr inbounds i8, ptr %3, i64 143
  %16 = getelementptr inbounds i8, ptr %3, i64 140
  %17 = getelementptr inbounds i8, ptr %3, i64 136
  %18 = getelementptr inbounds i8, ptr %3, i64 66
  %19 = getelementptr inbounds i8, ptr %3, i64 68
  %20 = getelementptr inbounds i8, ptr %3, i64 67
  %21 = getelementptr inbounds i8, ptr %3, i64 64
  %22 = getelementptr inbounds i8, ptr %3, i64 104
  %23 = getelementptr inbounds i8, ptr %3, i64 60
  %24 = getelementptr inbounds i8, ptr %3, i64 56
  %25 = getelementptr inbounds i8, ptr %3, i64 54
  %26 = getelementptr inbounds i8, ptr %3, i64 53
  %27 = getelementptr inbounds i8, ptr %3, i64 52
  %28 = getelementptr inbounds i8, ptr %3, i64 48
  %29 = getelementptr inbounds i8, ptr %3, i64 44
  %30 = getelementptr inbounds i8, ptr %3, i64 43
  %31 = getelementptr inbounds i8, ptr %3, i64 42
  %32 = getelementptr inbounds i8, ptr %3, i64 41
  %33 = getelementptr inbounds i8, ptr %3, i64 40
  %34 = getelementptr inbounds i8, ptr %3, i64 39
  %35 = getelementptr inbounds i8, ptr %3, i64 38
  %36 = getelementptr inbounds i8, ptr %3, i64 37
  %37 = getelementptr inbounds i8, ptr %3, i64 36
  %38 = getelementptr inbounds i8, ptr %3, i64 32
  %39 = getelementptr inbounds i8, ptr %3, i64 28
  %40 = getelementptr inbounds i8, ptr %3, i64 24
  %41 = getelementptr inbounds i8, ptr %3, i64 20
  %42 = getelementptr inbounds i8, ptr %3, i64 19
  %43 = getelementptr inbounds i8, ptr %3, i64 18
  %44 = getelementptr inbounds i8, ptr %3, i64 17
  %45 = getelementptr inbounds i8, ptr %3, i64 16
  %46 = getelementptr inbounds i8, ptr %3, i64 12
  %47 = getelementptr inbounds i8, ptr %3, i64 8
  %48 = getelementptr inbounds i8, ptr %3, i64 4
  br label %49

49:                                               ; preds = %.lr.ph, %542
  %.0200364 = phi ptr [ null, %.lr.ph ], [ %.2202.ph, %542 ]
  %.0204363 = phi ptr [ null, %.lr.ph ], [ %.2206.ph, %542 ]
  %.0208362 = phi ptr [ null, %.lr.ph ], [ %.2210.ph, %542 ]
  %.0212361 = phi i8 [ 0, %.lr.ph ], [ %.2214.ph, %542 ]
  %.0216360 = phi i8 [ 0, %.lr.ph ], [ %.2218.ph, %542 ]
  %.0220359 = phi i1 [ false, %.lr.ph ], [ %.2222.ph, %542 ]
  %.0224358 = phi i32 [ 1, %.lr.ph ], [ %543, %542 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  %50 = sext i32 %.0224358 to i64
  %51 = getelementptr inbounds ptr, ptr %1, i64 %50
  %52 = load ptr, ptr %51, align 8, !tbaa !5
  store ptr %52, ptr %5, align 8, !tbaa !5
  %53 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.21) #11
  %54 = icmp eq i32 %53, 0
  br i1 %54, label %55, label %69

55:                                               ; preds = %49
  %56 = add nsw i32 %.0224358, 1
  %57 = icmp slt i32 %56, %0
  br i1 %57, label %58, label %69

58:                                               ; preds = %55
  %59 = sext i32 %56 to i64
  %60 = getelementptr inbounds ptr, ptr %1, i64 %59
  %61 = load ptr, ptr %60, align 8, !tbaa !5
  %62 = load i8, ptr %61, align 1, !tbaa !9
  %63 = sext i8 %62 to i32
  %isdigittmp = add nsw i32 %63, -48
  %isdigit = icmp ult i32 %isdigittmp, 10
  br i1 %isdigit, label %64, label %69

64:                                               ; preds = %58
  %65 = call i32 @atoi(ptr nocapture noundef %61) #11
  %66 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %65, i32 noundef 1, i32 noundef 16)
  store i32 %66, ptr %3, align 8, !tbaa !10
  br label %542

67:                                               ; preds = %539, %516
  %68 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  br label %768

69:                                               ; preds = %58, %55, %49
  %70 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.22) #11
  %71 = icmp eq i32 %70, 0
  br i1 %71, label %72, label %84

72:                                               ; preds = %69
  %73 = add nsw i32 %.0224358, 1
  %74 = icmp slt i32 %73, %0
  br i1 %74, label %75, label %84

75:                                               ; preds = %72
  %76 = sext i32 %73 to i64
  %77 = getelementptr inbounds ptr, ptr %1, i64 %76
  %78 = load ptr, ptr %77, align 8, !tbaa !5
  %79 = load i8, ptr %78, align 1, !tbaa !9
  %80 = sext i8 %79 to i32
  %isdigittmp259 = add nsw i32 %80, -48
  %isdigit260 = icmp ult i32 %isdigittmp259, 10
  br i1 %isdigit260, label %81, label %84

81:                                               ; preds = %75
  %82 = call i32 @atoi(ptr nocapture noundef %78) #11
  %83 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %82, i32 noundef 1, i32 noundef 16)
  store i32 %83, ptr %48, align 4, !tbaa !15
  br label %542

84:                                               ; preds = %75, %72, %69
  %85 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.23) #11
  %86 = icmp eq i32 %85, 0
  br i1 %86, label %87, label %99

87:                                               ; preds = %84
  %88 = add nsw i32 %.0224358, 1
  %89 = icmp slt i32 %88, %0
  br i1 %89, label %90, label %99

90:                                               ; preds = %87
  %91 = sext i32 %88 to i64
  %92 = getelementptr inbounds ptr, ptr %1, i64 %91
  %93 = load ptr, ptr %92, align 8, !tbaa !5
  %94 = load i8, ptr %93, align 1, !tbaa !9
  %95 = sext i8 %94 to i32
  %isdigittmp261 = add nsw i32 %95, -48
  %isdigit262 = icmp ult i32 %isdigittmp261, 10
  br i1 %isdigit262, label %96, label %99

96:                                               ; preds = %90
  %97 = call i32 @atoi(ptr nocapture noundef %93) #11
  %98 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %97, i32 noundef 1, i32 noundef 16)
  store i32 %98, ptr %47, align 8, !tbaa !16
  br label %542

99:                                               ; preds = %90, %87, %84
  %100 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.24) #11
  %101 = icmp eq i32 %100, 0
  br i1 %101, label %102, label %114

102:                                              ; preds = %99
  %103 = add nsw i32 %.0224358, 1
  %104 = icmp slt i32 %103, %0
  br i1 %104, label %105, label %114

105:                                              ; preds = %102
  %106 = sext i32 %103 to i64
  %107 = getelementptr inbounds ptr, ptr %1, i64 %106
  %108 = load ptr, ptr %107, align 8, !tbaa !5
  %109 = load i8, ptr %108, align 1, !tbaa !9
  %110 = sext i8 %109 to i32
  %isdigittmp263 = add nsw i32 %110, -48
  %isdigit264 = icmp ult i32 %isdigittmp263, 10
  br i1 %isdigit264, label %111, label %114

111:                                              ; preds = %105
  %112 = call i32 @atoi(ptr nocapture noundef %108) #11
  %113 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %112, i32 noundef 1, i32 noundef 16)
  store i32 %113, ptr %46, align 4, !tbaa !17
  br label %542

114:                                              ; preds = %105, %102, %99
  %115 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.25) #11
  %116 = icmp eq i32 %115, 0
  br i1 %116, label %117, label %118

117:                                              ; preds = %114
  store i8 0, ptr %44, align 1, !tbaa !18
  store i8 0, ptr %45, align 8, !tbaa !19
  br label %542

118:                                              ; preds = %114
  %119 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.26) #11
  %120 = icmp eq i32 %119, 0
  br i1 %120, label %121, label %122

121:                                              ; preds = %118
  store i8 0, ptr %44, align 1, !tbaa !18
  store i8 1, ptr %45, align 8, !tbaa !19
  br label %542

122:                                              ; preds = %118
  %123 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.27) #11
  %124 = icmp eq i32 %123, 0
  br i1 %124, label %125, label %126

125:                                              ; preds = %122
  store i8 1, ptr %44, align 1, !tbaa !18
  br label %542

126:                                              ; preds = %122
  %127 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.28) #11
  %128 = icmp eq i32 %127, 0
  br i1 %128, label %129, label %130

129:                                              ; preds = %126
  store i8 1, ptr %43, align 2, !tbaa !20
  br label %542

130:                                              ; preds = %126
  %131 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.29) #11
  %132 = icmp eq i32 %131, 0
  br i1 %132, label %133, label %134

133:                                              ; preds = %130
  store i8 1, ptr %42, align 1, !tbaa !21
  br label %542

134:                                              ; preds = %130
  %135 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.30) #11
  %136 = icmp eq i32 %135, 0
  br i1 %136, label %137, label %149

137:                                              ; preds = %134
  %138 = add nsw i32 %.0224358, 1
  %139 = icmp slt i32 %138, %0
  br i1 %139, label %140, label %149

140:                                              ; preds = %137
  %141 = sext i32 %138 to i64
  %142 = getelementptr inbounds ptr, ptr %1, i64 %141
  %143 = load ptr, ptr %142, align 8, !tbaa !5
  %144 = load i8, ptr %143, align 1, !tbaa !9
  %145 = sext i8 %144 to i32
  %isdigittmp265 = add nsw i32 %145, -48
  %isdigit266 = icmp ult i32 %isdigittmp265, 10
  br i1 %isdigit266, label %146, label %149

146:                                              ; preds = %140
  %147 = call i32 @atoi(ptr nocapture noundef %143) #11
  %148 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %147, i32 noundef 1, i32 noundef 24)
  store i32 %148, ptr %41, align 4, !tbaa !22
  br label %542

149:                                              ; preds = %140, %137, %134
  %150 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.31) #11
  %151 = icmp eq i32 %150, 0
  br i1 %151, label %152, label %164

152:                                              ; preds = %149
  %153 = add nsw i32 %.0224358, 1
  %154 = icmp slt i32 %153, %0
  br i1 %154, label %155, label %164

155:                                              ; preds = %152
  %156 = sext i32 %153 to i64
  %157 = getelementptr inbounds ptr, ptr %1, i64 %156
  %158 = load ptr, ptr %157, align 8, !tbaa !5
  %159 = load i8, ptr %158, align 1, !tbaa !9
  %160 = sext i8 %159 to i32
  %isdigittmp267 = add nsw i32 %160, -48
  %isdigit268 = icmp ult i32 %isdigittmp267, 10
  br i1 %isdigit268, label %161, label %164

161:                                              ; preds = %155
  %162 = call i32 @atoi(ptr nocapture noundef %158) #11
  %163 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %162, i32 noundef 4, i32 noundef 16)
  store i32 %163, ptr %40, align 8, !tbaa !23
  br label %542

164:                                              ; preds = %155, %152, %149
  %165 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.32) #11
  %166 = icmp eq i32 %165, 0
  br i1 %166, label %167, label %179

167:                                              ; preds = %164
  %168 = add nsw i32 %.0224358, 1
  %169 = icmp slt i32 %168, %0
  br i1 %169, label %170, label %179

170:                                              ; preds = %167
  %171 = sext i32 %168 to i64
  %172 = getelementptr inbounds ptr, ptr %1, i64 %171
  %173 = load ptr, ptr %172, align 8, !tbaa !5
  %174 = load i8, ptr %173, align 1, !tbaa !9
  %175 = sext i8 %174 to i32
  %isdigittmp269 = add nsw i32 %175, -48
  %isdigit270 = icmp ult i32 %isdigittmp269, 10
  br i1 %isdigit270, label %176, label %179

176:                                              ; preds = %170
  %177 = call i32 @atoi(ptr nocapture noundef %173) #11
  %178 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %177, i32 noundef 1, i32 noundef 24)
  store i32 %178, ptr %39, align 4, !tbaa !24
  br label %542

179:                                              ; preds = %170, %167, %164
  %180 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.33) #11
  %181 = icmp eq i32 %180, 0
  br i1 %181, label %182, label %194

182:                                              ; preds = %179
  %183 = add nsw i32 %.0224358, 1
  %184 = icmp slt i32 %183, %0
  br i1 %184, label %185, label %194

185:                                              ; preds = %182
  %186 = sext i32 %183 to i64
  %187 = getelementptr inbounds ptr, ptr %1, i64 %186
  %188 = load ptr, ptr %187, align 8, !tbaa !5
  %189 = load i8, ptr %188, align 1, !tbaa !9
  %190 = sext i8 %189 to i32
  %isdigittmp271 = add nsw i32 %190, -48
  %isdigit272 = icmp ult i32 %isdigittmp271, 10
  br i1 %isdigit272, label %191, label %194

191:                                              ; preds = %185
  %192 = call i32 @atoi(ptr nocapture noundef %188) #11
  %193 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %192, i32 noundef 0, i32 noundef 100)
  store i32 %193, ptr %38, align 8, !tbaa !25
  br label %542

194:                                              ; preds = %185, %182, %179
  %195 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.34) #11
  %196 = icmp eq i32 %195, 0
  br i1 %196, label %197, label %198

197:                                              ; preds = %194
  store i8 1, ptr %37, align 4, !tbaa !26
  br label %542

198:                                              ; preds = %194
  %199 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.35) #11
  %200 = icmp eq i32 %199, 0
  br i1 %200, label %201, label %202

201:                                              ; preds = %198
  store i8 1, ptr %36, align 1, !tbaa !27
  br label %542

202:                                              ; preds = %198
  %203 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.36) #11
  %204 = icmp eq i32 %203, 0
  br i1 %204, label %205, label %206

205:                                              ; preds = %202
  store i8 1, ptr %35, align 2, !tbaa !28
  br label %542

206:                                              ; preds = %202
  %207 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.37) #11
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %210

209:                                              ; preds = %206
  store i8 1, ptr %34, align 1, !tbaa !29
  br label %542

210:                                              ; preds = %206
  %211 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.38) #11
  %212 = icmp eq i32 %211, 0
  br i1 %212, label %213, label %214

213:                                              ; preds = %210
  store i8 1, ptr %33, align 8, !tbaa !30
  br label %542

214:                                              ; preds = %210
  %215 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.39) #11
  %216 = icmp eq i32 %215, 0
  br i1 %216, label %217, label %220

217:                                              ; preds = %214
  %218 = load ptr, ptr @stderr, align 8, !tbaa !5
  %219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %218, ptr noundef nonnull @.str.40) #12
  store i8 0, ptr %32, align 1, !tbaa !31
  br label %542

220:                                              ; preds = %214
  %221 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.41) #11
  %222 = icmp eq i32 %221, 0
  br i1 %222, label %223, label %224

223:                                              ; preds = %220
  store i8 1, ptr %31, align 2, !tbaa !32
  br label %542

224:                                              ; preds = %220
  %225 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.42) #11
  %226 = icmp eq i32 %225, 0
  br i1 %226, label %227, label %228

227:                                              ; preds = %224
  store i8 1, ptr %30, align 1, !tbaa !33
  br label %542

228:                                              ; preds = %224
  %229 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.43) #11
  %230 = icmp eq i32 %229, 0
  br i1 %230, label %231, label %244

231:                                              ; preds = %228
  %232 = add nsw i32 %.0224358, 1
  %233 = icmp slt i32 %232, %0
  br i1 %233, label %234, label %244

234:                                              ; preds = %231
  %235 = sext i32 %232 to i64
  %236 = getelementptr inbounds ptr, ptr %1, i64 %235
  %237 = load ptr, ptr %236, align 8, !tbaa !5
  %238 = load i8, ptr %237, align 1, !tbaa !9
  %239 = sext i8 %238 to i32
  %isdigittmp273 = add nsw i32 %239, -48
  %isdigit274 = icmp ult i32 %isdigittmp273, 10
  br i1 %isdigit274, label %240, label %244

240:                                              ; preds = %234
  %241 = call double @atof(ptr noundef %237) #11
  %242 = fptrunc double %241 to float
  %243 = call noundef float @_Z5clampIfET_S0_S0_S0_(float noundef %242, float noundef 0.000000e+00, float noundef 1.000000e+00)
  store float %243, ptr %29, align 4, !tbaa !34
  br label %542

244:                                              ; preds = %234, %231, %228
  %245 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.44) #11
  %246 = icmp eq i32 %245, 0
  br i1 %246, label %247, label %260

247:                                              ; preds = %244
  %248 = add nsw i32 %.0224358, 1
  %249 = icmp slt i32 %248, %0
  br i1 %249, label %250, label %260

250:                                              ; preds = %247
  %251 = sext i32 %248 to i64
  %252 = getelementptr inbounds ptr, ptr %1, i64 %251
  %253 = load ptr, ptr %252, align 8, !tbaa !5
  %254 = load i8, ptr %253, align 1, !tbaa !9
  %255 = sext i8 %254 to i32
  %isdigittmp275 = add nsw i32 %255, -48
  %isdigit276 = icmp ult i32 %isdigittmp275, 10
  br i1 %isdigit276, label %256, label %260

256:                                              ; preds = %250
  %257 = call double @atof(ptr noundef %253) #11
  %258 = fptrunc double %257 to float
  %259 = call noundef float @_Z5clampIfET_S0_S0_S0_(float noundef %258, float noundef 0.000000e+00, float noundef 1.000000e+00)
  store float %259, ptr %28, align 8, !tbaa !35
  br label %542

260:                                              ; preds = %250, %247, %244
  %261 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.45) #11
  %262 = icmp eq i32 %261, 0
  br i1 %262, label %263, label %264

263:                                              ; preds = %260
  store i8 1, ptr %27, align 4, !tbaa !36
  br label %542

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

267:                                              ; preds = %264
  store i8 1, ptr %26, align 1, !tbaa !37
  br label %542

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

271:                                              ; preds = %268
  store i8 1, ptr %25, align 2, !tbaa !38
  br label %542

272:                                              ; preds = %268
  %273 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.48) #11
  %274 = icmp eq i32 %273, 0
  br i1 %274, label %275, label %288

275:                                              ; preds = %272
  %276 = add nsw i32 %.0224358, 1
  %277 = icmp slt i32 %276, %0
  br i1 %277, label %278, label %288

278:                                              ; preds = %275
  %279 = sext i32 %276 to i64
  %280 = getelementptr inbounds ptr, ptr %1, i64 %279
  %281 = load ptr, ptr %280, align 8, !tbaa !5
  %282 = load i8, ptr %281, align 1, !tbaa !9
  %283 = sext i8 %282 to i32
  %isdigittmp277 = add nsw i32 %283, -48
  %isdigit278 = icmp ult i32 %isdigittmp277, 10
  br i1 %isdigit278, label %284, label %288

284:                                              ; preds = %278
  %285 = call double @atof(ptr noundef %281) #11
  %286 = fptrunc double %285 to float
  %287 = call noundef float @_Z5clampIfET_S0_S0_S0_(float noundef %286, float noundef 0.000000e+00, float noundef 1.000000e+00)
  store float %287, ptr %24, align 8, !tbaa !39
  br label %542

288:                                              ; preds = %278, %275, %272
  %289 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.49) #11
  %290 = icmp eq i32 %289, 0
  br i1 %290, label %291, label %303

291:                                              ; preds = %288
  %292 = add nsw i32 %.0224358, 1
  %293 = icmp slt i32 %292, %0
  br i1 %293, label %294, label %303

294:                                              ; preds = %291
  %295 = sext i32 %292 to i64
  %296 = getelementptr inbounds ptr, ptr %1, i64 %295
  %297 = load ptr, ptr %296, align 8, !tbaa !5
  %298 = load i8, ptr %297, align 1, !tbaa !9
  %299 = sext i8 %298 to i32
  %isdigittmp279 = add nsw i32 %299, -48
  %isdigit280 = icmp ult i32 %isdigittmp279, 10
  br i1 %isdigit280, label %300, label %303

300:                                              ; preds = %294
  %301 = call i32 @atoi(ptr nocapture noundef %297) #11
  %302 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %301, i32 noundef 3, i32 noundef 255)
  store i32 %302, ptr %23, align 4, !tbaa !40
  br label %542

303:                                              ; preds = %294, %291, %288
  %304 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.50) #11
  %305 = icmp eq i32 %304, 0
  br i1 %305, label %306, label %319

306:                                              ; preds = %303
  store i8 1, ptr %21, align 8, !tbaa !41
  %307 = add nsw i32 %.0224358, 1
  %308 = icmp slt i32 %307, %0
  br i1 %308, label %309, label %318

309:                                              ; preds = %306
  %310 = sext i32 %307 to i64
  %311 = getelementptr inbounds ptr, ptr %1, i64 %310
  %312 = load ptr, ptr %311, align 8, !tbaa !5
  %313 = load i8, ptr %312, align 1, !tbaa !9
  %314 = sext i8 %313 to i32
  %315 = call i32 @isalpha(i32 noundef %314) #11
  %.not298 = icmp eq i32 %315, 0
  br i1 %.not298, label %318, label %316

316:                                              ; preds = %309
  %317 = call noundef i32 @_Z11textureMaskPKc(ptr noundef nonnull %312)
  br label %318

318:                                              ; preds = %316, %309, %306
  %.0232 = phi i32 [ %317, %316 ], [ -1, %309 ], [ -1, %306 ]
  %.1225 = phi i32 [ %307, %316 ], [ %.0224358, %309 ], [ %.0224358, %306 ]
  call void @_Z12applySettingI11TextureModeEvRA4_T_S1_j(ptr noundef nonnull align 4 dereferenceable(16) %22, i32 noundef 2, i32 noundef %.0232)
  br label %542

319:                                              ; preds = %303
  %320 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.51) #11
  %321 = icmp eq i32 %320, 0
  br i1 %321, label %322, label %335

322:                                              ; preds = %319
  store i8 1, ptr %21, align 8, !tbaa !41
  %323 = add nsw i32 %.0224358, 1
  %324 = icmp slt i32 %323, %0
  br i1 %324, label %325, label %334

325:                                              ; preds = %322
  %326 = sext i32 %323 to i64
  %327 = getelementptr inbounds ptr, ptr %1, i64 %326
  %328 = load ptr, ptr %327, align 8, !tbaa !5
  %329 = load i8, ptr %328, align 1, !tbaa !9
  %330 = sext i8 %329 to i32
  %331 = call i32 @isalpha(i32 noundef %330) #11
  %.not297 = icmp eq i32 %331, 0
  br i1 %.not297, label %334, label %332

332:                                              ; preds = %325
  %333 = call noundef i32 @_Z11textureMaskPKc(ptr noundef nonnull %328)
  br label %334

334:                                              ; preds = %332, %325, %322
  %.0231 = phi i32 [ %333, %332 ], [ -1, %325 ], [ -1, %322 ]
  %.2226 = phi i32 [ %323, %332 ], [ %.0224358, %325 ], [ %.0224358, %322 ]
  call void @_Z12applySettingI11TextureModeEvRA4_T_S1_j(ptr noundef nonnull align 4 dereferenceable(16) %22, i32 noundef 1, i32 noundef %.0231)
  br label %542

335:                                              ; preds = %319
  %336 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.52) #11
  %337 = icmp eq i32 %336, 0
  br i1 %337, label %338, label %369

338:                                              ; preds = %335
  %339 = add nsw i32 %.0224358, 1
  %340 = icmp slt i32 %339, %0
  br i1 %340, label %341, label %350

341:                                              ; preds = %338
  %342 = sext i32 %339 to i64
  %343 = getelementptr inbounds ptr, ptr %1, i64 %342
  %344 = load ptr, ptr %343, align 8, !tbaa !5
  %345 = load i8, ptr %344, align 1, !tbaa !9
  %346 = sext i8 %345 to i32
  %isdigittmp281 = add nsw i32 %346, -48
  %isdigit282 = icmp ult i32 %isdigittmp281, 10
  br i1 %isdigit282, label %347, label %350

347:                                              ; preds = %341
  %348 = call i32 @atoi(ptr nocapture noundef %344) #11
  %349 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %348, i32 noundef 1, i32 noundef 10)
  call void @_Z12applySettingIiEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %9, i32 noundef %349, i32 noundef -1)
  br label %542

350:                                              ; preds = %341, %338
  %351 = add nsw i32 %.0224358, 2
  %352 = icmp slt i32 %351, %0
  br i1 %352, label %353, label %369

353:                                              ; preds = %350
  %gep = getelementptr ptr, ptr %invariant.gep, i64 %50
  %354 = load ptr, ptr %gep, align 8, !tbaa !5
  %355 = load i8, ptr %354, align 1, !tbaa !9
  %356 = sext i8 %355 to i32
  %357 = call i32 @isalpha(i32 noundef %356) #11
  %.not = icmp eq i32 %357, 0
  br i1 %.not, label %369, label %358

358:                                              ; preds = %353
  %359 = sext i32 %351 to i64
  %360 = getelementptr inbounds ptr, ptr %1, i64 %359
  %361 = load ptr, ptr %360, align 8, !tbaa !5
  %362 = load i8, ptr %361, align 1, !tbaa !9
  %363 = sext i8 %362 to i32
  %isdigittmp283 = add nsw i32 %363, -48
  %isdigit284 = icmp ult i32 %isdigittmp283, 10
  br i1 %isdigit284, label %364, label %369

364:                                              ; preds = %358
  %365 = call noundef i32 @_Z11textureMaskPKc(ptr noundef nonnull %354)
  %366 = load ptr, ptr %360, align 8, !tbaa !5
  %367 = call i32 @atoi(ptr nocapture noundef %366) #11
  %368 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %367, i32 noundef 1, i32 noundef 10)
  call void @_Z12applySettingIiEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %9, i32 noundef %368, i32 noundef %365)
  br label %542

369:                                              ; preds = %335, %358, %353, %350
  %370 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.53) #11
  %371 = icmp eq i32 %370, 0
  br i1 %371, label %372, label %405

372:                                              ; preds = %369
  %373 = add nsw i32 %.0224358, 1
  %374 = icmp slt i32 %373, %0
  br i1 %374, label %375, label %385

375:                                              ; preds = %372
  %376 = sext i32 %373 to i64
  %377 = getelementptr inbounds ptr, ptr %1, i64 %376
  %378 = load ptr, ptr %377, align 8, !tbaa !5
  %379 = load i8, ptr %378, align 1, !tbaa !9
  %380 = sext i8 %379 to i32
  %isdigittmp285 = add nsw i32 %380, -48
  %isdigit286 = icmp ult i32 %isdigittmp285, 10
  br i1 %isdigit286, label %381, label %385

381:                                              ; preds = %375
  %382 = call double @atof(ptr noundef %378) #11
  %383 = fptrunc double %382 to float
  %384 = call noundef float @_Z5clampIfET_S0_S0_S0_(float noundef %383, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @_Z12applySettingIfEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %10, float noundef %384, i32 noundef -1)
  br label %542

385:                                              ; preds = %375, %372
  %386 = add nsw i32 %.0224358, 2
  %387 = icmp slt i32 %386, %0
  br i1 %387, label %388, label %405

388:                                              ; preds = %385
  %gep354 = getelementptr ptr, ptr %invariant.gep, i64 %50
  %389 = load ptr, ptr %gep354, align 8, !tbaa !5
  %390 = load i8, ptr %389, align 1, !tbaa !9
  %391 = sext i8 %390 to i32
  %392 = call i32 @isalpha(i32 noundef %391) #11
  %.not287 = icmp eq i32 %392, 0
  br i1 %.not287, label %405, label %393

393:                                              ; preds = %388
  %394 = sext i32 %386 to i64
  %395 = getelementptr inbounds ptr, ptr %1, i64 %394
  %396 = load ptr, ptr %395, align 8, !tbaa !5
  %397 = load i8, ptr %396, align 1, !tbaa !9
  %398 = sext i8 %397 to i32
  %isdigittmp288 = add nsw i32 %398, -48
  %isdigit289 = icmp ult i32 %isdigittmp288, 10
  br i1 %isdigit289, label %399, label %405

399:                                              ; preds = %393
  %400 = call noundef i32 @_Z11textureMaskPKc(ptr noundef nonnull %389)
  %401 = load ptr, ptr %395, align 8, !tbaa !5
  %402 = call double @atof(ptr noundef %401) #11
  %403 = fptrunc double %402 to float
  %404 = call noundef float @_Z5clampIfET_S0_S0_S0_(float noundef %403, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @_Z12applySettingIfEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %10, float noundef %404, i32 noundef %400)
  br label %542

405:                                              ; preds = %369, %393, %388, %385
  %406 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.54) #11
  %407 = icmp eq i32 %406, 0
  br i1 %407, label %408, label %437

408:                                              ; preds = %405
  %409 = add nsw i32 %.0224358, 1
  %410 = icmp slt i32 %409, %0
  br i1 %410, label %411, label %419

411:                                              ; preds = %408
  %412 = sext i32 %409 to i64
  %413 = getelementptr inbounds ptr, ptr %1, i64 %412
  %414 = load ptr, ptr %413, align 8, !tbaa !5
  %415 = load i8, ptr %414, align 1, !tbaa !9
  %416 = sext i8 %415 to i32
  %isdigittmp290 = add nsw i32 %416, -48
  %isdigit291 = icmp ult i32 %isdigittmp290, 10
  br i1 %isdigit291, label %417, label %419

417:                                              ; preds = %411
  %418 = call i32 @atoi(ptr nocapture noundef %414) #11
  call void @_Z12applySettingIiEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %418, i32 noundef -1)
  br label %542

419:                                              ; preds = %411, %408
  %420 = add nsw i32 %.0224358, 2
  %421 = icmp slt i32 %420, %0
  br i1 %421, label %422, label %437

422:                                              ; preds = %419
  %gep356 = getelementptr ptr, ptr %invariant.gep, i64 %50
  %423 = load ptr, ptr %gep356, align 8, !tbaa !5
  %424 = load i8, ptr %423, align 1, !tbaa !9
  %425 = sext i8 %424 to i32
  %426 = call i32 @isalpha(i32 noundef %425) #11
  %.not292 = icmp eq i32 %426, 0
  br i1 %.not292, label %437, label %427

427:                                              ; preds = %422
  %428 = sext i32 %420 to i64
  %429 = getelementptr inbounds ptr, ptr %1, i64 %428
  %430 = load ptr, ptr %429, align 8, !tbaa !5
  %431 = load i8, ptr %430, align 1, !tbaa !9
  %432 = sext i8 %431 to i32
  %isdigittmp293 = add nsw i32 %432, -48
  %isdigit294 = icmp ult i32 %isdigittmp293, 10
  br i1 %isdigit294, label %433, label %437

433:                                              ; preds = %427
  %434 = call noundef i32 @_Z11textureMaskPKc(ptr noundef nonnull %423)
  %435 = load ptr, ptr %429, align 8, !tbaa !5
  %436 = call i32 @atoi(ptr nocapture noundef %435) #11
  call void @_Z12applySettingIiEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %436, i32 noundef %434)
  br label %542

437:                                              ; preds = %405, %427, %422, %419
  %438 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.55) #11
  %439 = icmp eq i32 %438, 0
  br i1 %439, label %440, label %441

440:                                              ; preds = %437
  store i8 1, ptr %20, align 1, !tbaa !42
  br label %542

441:                                              ; preds = %437
  %442 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.56) #11
  %443 = icmp eq i32 %442, 0
  br i1 %443, label %444, label %445

444:                                              ; preds = %441
  store i8 1, ptr %19, align 4, !tbaa !43
  br label %542

445:                                              ; preds = %441
  %446 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.57) #11
  %447 = icmp eq i32 %446, 0
  br i1 %447, label %448, label %449

448:                                              ; preds = %445
  store i8 1, ptr %18, align 2, !tbaa !44
  br label %542

449:                                              ; preds = %445
  %450 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.58) #11
  %451 = icmp eq i32 %450, 0
  br i1 %451, label %452, label %464

452:                                              ; preds = %449
  %453 = add nsw i32 %.0224358, 1
  %454 = icmp slt i32 %453, %0
  br i1 %454, label %455, label %464

455:                                              ; preds = %452
  %456 = sext i32 %453 to i64
  %457 = getelementptr inbounds ptr, ptr %1, i64 %456
  %458 = load ptr, ptr %457, align 8, !tbaa !5
  %459 = load i8, ptr %458, align 1, !tbaa !9
  %460 = sext i8 %459 to i32
  %isdigittmp295 = add nsw i32 %460, -48
  %isdigit296 = icmp ult i32 %isdigittmp295, 10
  br i1 %isdigit296, label %461, label %464

461:                                              ; preds = %455
  %462 = call i32 @atoi(ptr nocapture noundef %458) #11
  %463 = call noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef %462, i32 noundef 0, i32 noundef 128)
  store i32 %463, ptr %17, align 8, !tbaa !45
  br label %542

464:                                              ; preds = %455, %452, %449
  %465 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.59) #11
  %466 = icmp eq i32 %465, 0
  br i1 %466, label %467, label %468

467:                                              ; preds = %464
  store i8 0, ptr %16, align 4, !tbaa !46
  br label %542

468:                                              ; preds = %464
  %469 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.60) #11
  %470 = icmp eq i32 %469, 0
  br i1 %470, label %471, label %479

471:                                              ; preds = %468
  %472 = add nsw i32 %.0224358, 1
  %473 = icmp sge i32 %472, %0
  %474 = icmp ne ptr %.0200364, null
  %or.cond = select i1 %473, i1 true, i1 %474
  br i1 %or.cond, label %479, label %475

475:                                              ; preds = %471
  %476 = sext i32 %472 to i64
  %477 = getelementptr inbounds ptr, ptr %1, i64 %476
  %478 = load ptr, ptr %477, align 8, !tbaa !5
  br label %542

479:                                              ; preds = %471, %468
  %480 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.61) #11
  %481 = icmp eq i32 %480, 0
  br i1 %481, label %482, label %490

482:                                              ; preds = %479
  %483 = add nsw i32 %.0224358, 1
  %484 = icmp sge i32 %483, %0
  %485 = icmp ne ptr %.0204363, null
  %or.cond4 = select i1 %484, i1 true, i1 %485
  br i1 %or.cond4, label %490, label %486

486:                                              ; preds = %482
  %487 = sext i32 %483 to i64
  %488 = getelementptr inbounds ptr, ptr %1, i64 %487
  %489 = load ptr, ptr %488, align 8, !tbaa !5
  br label %542

490:                                              ; preds = %482, %479
  %491 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.62) #11
  %492 = icmp eq i32 %491, 0
  br i1 %492, label %493, label %501

493:                                              ; preds = %490
  %494 = add nsw i32 %.0224358, 1
  %495 = icmp sge i32 %494, %0
  %496 = icmp ne ptr %.0208362, null
  %or.cond6 = select i1 %495, i1 true, i1 %496
  br i1 %or.cond6, label %501, label %497

497:                                              ; preds = %493
  %498 = sext i32 %494 to i64
  %499 = getelementptr inbounds ptr, ptr %1, i64 %498
  %500 = load ptr, ptr %499, align 8, !tbaa !5
  br label %542

501:                                              ; preds = %493, %490
  %502 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.63) #11
  %503 = icmp eq i32 %502, 0
  br i1 %503, label %504, label %505

504:                                              ; preds = %501
  store i8 1, ptr %13, align 1, !tbaa !47
  br label %542

505:                                              ; preds = %501
  %506 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.64) #11
  %507 = icmp eq i32 %506, 0
  br i1 %507, label %508, label %509

508:                                              ; preds = %505
  store i8 1, ptr %13, align 1, !tbaa !47
  store i8 1, ptr %14, align 2, !tbaa !48
  br label %542

509:                                              ; preds = %505
  %510 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.65) #11
  %511 = icmp eq i32 %510, 0
  br i1 %511, label %512, label %513

512:                                              ; preds = %509
  store i8 1, ptr %13, align 1, !tbaa !47
  store i8 1, ptr %15, align 1, !tbaa !49
  br label %542

513:                                              ; preds = %509
  %514 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.66) #11
  %515 = icmp eq i32 %514, 0
  br i1 %515, label %516, label %520

516:                                              ; preds = %513
  %517 = load ptr, ptr @stderr, align 8, !tbaa !5
  %518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %517, ptr noundef nonnull @.str.67) #12
  invoke void @meshopt_encodeVertexVersion(i32 noundef 1)
          to label %519 unwind label %67

519:                                              ; preds = %516
  store i8 1, ptr %13, align 1, !tbaa !47
  store i8 1, ptr %14, align 2, !tbaa !48
  br label %542

520:                                              ; preds = %513
  %521 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.68) #11
  %522 = icmp eq i32 %521, 0
  br i1 %522, label %523, label %524

523:                                              ; preds = %520
  store i32 1, ptr %12, align 8, !tbaa !50
  br label %542

524:                                              ; preds = %520
  %525 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.69) #11
  %526 = icmp eq i32 %525, 0
  br i1 %526, label %527, label %528

527:                                              ; preds = %524
  store i32 2, ptr %12, align 8, !tbaa !50
  br label %542

528:                                              ; preds = %524
  %529 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.70) #11
  %530 = icmp eq i32 %529, 0
  br i1 %530, label %542, label %531

531:                                              ; preds = %528
  %532 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.71) #11
  %533 = icmp eq i32 %532, 0
  br i1 %533, label %542, label %534

534:                                              ; preds = %531
  %535 = load i8, ptr %52, align 1, !tbaa !9
  %536 = icmp eq i8 %535, 45
  br i1 %536, label %.thread324, label %537

537:                                              ; preds = %534
  %538 = trunc nuw i8 %.0216360 to i1
  br i1 %538, label %539, label %.thread324

539:                                              ; preds = %537
  invoke void @_ZNSt6vectorIPKcSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %542 unwind label %67

.thread324:                                       ; preds = %537, %534
  %.str.72.sink = phi ptr [ @.str.72, %534 ], [ @.str.73, %537 ]
  %540 = load ptr, ptr @stderr, align 8, !tbaa !5
  %541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %540, ptr noundef nonnull %.str.72.sink, ptr noundef nonnull %52) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  br label %.loopexit

542:                                              ; preds = %531, %528, %81, %111, %121, %129, %146, %176, %197, %205, %213, %223, %240, %263, %271, %300, %334, %364, %399, %433, %444, %461, %475, %497, %508, %519, %527, %539, %523, %512, %504, %486, %467, %448, %440, %417, %381, %347, %318, %284, %267, %256, %227, %217, %209, %201, %191, %161, %133, %125, %117, %96, %64
  %.4.ph = phi i32 [ %.0224358, %531 ], [ %.0224358, %528 ], [ %472, %475 ], [ %483, %486 ], [ %494, %497 ], [ %.0224358, %539 ], [ %.0224358, %527 ], [ %.0224358, %523 ], [ %.0224358, %519 ], [ %.0224358, %512 ], [ %.0224358, %508 ], [ %.0224358, %504 ], [ %.0224358, %467 ], [ %453, %461 ], [ %.0224358, %448 ], [ %.0224358, %444 ], [ %.0224358, %440 ], [ %420, %433 ], [ %409, %417 ], [ %386, %399 ], [ %373, %381 ], [ %351, %364 ], [ %339, %347 ], [ %.2226, %334 ], [ %.1225, %318 ], [ %292, %300 ], [ %276, %284 ], [ %.0224358, %271 ], [ %.0224358, %267 ], [ %.0224358, %263 ], [ %248, %256 ], [ %232, %240 ], [ %.0224358, %227 ], [ %.0224358, %223 ], [ %.0224358, %217 ], [ %.0224358, %213 ], [ %.0224358, %209 ], [ %.0224358, %205 ], [ %.0224358, %201 ], [ %.0224358, %197 ], [ %183, %191 ], [ %168, %176 ], [ %153, %161 ], [ %138, %146 ], [ %.0224358, %133 ], [ %.0224358, %129 ], [ %.0224358, %125 ], [ %.0224358, %121 ], [ %.0224358, %117 ], [ %103, %111 ], [ %88, %96 ], [ %73, %81 ], [ %56, %64 ]
  %.2222.ph = phi i1 [ %.0220359, %531 ], [ %.0220359, %528 ], [ %.0220359, %475 ], [ %.0220359, %486 ], [ %.0220359, %497 ], [ %.0220359, %539 ], [ %.0220359, %527 ], [ %.0220359, %523 ], [ %.0220359, %519 ], [ %.0220359, %512 ], [ %.0220359, %508 ], [ %.0220359, %504 ], [ %.0220359, %467 ], [ %.0220359, %461 ], [ %.0220359, %448 ], [ true, %444 ], [ true, %440 ], [ true, %433 ], [ true, %417 ], [ true, %399 ], [ true, %381 ], [ true, %364 ], [ true, %347 ], [ %.0220359, %334 ], [ %.0220359, %318 ], [ %.0220359, %300 ], [ %.0220359, %284 ], [ %.0220359, %271 ], [ %.0220359, %267 ], [ %.0220359, %263 ], [ %.0220359, %256 ], [ %.0220359, %240 ], [ %.0220359, %227 ], [ %.0220359, %223 ], [ %.0220359, %217 ], [ %.0220359, %213 ], [ %.0220359, %209 ], [ %.0220359, %205 ], [ %.0220359, %201 ], [ %.0220359, %197 ], [ %.0220359, %191 ], [ %.0220359, %176 ], [ %.0220359, %161 ], [ %.0220359, %146 ], [ %.0220359, %133 ], [ %.0220359, %129 ], [ %.0220359, %125 ], [ %.0220359, %121 ], [ %.0220359, %117 ], [ %.0220359, %111 ], [ %.0220359, %96 ], [ %.0220359, %81 ], [ %.0220359, %64 ]
  %.2218.ph = phi i8 [ 1, %531 ], [ %.0216360, %528 ], [ %.0216360, %475 ], [ %.0216360, %486 ], [ %.0216360, %497 ], [ %.0216360, %539 ], [ %.0216360, %527 ], [ %.0216360, %523 ], [ %.0216360, %519 ], [ %.0216360, %512 ], [ %.0216360, %508 ], [ %.0216360, %504 ], [ %.0216360, %467 ], [ %.0216360, %461 ], [ %.0216360, %448 ], [ %.0216360, %444 ], [ %.0216360, %440 ], [ %.0216360, %433 ], [ %.0216360, %417 ], [ %.0216360, %399 ], [ %.0216360, %381 ], [ %.0216360, %364 ], [ %.0216360, %347 ], [ %.0216360, %334 ], [ %.0216360, %318 ], [ %.0216360, %300 ], [ %.0216360, %284 ], [ %.0216360, %271 ], [ %.0216360, %267 ], [ %.0216360, %263 ], [ %.0216360, %256 ], [ %.0216360, %240 ], [ %.0216360, %227 ], [ %.0216360, %223 ], [ %.0216360, %217 ], [ %.0216360, %213 ], [ %.0216360, %209 ], [ %.0216360, %205 ], [ %.0216360, %201 ], [ %.0216360, %197 ], [ %.0216360, %191 ], [ %.0216360, %176 ], [ %.0216360, %161 ], [ %.0216360, %146 ], [ %.0216360, %133 ], [ %.0216360, %129 ], [ %.0216360, %125 ], [ %.0216360, %121 ], [ %.0216360, %117 ], [ %.0216360, %111 ], [ %.0216360, %96 ], [ %.0216360, %81 ], [ %.0216360, %64 ]
  %.2214.ph = phi i8 [ %.0212361, %531 ], [ 1, %528 ], [ %.0212361, %475 ], [ %.0212361, %486 ], [ %.0212361, %497 ], [ %.0212361, %539 ], [ %.0212361, %527 ], [ %.0212361, %523 ], [ %.0212361, %519 ], [ %.0212361, %512 ], [ %.0212361, %508 ], [ %.0212361, %504 ], [ %.0212361, %467 ], [ %.0212361, %461 ], [ %.0212361, %448 ], [ %.0212361, %444 ], [ %.0212361, %440 ], [ %.0212361, %433 ], [ %.0212361, %417 ], [ %.0212361, %399 ], [ %.0212361, %381 ], [ %.0212361, %364 ], [ %.0212361, %347 ], [ %.0212361, %334 ], [ %.0212361, %318 ], [ %.0212361, %300 ], [ %.0212361, %284 ], [ %.0212361, %271 ], [ %.0212361, %267 ], [ %.0212361, %263 ], [ %.0212361, %256 ], [ %.0212361, %240 ], [ %.0212361, %227 ], [ %.0212361, %223 ], [ %.0212361, %217 ], [ %.0212361, %213 ], [ %.0212361, %209 ], [ %.0212361, %205 ], [ %.0212361, %201 ], [ %.0212361, %197 ], [ %.0212361, %191 ], [ %.0212361, %176 ], [ %.0212361, %161 ], [ %.0212361, %146 ], [ %.0212361, %133 ], [ %.0212361, %129 ], [ %.0212361, %125 ], [ %.0212361, %121 ], [ %.0212361, %117 ], [ %.0212361, %111 ], [ %.0212361, %96 ], [ %.0212361, %81 ], [ %.0212361, %64 ]
  %.2210.ph = phi ptr [ %.0208362, %531 ], [ %.0208362, %528 ], [ %.0208362, %475 ], [ %.0208362, %486 ], [ %500, %497 ], [ %.0208362, %539 ], [ %.0208362, %527 ], [ %.0208362, %523 ], [ %.0208362, %519 ], [ %.0208362, %512 ], [ %.0208362, %508 ], [ %.0208362, %504 ], [ %.0208362, %467 ], [ %.0208362, %461 ], [ %.0208362, %448 ], [ %.0208362, %444 ], [ %.0208362, %440 ], [ %.0208362, %433 ], [ %.0208362, %417 ], [ %.0208362, %399 ], [ %.0208362, %381 ], [ %.0208362, %364 ], [ %.0208362, %347 ], [ %.0208362, %334 ], [ %.0208362, %318 ], [ %.0208362, %300 ], [ %.0208362, %284 ], [ %.0208362, %271 ], [ %.0208362, %267 ], [ %.0208362, %263 ], [ %.0208362, %256 ], [ %.0208362, %240 ], [ %.0208362, %227 ], [ %.0208362, %223 ], [ %.0208362, %217 ], [ %.0208362, %213 ], [ %.0208362, %209 ], [ %.0208362, %205 ], [ %.0208362, %201 ], [ %.0208362, %197 ], [ %.0208362, %191 ], [ %.0208362, %176 ], [ %.0208362, %161 ], [ %.0208362, %146 ], [ %.0208362, %133 ], [ %.0208362, %129 ], [ %.0208362, %125 ], [ %.0208362, %121 ], [ %.0208362, %117 ], [ %.0208362, %111 ], [ %.0208362, %96 ], [ %.0208362, %81 ], [ %.0208362, %64 ]
  %.2206.ph = phi ptr [ %.0204363, %531 ], [ %.0204363, %528 ], [ %.0204363, %475 ], [ %489, %486 ], [ %.0204363, %497 ], [ %.0204363, %539 ], [ %.0204363, %527 ], [ %.0204363, %523 ], [ %.0204363, %519 ], [ %.0204363, %512 ], [ %.0204363, %508 ], [ %.0204363, %504 ], [ %.0204363, %467 ], [ %.0204363, %461 ], [ %.0204363, %448 ], [ %.0204363, %444 ], [ %.0204363, %440 ], [ %.0204363, %433 ], [ %.0204363, %417 ], [ %.0204363, %399 ], [ %.0204363, %381 ], [ %.0204363, %364 ], [ %.0204363, %347 ], [ %.0204363, %334 ], [ %.0204363, %318 ], [ %.0204363, %300 ], [ %.0204363, %284 ], [ %.0204363, %271 ], [ %.0204363, %267 ], [ %.0204363, %263 ], [ %.0204363, %256 ], [ %.0204363, %240 ], [ %.0204363, %227 ], [ %.0204363, %223 ], [ %.0204363, %217 ], [ %.0204363, %213 ], [ %.0204363, %209 ], [ %.0204363, %205 ], [ %.0204363, %201 ], [ %.0204363, %197 ], [ %.0204363, %191 ], [ %.0204363, %176 ], [ %.0204363, %161 ], [ %.0204363, %146 ], [ %.0204363, %133 ], [ %.0204363, %129 ], [ %.0204363, %125 ], [ %.0204363, %121 ], [ %.0204363, %117 ], [ %.0204363, %111 ], [ %.0204363, %96 ], [ %.0204363, %81 ], [ %.0204363, %64 ]
  %.2202.ph = phi ptr [ %.0200364, %531 ], [ %.0200364, %528 ], [ %478, %475 ], [ %.0200364, %486 ], [ %.0200364, %497 ], [ %.0200364, %539 ], [ %.0200364, %527 ], [ %.0200364, %523 ], [ %.0200364, %519 ], [ %.0200364, %512 ], [ %.0200364, %508 ], [ %.0200364, %504 ], [ %.0200364, %467 ], [ %.0200364, %461 ], [ %.0200364, %448 ], [ %.0200364, %444 ], [ %.0200364, %440 ], [ %.0200364, %433 ], [ %.0200364, %417 ], [ %.0200364, %399 ], [ %.0200364, %381 ], [ %.0200364, %364 ], [ %.0200364, %347 ], [ %.0200364, %334 ], [ %.0200364, %318 ], [ %.0200364, %300 ], [ %.0200364, %284 ], [ %.0200364, %271 ], [ %.0200364, %267 ], [ %.0200364, %263 ], [ %.0200364, %256 ], [ %.0200364, %240 ], [ %.0200364, %227 ], [ %.0200364, %223 ], [ %.0200364, %217 ], [ %.0200364, %213 ], [ %.0200364, %209 ], [ %.0200364, %205 ], [ %.0200364, %201 ], [ %.0200364, %197 ], [ %.0200364, %191 ], [ %.0200364, %176 ], [ %.0200364, %161 ], [ %.0200364, %146 ], [ %.0200364, %133 ], [ %.0200364, %129 ], [ %.0200364, %125 ], [ %.0200364, %121 ], [ %.0200364, %117 ], [ %.0200364, %111 ], [ %.0200364, %96 ], [ %.0200364, %81 ], [ %.0200364, %64 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  %543 = add nsw i32 %.4.ph, 1
  %.not299 = icmp slt i32 %543, %0
  br i1 %.not299, label %49, label %._crit_edge, !llvm.loop !51

._crit_edge:                                      ; preds = %542
  %544 = getelementptr inbounds i8, ptr %3, i64 144
  %545 = load i32, ptr %544, align 8, !tbaa !50
  %546 = icmp ne i32 %545, 0
  %547 = icmp eq i32 %0, 2
  %or.cond8 = and i1 %547, %546
  br i1 %or.cond8, label %548, label %554

548:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #10
  invoke void @_Z10getVersionB5cxx11v(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6)
          to label %549 unwind label %552

549:                                              ; preds = %548
  %550 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  %551 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.74, ptr noundef %550)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #10
  br label %.loopexit

552:                                              ; preds = %548
  %553 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #10
  br label %768

554:                                              ; preds = %._crit_edge
  %555 = trunc nuw i8 %.2218.ph to i1
  br i1 %555, label %.preheader, label %567

.preheader:                                       ; preds = %554
  %556 = call noundef i64 @_ZNKSt6vectorIPKcSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #10
  %.not372 = icmp eq i64 %556, 0
  br i1 %.not372, label %.loopexit, label %.lr.ph371

.lr.ph371:                                        ; preds = %.preheader, %561
  %.0199370 = phi i64 [ %562, %561 ], [ 0, %.preheader ]
  %557 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKcSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %.0199370) #10
  %558 = load ptr, ptr %557, align 8, !tbaa !5
  %559 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.75, ptr noundef %558)
  %560 = invoke noundef i32 @_Z8gltfpackPKcS0_S0_8Settings(ptr noundef %558, ptr noundef null, ptr noundef null, ptr noundef nonnull byval(%struct.Settings) align 8 %3)
          to label %561 unwind label %565

561:                                              ; preds = %.lr.ph371
  %562 = add nuw i64 %.0199370, 1
  %563 = call noundef i64 @_ZNKSt6vectorIPKcSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #10
  %564 = icmp ult i64 %562, %563
  br i1 %564, label %.lr.ph371, label %.loopexit, !llvm.loop !53

565:                                              ; preds = %.lr.ph371
  %566 = landingpad { ptr, i32 }
          cleanup
  br label %768

567:                                              ; preds = %554
  %568 = icmp ne ptr %.2202.ph, null
  %569 = icmp ne ptr %.2206.ph, null
  %or.cond10 = select i1 %568, i1 %569, i1 false
  br i1 %or.cond10, label %570, label %.thread400

570:                                              ; preds = %567
  %571 = trunc nuw i8 %.2214.ph to i1
  br i1 %571, label %.thread400, label %704

.thread400:                                       ; preds = %2, %570, %567
  %.0212.lcssa385398407 = phi i8 [ %.2214.ph, %570 ], [ %.2214.ph, %567 ], [ 0, %2 ]
  %572 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #10
  invoke void @_Z10getVersionB5cxx11v(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7)
          to label %573 unwind label %696

573:                                              ; preds = %.thread400
  %574 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #10
  %575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %572, ptr noundef nonnull @.str.74, ptr noundef %574) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #10
  %576 = load ptr, ptr @stderr, align 8, !tbaa !5
  %577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %576, ptr noundef nonnull @.str.76) #12
  %578 = trunc nuw i8 %.0212.lcssa385398407 to i1
  %579 = load ptr, ptr @stderr, align 8, !tbaa !5
  %580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %579, ptr noundef nonnull @.str.77) #12
  %581 = load ptr, ptr @stderr, align 8, !tbaa !5
  %582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %581, ptr noundef nonnull @.str.78) #12
  %583 = load ptr, ptr @stderr, align 8, !tbaa !5
  %584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %583, ptr noundef nonnull @.str.79) #12
  %585 = load ptr, ptr @stderr, align 8, !tbaa !5
  %586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %585, ptr noundef nonnull @.str.80) #12
  %587 = load ptr, ptr @stderr, align 8, !tbaa !5
  br i1 %578, label %588, label %698

588:                                              ; preds = %573
  %589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %587, ptr noundef nonnull @.str.81) #12
  %590 = load ptr, ptr @stderr, align 8, !tbaa !5
  %591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %590, ptr noundef nonnull @.str.82) #12
  %592 = load ptr, ptr @stderr, align 8, !tbaa !5
  %593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %592, ptr noundef nonnull @.str.83) #12
  %594 = load ptr, ptr @stderr, align 8, !tbaa !5
  %595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %594, ptr noundef nonnull @.str.84) #12
  %596 = load ptr, ptr @stderr, align 8, !tbaa !5
  %597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %596, ptr noundef nonnull @.str.85) #12
  %598 = load ptr, ptr @stderr, align 8, !tbaa !5
  %599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %598, ptr noundef nonnull @.str.86) #12
  %600 = load ptr, ptr @stderr, align 8, !tbaa !5
  %601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %600, ptr noundef nonnull @.str.87) #12
  %602 = load ptr, ptr @stderr, align 8, !tbaa !5
  %603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %602, ptr noundef nonnull @.str.88) #12
  %604 = load ptr, ptr @stderr, align 8, !tbaa !5
  %605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %604, ptr noundef nonnull @.str.89) #12
  %606 = load ptr, ptr @stderr, align 8, !tbaa !5
  %607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %606, ptr noundef nonnull @.str.90) #12
  %608 = load ptr, ptr @stderr, align 8, !tbaa !5
  %609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %608, ptr noundef nonnull @.str.91) #12
  %610 = load ptr, ptr @stderr, align 8, !tbaa !5
  %611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %610, ptr noundef nonnull @.str.92) #12
  %612 = load ptr, ptr @stderr, align 8, !tbaa !5
  %613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %612, ptr noundef nonnull @.str.93) #12
  %614 = load ptr, ptr @stderr, align 8, !tbaa !5
  %615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %614, ptr noundef nonnull @.str.94) #12
  %616 = load ptr, ptr @stderr, align 8, !tbaa !5
  %617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %616, ptr noundef nonnull @.str.95) #12
  %618 = load ptr, ptr @stderr, align 8, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %618, ptr noundef nonnull @.str.96) #12
  %620 = load ptr, ptr @stderr, align 8, !tbaa !5
  %621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %620, ptr noundef nonnull @.str.97) #12
  %622 = load ptr, ptr @stderr, align 8, !tbaa !5
  %623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %622, ptr noundef nonnull @.str.98) #12
  %624 = load ptr, ptr @stderr, align 8, !tbaa !5
  %625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %624, ptr noundef nonnull @.str.99) #12
  %626 = load ptr, ptr @stderr, align 8, !tbaa !5
  %627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef nonnull @.str.100) #12
  %628 = load ptr, ptr @stderr, align 8, !tbaa !5
  %629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef nonnull @.str.101) #12
  %630 = load ptr, ptr @stderr, align 8, !tbaa !5
  %631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %630, ptr noundef nonnull @.str.102) #12
  %632 = load ptr, ptr @stderr, align 8, !tbaa !5
  %633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %632, ptr noundef nonnull @.str.103) #12
  %634 = load ptr, ptr @stderr, align 8, !tbaa !5
  %635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %634, ptr noundef nonnull @.str.104) #12
  %636 = load ptr, ptr @stderr, align 8, !tbaa !5
  %637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %636, ptr noundef nonnull @.str.105) #12
  %638 = load ptr, ptr @stderr, align 8, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef nonnull @.str.106) #12
  %640 = load ptr, ptr @stderr, align 8, !tbaa !5
  %641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %640, ptr noundef nonnull @.str.107) #12
  %642 = load ptr, ptr @stderr, align 8, !tbaa !5
  %643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %642, ptr noundef nonnull @.str.108) #12
  %644 = load ptr, ptr @stderr, align 8, !tbaa !5
  %645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %644, ptr noundef nonnull @.str.109) #12
  %646 = load ptr, ptr @stderr, align 8, !tbaa !5
  %647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %646, ptr noundef nonnull @.str.110) #12
  %648 = load ptr, ptr @stderr, align 8, !tbaa !5
  %649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %648, ptr noundef nonnull @.str.111) #12
  %650 = load ptr, ptr @stderr, align 8, !tbaa !5
  %651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %650, ptr noundef nonnull @.str.112) #12
  %652 = load ptr, ptr @stderr, align 8, !tbaa !5
  %653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %652, ptr noundef nonnull @.str.113) #12
  %654 = load ptr, ptr @stderr, align 8, !tbaa !5
  %655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %654, ptr noundef nonnull @.str.114) #12
  %656 = load ptr, ptr @stderr, align 8, !tbaa !5
  %657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %656, ptr noundef nonnull @.str.115) #12
  %658 = load ptr, ptr @stderr, align 8, !tbaa !5
  %659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %658, ptr noundef nonnull @.str.116) #12
  %660 = load ptr, ptr @stderr, align 8, !tbaa !5
  %661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %660, ptr noundef nonnull @.str.117) #12
  %662 = load ptr, ptr @stderr, align 8, !tbaa !5
  %663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %662, ptr noundef nonnull @.str.118) #12
  %664 = load ptr, ptr @stderr, align 8, !tbaa !5
  %665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %664, ptr noundef nonnull @.str.119) #12
  %666 = load ptr, ptr @stderr, align 8, !tbaa !5
  %667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %666, ptr noundef nonnull @.str.120) #12
  %668 = load ptr, ptr @stderr, align 8, !tbaa !5
  %669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %668, ptr noundef nonnull @.str.121) #12
  %670 = load ptr, ptr @stderr, align 8, !tbaa !5
  %671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %670, ptr noundef nonnull @.str.122) #12
  %672 = load ptr, ptr @stderr, align 8, !tbaa !5
  %673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %672, ptr noundef nonnull @.str.123) #12
  %674 = load ptr, ptr @stderr, align 8, !tbaa !5
  %675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %674, ptr noundef nonnull @.str.124) #12
  %676 = load ptr, ptr @stderr, align 8, !tbaa !5
  %677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %676, ptr noundef nonnull @.str.125) #12
  %678 = load ptr, ptr @stderr, align 8, !tbaa !5
  %679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %678, ptr noundef nonnull @.str.126) #12
  %680 = load ptr, ptr @stderr, align 8, !tbaa !5
  %681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %680, ptr noundef nonnull @.str.127) #12
  %682 = load ptr, ptr @stderr, align 8, !tbaa !5
  %683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %682, ptr noundef nonnull @.str.128) #12
  %684 = load ptr, ptr @stderr, align 8, !tbaa !5
  %685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %684, ptr noundef nonnull @.str.129) #12
  %686 = load ptr, ptr @stderr, align 8, !tbaa !5
  %687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %686, ptr noundef nonnull @.str.130) #12
  %688 = load ptr, ptr @stderr, align 8, !tbaa !5
  %689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %688, ptr noundef nonnull @.str.131) #12
  %690 = load ptr, ptr @stderr, align 8, !tbaa !5
  %691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %690, ptr noundef nonnull @.str.132) #12
  %692 = load ptr, ptr @stderr, align 8, !tbaa !5
  %693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %692, ptr noundef nonnull @.str.133) #12
  %694 = load ptr, ptr @stderr, align 8, !tbaa !5
  %695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef nonnull @.str.134) #12
  br label %.loopexit

696:                                              ; preds = %.thread400
  %697 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #10
  br label %768

698:                                              ; preds = %573
  %699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %587, ptr noundef nonnull @.str.82) #12
  %700 = load ptr, ptr @stderr, align 8, !tbaa !5
  %701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %700, ptr noundef nonnull @.str.135) #12
  %702 = load ptr, ptr @stderr, align 8, !tbaa !5
  %703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %702, ptr noundef nonnull @.str.136) #12
  br label %.loopexit

704:                                              ; preds = %570
  br i1 %.2222.ph, label %705, label %712

705:                                              ; preds = %704
  %706 = getelementptr inbounds i8, ptr %3, i64 64
  %707 = load i8, ptr %706, align 8, !tbaa !41, !range !54, !noundef !55
  %708 = trunc nuw i8 %707 to i1
  br i1 %708, label %712, label %709

709:                                              ; preds = %705
  %710 = load ptr, ptr @stderr, align 8, !tbaa !5
  %711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %710, ptr noundef nonnull @.str.137) #12
  br label %.loopexit

712:                                              ; preds = %705, %704
  %713 = getelementptr inbounds i8, ptr %3, i64 66
  %714 = load i8, ptr %713, align 2, !tbaa !44, !range !54, !noundef !55
  %715 = trunc nuw i8 %714 to i1
  br i1 %715, label %716, label %723

716:                                              ; preds = %712
  %717 = getelementptr inbounds i8, ptr %3, i64 64
  %718 = load i8, ptr %717, align 8, !tbaa !41, !range !54, !noundef !55
  %719 = trunc nuw i8 %718 to i1
  br i1 %719, label %720, label %723

720:                                              ; preds = %716
  %721 = load ptr, ptr @stderr, align 8, !tbaa !5
  %722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %721, ptr noundef nonnull @.str.138) #12
  br label %.loopexit

723:                                              ; preds = %716, %712
  %724 = getelementptr inbounds i8, ptr %3, i64 143
  %725 = load i8, ptr %724, align 1, !tbaa !49, !range !54, !noundef !55
  %726 = trunc nuw i8 %725 to i1
  br i1 %726, label %727, label %749

727:                                              ; preds = %723
  %728 = getelementptr inbounds i8, ptr %3, i64 142
  %729 = load i8, ptr %728, align 2, !tbaa !48, !range !54, !noundef !55
  %730 = trunc nuw i8 %729 to i1
  br i1 %730, label %731, label %734

731:                                              ; preds = %727
  %732 = load ptr, ptr @stderr, align 8, !tbaa !5
  %733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %732, ptr noundef nonnull @.str.139) #12
  br label %.loopexit

734:                                              ; preds = %727
  %735 = getelementptr inbounds i8, ptr %3, i64 17
  %736 = load i8, ptr %735, align 1, !tbaa !18, !range !54, !noundef !55
  %737 = trunc nuw i8 %736 to i1
  br i1 %737, label %746, label %738

738:                                              ; preds = %734
  %739 = getelementptr inbounds i8, ptr %3, i64 18
  %740 = load i8, ptr %739, align 2, !tbaa !20, !range !54, !noundef !55
  %741 = trunc nuw i8 %740 to i1
  br i1 %741, label %746, label %742

742:                                              ; preds = %738
  %743 = getelementptr inbounds i8, ptr %3, i64 19
  %744 = load i8, ptr %743, align 1, !tbaa !21, !range !54, !noundef !55
  %745 = trunc nuw i8 %744 to i1
  br i1 %745, label %746, label %749

746:                                              ; preds = %742, %738, %734
  %747 = load ptr, ptr @stderr, align 8, !tbaa !5
  %748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef nonnull @.str.140) #12
  br label %.loopexit

749:                                              ; preds = %723, %742
  %750 = getelementptr inbounds i8, ptr %3, i64 37
  %751 = load i8, ptr %750, align 1, !tbaa !27, !range !54, !noundef !55
  %752 = trunc nuw i8 %751 to i1
  br i1 %752, label %753, label %764

753:                                              ; preds = %749
  %754 = getelementptr inbounds i8, ptr %3, i64 42
  %755 = load i8, ptr %754, align 2, !tbaa !32, !range !54, !noundef !55
  %756 = trunc nuw i8 %755 to i1
  br i1 %756, label %761, label %757

757:                                              ; preds = %753
  %758 = getelementptr inbounds i8, ptr %3, i64 43
  %759 = load i8, ptr %758, align 1, !tbaa !33, !range !54, !noundef !55
  %760 = trunc nuw i8 %759 to i1
  br i1 %760, label %761, label %764

761:                                              ; preds = %757, %753
  %762 = load ptr, ptr @stderr, align 8, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef nonnull @.str.141) #12
  br label %764

764:                                              ; preds = %761, %757, %749
  %765 = invoke noundef i32 @_Z8gltfpackPKcS0_S0_8Settings(ptr noundef nonnull %.2202.ph, ptr noundef nonnull %.2206.ph, ptr noundef %.2210.ph, ptr noundef nonnull byval(%struct.Settings) align 8 %3)
          to label %.loopexit unwind label %766

766:                                              ; preds = %764
  %767 = landingpad { ptr, i32 }
          cleanup
  br label %768

.loopexit:                                        ; preds = %561, %.preheader, %.thread324, %764, %588, %698, %746, %731, %720, %709, %549
  %.3 = phi i32 [ 0, %549 ], [ 1, %720 ], [ 1, %731 ], [ 1, %746 ], [ 1, %709 ], [ 1, %698 ], [ 1, %588 ], [ %765, %764 ], [ 1, %.thread324 ], [ 0, %.preheader ], [ 0, %561 ]
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 148, ptr nonnull %3) #10
  ret i32 %.3

768:                                              ; preds = %766, %696, %565, %552, %67
  %.pn = phi { ptr, i32 } [ %553, %552 ], [ %566, %565 ], [ %697, %696 ], [ %767, %766 ], [ %68, %67 ]
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 148, ptr nonnull %3) #10
  resume { ptr, i32 } %.pn
}

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

declare void @meshopt_encodeVertexVersion(i32 noundef) local_unnamed_addr #7

declare void @meshopt_encodeIndexVersion(i32 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIPKcSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z5clampIiET_S0_S0_S0_(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_Z5clampIfET_S0_S0_S0_(float noundef, float noundef, float noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare double @atof(ptr nocapture noundef nonnull) local_unnamed_addr #8

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isalpha(i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z12applySettingI11TextureModeEvRA4_T_S1_j(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z12applySettingIiEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z12applySettingIfEvRA4_T_S0_j(ptr noundef nonnull align 4 dereferenceable(16), float noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIPKcSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIPKcSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKcSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #4 align 2

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

!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++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !12, i64 0}
!11 = !{!"_ZTS8Settings", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !13, i64 16, !13, i64 17, !13, i64 18, !13, i64 19, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32, !13, i64 36, !13, i64 37, !13, i64 38, !13, i64 39, !13, i64 40, !13, i64 41, !13, i64 42, !13, i64 43, !14, i64 44, !14, i64 48, !13, i64 52, !13, i64 53, !13, i64 54, !14, i64 56, !12, i64 60, !13, i64 64, !13, i64 65, !13, i64 66, !13, i64 67, !13, i64 68, !7, i64 72, !7, i64 88, !7, i64 104, !7, i64 120, !12, i64 136, !13, i64 140, !13, i64 141, !13, i64 142, !13, i64 143, !12, i64 144}
!12 = !{!"int", !7, i64 0}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"float", !7, i64 0}
!15 = !{!11, !12, i64 4}
!16 = !{!11, !12, i64 8}
!17 = !{!11, !12, i64 12}
!18 = !{!11, !13, i64 17}
!19 = !{!11, !13, i64 16}
!20 = !{!11, !13, i64 18}
!21 = !{!11, !13, i64 19}
!22 = !{!11, !12, i64 20}
!23 = !{!11, !12, i64 24}
!24 = !{!11, !12, i64 28}
!25 = !{!11, !12, i64 32}
!26 = !{!11, !13, i64 36}
!27 = !{!11, !13, i64 37}
!28 = !{!11, !13, i64 38}
!29 = !{!11, !13, i64 39}
!30 = !{!11, !13, i64 40}
!31 = !{!11, !13, i64 41}
!32 = !{!11, !13, i64 42}
!33 = !{!11, !13, i64 43}
!34 = !{!11, !14, i64 44}
!35 = !{!11, !14, i64 48}
!36 = !{!11, !13, i64 52}
!37 = !{!11, !13, i64 53}
!38 = !{!11, !13, i64 54}
!39 = !{!11, !14, i64 56}
!40 = !{!11, !12, i64 60}
!41 = !{!11, !13, i64 64}
!42 = !{!11, !13, i64 67}
!43 = !{!11, !13, i64 68}
!44 = !{!11, !13, i64 66}
!45 = !{!11, !12, i64 136}
!46 = !{!11, !13, i64 140}
!47 = !{!11, !13, i64 141}
!48 = !{!11, !13, i64 142}
!49 = !{!11, !13, i64 143}
!50 = !{!11, !12, i64 144}
!51 = distinct !{!51, !52}
!52 = !{!"llvm.loop.mustprogress"}
!53 = distinct !{!53, !52}
!54 = !{i8 0, i8 2}
!55 = !{}


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