; LLVM IR from csviragh/robotsim :: src (colors)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.color_config_t = type { [3 x float], [3 x float], [3 x float], [3 x float], ptr, [3 x float], [3 x float], [3 x float], [3 x float], [3 x float], [3 x float], [3 x float], [3 x float], [3 x float] }

@LoadColorConfig.line = external hidden global [256 x i8], align 16
@LoadColorConfig.templabel = external hidden global [10 x i8], align 1
@LoadColorConfig.found = external hidden global i8, align 1
@.str = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [11 x i8], align 1

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

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

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

; Function Attrs: nounwind uwtable
define dso_local void @LoadColorConfig(ptr noundef %0, ptr noundef %1, i32 noundef %2, ptr noundef %3, ptr noundef %4) #1 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store i32 %2, ptr %8, align 4, !tbaa !9
  store ptr %3, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  %16 = load i32, ptr %8, align 4, !tbaa !9
  %17 = sext i32 %16 to i64
  %18 = call noalias ptr @calloc(i64 noundef %17, i64 noundef 8) #7
  %19 = load ptr, ptr %6, align 8, !tbaa !5
  %20 = getelementptr inbounds %struct.color_config_t, ptr %19, i32 0, i32 4
  store ptr %18, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %21

21:                                               ; preds = %33, %5
  %22 = load i32, ptr %11, align 4, !tbaa !9
  %23 = load i32, ptr %8, align 4, !tbaa !9
  %24 = icmp slt i32 %22, %23
  br i1 %24, label %25, label %36

25:                                               ; preds = %21
  %26 = call noalias ptr @calloc(i64 noundef 3, i64 noundef 4) #7
  %27 = load ptr, ptr %6, align 8, !tbaa !5
  %28 = getelementptr inbounds %struct.color_config_t, ptr %27, i32 0, i32 4
  %29 = load ptr, ptr %28, align 8, !tbaa !11
  %30 = load i32, ptr %11, align 4, !tbaa !9
  %31 = sext i32 %30 to i64
  %32 = getelementptr inbounds ptr, ptr %29, i64 %31
  store ptr %26, ptr %32, align 8, !tbaa !5
  br label %33

33:                                               ; preds = %25
  %34 = load i32, ptr %11, align 4, !tbaa !9
  %35 = add nsw i32 %34, 1
  store i32 %35, ptr %11, align 4, !tbaa !9
  br label %21, !llvm.loop !13

36:                                               ; preds = %21
  %37 = load ptr, ptr %6, align 8, !tbaa !5
  %38 = getelementptr inbounds %struct.color_config_t, ptr %37, i32 0, i32 1
  %39 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 0
  store float 0x3FB99999A0000000, ptr %39, align 4, !tbaa !15
  %40 = load ptr, ptr %6, align 8, !tbaa !5
  %41 = getelementptr inbounds %struct.color_config_t, ptr %40, i32 0, i32 1
  %42 = getelementptr inbounds [3 x float], ptr %41, i64 0, i64 1
  store float 0x3FECCCCCC0000000, ptr %42, align 4, !tbaa !15
  %43 = load ptr, ptr %6, align 8, !tbaa !5
  %44 = getelementptr inbounds %struct.color_config_t, ptr %43, i32 0, i32 1
  %45 = getelementptr inbounds [3 x float], ptr %44, i64 0, i64 2
  store float 0x3FD99999A0000000, ptr %45, align 4, !tbaa !15
  %46 = load ptr, ptr %6, align 8, !tbaa !5
  %47 = getelementptr inbounds %struct.color_config_t, ptr %46, i32 0, i32 2
  %48 = getelementptr inbounds [3 x float], ptr %47, i64 0, i64 0
  store float 0x3FB99999A0000000, ptr %48, align 8, !tbaa !15
  %49 = load ptr, ptr %6, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.color_config_t, ptr %49, i32 0, i32 2
  %51 = getelementptr inbounds [3 x float], ptr %50, i64 0, i64 1
  store float 0x3FECCCCCC0000000, ptr %51, align 4, !tbaa !15
  %52 = load ptr, ptr %6, align 8, !tbaa !5
  %53 = getelementptr inbounds %struct.color_config_t, ptr %52, i32 0, i32 2
  %54 = getelementptr inbounds [3 x float], ptr %53, i64 0, i64 2
  store float 0x3FD99999A0000000, ptr %54, align 8, !tbaa !15
  %55 = load ptr, ptr %6, align 8, !tbaa !5
  %56 = getelementptr inbounds %struct.color_config_t, ptr %55, i32 0, i32 10
  %57 = getelementptr inbounds [3 x float], ptr %56, i64 0, i64 0
  store float 0x3FB99999A0000000, ptr %57, align 4, !tbaa !15
  %58 = load ptr, ptr %6, align 8, !tbaa !5
  %59 = getelementptr inbounds %struct.color_config_t, ptr %58, i32 0, i32 10
  %60 = getelementptr inbounds [3 x float], ptr %59, i64 0, i64 1
  store float 0x3FECCCCCC0000000, ptr %60, align 4, !tbaa !15
  %61 = load ptr, ptr %6, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.color_config_t, ptr %61, i32 0, i32 10
  %63 = getelementptr inbounds [3 x float], ptr %62, i64 0, i64 2
  store float 0x3FD99999A0000000, ptr %63, align 4, !tbaa !15
  %64 = load ptr, ptr %6, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.color_config_t, ptr %64, i32 0, i32 0
  %66 = getelementptr inbounds [3 x float], ptr %65, i64 0, i64 0
  store float 0x3FB99999A0000000, ptr %66, align 8, !tbaa !15
  %67 = load ptr, ptr %6, align 8, !tbaa !5
  %68 = getelementptr inbounds %struct.color_config_t, ptr %67, i32 0, i32 0
  %69 = getelementptr inbounds [3 x float], ptr %68, i64 0, i64 1
  store float 0x3FB99999A0000000, ptr %69, align 4, !tbaa !15
  %70 = load ptr, ptr %6, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.color_config_t, ptr %70, i32 0, i32 0
  %72 = getelementptr inbounds [3 x float], ptr %71, i64 0, i64 2
  store float 0x3FB99999A0000000, ptr %72, align 8, !tbaa !15
  %73 = load ptr, ptr %6, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.color_config_t, ptr %73, i32 0, i32 5
  %75 = getelementptr inbounds [3 x float], ptr %74, i64 0, i64 0
  store float 0x3FE99999A0000000, ptr %75, align 8, !tbaa !15
  %76 = load ptr, ptr %6, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.color_config_t, ptr %76, i32 0, i32 5
  %78 = getelementptr inbounds [3 x float], ptr %77, i64 0, i64 1
  store float 0x3FB99999A0000000, ptr %78, align 4, !tbaa !15
  %79 = load ptr, ptr %6, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.color_config_t, ptr %79, i32 0, i32 5
  %81 = getelementptr inbounds [3 x float], ptr %80, i64 0, i64 2
  store float 0x3FB99999A0000000, ptr %81, align 8, !tbaa !15
  %82 = load ptr, ptr %6, align 8, !tbaa !5
  %83 = getelementptr inbounds %struct.color_config_t, ptr %82, i32 0, i32 6
  %84 = getelementptr inbounds [3 x float], ptr %83, i64 0, i64 0
  store float 0x3FB99999A0000000, ptr %84, align 4, !tbaa !15
  %85 = load ptr, ptr %6, align 8, !tbaa !5
  %86 = getelementptr inbounds %struct.color_config_t, ptr %85, i32 0, i32 6
  %87 = getelementptr inbounds [3 x float], ptr %86, i64 0, i64 1
  store float 0x3FB99999A0000000, ptr %87, align 4, !tbaa !15
  %88 = load ptr, ptr %6, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.color_config_t, ptr %88, i32 0, i32 6
  %90 = getelementptr inbounds [3 x float], ptr %89, i64 0, i64 2
  store float 0x3FB99999A0000000, ptr %90, align 4, !tbaa !15
  %91 = load ptr, ptr %6, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.color_config_t, ptr %91, i32 0, i32 7
  %93 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 0
  store float 0x3FE99999A0000000, ptr %93, align 8, !tbaa !15
  %94 = load ptr, ptr %6, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.color_config_t, ptr %94, i32 0, i32 7
  %96 = getelementptr inbounds [3 x float], ptr %95, i64 0, i64 1
  store float 0x3FE99999A0000000, ptr %96, align 4, !tbaa !15
  %97 = load ptr, ptr %6, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.color_config_t, ptr %97, i32 0, i32 7
  %99 = getelementptr inbounds [3 x float], ptr %98, i64 0, i64 2
  store float 0x3FE99999A0000000, ptr %99, align 8, !tbaa !15
  %100 = load ptr, ptr %6, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.color_config_t, ptr %100, i32 0, i32 8
  %102 = getelementptr inbounds [3 x float], ptr %101, i64 0, i64 0
  store float 0x3FB99999A0000000, ptr %102, align 4, !tbaa !15
  %103 = load ptr, ptr %6, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.color_config_t, ptr %103, i32 0, i32 8
  %105 = getelementptr inbounds [3 x float], ptr %104, i64 0, i64 1
  store float 0x3FB99999A0000000, ptr %105, align 4, !tbaa !15
  %106 = load ptr, ptr %6, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.color_config_t, ptr %106, i32 0, i32 8
  %108 = getelementptr inbounds [3 x float], ptr %107, i64 0, i64 2
  store float 0x3FB99999A0000000, ptr %108, align 4, !tbaa !15
  %109 = load ptr, ptr %6, align 8, !tbaa !5
  %110 = getelementptr inbounds %struct.color_config_t, ptr %109, i32 0, i32 13
  %111 = getelementptr inbounds [3 x float], ptr %110, i64 0, i64 0
  store float 0x3FC99999A0000000, ptr %111, align 8, !tbaa !15
  %112 = load ptr, ptr %6, align 8, !tbaa !5
  %113 = getelementptr inbounds %struct.color_config_t, ptr %112, i32 0, i32 13
  %114 = getelementptr inbounds [3 x float], ptr %113, i64 0, i64 1
  store float 0x3FC99999A0000000, ptr %114, align 4, !tbaa !15
  %115 = load ptr, ptr %6, align 8, !tbaa !5
  %116 = getelementptr inbounds %struct.color_config_t, ptr %115, i32 0, i32 13
  %117 = getelementptr inbounds [3 x float], ptr %116, i64 0, i64 2
  store float 0x3FC99999A0000000, ptr %117, align 8, !tbaa !15
  %118 = load ptr, ptr %6, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.color_config_t, ptr %118, i32 0, i32 9
  %120 = getelementptr inbounds [3 x float], ptr %119, i64 0, i64 0
  store float 0x3FE99999A0000000, ptr %120, align 8, !tbaa !15
  %121 = load ptr, ptr %6, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.color_config_t, ptr %121, i32 0, i32 9
  %123 = getelementptr inbounds [3 x float], ptr %122, i64 0, i64 1
  store float 0x3FE99999A0000000, ptr %123, align 4, !tbaa !15
  %124 = load ptr, ptr %6, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.color_config_t, ptr %124, i32 0, i32 9
  %126 = getelementptr inbounds [3 x float], ptr %125, i64 0, i64 2
  store float 0x3FE3333340000000, ptr %126, align 8, !tbaa !15
  %127 = load ptr, ptr %6, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.color_config_t, ptr %127, i32 0, i32 12
  %129 = getelementptr inbounds [3 x float], ptr %128, i64 0, i64 0
  store float 0x3FB99999A0000000, ptr %129, align 4, !tbaa !15
  %130 = load ptr, ptr %6, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.color_config_t, ptr %130, i32 0, i32 12
  %132 = getelementptr inbounds [3 x float], ptr %131, i64 0, i64 1
  store float 0x3FECCCCCC0000000, ptr %132, align 4, !tbaa !15
  %133 = load ptr, ptr %6, align 8, !tbaa !5
  %134 = getelementptr inbounds %struct.color_config_t, ptr %133, i32 0, i32 12
  %135 = getelementptr inbounds [3 x float], ptr %134, i64 0, i64 2
  store float 0x3FD99999A0000000, ptr %135, align 4, !tbaa !15
  %136 = load ptr, ptr %6, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.color_config_t, ptr %136, i32 0, i32 11
  %138 = getelementptr inbounds [3 x float], ptr %137, i64 0, i64 0
  store float 0x3FB99999A0000000, ptr %138, align 8, !tbaa !15
  %139 = load ptr, ptr %6, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.color_config_t, ptr %139, i32 0, i32 11
  %141 = getelementptr inbounds [3 x float], ptr %140, i64 0, i64 1
  store float 0x3FECCCCCC0000000, ptr %141, align 4, !tbaa !15
  %142 = load ptr, ptr %6, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.color_config_t, ptr %142, i32 0, i32 11
  %144 = getelementptr inbounds [3 x float], ptr %143, i64 0, i64 2
  store float 0x3FD99999A0000000, ptr %144, align 8, !tbaa !15
  %145 = load ptr, ptr %6, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.color_config_t, ptr %145, i32 0, i32 3
  %147 = getelementptr inbounds [3 x float], ptr %146, i64 0, i64 0
  store float 0x3FC99999A0000000, ptr %147, align 4, !tbaa !15
  %148 = load ptr, ptr %6, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.color_config_t, ptr %148, i32 0, i32 3
  %150 = getelementptr inbounds [3 x float], ptr %149, i64 0, i64 1
  store float 0x3FC99999A0000000, ptr %150, align 4, !tbaa !15
  %151 = load ptr, ptr %6, align 8, !tbaa !5
  %152 = getelementptr inbounds %struct.color_config_t, ptr %151, i32 0, i32 3
  %153 = getelementptr inbounds [3 x float], ptr %152, i64 0, i64 2
  store float 0x3FE3333340000000, ptr %153, align 4, !tbaa !15
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %154

154:                                              ; preds = %183, %36
  %155 = load i32, ptr %11, align 4, !tbaa !9
  %156 = load i32, ptr %8, align 4, !tbaa !9
  %157 = icmp slt i32 %155, %156
  br i1 %157, label %158, label %186

158:                                              ; preds = %154
  %159 = load ptr, ptr %6, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.color_config_t, ptr %159, i32 0, i32 4
  %161 = load ptr, ptr %160, align 8, !tbaa !11
  %162 = load i32, ptr %11, align 4, !tbaa !9
  %163 = sext i32 %162 to i64
  %164 = getelementptr inbounds ptr, ptr %161, i64 %163
  %165 = load ptr, ptr %164, align 8, !tbaa !5
  %166 = getelementptr inbounds float, ptr %165, i64 0
  store float 0x3FC99999A0000000, ptr %166, align 4, !tbaa !15
  %167 = load ptr, ptr %6, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.color_config_t, ptr %167, i32 0, i32 4
  %169 = load ptr, ptr %168, align 8, !tbaa !11
  %170 = load i32, ptr %11, align 4, !tbaa !9
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds ptr, ptr %169, i64 %171
  %173 = load ptr, ptr %172, align 8, !tbaa !5
  %174 = getelementptr inbounds float, ptr %173, i64 1
  store float 0x3FC99999A0000000, ptr %174, align 4, !tbaa !15
  %175 = load ptr, ptr %6, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.color_config_t, ptr %175, i32 0, i32 4
  %177 = load ptr, ptr %176, align 8, !tbaa !11
  %178 = load i32, ptr %11, align 4, !tbaa !9
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds ptr, ptr %177, i64 %179
  %181 = load ptr, ptr %180, align 8, !tbaa !5
  %182 = getelementptr inbounds float, ptr %181, i64 2
  store float 0x3FE3333340000000, ptr %182, align 4, !tbaa !15
  br label %183

183:                                              ; preds = %158
  %184 = load i32, ptr %11, align 4, !tbaa !9
  %185 = add nsw i32 %184, 1
  store i32 %185, ptr %11, align 4, !tbaa !9
  br label %154, !llvm.loop !17

186:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  br label %187

187:                                              ; preds = %833, %186
  %188 = load ptr, ptr %7, align 8, !tbaa !5
  %189 = call ptr @fgets(ptr noundef @LoadColorConfig.line, i32 noundef 256, ptr noundef %188)
  %190 = icmp ne ptr %189, null
  br i1 %190, label %191, label %834

191:                                              ; preds = %187
  %192 = call ptr @RStrip(ptr noundef @LoadColorConfig.line)
  %193 = call ptr @LSkip(ptr noundef %192)
  store ptr %193, ptr %12, align 8, !tbaa !5
  %194 = load ptr, ptr %12, align 8, !tbaa !5
  %195 = load i8, ptr %194, align 1, !tbaa !18
  %196 = sext i8 %195 to i32
  %197 = icmp eq i32 %196, 59
  br i1 %197, label %203, label %198

198:                                              ; preds = %191
  %199 = load ptr, ptr %12, align 8, !tbaa !5
  %200 = load i8, ptr %199, align 1, !tbaa !18
  %201 = sext i8 %200 to i32
  %202 = icmp eq i32 %201, 35
  br i1 %202, label %203, label %204

203:                                              ; preds = %198, %191
  br label %833

204:                                              ; preds = %198
  %205 = load ptr, ptr %12, align 8, !tbaa !5
  %206 = call ptr @FindCharOrComment(ptr noundef %205, i8 noundef signext 61)
  store ptr %206, ptr %13, align 8, !tbaa !5
  %207 = load ptr, ptr %13, align 8, !tbaa !5
  %208 = load i8, ptr %207, align 1, !tbaa !18
  %209 = sext i8 %208 to i32
  %210 = icmp eq i32 %209, 61
  br i1 %210, label %211, label %220

211:                                              ; preds = %204
  %212 = load ptr, ptr %13, align 8, !tbaa !5
  store i8 0, ptr %212, align 1, !tbaa !18
  %213 = load ptr, ptr %12, align 8, !tbaa !5
  %214 = call ptr @RStrip(ptr noundef %213)
  store ptr %214, ptr %14, align 8, !tbaa !5
  %215 = load ptr, ptr %13, align 8, !tbaa !5
  %216 = getelementptr inbounds i8, ptr %215, i64 1
  %217 = call ptr @LSkip(ptr noundef %216)
  store ptr %217, ptr %15, align 8, !tbaa !5
  %218 = load ptr, ptr %15, align 8, !tbaa !5
  %219 = call ptr @FindCharOrComment(ptr noundef %218, i8 noundef signext 0)
  store ptr %219, ptr %13, align 8, !tbaa !5
  br label %220

220:                                              ; preds = %211, %204
  %221 = load ptr, ptr %14, align 8, !tbaa !5
  %222 = call i32 @strcmp(ptr noundef %221, ptr noundef @.str) #9
  %223 = icmp eq i32 %222, 0
  br i1 %223, label %224, label %231

224:                                              ; preds = %220
  %225 = load ptr, ptr %15, align 8, !tbaa !5
  %226 = call double @atof(ptr noundef %225) #9
  %227 = fptrunc double %226 to float
  %228 = load ptr, ptr %6, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.color_config_t, ptr %228, i32 0, i32 0
  %230 = getelementptr inbounds [3 x float], ptr %229, i64 0, i64 0
  store float %227, ptr %230, align 8, !tbaa !15
  br label %832

231:                                              ; preds = %220
  %232 = load ptr, ptr %14, align 8, !tbaa !5
  %233 = call i32 @strcmp(ptr noundef %232, ptr noundef @.str.1) #9
  %234 = icmp eq i32 %233, 0
  br i1 %234, label %235, label %242

235:                                              ; preds = %231
  %236 = load ptr, ptr %15, align 8, !tbaa !5
  %237 = call double @atof(ptr noundef %236) #9
  %238 = fptrunc double %237 to float
  %239 = load ptr, ptr %6, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.color_config_t, ptr %239, i32 0, i32 0
  %241 = getelementptr inbounds [3 x float], ptr %240, i64 0, i64 1
  store float %238, ptr %241, align 4, !tbaa !15
  br label %831

242:                                              ; preds = %231
  %243 = load ptr, ptr %14, align 8, !tbaa !5
  %244 = call i32 @strcmp(ptr noundef %243, ptr noundef @.str.2) #9
  %245 = icmp eq i32 %244, 0
  br i1 %245, label %246, label %253

246:                                              ; preds = %242
  %247 = load ptr, ptr %15, align 8, !tbaa !5
  %248 = call double @atof(ptr noundef %247) #9
  %249 = fptrunc double %248 to float
  %250 = load ptr, ptr %6, align 8, !tbaa !5
  %251 = getelementptr inbounds %struct.color_config_t, ptr %250, i32 0, i32 0
  %252 = getelementptr inbounds [3 x float], ptr %251, i64 0, i64 2
  store float %249, ptr %252, align 8, !tbaa !15
  br label %830

253:                                              ; preds = %242
  %254 = load ptr, ptr %14, align 8, !tbaa !5
  %255 = call i32 @strcmp(ptr noundef %254, ptr noundef @.str.3) #9
  %256 = icmp eq i32 %255, 0
  br i1 %256, label %257, label %264

257:                                              ; preds = %253
  %258 = load ptr, ptr %15, align 8, !tbaa !5
  %259 = call double @atof(ptr noundef %258) #9
  %260 = fptrunc double %259 to float
  %261 = load ptr, ptr %6, align 8, !tbaa !5
  %262 = getelementptr inbounds %struct.color_config_t, ptr %261, i32 0, i32 2
  %263 = getelementptr inbounds [3 x float], ptr %262, i64 0, i64 0
  store float %260, ptr %263, align 8, !tbaa !15
  br label %829

264:                                              ; preds = %253
  %265 = load ptr, ptr %14, align 8, !tbaa !5
  %266 = call i32 @strcmp(ptr noundef %265, ptr noundef @.str.4) #9
  %267 = icmp eq i32 %266, 0
  br i1 %267, label %268, label %275

268:                                              ; preds = %264
  %269 = load ptr, ptr %15, align 8, !tbaa !5
  %270 = call double @atof(ptr noundef %269) #9
  %271 = fptrunc double %270 to float
  %272 = load ptr, ptr %6, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.color_config_t, ptr %272, i32 0, i32 2
  %274 = getelementptr inbounds [3 x float], ptr %273, i64 0, i64 1
  store float %271, ptr %274, align 4, !tbaa !15
  br label %828

275:                                              ; preds = %264
  %276 = load ptr, ptr %14, align 8, !tbaa !5
  %277 = call i32 @strcmp(ptr noundef %276, ptr noundef @.str.5) #9
  %278 = icmp eq i32 %277, 0
  br i1 %278, label %279, label %286

279:                                              ; preds = %275
  %280 = load ptr, ptr %15, align 8, !tbaa !5
  %281 = call double @atof(ptr noundef %280) #9
  %282 = fptrunc double %281 to float
  %283 = load ptr, ptr %6, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.color_config_t, ptr %283, i32 0, i32 2
  %285 = getelementptr inbounds [3 x float], ptr %284, i64 0, i64 2
  store float %282, ptr %285, align 8, !tbaa !15
  br label %827

286:                                              ; preds = %275
  %287 = load ptr, ptr %14, align 8, !tbaa !5
  %288 = call i32 @strcmp(ptr noundef %287, ptr noundef @.str.6) #9
  %289 = icmp eq i32 %288, 0
  br i1 %289, label %290, label %297

290:                                              ; preds = %286
  %291 = load ptr, ptr %15, align 8, !tbaa !5
  %292 = call double @atof(ptr noundef %291) #9
  %293 = fptrunc double %292 to float
  %294 = load ptr, ptr %6, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.color_config_t, ptr %294, i32 0, i32 2
  %296 = getelementptr inbounds [3 x float], ptr %295, i64 0, i64 2
  store float %293, ptr %296, align 8, !tbaa !15
  br label %826

297:                                              ; preds = %286
  %298 = load ptr, ptr %14, align 8, !tbaa !5
  %299 = call i32 @strcmp(ptr noundef %298, ptr noundef @.str.7) #9
  %300 = icmp eq i32 %299, 0
  br i1 %300, label %301, label %308

301:                                              ; preds = %297
  %302 = load ptr, ptr %15, align 8, !tbaa !5
  %303 = call double @atof(ptr noundef %302) #9
  %304 = fptrunc double %303 to float
  %305 = load ptr, ptr %6, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.color_config_t, ptr %305, i32 0, i32 2
  %307 = getelementptr inbounds [3 x float], ptr %306, i64 0, i64 2
  store float %304, ptr %307, align 8, !tbaa !15
  br label %825

308:                                              ; preds = %297
  %309 = load ptr, ptr %14, align 8, !tbaa !5
  %310 = call i32 @strcmp(ptr noundef %309, ptr noundef @.str.8) #9
  %311 = icmp eq i32 %310, 0
  br i1 %311, label %312, label %319

312:                                              ; preds = %308
  %313 = load ptr, ptr %15, align 8, !tbaa !5
  %314 = call double @atof(ptr noundef %313) #9
  %315 = fptrunc double %314 to float
  %316 = load ptr, ptr %6, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.color_config_t, ptr %316, i32 0, i32 2
  %318 = getelementptr inbounds [3 x float], ptr %317, i64 0, i64 2
  store float %315, ptr %318, align 8, !tbaa !15
  br label %824

319:                                              ; preds = %308
  %320 = load ptr, ptr %14, align 8, !tbaa !5
  %321 = call i32 @strcmp(ptr noundef %320, ptr noundef @.str.9) #9
  %322 = icmp eq i32 %321, 0
  br i1 %322, label %323, label %330

323:                                              ; preds = %319
  %324 = load ptr, ptr %15, align 8, !tbaa !5
  %325 = call double @atof(ptr noundef %324) #9
  %326 = fptrunc double %325 to float
  %327 = load ptr, ptr %6, align 8, !tbaa !5
  %328 = getelementptr inbounds %struct.color_config_t, ptr %327, i32 0, i32 1
  %329 = getelementptr inbounds [3 x float], ptr %328, i64 0, i64 0
  store float %326, ptr %329, align 4, !tbaa !15
  br label %823

330:                                              ; preds = %319
  %331 = load ptr, ptr %14, align 8, !tbaa !5
  %332 = call i32 @strcmp(ptr noundef %331, ptr noundef @.str.10) #9
  %333 = icmp eq i32 %332, 0
  br i1 %333, label %334, label %341

334:                                              ; preds = %330
  %335 = load ptr, ptr %15, align 8, !tbaa !5
  %336 = call double @atof(ptr noundef %335) #9
  %337 = fptrunc double %336 to float
  %338 = load ptr, ptr %6, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.color_config_t, ptr %338, i32 0, i32 1
  %340 = getelementptr inbounds [3 x float], ptr %339, i64 0, i64 1
  store float %337, ptr %340, align 4, !tbaa !15
  br label %822

341:                                              ; preds = %330
  %342 = load ptr, ptr %14, align 8, !tbaa !5
  %343 = call i32 @strcmp(ptr noundef %342, ptr noundef @.str.11) #9
  %344 = icmp eq i32 %343, 0
  br i1 %344, label %345, label %352

345:                                              ; preds = %341
  %346 = load ptr, ptr %15, align 8, !tbaa !5
  %347 = call double @atof(ptr noundef %346) #9
  %348 = fptrunc double %347 to float
  %349 = load ptr, ptr %6, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct.color_config_t, ptr %349, i32 0, i32 1
  %351 = getelementptr inbounds [3 x float], ptr %350, i64 0, i64 2
  store float %348, ptr %351, align 4, !tbaa !15
  br label %821

352:                                              ; preds = %341
  %353 = load ptr, ptr %14, align 8, !tbaa !5
  %354 = call i32 @strcmp(ptr noundef %353, ptr noundef @.str.12) #9
  %355 = icmp eq i32 %354, 0
  br i1 %355, label %356, label %363

356:                                              ; preds = %352
  %357 = load ptr, ptr %15, align 8, !tbaa !5
  %358 = call double @atof(ptr noundef %357) #9
  %359 = fptrunc double %358 to float
  %360 = load ptr, ptr %6, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.color_config_t, ptr %360, i32 0, i32 5
  %362 = getelementptr inbounds [3 x float], ptr %361, i64 0, i64 0
  store float %359, ptr %362, align 8, !tbaa !15
  br label %820

363:                                              ; preds = %352
  %364 = load ptr, ptr %14, align 8, !tbaa !5
  %365 = call i32 @strcmp(ptr noundef %364, ptr noundef @.str.13) #9
  %366 = icmp eq i32 %365, 0
  br i1 %366, label %367, label %374

367:                                              ; preds = %363
  %368 = load ptr, ptr %15, align 8, !tbaa !5
  %369 = call double @atof(ptr noundef %368) #9
  %370 = fptrunc double %369 to float
  %371 = load ptr, ptr %6, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.color_config_t, ptr %371, i32 0, i32 5
  %373 = getelementptr inbounds [3 x float], ptr %372, i64 0, i64 1
  store float %370, ptr %373, align 4, !tbaa !15
  br label %819

374:                                              ; preds = %363
  %375 = load ptr, ptr %14, align 8, !tbaa !5
  %376 = call i32 @strcmp(ptr noundef %375, ptr noundef @.str.14) #9
  %377 = icmp eq i32 %376, 0
  br i1 %377, label %378, label %385

378:                                              ; preds = %374
  %379 = load ptr, ptr %15, align 8, !tbaa !5
  %380 = call double @atof(ptr noundef %379) #9
  %381 = fptrunc double %380 to float
  %382 = load ptr, ptr %6, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.color_config_t, ptr %382, i32 0, i32 5
  %384 = getelementptr inbounds [3 x float], ptr %383, i64 0, i64 2
  store float %381, ptr %384, align 8, !tbaa !15
  br label %818

385:                                              ; preds = %374
  %386 = load ptr, ptr %14, align 8, !tbaa !5
  %387 = call i32 @strcmp(ptr noundef %386, ptr noundef @.str.15) #9
  %388 = icmp eq i32 %387, 0
  br i1 %388, label %389, label %396

389:                                              ; preds = %385
  %390 = load ptr, ptr %15, align 8, !tbaa !5
  %391 = call double @atof(ptr noundef %390) #9
  %392 = fptrunc double %391 to float
  %393 = load ptr, ptr %6, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.color_config_t, ptr %393, i32 0, i32 6
  %395 = getelementptr inbounds [3 x float], ptr %394, i64 0, i64 0
  store float %392, ptr %395, align 4, !tbaa !15
  br label %817

396:                                              ; preds = %385
  %397 = load ptr, ptr %14, align 8, !tbaa !5
  %398 = call i32 @strcmp(ptr noundef %397, ptr noundef @.str.16) #9
  %399 = icmp eq i32 %398, 0
  br i1 %399, label %400, label %407

400:                                              ; preds = %396
  %401 = load ptr, ptr %15, align 8, !tbaa !5
  %402 = call double @atof(ptr noundef %401) #9
  %403 = fptrunc double %402 to float
  %404 = load ptr, ptr %6, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.color_config_t, ptr %404, i32 0, i32 6
  %406 = getelementptr inbounds [3 x float], ptr %405, i64 0, i64 1
  store float %403, ptr %406, align 4, !tbaa !15
  br label %816

407:                                              ; preds = %396
  %408 = load ptr, ptr %14, align 8, !tbaa !5
  %409 = call i32 @strcmp(ptr noundef %408, ptr noundef @.str.17) #9
  %410 = icmp eq i32 %409, 0
  br i1 %410, label %411, label %418

411:                                              ; preds = %407
  %412 = load ptr, ptr %15, align 8, !tbaa !5
  %413 = call double @atof(ptr noundef %412) #9
  %414 = fptrunc double %413 to float
  %415 = load ptr, ptr %6, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.color_config_t, ptr %415, i32 0, i32 6
  %417 = getelementptr inbounds [3 x float], ptr %416, i64 0, i64 2
  store float %414, ptr %417, align 4, !tbaa !15
  br label %815

418:                                              ; preds = %407
  %419 = load ptr, ptr %14, align 8, !tbaa !5
  %420 = call i32 @strcmp(ptr noundef %419, ptr noundef @.str.18) #9
  %421 = icmp eq i32 %420, 0
  br i1 %421, label %422, label %429

422:                                              ; preds = %418
  %423 = load ptr, ptr %15, align 8, !tbaa !5
  %424 = call double @atof(ptr noundef %423) #9
  %425 = fptrunc double %424 to float
  %426 = load ptr, ptr %6, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.color_config_t, ptr %426, i32 0, i32 8
  %428 = getelementptr inbounds [3 x float], ptr %427, i64 0, i64 0
  store float %425, ptr %428, align 4, !tbaa !15
  br label %814

429:                                              ; preds = %418
  %430 = load ptr, ptr %14, align 8, !tbaa !5
  %431 = call i32 @strcmp(ptr noundef %430, ptr noundef @.str.19) #9
  %432 = icmp eq i32 %431, 0
  br i1 %432, label %433, label %440

433:                                              ; preds = %429
  %434 = load ptr, ptr %15, align 8, !tbaa !5
  %435 = call double @atof(ptr noundef %434) #9
  %436 = fptrunc double %435 to float
  %437 = load ptr, ptr %6, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.color_config_t, ptr %437, i32 0, i32 8
  %439 = getelementptr inbounds [3 x float], ptr %438, i64 0, i64 1
  store float %436, ptr %439, align 4, !tbaa !15
  br label %813

440:                                              ; preds = %429
  %441 = load ptr, ptr %14, align 8, !tbaa !5
  %442 = call i32 @strcmp(ptr noundef %441, ptr noundef @.str.20) #9
  %443 = icmp eq i32 %442, 0
  br i1 %443, label %444, label %451

444:                                              ; preds = %440
  %445 = load ptr, ptr %15, align 8, !tbaa !5
  %446 = call double @atof(ptr noundef %445) #9
  %447 = fptrunc double %446 to float
  %448 = load ptr, ptr %6, align 8, !tbaa !5
  %449 = getelementptr inbounds %struct.color_config_t, ptr %448, i32 0, i32 8
  %450 = getelementptr inbounds [3 x float], ptr %449, i64 0, i64 2
  store float %447, ptr %450, align 4, !tbaa !15
  br label %812

451:                                              ; preds = %440
  %452 = load ptr, ptr %14, align 8, !tbaa !5
  %453 = call i32 @strcmp(ptr noundef %452, ptr noundef @.str.21) #9
  %454 = icmp eq i32 %453, 0
  br i1 %454, label %455, label %462

455:                                              ; preds = %451
  %456 = load ptr, ptr %15, align 8, !tbaa !5
  %457 = call double @atof(ptr noundef %456) #9
  %458 = fptrunc double %457 to float
  %459 = load ptr, ptr %6, align 8, !tbaa !5
  %460 = getelementptr inbounds %struct.color_config_t, ptr %459, i32 0, i32 7
  %461 = getelementptr inbounds [3 x float], ptr %460, i64 0, i64 0
  store float %458, ptr %461, align 8, !tbaa !15
  br label %811

462:                                              ; preds = %451
  %463 = load ptr, ptr %14, align 8, !tbaa !5
  %464 = call i32 @strcmp(ptr noundef %463, ptr noundef @.str.22) #9
  %465 = icmp eq i32 %464, 0
  br i1 %465, label %466, label %473

466:                                              ; preds = %462
  %467 = load ptr, ptr %15, align 8, !tbaa !5
  %468 = call double @atof(ptr noundef %467) #9
  %469 = fptrunc double %468 to float
  %470 = load ptr, ptr %6, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.color_config_t, ptr %470, i32 0, i32 7
  %472 = getelementptr inbounds [3 x float], ptr %471, i64 0, i64 1
  store float %469, ptr %472, align 4, !tbaa !15
  br label %810

473:                                              ; preds = %462
  %474 = load ptr, ptr %14, align 8, !tbaa !5
  %475 = call i32 @strcmp(ptr noundef %474, ptr noundef @.str.23) #9
  %476 = icmp eq i32 %475, 0
  br i1 %476, label %477, label %484

477:                                              ; preds = %473
  %478 = load ptr, ptr %15, align 8, !tbaa !5
  %479 = call double @atof(ptr noundef %478) #9
  %480 = fptrunc double %479 to float
  %481 = load ptr, ptr %6, align 8, !tbaa !5
  %482 = getelementptr inbounds %struct.color_config_t, ptr %481, i32 0, i32 7
  %483 = getelementptr inbounds [3 x float], ptr %482, i64 0, i64 2
  store float %480, ptr %483, align 8, !tbaa !15
  br label %809

484:                                              ; preds = %473
  %485 = load ptr, ptr %14, align 8, !tbaa !5
  %486 = call i32 @strcmp(ptr noundef %485, ptr noundef @.str.24) #9
  %487 = icmp eq i32 %486, 0
  br i1 %487, label %488, label %495

488:                                              ; preds = %484
  %489 = load ptr, ptr %15, align 8, !tbaa !5
  %490 = call double @atof(ptr noundef %489) #9
  %491 = fptrunc double %490 to float
  %492 = load ptr, ptr %6, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.color_config_t, ptr %492, i32 0, i32 13
  %494 = getelementptr inbounds [3 x float], ptr %493, i64 0, i64 0
  store float %491, ptr %494, align 8, !tbaa !15
  br label %808

495:                                              ; preds = %484
  %496 = load ptr, ptr %14, align 8, !tbaa !5
  %497 = call i32 @strcmp(ptr noundef %496, ptr noundef @.str.25) #9
  %498 = icmp eq i32 %497, 0
  br i1 %498, label %499, label %506

499:                                              ; preds = %495
  %500 = load ptr, ptr %15, align 8, !tbaa !5
  %501 = call double @atof(ptr noundef %500) #9
  %502 = fptrunc double %501 to float
  %503 = load ptr, ptr %6, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.color_config_t, ptr %503, i32 0, i32 13
  %505 = getelementptr inbounds [3 x float], ptr %504, i64 0, i64 1
  store float %502, ptr %505, align 4, !tbaa !15
  br label %807

506:                                              ; preds = %495
  %507 = load ptr, ptr %14, align 8, !tbaa !5
  %508 = call i32 @strcmp(ptr noundef %507, ptr noundef @.str.26) #9
  %509 = icmp eq i32 %508, 0
  br i1 %509, label %510, label %517

510:                                              ; preds = %506
  %511 = load ptr, ptr %15, align 8, !tbaa !5
  %512 = call double @atof(ptr noundef %511) #9
  %513 = fptrunc double %512 to float
  %514 = load ptr, ptr %6, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.color_config_t, ptr %514, i32 0, i32 13
  %516 = getelementptr inbounds [3 x float], ptr %515, i64 0, i64 2
  store float %513, ptr %516, align 8, !tbaa !15
  br label %806

517:                                              ; preds = %506
  %518 = load ptr, ptr %14, align 8, !tbaa !5
  %519 = call i32 @strcmp(ptr noundef %518, ptr noundef @.str.27) #9
  %520 = icmp eq i32 %519, 0
  br i1 %520, label %521, label %528

521:                                              ; preds = %517
  %522 = load ptr, ptr %15, align 8, !tbaa !5
  %523 = call double @atof(ptr noundef %522) #9
  %524 = fptrunc double %523 to float
  %525 = load ptr, ptr %6, align 8, !tbaa !5
  %526 = getelementptr inbounds %struct.color_config_t, ptr %525, i32 0, i32 11
  %527 = getelementptr inbounds [3 x float], ptr %526, i64 0, i64 0
  store float %524, ptr %527, align 8, !tbaa !15
  br label %805

528:                                              ; preds = %517
  %529 = load ptr, ptr %14, align 8, !tbaa !5
  %530 = call i32 @strcmp(ptr noundef %529, ptr noundef @.str.28) #9
  %531 = icmp eq i32 %530, 0
  br i1 %531, label %532, label %539

532:                                              ; preds = %528
  %533 = load ptr, ptr %15, align 8, !tbaa !5
  %534 = call double @atof(ptr noundef %533) #9
  %535 = fptrunc double %534 to float
  %536 = load ptr, ptr %6, align 8, !tbaa !5
  %537 = getelementptr inbounds %struct.color_config_t, ptr %536, i32 0, i32 11
  %538 = getelementptr inbounds [3 x float], ptr %537, i64 0, i64 1
  store float %535, ptr %538, align 4, !tbaa !15
  br label %804

539:                                              ; preds = %528
  %540 = load ptr, ptr %14, align 8, !tbaa !5
  %541 = call i32 @strcmp(ptr noundef %540, ptr noundef @.str.29) #9
  %542 = icmp eq i32 %541, 0
  br i1 %542, label %543, label %550

543:                                              ; preds = %539
  %544 = load ptr, ptr %15, align 8, !tbaa !5
  %545 = call double @atof(ptr noundef %544) #9
  %546 = fptrunc double %545 to float
  %547 = load ptr, ptr %6, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.color_config_t, ptr %547, i32 0, i32 11
  %549 = getelementptr inbounds [3 x float], ptr %548, i64 0, i64 2
  store float %546, ptr %549, align 8, !tbaa !15
  br label %803

550:                                              ; preds = %539
  %551 = load ptr, ptr %14, align 8, !tbaa !5
  %552 = call i32 @strcmp(ptr noundef %551, ptr noundef @.str.30) #9
  %553 = icmp eq i32 %552, 0
  br i1 %553, label %554, label %561

554:                                              ; preds = %550
  %555 = load ptr, ptr %15, align 8, !tbaa !5
  %556 = call double @atof(ptr noundef %555) #9
  %557 = fptrunc double %556 to float
  %558 = load ptr, ptr %6, align 8, !tbaa !5
  %559 = getelementptr inbounds %struct.color_config_t, ptr %558, i32 0, i32 12
  %560 = getelementptr inbounds [3 x float], ptr %559, i64 0, i64 0
  store float %557, ptr %560, align 4, !tbaa !15
  br label %802

561:                                              ; preds = %550
  %562 = load ptr, ptr %14, align 8, !tbaa !5
  %563 = call i32 @strcmp(ptr noundef %562, ptr noundef @.str.31) #9
  %564 = icmp eq i32 %563, 0
  br i1 %564, label %565, label %572

565:                                              ; preds = %561
  %566 = load ptr, ptr %15, align 8, !tbaa !5
  %567 = call double @atof(ptr noundef %566) #9
  %568 = fptrunc double %567 to float
  %569 = load ptr, ptr %6, align 8, !tbaa !5
  %570 = getelementptr inbounds %struct.color_config_t, ptr %569, i32 0, i32 12
  %571 = getelementptr inbounds [3 x float], ptr %570, i64 0, i64 1
  store float %568, ptr %571, align 4, !tbaa !15
  br label %801

572:                                              ; preds = %561
  %573 = load ptr, ptr %14, align 8, !tbaa !5
  %574 = call i32 @strcmp(ptr noundef %573, ptr noundef @.str.32) #9
  %575 = icmp eq i32 %574, 0
  br i1 %575, label %576, label %583

576:                                              ; preds = %572
  %577 = load ptr, ptr %15, align 8, !tbaa !5
  %578 = call double @atof(ptr noundef %577) #9
  %579 = fptrunc double %578 to float
  %580 = load ptr, ptr %6, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.color_config_t, ptr %580, i32 0, i32 12
  %582 = getelementptr inbounds [3 x float], ptr %581, i64 0, i64 2
  store float %579, ptr %582, align 4, !tbaa !15
  br label %800

583:                                              ; preds = %572
  %584 = load ptr, ptr %14, align 8, !tbaa !5
  %585 = call i32 @strcmp(ptr noundef %584, ptr noundef @.str.33) #9
  %586 = icmp eq i32 %585, 0
  br i1 %586, label %587, label %594

587:                                              ; preds = %583
  %588 = load ptr, ptr %15, align 8, !tbaa !5
  %589 = call double @atof(ptr noundef %588) #9
  %590 = fptrunc double %589 to float
  %591 = load ptr, ptr %6, align 8, !tbaa !5
  %592 = getelementptr inbounds %struct.color_config_t, ptr %591, i32 0, i32 9
  %593 = getelementptr inbounds [3 x float], ptr %592, i64 0, i64 0
  store float %590, ptr %593, align 8, !tbaa !15
  br label %799

594:                                              ; preds = %583
  %595 = load ptr, ptr %14, align 8, !tbaa !5
  %596 = call i32 @strcmp(ptr noundef %595, ptr noundef @.str.34) #9
  %597 = icmp eq i32 %596, 0
  br i1 %597, label %598, label %605

598:                                              ; preds = %594
  %599 = load ptr, ptr %15, align 8, !tbaa !5
  %600 = call double @atof(ptr noundef %599) #9
  %601 = fptrunc double %600 to float
  %602 = load ptr, ptr %6, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.color_config_t, ptr %602, i32 0, i32 9
  %604 = getelementptr inbounds [3 x float], ptr %603, i64 0, i64 1
  store float %601, ptr %604, align 4, !tbaa !15
  br label %798

605:                                              ; preds = %594
  %606 = load ptr, ptr %14, align 8, !tbaa !5
  %607 = call i32 @strcmp(ptr noundef %606, ptr noundef @.str.35) #9
  %608 = icmp eq i32 %607, 0
  br i1 %608, label %609, label %616

609:                                              ; preds = %605
  %610 = load ptr, ptr %15, align 8, !tbaa !5
  %611 = call double @atof(ptr noundef %610) #9
  %612 = fptrunc double %611 to float
  %613 = load ptr, ptr %6, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.color_config_t, ptr %613, i32 0, i32 9
  %615 = getelementptr inbounds [3 x float], ptr %614, i64 0, i64 2
  store float %612, ptr %615, align 8, !tbaa !15
  br label %797

616:                                              ; preds = %605
  %617 = load ptr, ptr %14, align 8, !tbaa !5
  %618 = call i32 @strcmp(ptr noundef %617, ptr noundef @.str.36) #9
  %619 = icmp eq i32 %618, 0
  br i1 %619, label %620, label %647

620:                                              ; preds = %616
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %621

621:                                              ; preds = %643, %620
  %622 = load i32, ptr %11, align 4, !tbaa !9
  %623 = load i32, ptr %8, align 4, !tbaa !9
  %624 = icmp slt i32 %622, %623
  br i1 %624, label %625, label %646

625:                                              ; preds = %621
  %626 = load ptr, ptr %15, align 8, !tbaa !5
  %627 = call double @atof(ptr noundef %626) #9
  %628 = fptrunc double %627 to float
  %629 = load ptr, ptr %6, align 8, !tbaa !5
  %630 = getelementptr inbounds %struct.color_config_t, ptr %629, i32 0, i32 4
  %631 = load ptr, ptr %630, align 8, !tbaa !11
  %632 = load i32, ptr %11, align 4, !tbaa !9
  %633 = sext i32 %632 to i64
  %634 = getelementptr inbounds ptr, ptr %631, i64 %633
  %635 = load ptr, ptr %634, align 8, !tbaa !5
  %636 = getelementptr inbounds float, ptr %635, i64 0
  store float %628, ptr %636, align 4, !tbaa !15
  %637 = load ptr, ptr %15, align 8, !tbaa !5
  %638 = call double @atof(ptr noundef %637) #9
  %639 = fptrunc double %638 to float
  %640 = load ptr, ptr %6, align 8, !tbaa !5
  %641 = getelementptr inbounds %struct.color_config_t, ptr %640, i32 0, i32 3
  %642 = getelementptr inbounds [3 x float], ptr %641, i64 0, i64 0
  store float %639, ptr %642, align 4, !tbaa !15
  br label %643

643:                                              ; preds = %625
  %644 = load i32, ptr %11, align 4, !tbaa !9
  %645 = add nsw i32 %644, 1
  store i32 %645, ptr %11, align 4, !tbaa !9
  br label %621, !llvm.loop !19

646:                                              ; preds = %621
  br label %796

647:                                              ; preds = %616
  %648 = load ptr, ptr %14, align 8, !tbaa !5
  %649 = call i32 @strcmp(ptr noundef %648, ptr noundef @.str.37) #9
  %650 = icmp eq i32 %649, 0
  br i1 %650, label %651, label %678

651:                                              ; preds = %647
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %652

652:                                              ; preds = %674, %651
  %653 = load i32, ptr %11, align 4, !tbaa !9
  %654 = load i32, ptr %8, align 4, !tbaa !9
  %655 = icmp slt i32 %653, %654
  br i1 %655, label %656, label %677

656:                                              ; preds = %652
  %657 = load ptr, ptr %15, align 8, !tbaa !5
  %658 = call double @atof(ptr noundef %657) #9
  %659 = fptrunc double %658 to float
  %660 = load ptr, ptr %6, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.color_config_t, ptr %660, i32 0, i32 4
  %662 = load ptr, ptr %661, align 8, !tbaa !11
  %663 = load i32, ptr %11, align 4, !tbaa !9
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds ptr, ptr %662, i64 %664
  %666 = load ptr, ptr %665, align 8, !tbaa !5
  %667 = getelementptr inbounds float, ptr %666, i64 1
  store float %659, ptr %667, align 4, !tbaa !15
  %668 = load ptr, ptr %15, align 8, !tbaa !5
  %669 = call double @atof(ptr noundef %668) #9
  %670 = fptrunc double %669 to float
  %671 = load ptr, ptr %6, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.color_config_t, ptr %671, i32 0, i32 3
  %673 = getelementptr inbounds [3 x float], ptr %672, i64 0, i64 1
  store float %670, ptr %673, align 4, !tbaa !15
  br label %674

674:                                              ; preds = %656
  %675 = load i32, ptr %11, align 4, !tbaa !9
  %676 = add nsw i32 %675, 1
  store i32 %676, ptr %11, align 4, !tbaa !9
  br label %652, !llvm.loop !20

677:                                              ; preds = %652
  br label %795

678:                                              ; preds = %647
  %679 = load ptr, ptr %14, align 8, !tbaa !5
  %680 = call i32 @strcmp(ptr noundef %679, ptr noundef @.str.38) #9
  %681 = icmp eq i32 %680, 0
  br i1 %681, label %682, label %709

682:                                              ; preds = %678
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %683

683:                                              ; preds = %705, %682
  %684 = load i32, ptr %11, align 4, !tbaa !9
  %685 = load i32, ptr %8, align 4, !tbaa !9
  %686 = icmp slt i32 %684, %685
  br i1 %686, label %687, label %708

687:                                              ; preds = %683
  %688 = load ptr, ptr %15, align 8, !tbaa !5
  %689 = call double @atof(ptr noundef %688) #9
  %690 = fptrunc double %689 to float
  %691 = load ptr, ptr %6, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.color_config_t, ptr %691, i32 0, i32 4
  %693 = load ptr, ptr %692, align 8, !tbaa !11
  %694 = load i32, ptr %11, align 4, !tbaa !9
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds ptr, ptr %693, i64 %695
  %697 = load ptr, ptr %696, align 8, !tbaa !5
  %698 = getelementptr inbounds float, ptr %697, i64 2
  store float %690, ptr %698, align 4, !tbaa !15
  %699 = load ptr, ptr %15, align 8, !tbaa !5
  %700 = call double @atof(ptr noundef %699) #9
  %701 = fptrunc double %700 to float
  %702 = load ptr, ptr %6, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.color_config_t, ptr %702, i32 0, i32 3
  %704 = getelementptr inbounds [3 x float], ptr %703, i64 0, i64 2
  store float %701, ptr %704, align 4, !tbaa !15
  br label %705

705:                                              ; preds = %687
  %706 = load i32, ptr %11, align 4, !tbaa !9
  %707 = add nsw i32 %706, 1
  store i32 %707, ptr %11, align 4, !tbaa !9
  br label %683, !llvm.loop !21

708:                                              ; preds = %683
  br label %794

709:                                              ; preds = %678
  br label %710

710:                                              ; preds = %780, %709
  %711 = load i32, ptr %11, align 4, !tbaa !9
  %712 = load i32, ptr %8, align 4, !tbaa !9
  %713 = icmp slt i32 %711, %712
  br i1 %713, label %714, label %719

714:                                              ; preds = %710
  %715 = load i8, ptr @LoadColorConfig.found, align 1, !tbaa !22, !range !24, !noundef !25
  %716 = trunc i8 %715 to i1
  %717 = zext i1 %716 to i32
  %718 = icmp eq i32 %717, 0
  br label %719

719:                                              ; preds = %714, %710
  %720 = phi i1 [ false, %710 ], [ %718, %714 ]
  br i1 %720, label %721, label %783

721:                                              ; preds = %719
  %722 = load i32, ptr %11, align 4, !tbaa !9
  %723 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef @LoadColorConfig.templabel, ptr noundef @.str.39, i32 noundef %722) #8
  %724 = load ptr, ptr %14, align 8, !tbaa !5
  %725 = call i32 @strcmp(ptr noundef %724, ptr noundef @LoadColorConfig.templabel) #9
  %726 = icmp eq i32 %725, 0
  br i1 %726, label %727, label %740

727:                                              ; preds = %721
  %728 = load ptr, ptr %15, align 8, !tbaa !5
  %729 = call double @atof(ptr noundef %728) #9
  %730 = fptrunc double %729 to float
  %731 = load ptr, ptr %6, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.color_config_t, ptr %731, i32 0, i32 4
  %733 = load ptr, ptr %732, align 8, !tbaa !11
  %734 = load i32, ptr %11, align 4, !tbaa !9
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds ptr, ptr %733, i64 %735
  %737 = load ptr, ptr %736, align 8, !tbaa !5
  %738 = getelementptr inbounds float, ptr %737, i64 0
  store float %730, ptr %738, align 4, !tbaa !15
  %739 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %739, ptr %11, align 4, !tbaa !9
  store i8 1, ptr @LoadColorConfig.found, align 1, !tbaa !22
  br label %780

740:                                              ; preds = %721
  %741 = load i32, ptr %11, align 4, !tbaa !9
  %742 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef @LoadColorConfig.templabel, ptr noundef @.str.40, i32 noundef %741) #8
  %743 = load ptr, ptr %14, align 8, !tbaa !5
  %744 = call i32 @strcmp(ptr noundef %743, ptr noundef @LoadColorConfig.templabel) #9
  %745 = icmp eq i32 %744, 0
  br i1 %745, label %746, label %759

746:                                              ; preds = %740
  %747 = load ptr, ptr %15, align 8, !tbaa !5
  %748 = call double @atof(ptr noundef %747) #9
  %749 = fptrunc double %748 to float
  %750 = load ptr, ptr %6, align 8, !tbaa !5
  %751 = getelementptr inbounds %struct.color_config_t, ptr %750, i32 0, i32 4
  %752 = load ptr, ptr %751, align 8, !tbaa !11
  %753 = load i32, ptr %11, align 4, !tbaa !9
  %754 = sext i32 %753 to i64
  %755 = getelementptr inbounds ptr, ptr %752, i64 %754
  %756 = load ptr, ptr %755, align 8, !tbaa !5
  %757 = getelementptr inbounds float, ptr %756, i64 1
  store float %749, ptr %757, align 4, !tbaa !15
  %758 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %758, ptr %11, align 4, !tbaa !9
  store i8 1, ptr @LoadColorConfig.found, align 1, !tbaa !22
  br label %779

759:                                              ; preds = %740
  %760 = load i32, ptr %11, align 4, !tbaa !9
  %761 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef @LoadColorConfig.templabel, ptr noundef @.str.41, i32 noundef %760) #8
  %762 = load ptr, ptr %14, align 8, !tbaa !5
  %763 = call i32 @strcmp(ptr noundef %762, ptr noundef @LoadColorConfig.templabel) #9
  %764 = icmp eq i32 %763, 0
  br i1 %764, label %765, label %778

765:                                              ; preds = %759
  %766 = load ptr, ptr %15, align 8, !tbaa !5
  %767 = call double @atof(ptr noundef %766) #9
  %768 = fptrunc double %767 to float
  %769 = load ptr, ptr %6, align 8, !tbaa !5
  %770 = getelementptr inbounds %struct.color_config_t, ptr %769, i32 0, i32 4
  %771 = load ptr, ptr %770, align 8, !tbaa !11
  %772 = load i32, ptr %11, align 4, !tbaa !9
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds ptr, ptr %771, i64 %773
  %775 = load ptr, ptr %774, align 8, !tbaa !5
  %776 = getelementptr inbounds float, ptr %775, i64 2
  store float %768, ptr %776, align 4, !tbaa !15
  %777 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %777, ptr %11, align 4, !tbaa !9
  store i8 1, ptr @LoadColorConfig.found, align 1, !tbaa !22
  br label %778

778:                                              ; preds = %765, %759
  br label %779

779:                                              ; preds = %778, %746
  br label %780

780:                                              ; preds = %779, %727
  %781 = load i32, ptr %11, align 4, !tbaa !9
  %782 = add nsw i32 %781, 1
  store i32 %782, ptr %11, align 4, !tbaa !9
  br label %710, !llvm.loop !26

783:                                              ; preds = %719
  %784 = load i8, ptr @LoadColorConfig.found, align 1, !tbaa !22, !range !24, !noundef !25
  %785 = trunc i8 %784 to i1
  %786 = zext i1 %785 to i32
  %787 = icmp eq i32 %786, 0
  br i1 %787, label %788, label %793

788:                                              ; preds = %783
  %789 = load ptr, ptr %14, align 8, !tbaa !5
  %790 = load ptr, ptr %15, align 8, !tbaa !5
  %791 = load ptr, ptr %9, align 8, !tbaa !5
  %792 = load ptr, ptr %10, align 8, !tbaa !5
  call void @LoadModelSpecificColors(ptr noundef %789, ptr noundef %790, ptr noundef %791, ptr noundef %792)
  br label %793

793:                                              ; preds = %788, %783
  store i8 0, ptr @LoadColorConfig.found, align 1, !tbaa !22
  br label %794

794:                                              ; preds = %793, %708
  br label %795

795:                                              ; preds = %794, %677
  br label %796

796:                                              ; preds = %795, %646
  br label %797

797:                                              ; preds = %796, %609
  br label %798

798:                                              ; preds = %797, %598
  br label %799

799:                                              ; preds = %798, %587
  br label %800

800:                                              ; preds = %799, %576
  br label %801

801:                                              ; preds = %800, %565
  br label %802

802:                                              ; preds = %801, %554
  br label %803

803:                                              ; preds = %802, %543
  br label %804

804:                                              ; preds = %803, %532
  br label %805

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

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

807:                                              ; preds = %806, %499
  br label %808

808:                                              ; preds = %807, %488
  br label %809

809:                                              ; preds = %808, %477
  br label %810

810:                                              ; preds = %809, %466
  br label %811

811:                                              ; preds = %810, %455
  br label %812

812:                                              ; preds = %811, %444
  br label %813

813:                                              ; preds = %812, %433
  br label %814

814:                                              ; preds = %813, %422
  br label %815

815:                                              ; preds = %814, %411
  br label %816

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

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

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

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

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

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

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

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

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

825:                                              ; preds = %824, %301
  br label %826

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

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

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

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

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

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

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

833:                                              ; preds = %832, %203
  br label %187, !llvm.loop !27

834:                                              ; preds = %187
  %835 = load ptr, ptr %9, align 8, !tbaa !5
  %836 = load ptr, ptr %10, align 8, !tbaa !5
  call void @RefreshModelSpecificColors(ptr noundef %835, ptr noundef %836)
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  ret void
}

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

declare ptr @fgets(ptr noundef, i32 noundef, ptr noundef) #3

declare ptr @LSkip(ptr noundef) #3

declare ptr @RStrip(ptr noundef) #3

declare ptr @FindCharOrComment(ptr noundef, i8 noundef signext) #3

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

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

; Function Attrs: nounwind
declare i32 @sprintf(ptr noundef, ptr noundef, ...) #6

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind allocsize(0,1) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { inlinehint nounwind willreturn memory(read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { nounwind allocsize(0,1) }
attributes #8 = { nounwind }
attributes #9 = { 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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 48}
!12 = !{!"", !7, i64 0, !7, i64 12, !7, i64 24, !7, i64 36, !6, i64 48, !7, i64 56, !7, i64 68, !7, i64 80, !7, i64 92, !7, i64 104, !7, i64 116, !7, i64 128, !7, i64 140, !7, i64 152}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = distinct !{!17, !14}
!18 = !{!7, !7, i64 0}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = !{!23, !23, i64 0}
!23 = !{!"_Bool", !7, i64 0}
!24 = !{i8 0, i8 2}
!25 = !{}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}


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

@LoadColorConfig.line = external hidden global [256 x i8], align 16
@LoadColorConfig.templabel = external hidden global [10 x i8], align 1
@LoadColorConfig.found = external hidden local_unnamed_addr global i8, align 1
@.str = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [11 x i8], align 1

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

; Function Attrs: nounwind uwtable
define dso_local void @LoadColorConfig(ptr noundef %0, ptr nocapture noundef %1, i32 noundef %2, ptr noundef %3, ptr noundef %4) local_unnamed_addr #0 {
  %6 = sext i32 %2 to i64
  %7 = tail call noalias ptr @calloc(i64 noundef %6, i64 noundef 8) #6
  %8 = getelementptr inbounds i8, ptr %0, i64 48
  store ptr %7, ptr %8, align 8, !tbaa !5
  %9 = icmp sgt i32 %2, 0
  br i1 %9, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %5
  %wide.trip.count = zext nneg i32 %2 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %10 = tail call noalias dereferenceable_or_null(12) ptr @calloc(i64 noundef 3, i64 noundef 4) #6
  %11 = load ptr, ptr %8, align 8, !tbaa !5
  %12 = getelementptr inbounds ptr, ptr %11, i64 %indvars.iv
  store ptr %10, ptr %12, align 8, !tbaa !10
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph, %5
  %13 = getelementptr inbounds i8, ptr %0, i64 12
  %14 = getelementptr inbounds i8, ptr %0, i64 16
  %15 = getelementptr inbounds i8, ptr %0, i64 20
  %16 = getelementptr inbounds i8, ptr %0, i64 24
  %17 = getelementptr inbounds i8, ptr %0, i64 28
  store <4 x float> <float 0x3FECCCCCC0000000, float 0x3FD99999A0000000, float 0x3FB99999A0000000, float 0x3FECCCCCC0000000>, ptr %14, align 4, !tbaa !13
  %18 = getelementptr inbounds i8, ptr %0, i64 32
  %19 = getelementptr inbounds i8, ptr %0, i64 120
  %20 = getelementptr inbounds i8, ptr %0, i64 4
  %21 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000>, ptr %0, align 8, !tbaa !13
  %22 = getelementptr inbounds i8, ptr %0, i64 56
  %23 = getelementptr inbounds i8, ptr %0, i64 60
  %24 = getelementptr inbounds i8, ptr %0, i64 64
  %25 = getelementptr inbounds i8, ptr %0, i64 68
  store <4 x float> <float 0x3FE99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000>, ptr %22, align 8, !tbaa !13
  %26 = getelementptr inbounds i8, ptr %0, i64 72
  %27 = getelementptr inbounds i8, ptr %0, i64 76
  %28 = getelementptr inbounds i8, ptr %0, i64 80
  %29 = getelementptr inbounds i8, ptr %0, i64 84
  store <4 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FE99999A0000000, float 0x3FE99999A0000000>, ptr %26, align 4, !tbaa !13
  %30 = getelementptr inbounds i8, ptr %0, i64 88
  %31 = getelementptr inbounds i8, ptr %0, i64 92
  %32 = getelementptr inbounds i8, ptr %0, i64 96
  %33 = getelementptr inbounds i8, ptr %0, i64 100
  store <4 x float> <float 0x3FE99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FB99999A0000000>, ptr %30, align 8, !tbaa !13
  %34 = getelementptr inbounds i8, ptr %0, i64 152
  %35 = getelementptr inbounds i8, ptr %0, i64 156
  store <2 x float> <float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %34, align 8, !tbaa !13
  %36 = getelementptr inbounds i8, ptr %0, i64 160
  store float 0x3FC99999A0000000, ptr %36, align 8, !tbaa !13
  %37 = getelementptr inbounds i8, ptr %0, i64 104
  %38 = getelementptr inbounds i8, ptr %0, i64 108
  %39 = getelementptr inbounds i8, ptr %0, i64 112
  store <4 x float> <float 0x3FE99999A0000000, float 0x3FE99999A0000000, float 0x3FE3333340000000, float 0x3FB99999A0000000>, ptr %37, align 8, !tbaa !13
  %40 = getelementptr inbounds i8, ptr %0, i64 140
  %41 = getelementptr inbounds i8, ptr %0, i64 144
  %42 = getelementptr inbounds i8, ptr %0, i64 148
  %43 = getelementptr inbounds i8, ptr %0, i64 128
  %44 = getelementptr inbounds i8, ptr %0, i64 132
  store <4 x float> <float 0x3FECCCCCC0000000, float 0x3FD99999A0000000, float 0x3FB99999A0000000, float 0x3FECCCCCC0000000>, ptr %19, align 4, !tbaa !13
  %45 = getelementptr inbounds i8, ptr %0, i64 136
  store <4 x float> <float 0x3FD99999A0000000, float 0x3FB99999A0000000, float 0x3FECCCCCC0000000, float 0x3FD99999A0000000>, ptr %45, align 8, !tbaa !13
  %46 = getelementptr inbounds i8, ptr %0, i64 36
  %47 = getelementptr inbounds i8, ptr %0, i64 40
  %48 = getelementptr inbounds i8, ptr %0, i64 44
  store <4 x float> <float 0x3FD99999A0000000, float 0x3FC99999A0000000, float 0x3FC99999A0000000, float 0x3FE3333340000000>, ptr %18, align 8, !tbaa !13
  br i1 %9, label %.lr.ph242, label %.preheader238

.lr.ph242:                                        ; preds = %._crit_edge
  %49 = load ptr, ptr %8, align 8, !tbaa !5
  %wide.trip.count275 = zext nneg i32 %2 to i64
  %xtraiter = and i64 %wide.trip.count275, 3
  %50 = icmp ult i32 %2, 4
  br i1 %50, label %.preheader238.loopexit.unr-lcssa, label %.lr.ph242.new

.lr.ph242.new:                                    ; preds = %.lr.ph242
  %unroll_iter = and i64 %wide.trip.count275, 2147483644
  br label %56

.preheader238.loopexit.unr-lcssa:                 ; preds = %56, %.lr.ph242
  %indvars.iv272.unr = phi i64 [ 0, %.lr.ph242 ], [ %indvars.iv.next273.3, %56 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.preheader238, label %.epil.preheader

.epil.preheader:                                  ; preds = %.preheader238.loopexit.unr-lcssa, %.epil.preheader
  %indvars.iv272.epil = phi i64 [ %indvars.iv.next273.epil, %.epil.preheader ], [ %indvars.iv272.unr, %.preheader238.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %.preheader238.loopexit.unr-lcssa ]
  %51 = getelementptr inbounds ptr, ptr %49, i64 %indvars.iv272.epil
  %52 = load ptr, ptr %51, align 8, !tbaa !10
  store <2 x float> <float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %52, align 4, !tbaa !13
  %53 = getelementptr inbounds i8, ptr %52, i64 8
  store float 0x3FE3333340000000, ptr %53, align 4, !tbaa !13
  %indvars.iv.next273.epil = add nuw nsw i64 %indvars.iv272.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %.preheader238, label %.epil.preheader, !llvm.loop !15

.preheader238:                                    ; preds = %.preheader238.loopexit.unr-lcssa, %.epil.preheader, %._crit_edge
  %.1229.lcssa = phi i32 [ 0, %._crit_edge ], [ %2, %.epil.preheader ], [ %2, %.preheader238.loopexit.unr-lcssa ]
  %54 = tail call ptr @fgets(ptr noundef nonnull @LoadColorConfig.line, i32 noundef 256, ptr noundef %1)
  %.not257 = icmp eq ptr %54, null
  br i1 %.not257, label %._crit_edge262, label %.lr.ph261

.lr.ph261:                                        ; preds = %.preheader238
  %55 = add nsw i32 %2, 1
  %wide.trip.count280 = zext nneg i32 %2 to i64
  %wide.trip.count285 = zext nneg i32 %2 to i64
  %wide.trip.count290 = zext nneg i32 %2 to i64
  br label %69

56:                                               ; preds = %56, %.lr.ph242.new
  %indvars.iv272 = phi i64 [ 0, %.lr.ph242.new ], [ %indvars.iv.next273.3, %56 ]
  %niter = phi i64 [ 0, %.lr.ph242.new ], [ %niter.next.3, %56 ]
  %57 = getelementptr inbounds ptr, ptr %49, i64 %indvars.iv272
  %58 = load ptr, ptr %57, align 8, !tbaa !10
  store <2 x float> <float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %58, align 4, !tbaa !13
  %59 = getelementptr inbounds i8, ptr %58, i64 8
  store float 0x3FE3333340000000, ptr %59, align 4, !tbaa !13
  %indvars.iv.next273 = or disjoint i64 %indvars.iv272, 1
  %60 = getelementptr inbounds ptr, ptr %49, i64 %indvars.iv.next273
  %61 = load ptr, ptr %60, align 8, !tbaa !10
  store <2 x float> <float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %61, align 4, !tbaa !13
  %62 = getelementptr inbounds i8, ptr %61, i64 8
  store float 0x3FE3333340000000, ptr %62, align 4, !tbaa !13
  %indvars.iv.next273.1 = or disjoint i64 %indvars.iv272, 2
  %63 = getelementptr inbounds ptr, ptr %49, i64 %indvars.iv.next273.1
  %64 = load ptr, ptr %63, align 8, !tbaa !10
  store <2 x float> <float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %64, align 4, !tbaa !13
  %65 = getelementptr inbounds i8, ptr %64, i64 8
  store float 0x3FE3333340000000, ptr %65, align 4, !tbaa !13
  %indvars.iv.next273.2 = or disjoint i64 %indvars.iv272, 3
  %66 = getelementptr inbounds ptr, ptr %49, i64 %indvars.iv.next273.2
  %67 = load ptr, ptr %66, align 8, !tbaa !10
  store <2 x float> <float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %67, align 4, !tbaa !13
  %68 = getelementptr inbounds i8, ptr %67, i64 8
  store float 0x3FE3333340000000, ptr %68, align 4, !tbaa !13
  %indvars.iv.next273.3 = add nuw nsw i64 %indvars.iv272, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %.preheader238.loopexit.unr-lcssa, label %56, !llvm.loop !17

69:                                               ; preds = %.lr.ph261, %.loopexit
  %.0260 = phi ptr [ undef, %.lr.ph261 ], [ %.2, %.loopexit ]
  %.0225259 = phi ptr [ undef, %.lr.ph261 ], [ %.2227, %.loopexit ]
  %.2230258 = phi i32 [ %.1229.lcssa, %.lr.ph261 ], [ %.8, %.loopexit ]
  %70 = tail call ptr @RStrip(ptr noundef nonnull @LoadColorConfig.line) #7
  %71 = tail call ptr @LSkip(ptr noundef %70) #7
  %72 = load i8, ptr %71, align 1, !tbaa !18
  switch i8 %72, label %73 [
    i8 59, label %.loopexit
    i8 35, label %.loopexit
  ]

73:                                               ; preds = %69
  %74 = tail call ptr @FindCharOrComment(ptr noundef nonnull %71, i8 noundef signext 61) #7
  %75 = load i8, ptr %74, align 1, !tbaa !18
  %76 = icmp eq i8 %75, 61
  br i1 %76, label %77, label %82

77:                                               ; preds = %73
  store i8 0, ptr %74, align 1, !tbaa !18
  %78 = tail call ptr @RStrip(ptr noundef nonnull %71) #7
  %79 = getelementptr inbounds i8, ptr %74, i64 1
  %80 = tail call ptr @LSkip(ptr noundef nonnull %79) #7
  %81 = tail call ptr @FindCharOrComment(ptr noundef %80, i8 noundef signext 0) #7
  br label %82

82:                                               ; preds = %77, %73
  %.1226 = phi ptr [ %78, %77 ], [ %.0225259, %73 ]
  %.1 = phi ptr [ %80, %77 ], [ %.0260, %73 ]
  %83 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str) #8
  %84 = icmp eq i32 %83, 0
  br i1 %84, label %85, label %88

85:                                               ; preds = %82
  %86 = tail call double @atof(ptr noundef %.1) #8
  %87 = fptrunc double %86 to float
  store float %87, ptr %0, align 8, !tbaa !13
  br label %.loopexit

88:                                               ; preds = %82
  %89 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.1) #8
  %90 = icmp eq i32 %89, 0
  br i1 %90, label %91, label %94

91:                                               ; preds = %88
  %92 = tail call double @atof(ptr noundef %.1) #8
  %93 = fptrunc double %92 to float
  store float %93, ptr %20, align 4, !tbaa !13
  br label %.loopexit

94:                                               ; preds = %88
  %95 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.2) #8
  %96 = icmp eq i32 %95, 0
  br i1 %96, label %97, label %100

97:                                               ; preds = %94
  %98 = tail call double @atof(ptr noundef %.1) #8
  %99 = fptrunc double %98 to float
  store float %99, ptr %21, align 8, !tbaa !13
  br label %.loopexit

100:                                              ; preds = %94
  %101 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.3) #8
  %102 = icmp eq i32 %101, 0
  br i1 %102, label %103, label %106

103:                                              ; preds = %100
  %104 = tail call double @atof(ptr noundef %.1) #8
  %105 = fptrunc double %104 to float
  store float %105, ptr %16, align 8, !tbaa !13
  br label %.loopexit

106:                                              ; preds = %100
  %107 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.4) #8
  %108 = icmp eq i32 %107, 0
  br i1 %108, label %109, label %112

109:                                              ; preds = %106
  %110 = tail call double @atof(ptr noundef %.1) #8
  %111 = fptrunc double %110 to float
  store float %111, ptr %17, align 4, !tbaa !13
  br label %.loopexit

112:                                              ; preds = %106
  %113 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.5) #8
  %114 = icmp eq i32 %113, 0
  br i1 %114, label %115, label %118

115:                                              ; preds = %112
  %116 = tail call double @atof(ptr noundef %.1) #8
  %117 = fptrunc double %116 to float
  store float %117, ptr %18, align 8, !tbaa !13
  br label %.loopexit

118:                                              ; preds = %112
  %119 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.6) #8
  %120 = icmp eq i32 %119, 0
  br i1 %120, label %121, label %124

121:                                              ; preds = %118
  %122 = tail call double @atof(ptr noundef %.1) #8
  %123 = fptrunc double %122 to float
  store float %123, ptr %18, align 8, !tbaa !13
  br label %.loopexit

124:                                              ; preds = %118
  %125 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.7) #8
  %126 = icmp eq i32 %125, 0
  br i1 %126, label %127, label %130

127:                                              ; preds = %124
  %128 = tail call double @atof(ptr noundef %.1) #8
  %129 = fptrunc double %128 to float
  store float %129, ptr %18, align 8, !tbaa !13
  br label %.loopexit

130:                                              ; preds = %124
  %131 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.8) #8
  %132 = icmp eq i32 %131, 0
  br i1 %132, label %133, label %136

133:                                              ; preds = %130
  %134 = tail call double @atof(ptr noundef %.1) #8
  %135 = fptrunc double %134 to float
  store float %135, ptr %18, align 8, !tbaa !13
  br label %.loopexit

136:                                              ; preds = %130
  %137 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.9) #8
  %138 = icmp eq i32 %137, 0
  br i1 %138, label %139, label %142

139:                                              ; preds = %136
  %140 = tail call double @atof(ptr noundef %.1) #8
  %141 = fptrunc double %140 to float
  store float %141, ptr %13, align 4, !tbaa !13
  br label %.loopexit

142:                                              ; preds = %136
  %143 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.10) #8
  %144 = icmp eq i32 %143, 0
  br i1 %144, label %145, label %148

145:                                              ; preds = %142
  %146 = tail call double @atof(ptr noundef %.1) #8
  %147 = fptrunc double %146 to float
  store float %147, ptr %14, align 4, !tbaa !13
  br label %.loopexit

148:                                              ; preds = %142
  %149 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.11) #8
  %150 = icmp eq i32 %149, 0
  br i1 %150, label %151, label %154

151:                                              ; preds = %148
  %152 = tail call double @atof(ptr noundef %.1) #8
  %153 = fptrunc double %152 to float
  store float %153, ptr %15, align 4, !tbaa !13
  br label %.loopexit

154:                                              ; preds = %148
  %155 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.12) #8
  %156 = icmp eq i32 %155, 0
  br i1 %156, label %157, label %160

157:                                              ; preds = %154
  %158 = tail call double @atof(ptr noundef %.1) #8
  %159 = fptrunc double %158 to float
  store float %159, ptr %22, align 8, !tbaa !13
  br label %.loopexit

160:                                              ; preds = %154
  %161 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.13) #8
  %162 = icmp eq i32 %161, 0
  br i1 %162, label %163, label %166

163:                                              ; preds = %160
  %164 = tail call double @atof(ptr noundef %.1) #8
  %165 = fptrunc double %164 to float
  store float %165, ptr %23, align 4, !tbaa !13
  br label %.loopexit

166:                                              ; preds = %160
  %167 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.14) #8
  %168 = icmp eq i32 %167, 0
  br i1 %168, label %169, label %172

169:                                              ; preds = %166
  %170 = tail call double @atof(ptr noundef %.1) #8
  %171 = fptrunc double %170 to float
  store float %171, ptr %24, align 8, !tbaa !13
  br label %.loopexit

172:                                              ; preds = %166
  %173 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.15) #8
  %174 = icmp eq i32 %173, 0
  br i1 %174, label %175, label %178

175:                                              ; preds = %172
  %176 = tail call double @atof(ptr noundef %.1) #8
  %177 = fptrunc double %176 to float
  store float %177, ptr %25, align 4, !tbaa !13
  br label %.loopexit

178:                                              ; preds = %172
  %179 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.16) #8
  %180 = icmp eq i32 %179, 0
  br i1 %180, label %181, label %184

181:                                              ; preds = %178
  %182 = tail call double @atof(ptr noundef %.1) #8
  %183 = fptrunc double %182 to float
  store float %183, ptr %26, align 4, !tbaa !13
  br label %.loopexit

184:                                              ; preds = %178
  %185 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.17) #8
  %186 = icmp eq i32 %185, 0
  br i1 %186, label %187, label %190

187:                                              ; preds = %184
  %188 = tail call double @atof(ptr noundef %.1) #8
  %189 = fptrunc double %188 to float
  store float %189, ptr %27, align 4, !tbaa !13
  br label %.loopexit

190:                                              ; preds = %184
  %191 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.18) #8
  %192 = icmp eq i32 %191, 0
  br i1 %192, label %193, label %196

193:                                              ; preds = %190
  %194 = tail call double @atof(ptr noundef %.1) #8
  %195 = fptrunc double %194 to float
  store float %195, ptr %31, align 4, !tbaa !13
  br label %.loopexit

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

199:                                              ; preds = %196
  %200 = tail call double @atof(ptr noundef %.1) #8
  %201 = fptrunc double %200 to float
  store float %201, ptr %32, align 4, !tbaa !13
  br label %.loopexit

202:                                              ; preds = %196
  %203 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.20) #8
  %204 = icmp eq i32 %203, 0
  br i1 %204, label %205, label %208

205:                                              ; preds = %202
  %206 = tail call double @atof(ptr noundef %.1) #8
  %207 = fptrunc double %206 to float
  store float %207, ptr %33, align 4, !tbaa !13
  br label %.loopexit

208:                                              ; preds = %202
  %209 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.21) #8
  %210 = icmp eq i32 %209, 0
  br i1 %210, label %211, label %214

211:                                              ; preds = %208
  %212 = tail call double @atof(ptr noundef %.1) #8
  %213 = fptrunc double %212 to float
  store float %213, ptr %28, align 8, !tbaa !13
  br label %.loopexit

214:                                              ; preds = %208
  %215 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.22) #8
  %216 = icmp eq i32 %215, 0
  br i1 %216, label %217, label %220

217:                                              ; preds = %214
  %218 = tail call double @atof(ptr noundef %.1) #8
  %219 = fptrunc double %218 to float
  store float %219, ptr %29, align 4, !tbaa !13
  br label %.loopexit

220:                                              ; preds = %214
  %221 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.23) #8
  %222 = icmp eq i32 %221, 0
  br i1 %222, label %223, label %226

223:                                              ; preds = %220
  %224 = tail call double @atof(ptr noundef %.1) #8
  %225 = fptrunc double %224 to float
  store float %225, ptr %30, align 8, !tbaa !13
  br label %.loopexit

226:                                              ; preds = %220
  %227 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.24) #8
  %228 = icmp eq i32 %227, 0
  br i1 %228, label %229, label %232

229:                                              ; preds = %226
  %230 = tail call double @atof(ptr noundef %.1) #8
  %231 = fptrunc double %230 to float
  store float %231, ptr %34, align 8, !tbaa !13
  br label %.loopexit

232:                                              ; preds = %226
  %233 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.25) #8
  %234 = icmp eq i32 %233, 0
  br i1 %234, label %235, label %238

235:                                              ; preds = %232
  %236 = tail call double @atof(ptr noundef %.1) #8
  %237 = fptrunc double %236 to float
  store float %237, ptr %35, align 4, !tbaa !13
  br label %.loopexit

238:                                              ; preds = %232
  %239 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %240 = icmp eq i32 %239, 0
  br i1 %240, label %241, label %244

241:                                              ; preds = %238
  %242 = tail call double @atof(ptr noundef %.1) #8
  %243 = fptrunc double %242 to float
  store float %243, ptr %36, align 8, !tbaa !13
  br label %.loopexit

244:                                              ; preds = %238
  %245 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.27) #8
  %246 = icmp eq i32 %245, 0
  br i1 %246, label %247, label %250

247:                                              ; preds = %244
  %248 = tail call double @atof(ptr noundef %.1) #8
  %249 = fptrunc double %248 to float
  store float %249, ptr %43, align 8, !tbaa !13
  br label %.loopexit

250:                                              ; preds = %244
  %251 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.28) #8
  %252 = icmp eq i32 %251, 0
  br i1 %252, label %253, label %256

253:                                              ; preds = %250
  %254 = tail call double @atof(ptr noundef %.1) #8
  %255 = fptrunc double %254 to float
  store float %255, ptr %44, align 4, !tbaa !13
  br label %.loopexit

256:                                              ; preds = %250
  %257 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.29) #8
  %258 = icmp eq i32 %257, 0
  br i1 %258, label %259, label %262

259:                                              ; preds = %256
  %260 = tail call double @atof(ptr noundef %.1) #8
  %261 = fptrunc double %260 to float
  store float %261, ptr %45, align 8, !tbaa !13
  br label %.loopexit

262:                                              ; preds = %256
  %263 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.30) #8
  %264 = icmp eq i32 %263, 0
  br i1 %264, label %265, label %268

265:                                              ; preds = %262
  %266 = tail call double @atof(ptr noundef %.1) #8
  %267 = fptrunc double %266 to float
  store float %267, ptr %40, align 4, !tbaa !13
  br label %.loopexit

268:                                              ; preds = %262
  %269 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.31) #8
  %270 = icmp eq i32 %269, 0
  br i1 %270, label %271, label %274

271:                                              ; preds = %268
  %272 = tail call double @atof(ptr noundef %.1) #8
  %273 = fptrunc double %272 to float
  store float %273, ptr %41, align 4, !tbaa !13
  br label %.loopexit

274:                                              ; preds = %268
  %275 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.32) #8
  %276 = icmp eq i32 %275, 0
  br i1 %276, label %277, label %280

277:                                              ; preds = %274
  %278 = tail call double @atof(ptr noundef %.1) #8
  %279 = fptrunc double %278 to float
  store float %279, ptr %42, align 4, !tbaa !13
  br label %.loopexit

280:                                              ; preds = %274
  %281 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.33) #8
  %282 = icmp eq i32 %281, 0
  br i1 %282, label %283, label %286

283:                                              ; preds = %280
  %284 = tail call double @atof(ptr noundef %.1) #8
  %285 = fptrunc double %284 to float
  store float %285, ptr %37, align 8, !tbaa !13
  br label %.loopexit

286:                                              ; preds = %280
  %287 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.34) #8
  %288 = icmp eq i32 %287, 0
  br i1 %288, label %289, label %292

289:                                              ; preds = %286
  %290 = tail call double @atof(ptr noundef %.1) #8
  %291 = fptrunc double %290 to float
  store float %291, ptr %38, align 4, !tbaa !13
  br label %.loopexit

292:                                              ; preds = %286
  %293 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.35) #8
  %294 = icmp eq i32 %293, 0
  br i1 %294, label %295, label %298

295:                                              ; preds = %292
  %296 = tail call double @atof(ptr noundef %.1) #8
  %297 = fptrunc double %296 to float
  store float %297, ptr %39, align 8, !tbaa !13
  br label %.loopexit

298:                                              ; preds = %292
  %299 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.36) #8
  %300 = icmp eq i32 %299, 0
  br i1 %300, label %.preheader, label %309

.preheader:                                       ; preds = %298
  br i1 %9, label %.lr.ph255, label %.loopexit

.lr.ph255:                                        ; preds = %.preheader
  %301 = load ptr, ptr %8, align 8, !tbaa !5
  br label %302

302:                                              ; preds = %.lr.ph255, %302
  %indvars.iv287 = phi i64 [ 0, %.lr.ph255 ], [ %indvars.iv.next288, %302 ]
  %303 = tail call double @atof(ptr noundef %.1) #8
  %304 = fptrunc double %303 to float
  %305 = getelementptr inbounds ptr, ptr %301, i64 %indvars.iv287
  %306 = load ptr, ptr %305, align 8, !tbaa !10
  store float %304, ptr %306, align 4, !tbaa !13
  %307 = tail call double @atof(ptr noundef %.1) #8
  %308 = fptrunc double %307 to float
  store float %308, ptr %46, align 4, !tbaa !13
  %indvars.iv.next288 = add nuw nsw i64 %indvars.iv287, 1
  %exitcond291.not = icmp eq i64 %indvars.iv.next288, %wide.trip.count290
  br i1 %exitcond291.not, label %.loopexit, label %302, !llvm.loop !19

309:                                              ; preds = %298
  %310 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.37) #8
  %311 = icmp eq i32 %310, 0
  br i1 %311, label %.preheader233, label %321

.preheader233:                                    ; preds = %309
  br i1 %9, label %.lr.ph252, label %.loopexit

.lr.ph252:                                        ; preds = %.preheader233
  %312 = load ptr, ptr %8, align 8, !tbaa !5
  br label %313

313:                                              ; preds = %.lr.ph252, %313
  %indvars.iv282 = phi i64 [ 0, %.lr.ph252 ], [ %indvars.iv.next283, %313 ]
  %314 = tail call double @atof(ptr noundef %.1) #8
  %315 = fptrunc double %314 to float
  %316 = getelementptr inbounds ptr, ptr %312, i64 %indvars.iv282
  %317 = load ptr, ptr %316, align 8, !tbaa !10
  %318 = getelementptr inbounds i8, ptr %317, i64 4
  store float %315, ptr %318, align 4, !tbaa !13
  %319 = tail call double @atof(ptr noundef %.1) #8
  %320 = fptrunc double %319 to float
  store float %320, ptr %47, align 4, !tbaa !13
  %indvars.iv.next283 = add nuw nsw i64 %indvars.iv282, 1
  %exitcond286.not = icmp eq i64 %indvars.iv.next283, %wide.trip.count285
  br i1 %exitcond286.not, label %.loopexit, label %313, !llvm.loop !20

321:                                              ; preds = %309
  %322 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @.str.38) #8
  %323 = icmp eq i32 %322, 0
  br i1 %323, label %.preheader235, label %.preheader237

.preheader237:                                    ; preds = %321
  %324 = icmp slt i32 %.2230258, %2
  %325 = load i8, ptr @LoadColorConfig.found, align 1, !range !21
  %326 = icmp eq i8 %325, 0
  %327 = select i1 %324, i1 %326, i1 false
  br i1 %327, label %.lr.ph244, label %._crit_edge245

.preheader235:                                    ; preds = %321
  br i1 %9, label %.lr.ph249, label %.loopexit

.lr.ph249:                                        ; preds = %.preheader235
  %328 = load ptr, ptr %8, align 8, !tbaa !5
  br label %329

329:                                              ; preds = %.lr.ph249, %329
  %indvars.iv277 = phi i64 [ 0, %.lr.ph249 ], [ %indvars.iv.next278, %329 ]
  %330 = tail call double @atof(ptr noundef %.1) #8
  %331 = fptrunc double %330 to float
  %332 = getelementptr inbounds ptr, ptr %328, i64 %indvars.iv277
  %333 = load ptr, ptr %332, align 8, !tbaa !10
  %334 = getelementptr inbounds i8, ptr %333, i64 8
  store float %331, ptr %334, align 4, !tbaa !13
  %335 = tail call double @atof(ptr noundef %.1) #8
  %336 = fptrunc double %335 to float
  store float %336, ptr %48, align 4, !tbaa !13
  %indvars.iv.next278 = add nuw nsw i64 %indvars.iv277, 1
  %exitcond281.not = icmp eq i64 %indvars.iv.next278, %wide.trip.count280
  br i1 %exitcond281.not, label %.loopexit, label %329, !llvm.loop !22

.lr.ph244:                                        ; preds = %.preheader237, %371
  %.6243 = phi i32 [ %372, %371 ], [ %.2230258, %.preheader237 ]
  %337 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) @LoadColorConfig.templabel, ptr noundef nonnull dereferenceable(1) @.str.39, i32 noundef %.6243) #7
  %338 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @LoadColorConfig.templabel) #8
  %339 = icmp eq i32 %338, 0
  br i1 %339, label %340, label %347

340:                                              ; preds = %.lr.ph244
  %341 = tail call double @atof(ptr noundef %.1) #8
  %342 = fptrunc double %341 to float
  %343 = load ptr, ptr %8, align 8, !tbaa !5
  %344 = sext i32 %.6243 to i64
  %345 = getelementptr inbounds ptr, ptr %343, i64 %344
  %346 = load ptr, ptr %345, align 8, !tbaa !10
  store float %342, ptr %346, align 4, !tbaa !13
  br label %._crit_edge245.thread

347:                                              ; preds = %.lr.ph244
  %348 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) @LoadColorConfig.templabel, ptr noundef nonnull dereferenceable(1) @.str.40, i32 noundef %.6243) #7
  %349 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @LoadColorConfig.templabel) #8
  %350 = icmp eq i32 %349, 0
  br i1 %350, label %351, label %359

351:                                              ; preds = %347
  %352 = tail call double @atof(ptr noundef %.1) #8
  %353 = fptrunc double %352 to float
  %354 = load ptr, ptr %8, align 8, !tbaa !5
  %355 = sext i32 %.6243 to i64
  %356 = getelementptr inbounds ptr, ptr %354, i64 %355
  %357 = load ptr, ptr %356, align 8, !tbaa !10
  %358 = getelementptr inbounds i8, ptr %357, i64 4
  store float %353, ptr %358, align 4, !tbaa !13
  br label %._crit_edge245.thread

359:                                              ; preds = %347
  %360 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) @LoadColorConfig.templabel, ptr noundef nonnull dereferenceable(1) @.str.41, i32 noundef %.6243) #7
  %361 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1226, ptr noundef nonnull dereferenceable(1) @LoadColorConfig.templabel) #8
  %362 = icmp eq i32 %361, 0
  br i1 %362, label %363, label %371

363:                                              ; preds = %359
  %364 = tail call double @atof(ptr noundef %.1) #8
  %365 = fptrunc double %364 to float
  %366 = load ptr, ptr %8, align 8, !tbaa !5
  %367 = sext i32 %.6243 to i64
  %368 = getelementptr inbounds ptr, ptr %366, i64 %367
  %369 = load ptr, ptr %368, align 8, !tbaa !10
  %370 = getelementptr inbounds i8, ptr %369, i64 8
  store float %365, ptr %370, align 4, !tbaa !13
  br label %._crit_edge245.thread

371:                                              ; preds = %359
  %.pre = load i8, ptr @LoadColorConfig.found, align 1, !range !21
  %372 = add nsw i32 %.6243, 1
  %373 = icmp slt i32 %372, %2
  %374 = icmp eq i8 %.pre, 0
  %375 = select i1 %373, i1 %374, i1 false
  br i1 %375, label %.lr.ph244, label %._crit_edge245, !llvm.loop !23

._crit_edge245:                                   ; preds = %371, %.preheader237
  %.6.lcssa = phi i32 [ %.2230258, %.preheader237 ], [ %372, %371 ]
  %.lcssa = phi i1 [ %326, %.preheader237 ], [ %374, %371 ]
  br i1 %.lcssa, label %376, label %._crit_edge245.thread

376:                                              ; preds = %._crit_edge245
  tail call void @LoadModelSpecificColors(ptr noundef %.1226, ptr noundef %.1, ptr noundef %3, ptr noundef %4)
  br label %._crit_edge245.thread

._crit_edge245.thread:                            ; preds = %340, %351, %363, %376, %._crit_edge245
  %.6.lcssa296 = phi i32 [ %.6.lcssa, %376 ], [ %.6.lcssa, %._crit_edge245 ], [ %55, %363 ], [ %55, %351 ], [ %55, %340 ]
  store i8 0, ptr @LoadColorConfig.found, align 1, !tbaa !24
  br label %.loopexit

.loopexit:                                        ; preds = %329, %313, %302, %.preheader235, %.preheader233, %.preheader, %69, %69, %85, %97, %109, %121, %133, %145, %157, %169, %181, %193, %205, %217, %229, %241, %253, %265, %277, %289, %._crit_edge245.thread, %295, %283, %271, %259, %247, %235, %223, %211, %199, %187, %175, %163, %151, %139, %127, %115, %103, %91
  %.8 = phi i32 [ %.2230258, %69 ], [ %.2230258, %85 ], [ %.2230258, %91 ], [ %.2230258, %97 ], [ %.2230258, %103 ], [ %.2230258, %109 ], [ %.2230258, %115 ], [ %.2230258, %121 ], [ %.2230258, %127 ], [ %.2230258, %133 ], [ %.2230258, %139 ], [ %.2230258, %145 ], [ %.2230258, %151 ], [ %.2230258, %157 ], [ %.2230258, %163 ], [ %.2230258, %169 ], [ %.2230258, %175 ], [ %.2230258, %181 ], [ %.2230258, %187 ], [ %.2230258, %193 ], [ %.2230258, %199 ], [ %.2230258, %205 ], [ %.2230258, %211 ], [ %.2230258, %217 ], [ %.2230258, %223 ], [ %.2230258, %229 ], [ %.2230258, %235 ], [ %.2230258, %241 ], [ %.2230258, %247 ], [ %.2230258, %253 ], [ %.2230258, %259 ], [ %.2230258, %265 ], [ %.2230258, %271 ], [ %.2230258, %277 ], [ %.2230258, %283 ], [ %.2230258, %289 ], [ %.2230258, %295 ], [ %.6.lcssa296, %._crit_edge245.thread ], [ %.2230258, %69 ], [ 0, %.preheader ], [ 0, %.preheader233 ], [ 0, %.preheader235 ], [ %2, %302 ], [ %2, %313 ], [ %2, %329 ]
  %.2227 = phi ptr [ %.0225259, %69 ], [ %.1226, %85 ], [ %.1226, %91 ], [ %.1226, %97 ], [ %.1226, %103 ], [ %.1226, %109 ], [ %.1226, %115 ], [ %.1226, %121 ], [ %.1226, %127 ], [ %.1226, %133 ], [ %.1226, %139 ], [ %.1226, %145 ], [ %.1226, %151 ], [ %.1226, %157 ], [ %.1226, %163 ], [ %.1226, %169 ], [ %.1226, %175 ], [ %.1226, %181 ], [ %.1226, %187 ], [ %.1226, %193 ], [ %.1226, %199 ], [ %.1226, %205 ], [ %.1226, %211 ], [ %.1226, %217 ], [ %.1226, %223 ], [ %.1226, %229 ], [ %.1226, %235 ], [ %.1226, %241 ], [ %.1226, %247 ], [ %.1226, %253 ], [ %.1226, %259 ], [ %.1226, %265 ], [ %.1226, %271 ], [ %.1226, %277 ], [ %.1226, %283 ], [ %.1226, %289 ], [ %.1226, %295 ], [ %.1226, %._crit_edge245.thread ], [ %.0225259, %69 ], [ %.1226, %.preheader ], [ %.1226, %.preheader233 ], [ %.1226, %.preheader235 ], [ %.1226, %302 ], [ %.1226, %313 ], [ %.1226, %329 ]
  %.2 = phi ptr [ %.0260, %69 ], [ %.1, %85 ], [ %.1, %91 ], [ %.1, %97 ], [ %.1, %103 ], [ %.1, %109 ], [ %.1, %115 ], [ %.1, %121 ], [ %.1, %127 ], [ %.1, %133 ], [ %.1, %139 ], [ %.1, %145 ], [ %.1, %151 ], [ %.1, %157 ], [ %.1, %163 ], [ %.1, %169 ], [ %.1, %175 ], [ %.1, %181 ], [ %.1, %187 ], [ %.1, %193 ], [ %.1, %199 ], [ %.1, %205 ], [ %.1, %211 ], [ %.1, %217 ], [ %.1, %223 ], [ %.1, %229 ], [ %.1, %235 ], [ %.1, %241 ], [ %.1, %247 ], [ %.1, %253 ], [ %.1, %259 ], [ %.1, %265 ], [ %.1, %271 ], [ %.1, %277 ], [ %.1, %283 ], [ %.1, %289 ], [ %.1, %295 ], [ %.1, %._crit_edge245.thread ], [ %.0260, %69 ], [ %.1, %.preheader ], [ %.1, %.preheader233 ], [ %.1, %.preheader235 ], [ %.1, %302 ], [ %.1, %313 ], [ %.1, %329 ]
  %377 = tail call ptr @fgets(ptr noundef nonnull @LoadColorConfig.line, i32 noundef 256, ptr noundef %1)
  %.not = icmp eq ptr %377, null
  br i1 %.not, label %._crit_edge262, label %69, !llvm.loop !26

._crit_edge262:                                   ; preds = %.loopexit, %.preheader238
  tail call void @RefreshModelSpecificColors(ptr noundef %3, ptr noundef %4)
  ret void
}

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

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

declare ptr @LSkip(ptr noundef) local_unnamed_addr #3

declare ptr @RStrip(ptr noundef) local_unnamed_addr #3

declare ptr @FindCharOrComment(ptr noundef, i8 noundef signext) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture 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 #5

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { "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 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 #5 = { 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 #6 = { nounwind allocsize(0,1) }
attributes #7 = { nounwind }
attributes #8 = { 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, !9, i64 48}
!6 = !{!"", !7, i64 0, !7, i64 12, !7, i64 24, !7, i64 36, !9, i64 48, !7, i64 56, !7, i64 68, !7, i64 80, !7, i64 92, !7, i64 104, !7, i64 116, !7, i64 128, !7, i64 140, !7, i64 152}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!"any pointer", !7, i64 0}
!10 = !{!9, !9, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !14, i64 0}
!14 = !{!"float", !7, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.unroll.disable"}
!17 = distinct !{!17, !12}
!18 = !{!7, !7, i64 0}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = !{i8 0, i8 2}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = !{!25, !25, i64 0}
!25 = !{!"_Bool", !7, i64 0}
!26 = distinct !{!26, !12}


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