; LLVM IR from Samson-Mano/EM_Propogation_simulation :: EM_Propogation_simulation/src/ImGui/implot.ll (ZN6ImPlot15ShowStyleEditorEP11ImPlotStyle)

; 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.ImPlotStyle = type <{ float, i32, float, float, float, float, float, float, float, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [21 x %struct.ImVec4], i32, i8, i8, i8, i8 }>
%struct.ImVec2 = type { float, float }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiTextFilter = type <{ [256 x i8], %struct.ImVector.49, i32, [4 x i8] }>
%struct.ImVector.49 = type { i32, i32, ptr }
%struct.ImVector.32 = type { i32, i32, ptr }
%struct.ImPlotContext = type { %struct.ImPool.34, %struct.ImPool.36, ptr, ptr, ptr, ptr, ptr, %struct.ImPlotTicker, %struct.ImPlotAnnotationCollection, %struct.ImPlotTagCollection, i8, [3 x i8], %struct.ImPlotStyle, %struct.ImVector.6, %struct.ImVector.7, %struct.ImPlotColormapData, %struct.ImVector.10, %struct.tm, %struct.ImVector.42, %struct.ImVector.42, %struct.ImVector.10, i32, i32, %struct.ImPlotNextPlotData, %struct.ImPlotNextItemData, %struct.ImPlotInputMap, i8, %struct.ImGuiTextBuffer, ptr, %struct.ImPool.43, ptr, ptr }
%struct.ImPool.34 = type { %struct.ImVector.35, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.4 }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImPool.36 = type { %struct.ImVector.37, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImPlotTicker = type <{ %struct.ImVector.38, %struct.ImGuiTextBuffer, %struct.ImVec2, %struct.ImVec2, i32, [4 x i8] }>
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImPlotAnnotationCollection = type <{ %struct.ImVector.39, %struct.ImGuiTextBuffer, i32, [4 x i8] }>
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImPlotTagCollection = type <{ %struct.ImVector.40, %struct.ImGuiTextBuffer, i32, [4 x i8] }>
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImPlotColormapData = type <{ %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.10, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.10, %struct.ImGuiTextBuffer, %struct.ImVector.10, %struct.ImVector.41, %struct.ImGuiStorage, i32, [4 x i8] }>
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.41 = type { i32, i32, ptr }
%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, ptr }
%struct.ImVector.42 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImPlotNextPlotData = type { [6 x i32], [6 x %struct.ImPlotRange], [6 x i8], [6 x i8], [6 x ptr], [6 x ptr] }
%struct.ImPlotRange = type { double, double }
%struct.ImPlotNextItemData = type { [5 x %struct.ImVec4], float, i32, float, float, float, float, float, float, float, i8, i8, i8, i8, i8, i8, i32 }
%struct.ImPlotInputMap = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float }
%struct.ImGuiTextBuffer = type { %struct.ImVector.24 }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImPool.43 = type { %struct.ImVector.44, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.44 = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }

@GImPlot = external dso_local global ptr, align 8
@.str.32 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style = external hidden global %struct.ImPlotStyle, align 4
@_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style = external hidden global i64, align 8
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4init = external hidden global i8, align 1
@.str.253 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest = external hidden global i32, align 4
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE20output_only_modified = external hidden global i8, align 1
@.str.292 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [21 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter = external hidden global %struct.ImGuiTextFilter, align 8
@_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter = external hidden global i64, align 8
@__dso_handle = external hidden global i8
@.str.299 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags = external hidden global i32, align 4
@.str.300 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [223 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest_0 = external hidden global i32, align 4
@.str.309 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [63 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4edit = external hidden global i8, align 1
@.str.313 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom = external hidden global %struct.ImVector.32, align 8
@_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom = external hidden global i64, align 8
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4name = external hidden global [16 x i8], align 16
@.str.315 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4qual = external hidden global i8, align 1
@.str.318 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [7 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: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16), float noundef, float noundef, float noundef, float noundef) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZN6ImPlotL17GetStyleColorVec4Ei(i32 noundef) #3

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #4

declare i32 @__gxx_personality_v0(...)

declare void @_ZN5ImGui13PushItemWidthEf(float noundef) #5

declare void @_ZN5ImGui8SameLineEff(float noundef, float noundef) #5

declare void @_ZN5ImGui9SeparatorEv() #5

declare noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef, ptr noundef) #5

declare noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcb(ptr noundef, i1 noundef zeroext) #5

declare noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) #5

declare void @_ZN5ImGui11PopStyleVarEi(i32 noundef) #5

declare void @_ZN5ImGui6PushIDEi(i32 noundef) #5

declare void @_ZN5ImGui5PopIDEv() #5

declare void @_ZN5ImGui4TextEPKcz(ptr noundef, ...) #5

declare noundef nonnull align 4 dereferenceable(1068) ptr @_ZN5ImGui8GetStyleEv() #5

declare noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16)) #5

declare void @_ZN5ImGui12PushStyleVarEif(i32 noundef, float noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(515) ptr @_ZN6ImPlot8GetStyleEv() #1

declare { <2 x float>, <2 x float> } @_ZN5ImGui23ColorConvertU32ToFloat4Ej(i32 noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6ImPlot11AddColormapEPKcPK6ImVec4ib(ptr noundef, ptr noundef, i32 noundef, i1 noundef zeroext) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK18ImPlotColormapData8GetIndexEPKc(ptr noundef nonnull align 8 dereferenceable(164), ptr noundef) #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6ImPlot15GetColormapNameEi(i32 noundef) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK18ImPlotColormapData11GetKeyCountEi(ptr noundef nonnull align 8 dereferenceable(164), i32 noundef) #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK18ImPlotColormapData11GetKeyColorEii(ptr noundef nonnull align 8 dereferenceable(164), i32 noundef, i32 noundef) #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6ImPlot15GetColormapSizeEi(i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6ImPlot19GetColormapColorU32Eii(i32 noundef, i32 noundef) #6

declare noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, i32 noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ImPlot14ColormapButtonEPKcRK6ImVec2i(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ImPlot17ShowStyleSelectorEPKc(ptr noundef) #6

declare noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #5

declare void @_ZN6ImPlot13BustItemCacheEv() #5

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ImPlot15ShowStyleEditorEP11ImPlotStyle(ptr noundef %0) #9 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca %struct.ImVec2, align 4
  %8 = alloca %struct.ImVec2, align 4
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca %struct.ImVec4, align 4
  %17 = alloca i8, align 1
  %18 = alloca %struct.ImVec2, align 4
  %19 = alloca %struct.ImVec4, align 4
  %20 = alloca %struct.ImVec2, align 4
  %21 = alloca %struct.ImVec2, align 4
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i8, align 1
  %30 = alloca ptr, align 8
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca i32, align 4
  %33 = alloca %struct.ImVec4, align 4
  %34 = alloca i32, align 4
  %35 = alloca %struct.ImVec2, align 4
  %36 = alloca %struct.ImVec4, align 4
  %37 = alloca %struct.ImVec4, align 4
  %38 = alloca %struct.ImVec4, align 4
  %39 = alloca %struct.ImVec2, align 4
  %40 = alloca %struct.ImVec4, align 4
  %41 = alloca %struct.ImVec2, align 4
  %42 = alloca %struct.ImVec2, align 4
  %43 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #10
  %44 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  store ptr %44, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #10
  %45 = call noundef nonnull align 4 dereferenceable(515) ptr @_ZN6ImPlot8GetStyleEv()
  store ptr %45, ptr %4, align 8, !tbaa !5
  %46 = load atomic i8, ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style acquire, align 8
  %47 = icmp eq i8 %46, 0
  br i1 %47, label %48, label %53, !prof !9

48:                                               ; preds = %1
  %49 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style) #10
  %50 = icmp ne i32 %49, 0
  br i1 %50, label %51, label %53

51:                                               ; preds = %48
  invoke void @_ZN11ImPlotStyleC1Ev(ptr noundef nonnull align 4 dereferenceable(515) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style)
          to label %52 unwind label %61

52:                                               ; preds = %51
  call void @__cxa_guard_release(ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style) #10
  br label %53

53:                                               ; preds = %52, %48, %1
  %54 = load i8, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4init, align 1, !tbaa !10, !range !12, !noundef !13
  %55 = trunc i8 %54 to i1
  br i1 %55, label %56, label %65

56:                                               ; preds = %53
  %57 = load ptr, ptr %2, align 8, !tbaa !5
  %58 = icmp eq ptr %57, null
  br i1 %58, label %59, label %65

59:                                               ; preds = %56
  %60 = load ptr, ptr %4, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style, ptr align 4 %60, i64 515, i1 false), !tbaa.struct !14
  br label %65

61:                                               ; preds = %51
  %62 = landingpad { ptr, i32 }
          cleanup
  %63 = extractvalue { ptr, i32 } %62, 0
  store ptr %63, ptr %5, align 8
  %64 = extractvalue { ptr, i32 } %62, 1
  store i32 %64, ptr %6, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style) #10
  br label %600

65:                                               ; preds = %59, %56, %53
  store i8 0, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4init, align 1, !tbaa !10
  %66 = load ptr, ptr %2, align 8, !tbaa !5
  %67 = icmp eq ptr %66, null
  br i1 %67, label %68, label %69

68:                                               ; preds = %65
  store ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style, ptr %2, align 8, !tbaa !5
  br label %69

69:                                               ; preds = %68, %65
  %70 = call noundef zeroext i1 @_ZN6ImPlot17ShowStyleSelectorEPKc(ptr noundef @.str.253)
  br i1 %70, label %71, label %73

71:                                               ; preds = %69
  %72 = load ptr, ptr %4, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style, ptr align 4 %72, i64 515, i1 false), !tbaa.struct !14
  br label %73

73:                                               ; preds = %71, %69
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %74 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.254, ptr noundef nonnull align 4 dereferenceable(8) %7)
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #10
  br i1 %74, label %75, label %78

75:                                               ; preds = %73
  %76 = load ptr, ptr %4, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style, ptr align 4 %76, i64 515, i1 false), !tbaa.struct !14
  %77 = load ptr, ptr %2, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %77, ptr align 4 @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style, i64 515, i1 false), !tbaa.struct !14
  br label %78

78:                                               ; preds = %75, %73
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %79 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.255, ptr noundef nonnull align 4 dereferenceable(8) %8)
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #10
  br i1 %79, label %80, label %83

80:                                               ; preds = %78
  %81 = load ptr, ptr %2, align 8, !tbaa !5
  %82 = load ptr, ptr %4, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %82, ptr align 4 %81, i64 515, i1 false), !tbaa.struct !14
  br label %83

83:                                               ; preds = %80, %78
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN6ImPlotL10HelpMarkerEPKc(ptr noundef @.str.256)
  %84 = call noundef zeroext i1 @_ZN5ImGui11BeginTabBarEPKci(ptr noundef @.str.257, i32 noundef 0)
  br i1 %84, label %85, label %599

85:                                               ; preds = %83
  %86 = call noundef zeroext i1 @_ZN5ImGui12BeginTabItemEPKcPbi(ptr noundef @.str.258, ptr noundef null, i32 noundef 0)
  br i1 %86, label %87, label %166

87:                                               ; preds = %85
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.259)
  %88 = load ptr, ptr %4, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.ImPlotStyle, ptr %88, i32 0, i32 0
  %90 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef @.str.260, ptr noundef %89, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef @.str.261, i32 noundef 0)
  %91 = load ptr, ptr %4, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.ImPlotStyle, ptr %91, i32 0, i32 2
  %93 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef @.str.262, ptr noundef %92, float noundef 2.000000e+00, float noundef 1.000000e+01, ptr noundef @.str.261, i32 noundef 0)
  %94 = load ptr, ptr %4, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.ImPlotStyle, ptr %94, i32 0, i32 3
  %96 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef @.str.263, ptr noundef %95, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef @.str.261, i32 noundef 0)
  %97 = load ptr, ptr %4, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.ImPlotStyle, ptr %97, i32 0, i32 4
  %99 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef @.str.264, ptr noundef %98, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef @.str.265, i32 noundef 0)
  %100 = load ptr, ptr %4, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.ImPlotStyle, ptr %100, i32 0, i32 5
  %102 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef @.str.266, ptr noundef %101, float noundef 0.000000e+00, float noundef 1.000000e+01, ptr noundef @.str.261, i32 noundef 0)
  %103 = load ptr, ptr %4, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.ImPlotStyle, ptr %103, i32 0, i32 6
  %105 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef @.str.267, ptr noundef %104, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef @.str.261, i32 noundef 0)
  %106 = load ptr, ptr %4, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.ImPlotStyle, ptr %106, i32 0, i32 7
  %108 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef @.str.268, ptr noundef %107, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.261, i32 noundef 0)
  %109 = load ptr, ptr %4, align 8, !tbaa !5
  %110 = getelementptr inbounds %struct.ImPlotStyle, ptr %109, i32 0, i32 8
  %111 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef @.str.269, ptr noundef %110, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.261, i32 noundef 0)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.270)
  %112 = load ptr, ptr %4, align 8, !tbaa !5
  %113 = getelementptr inbounds %struct.ImPlotStyle, ptr %112, i32 0, i32 9
  %114 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef @.str.271, ptr noundef %113, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef @.str.272, i32 noundef 0)
  %115 = load ptr, ptr %4, align 8, !tbaa !5
  %116 = getelementptr inbounds %struct.ImPlotStyle, ptr %115, i32 0, i32 10
  %117 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef @.str.273, ptr noundef %116, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef @.str.265, i32 noundef 0)
  %118 = load ptr, ptr %4, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.ImPlotStyle, ptr %118, i32 0, i32 11
  %120 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.274, ptr noundef %119, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.272, i32 noundef 0)
  %121 = load ptr, ptr %4, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.ImPlotStyle, ptr %121, i32 0, i32 12
  %123 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.275, ptr noundef %122, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.272, i32 noundef 0)
  %124 = load ptr, ptr %4, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.ImPlotStyle, ptr %124, i32 0, i32 13
  %126 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.276, ptr noundef %125, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef @.str.261, i32 noundef 0)
  %127 = load ptr, ptr %4, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.ImPlotStyle, ptr %127, i32 0, i32 14
  %129 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.277, ptr noundef %128, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef @.str.261, i32 noundef 0)
  %130 = load ptr, ptr %4, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.ImPlotStyle, ptr %130, i32 0, i32 15
  %132 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.278, ptr noundef %131, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef @.str.261, i32 noundef 0)
  %133 = load ptr, ptr %4, align 8, !tbaa !5
  %134 = getelementptr inbounds %struct.ImPlotStyle, ptr %133, i32 0, i32 16
  %135 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.279, ptr noundef %134, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef @.str.261, i32 noundef 0)
  %136 = load ptr, ptr %4, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.ImPlotStyle, ptr %136, i32 0, i32 25
  %138 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.280, ptr noundef %137, float noundef 0.000000e+00, float noundef 1.000000e+03, ptr noundef @.str.272, i32 noundef 0)
  %139 = load ptr, ptr %4, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.ImPlotStyle, ptr %139, i32 0, i32 26
  %141 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.281, ptr noundef %140, float noundef 0.000000e+00, float noundef 3.000000e+02, ptr noundef @.str.272, i32 noundef 0)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.282)
  %142 = load ptr, ptr %4, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.ImPlotStyle, ptr %142, i32 0, i32 17
  %144 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.283, ptr noundef %143, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.272, i32 noundef 0)
  %145 = load ptr, ptr %4, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.ImPlotStyle, ptr %145, i32 0, i32 18
  %147 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.284, ptr noundef %146, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.272, i32 noundef 0)
  %148 = load ptr, ptr %4, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.ImPlotStyle, ptr %148, i32 0, i32 19
  %150 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.285, ptr noundef %149, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.272, i32 noundef 0)
  %151 = load ptr, ptr %4, align 8, !tbaa !5
  %152 = getelementptr inbounds %struct.ImPlotStyle, ptr %151, i32 0, i32 20
  %153 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.286, ptr noundef %152, float noundef 0.000000e+00, float noundef 1.000000e+01, ptr noundef @.str.272, i32 noundef 0)
  %154 = load ptr, ptr %4, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.ImPlotStyle, ptr %154, i32 0, i32 21
  %156 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.287, ptr noundef %155, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef @.str.272, i32 noundef 0)
  %157 = load ptr, ptr %4, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.ImPlotStyle, ptr %157, i32 0, i32 22
  %159 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.288, ptr noundef %158, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.272, i32 noundef 0)
  %160 = load ptr, ptr %4, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.ImPlotStyle, ptr %160, i32 0, i32 23
  %162 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.289, ptr noundef %161, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef @.str.272, i32 noundef 0)
  %163 = load ptr, ptr %4, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.ImPlotStyle, ptr %163, i32 0, i32 24
  %165 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef @.str.290, ptr noundef %164, float noundef 0.000000e+00, float noundef 0x3FC99999A0000000, ptr noundef @.str.265, i32 noundef 0)
  call void @_ZN5ImGui10EndTabItemEv()
  br label %166

166:                                              ; preds = %87, %85
  %167 = call noundef zeroext i1 @_ZN5ImGui12BeginTabItemEPKcPbi(ptr noundef @.str.291, ptr noundef null, i32 noundef 0)
  br i1 %167, label %168, label %376

168:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef 7.500000e+01, float noundef 0.000000e+00)
  %169 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.292, ptr noundef nonnull align 4 dereferenceable(8) %9)
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #10
  br i1 %169, label %170, label %236

170:                                              ; preds = %168
  %171 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest, align 4, !tbaa !17
  %172 = icmp eq i32 %171, 0
  br i1 %172, label %173, label %174

173:                                              ; preds = %170
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef -1)
  br label %175

174:                                              ; preds = %170
  call void @_ZN5ImGui8LogToTTYEi(i32 noundef -1)
  br label %175

175:                                              ; preds = %174, %173
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef @.str.293)
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  store i32 0, ptr %10, align 4, !tbaa !17
  br label %176

176:                                              ; preds = %232, %175
  %177 = load i32, ptr %10, align 4, !tbaa !17
  %178 = icmp slt i32 %177, 21
  br i1 %178, label %180, label %179

179:                                              ; preds = %176
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %235

180:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #10
  %181 = load ptr, ptr %4, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.ImPlotStyle, ptr %181, i32 0, i32 27
  %183 = load i32, ptr %10, align 4, !tbaa !17
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds [21 x %struct.ImVec4], ptr %182, i64 0, i64 %184
  store ptr %185, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  %186 = load i32, ptr %10, align 4, !tbaa !17
  %187 = call noundef ptr @_ZN6ImPlot17GetStyleColorNameEi(i32 noundef %186)
  store ptr %187, ptr %12, align 8, !tbaa !5
  %188 = load i8, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE20output_only_modified, align 1, !tbaa !10, !range !12, !noundef !13
  %189 = trunc i8 %188 to i1
  br i1 %189, label %190, label %199

190:                                              ; preds = %180
  %191 = load ptr, ptr %11, align 8, !tbaa !5
  %192 = load ptr, ptr %2, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.ImPlotStyle, ptr %192, i32 0, i32 27
  %194 = load i32, ptr %10, align 4, !tbaa !17
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds [21 x %struct.ImVec4], ptr %193, i64 0, i64 %195
  %197 = call i32 @memcmp(ptr noundef %191, ptr noundef %196, i64 noundef 16) #11
  %198 = icmp ne i32 %197, 0
  br i1 %198, label %199, label %231

199:                                              ; preds = %190, %180
  %200 = load i32, ptr %10, align 4, !tbaa !17
  %201 = call noundef zeroext i1 @_ZN6ImPlotL11IsColorAutoEi(i32 noundef %200)
  br i1 %201, label %202, label %208

202:                                              ; preds = %199
  %203 = load ptr, ptr %12, align 8, !tbaa !5
  %204 = load ptr, ptr %12, align 8, !tbaa !5
  %205 = call i64 @strlen(ptr noundef %204) #11
  %206 = trunc i64 %205 to i32
  %207 = sub nsw i32 14, %206
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef @.str.294, ptr noundef %203, i32 noundef %207, ptr noundef @.str.32)
  br label %230

208:                                              ; preds = %199
  %209 = load ptr, ptr %12, align 8, !tbaa !5
  %210 = load ptr, ptr %12, align 8, !tbaa !5
  %211 = call i64 @strlen(ptr noundef %210) #11
  %212 = trunc i64 %211 to i32
  %213 = sub nsw i32 14, %212
  %214 = load ptr, ptr %11, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ImVec4, ptr %214, i32 0, i32 0
  %216 = load float, ptr %215, align 4, !tbaa !20
  %217 = fpext float %216 to double
  %218 = load ptr, ptr %11, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.ImVec4, ptr %218, i32 0, i32 1
  %220 = load float, ptr %219, align 4, !tbaa !22
  %221 = fpext float %220 to double
  %222 = load ptr, ptr %11, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.ImVec4, ptr %222, i32 0, i32 2
  %224 = load float, ptr %223, align 4, !tbaa !23
  %225 = fpext float %224 to double
  %226 = load ptr, ptr %11, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.ImVec4, ptr %226, i32 0, i32 3
  %228 = load float, ptr %227, align 4, !tbaa !24
  %229 = fpext float %228 to double
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef @.str.295, ptr noundef %209, i32 noundef %213, ptr noundef @.str.32, double noundef %217, double noundef %221, double noundef %225, double noundef %229)
  br label %230

230:                                              ; preds = %208, %202
  br label %231

231:                                              ; preds = %230, %190
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  br label %232

232:                                              ; preds = %231
  %233 = load i32, ptr %10, align 4, !tbaa !17
  %234 = add nsw i32 %233, 1
  store i32 %234, ptr %10, align 4, !tbaa !17
  br label %176, !llvm.loop !25

235:                                              ; preds = %179
  call void @_ZN5ImGui9LogFinishEv()
  br label %236

236:                                              ; preds = %235, %168
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 1.200000e+02)
  %237 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef @.str.296, ptr noundef @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest, ptr noundef @.str.297, i32 noundef -1)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %238 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.298, ptr noundef @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE20output_only_modified)
  %239 = load atomic i8, ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter acquire, align 8
  %240 = icmp eq i8 %239, 0
  br i1 %240, label %241, label %247, !prof !9

241:                                              ; preds = %236
  %242 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter) #10
  %243 = icmp ne i32 %242, 0
  br i1 %243, label %244, label %247

244:                                              ; preds = %241
  invoke void @_ZN15ImGuiTextFilterC1EPKc(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter, ptr noundef @.str.32)
          to label %245 unwind label %255

245:                                              ; preds = %244
  %246 = call i32 @__cxa_atexit(ptr @_ZN15ImGuiTextFilterD2Ev, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter, ptr @__dso_handle) #10
  call void @__cxa_guard_release(ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter) #10
  br label %247

247:                                              ; preds = %245, %241, %236
  %248 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %249 = fmul float %248, 1.600000e+01
  %250 = call noundef zeroext i1 @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter, ptr noundef @.str.299, float noundef %249)
  %251 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  %252 = icmp eq i32 %251, 0
  %253 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcb(ptr noundef @.str.300, i1 noundef zeroext %252)
  br i1 %253, label %254, label %259

254:                                              ; preds = %247
  store i32 0, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  br label %259

255:                                              ; preds = %244
  %256 = landingpad { ptr, i32 }
          cleanup
  %257 = extractvalue { ptr, i32 } %256, 0
  store ptr %257, ptr %5, align 8
  %258 = extractvalue { ptr, i32 } %256, 1
  store i32 %258, ptr %6, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter) #10
  br label %600

259:                                              ; preds = %254, %247
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %260 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  %261 = icmp eq i32 %260, 131072
  %262 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcb(ptr noundef @.str.301, i1 noundef zeroext %261)
  br i1 %262, label %263, label %264

263:                                              ; preds = %259
  store i32 131072, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  br label %264

264:                                              ; preds = %263, %259
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %265 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  %266 = icmp eq i32 %265, 262144
  %267 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcb(ptr noundef @.str.302, i1 noundef zeroext %266)
  br i1 %267, label %268, label %269

268:                                              ; preds = %264
  store i32 262144, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  br label %269

269:                                              ; preds = %268, %264
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN6ImPlotL10HelpMarkerEPKc(ptr noundef @.str.303)
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui13PushItemWidthEf(float noundef -1.600000e+02)
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  store i32 0, ptr %13, align 4, !tbaa !17
  br label %270

270:                                              ; preds = %372, %269
  %271 = load i32, ptr %13, align 4, !tbaa !17
  %272 = icmp slt i32 %271, 21
  br i1 %272, label %274, label %273

273:                                              ; preds = %270
  store i32 5, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %375

274:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %275 = load i32, ptr %13, align 4, !tbaa !17
  %276 = call noundef ptr @_ZN6ImPlot17GetStyleColorNameEi(i32 noundef %275)
  store ptr %276, ptr %15, align 8, !tbaa !5
  %277 = load ptr, ptr %15, align 8, !tbaa !5
  %278 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKcS1_(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter, ptr noundef %277, ptr noundef null)
  br i1 %278, label %280, label %279

279:                                              ; preds = %274
  store i32 7, ptr %14, align 4
  br label %369

280:                                              ; preds = %274
  %281 = load i32, ptr %13, align 4, !tbaa !17
  call void @_ZN5ImGui6PushIDEi(i32 noundef %281)
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #10
  %282 = load i32, ptr %13, align 4, !tbaa !17
  %283 = call { <2 x float>, <2 x float> } @_ZN6ImPlotL17GetStyleColorVec4Ei(i32 noundef %282)
  %284 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %16, i32 0, i32 0
  %285 = extractvalue { <2 x float>, <2 x float> } %283, 0
  store <2 x float> %285, ptr %284, align 4
  %286 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %16, i32 0, i32 1
  %287 = extractvalue { <2 x float>, <2 x float> } %283, 1
  store <2 x float> %287, ptr %286, align 4
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #10
  %288 = load i32, ptr %13, align 4, !tbaa !17
  %289 = call noundef zeroext i1 @_ZN6ImPlotL11IsColorAutoEi(i32 noundef %288)
  %290 = zext i1 %289 to i8
  store i8 %290, ptr %17, align 1, !tbaa !10
  %291 = load i8, ptr %17, align 1, !tbaa !10, !range !12, !noundef !13
  %292 = trunc i8 %291 to i1
  br i1 %292, label %294, label %293

293:                                              ; preds = %280
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 0, float noundef 2.500000e-01)
  br label %294

294:                                              ; preds = %293, %280
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %295 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.304, ptr noundef nonnull align 4 dereferenceable(8) %18)
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  br i1 %295, label %296, label %312

296:                                              ; preds = %294
  %297 = load i8, ptr %17, align 1, !tbaa !10, !range !12, !noundef !13
  %298 = trunc i8 %297 to i1
  br i1 %298, label %299, label %305

299:                                              ; preds = %296
  %300 = load ptr, ptr %4, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.ImPlotStyle, ptr %300, i32 0, i32 27
  %302 = load i32, ptr %13, align 4, !tbaa !17
  %303 = sext i32 %302 to i64
  %304 = getelementptr inbounds [21 x %struct.ImVec4], ptr %301, i64 0, i64 %303
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %304, ptr align 4 %16, i64 16, i1 false), !tbaa.struct !27
  br label %311

305:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #10
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %19, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef -1.000000e+00)
  %306 = load ptr, ptr %4, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.ImPlotStyle, ptr %306, i32 0, i32 27
  %308 = load i32, ptr %13, align 4, !tbaa !17
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds [21 x %struct.ImVec4], ptr %307, i64 0, i64 %309
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %310, ptr align 4 %19, i64 16, i1 false), !tbaa.struct !27
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #10
  br label %311

311:                                              ; preds = %305, %299
  call void @_ZN6ImPlot13BustItemCacheEv()
  br label %312

312:                                              ; preds = %311, %294
  %313 = load i8, ptr %17, align 1, !tbaa !10, !range !12, !noundef !13
  %314 = trunc i8 %313 to i1
  br i1 %314, label %316, label %315

315:                                              ; preds = %312
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 1)
  br label %316

316:                                              ; preds = %315, %312
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %317 = load ptr, ptr %15, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.ImVec4, ptr %16, i32 0, i32 0
  %319 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  %320 = or i32 32, %319
  %321 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef %317, ptr noundef %318, i32 noundef %320)
  br i1 %321, label %322, label %328

322:                                              ; preds = %316
  %323 = load ptr, ptr %4, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.ImPlotStyle, ptr %323, i32 0, i32 27
  %325 = load i32, ptr %13, align 4, !tbaa !17
  %326 = sext i32 %325 to i64
  %327 = getelementptr inbounds [21 x %struct.ImVec4], ptr %324, i64 0, i64 %326
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %327, ptr align 4 %16, i64 16, i1 false), !tbaa.struct !27
  call void @_ZN6ImPlot13BustItemCacheEv()
  br label %328

328:                                              ; preds = %322, %316
  %329 = load ptr, ptr %4, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.ImPlotStyle, ptr %329, i32 0, i32 27
  %331 = load i32, ptr %13, align 4, !tbaa !17
  %332 = sext i32 %331 to i64
  %333 = getelementptr inbounds [21 x %struct.ImVec4], ptr %330, i64 0, i64 %332
  %334 = load ptr, ptr %2, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.ImPlotStyle, ptr %334, i32 0, i32 27
  %336 = load i32, ptr %13, align 4, !tbaa !17
  %337 = sext i32 %336 to i64
  %338 = getelementptr inbounds [21 x %struct.ImVec4], ptr %335, i64 0, i64 %337
  %339 = call i32 @memcmp(ptr noundef %333, ptr noundef %338, i64 noundef 16) #11
  %340 = icmp ne i32 %339, 0
  br i1 %340, label %341, label %368

341:                                              ; preds = %328
  call void @_ZN5ImGui8SameLineEff(float noundef 1.750000e+02, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %342 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.305, ptr noundef nonnull align 4 dereferenceable(8) %20)
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  br i1 %342, label %343, label %354

343:                                              ; preds = %341
  %344 = load ptr, ptr %4, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.ImPlotStyle, ptr %344, i32 0, i32 27
  %346 = load i32, ptr %13, align 4, !tbaa !17
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds [21 x %struct.ImVec4], ptr %345, i64 0, i64 %347
  %349 = load ptr, ptr %2, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct.ImPlotStyle, ptr %349, i32 0, i32 27
  %351 = load i32, ptr %13, align 4, !tbaa !17
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds [21 x %struct.ImVec4], ptr %350, i64 0, i64 %352
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %353, ptr align 4 %348, i64 16, i1 false), !tbaa.struct !27
  br label %354

354:                                              ; preds = %343, %341
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %21, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %355 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.306, ptr noundef nonnull align 4 dereferenceable(8) %21)
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br i1 %355, label %356, label %367

356:                                              ; preds = %354
  %357 = load ptr, ptr %2, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.ImPlotStyle, ptr %357, i32 0, i32 27
  %359 = load i32, ptr %13, align 4, !tbaa !17
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds [21 x %struct.ImVec4], ptr %358, i64 0, i64 %360
  %362 = load ptr, ptr %4, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImPlotStyle, ptr %362, i32 0, i32 27
  %364 = load i32, ptr %13, align 4, !tbaa !17
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds [21 x %struct.ImVec4], ptr %363, i64 0, i64 %365
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %366, ptr align 4 %361, i64 16, i1 false), !tbaa.struct !27
  call void @_ZN6ImPlot13BustItemCacheEv()
  br label %367

367:                                              ; preds = %356, %354
  br label %368

368:                                              ; preds = %367, %328
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #10
  store i32 0, ptr %14, align 4
  br label %369

369:                                              ; preds = %368, %279
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  %370 = load i32, ptr %14, align 4
  switch i32 %370, label %606 [
    i32 0, label %371
    i32 7, label %372
  ]

371:                                              ; preds = %369
  br label %372

372:                                              ; preds = %371, %369
  %373 = load i32, ptr %13, align 4, !tbaa !17
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr %13, align 4, !tbaa !17
  br label %270, !llvm.loop !28

375:                                              ; preds = %273
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @_ZN5ImGui9SeparatorEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.307)
  call void @_ZN5ImGui10EndTabItemEv()
  br label %376

376:                                              ; preds = %375, %166
  %377 = call noundef zeroext i1 @_ZN5ImGui12BeginTabItemEPKcPbi(ptr noundef @.str.308, ptr noundef null, i32 noundef 0)
  br i1 %377, label %378, label %598

378:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef 7.500000e+01, float noundef 0.000000e+00)
  %379 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.292, ptr noundef nonnull align 4 dereferenceable(8) %22)
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  br i1 %379, label %380, label %421

380:                                              ; preds = %378
  %381 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest_0, align 4, !tbaa !17
  %382 = icmp eq i32 %381, 0
  br i1 %382, label %383, label %384

383:                                              ; preds = %380
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef -1)
  br label %385

384:                                              ; preds = %380
  call void @_ZN5ImGui8LogToTTYEi(i32 noundef -1)
  br label %385

385:                                              ; preds = %384, %383
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %386 = call noundef i32 @_ZN6ImPlot15GetColormapSizeEi(i32 noundef -1)
  store i32 %386, ptr %23, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #10
  %387 = load ptr, ptr %3, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.ImPlotContext, ptr %387, i32 0, i32 12
  %389 = getelementptr inbounds %struct.ImPlotStyle, ptr %388, i32 0, i32 28
  %390 = load i32, ptr %389, align 4, !tbaa !29
  %391 = call noundef ptr @_ZN6ImPlot15GetColormapNameEi(i32 noundef %390)
  store ptr %391, ptr %24, align 8, !tbaa !5
  %392 = load ptr, ptr %24, align 8, !tbaa !5
  %393 = load i32, ptr %23, align 4, !tbaa !17
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef @.str.309, ptr noundef %392, i32 noundef %393)
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  store i32 0, ptr %25, align 4, !tbaa !17
  br label %394

394:                                              ; preds = %413, %385
  %395 = load i32, ptr %25, align 4, !tbaa !17
  %396 = load i32, ptr %23, align 4, !tbaa !17
  %397 = icmp slt i32 %395, %396
  br i1 %397, label %399, label %398

398:                                              ; preds = %394
  store i32 8, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %416

399:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %400 = load i32, ptr %25, align 4, !tbaa !17
  %401 = load ptr, ptr %3, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.ImPlotContext, ptr %401, i32 0, i32 12
  %403 = getelementptr inbounds %struct.ImPlotStyle, ptr %402, i32 0, i32 28
  %404 = load i32, ptr %403, align 4, !tbaa !29
  %405 = call noundef i32 @_ZN6ImPlot19GetColormapColorU32Eii(i32 noundef %400, i32 noundef %404)
  store i32 %405, ptr %26, align 4, !tbaa !17
  %406 = load i32, ptr %26, align 4, !tbaa !17
  %407 = load i32, ptr %25, align 4, !tbaa !17
  %408 = load i32, ptr %23, align 4, !tbaa !17
  %409 = sub nsw i32 %408, 1
  %410 = icmp eq i32 %407, %409
  %411 = zext i1 %410 to i64
  %412 = select i1 %410, ptr @.str.32, ptr @.str.311
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef @.str.310, i32 noundef %406, ptr noundef %412)
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %413

413:                                              ; preds = %399
  %414 = load i32, ptr %25, align 4, !tbaa !17
  %415 = add nsw i32 %414, 1
  store i32 %415, ptr %25, align 4, !tbaa !17
  br label %394, !llvm.loop !61

416:                                              ; preds = %398
  %417 = load ptr, ptr %24, align 8, !tbaa !5
  %418 = load ptr, ptr %24, align 8, !tbaa !5
  %419 = load ptr, ptr %24, align 8, !tbaa !5
  %420 = load i32, ptr %23, align 4, !tbaa !17
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef @.str.312, ptr noundef %417, ptr noundef %418, ptr noundef %419, i32 noundef %420)
  call void @_ZN5ImGui9LogFinishEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %421

421:                                              ; preds = %416, %378
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 1.200000e+02)
  %422 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef @.str.296, ptr noundef @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest_0, ptr noundef @.str.297, i32 noundef -1)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %423 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.313, ptr noundef @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4edit)
  call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  store i32 0, ptr %27, align 4, !tbaa !17
  br label %424

424:                                              ; preds = %514, %421
  %425 = load i32, ptr %27, align 4, !tbaa !17
  %426 = load ptr, ptr %3, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.ImPlotContext, ptr %426, i32 0, i32 15
  %428 = getelementptr inbounds %struct.ImPlotColormapData, ptr %427, i32 0, i32 10
  %429 = load i32, ptr %428, align 8, !tbaa !62
  %430 = icmp slt i32 %425, %429
  br i1 %430, label %432, label %431

431:                                              ; preds = %424
  store i32 11, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %517

432:                                              ; preds = %424
  %433 = load i32, ptr %27, align 4, !tbaa !17
  call void @_ZN5ImGui6PushIDEi(i32 noundef %433)
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %434 = load ptr, ptr %3, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.ImPlotContext, ptr %434, i32 0, i32 15
  %436 = load i32, ptr %27, align 4, !tbaa !17
  %437 = call noundef i32 @_ZNK18ImPlotColormapData11GetKeyCountEi(ptr noundef nonnull align 8 dereferenceable(164) %435, i32 noundef %436)
  store i32 %437, ptr %28, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #10
  %438 = load i32, ptr %27, align 4, !tbaa !17
  %439 = load ptr, ptr %3, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.ImPlotContext, ptr %439, i32 0, i32 12
  %441 = getelementptr inbounds %struct.ImPlotStyle, ptr %440, i32 0, i32 28
  %442 = load i32, ptr %441, align 4, !tbaa !29
  %443 = icmp eq i32 %438, %442
  %444 = zext i1 %443 to i8
  store i8 %444, ptr %29, align 1, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  %445 = load i32, ptr %27, align 4, !tbaa !17
  %446 = call noundef ptr @_ZN6ImPlot15GetColormapNameEi(i32 noundef %445)
  store ptr %446, ptr %30, align 8, !tbaa !5
  %447 = load i8, ptr %29, align 1, !tbaa !10, !range !12, !noundef !13
  %448 = trunc i8 %447 to i1
  br i1 %448, label %450, label %449

449:                                              ; preds = %432
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 0, float noundef 2.500000e-01)
  br label %450

450:                                              ; preds = %449, %432
  %451 = load ptr, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %31, float noundef 1.000000e+02, float noundef 0.000000e+00)
  %452 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %451, ptr noundef nonnull align 4 dereferenceable(8) %31)
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br i1 %452, label %453, label %458

453:                                              ; preds = %450
  %454 = load i32, ptr %27, align 4, !tbaa !17
  %455 = load ptr, ptr %3, align 8, !tbaa !5
  %456 = getelementptr inbounds %struct.ImPlotContext, ptr %455, i32 0, i32 12
  %457 = getelementptr inbounds %struct.ImPlotStyle, ptr %456, i32 0, i32 28
  store i32 %454, ptr %457, align 4, !tbaa !29
  call void @_ZN6ImPlot13BustItemCacheEv()
  br label %458

458:                                              ; preds = %453, %450
  %459 = load i8, ptr %29, align 1, !tbaa !10, !range !12, !noundef !13
  %460 = trunc i8 %459 to i1
  br i1 %460, label %462, label %461

461:                                              ; preds = %458
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 1)
  br label %462

462:                                              ; preds = %461, %458
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN5ImGui10BeginGroupEv()
  %463 = load i8, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4edit, align 1, !tbaa !10, !range !12, !noundef !13
  %464 = trunc i8 %463 to i1
  br i1 %464, label %465, label %508

465:                                              ; preds = %462
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  store i32 0, ptr %32, align 4, !tbaa !17
  br label %466

466:                                              ; preds = %504, %465
  %467 = load i32, ptr %32, align 4, !tbaa !17
  %468 = load i32, ptr %28, align 4, !tbaa !17
  %469 = icmp slt i32 %467, %468
  br i1 %469, label %471, label %470

470:                                              ; preds = %466
  store i32 14, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %507

471:                                              ; preds = %466
  %472 = load i32, ptr %32, align 4, !tbaa !17
  call void @_ZN5ImGui6PushIDEi(i32 noundef %472)
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #10
  %473 = load ptr, ptr %3, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.ImPlotContext, ptr %473, i32 0, i32 15
  %475 = load i32, ptr %27, align 4, !tbaa !17
  %476 = load i32, ptr %32, align 4, !tbaa !17
  %477 = call noundef i32 @_ZNK18ImPlotColormapData11GetKeyColorEii(ptr noundef nonnull align 8 dereferenceable(164) %474, i32 noundef %475, i32 noundef %476)
  %478 = call { <2 x float>, <2 x float> } @_ZN5ImGui23ColorConvertU32ToFloat4Ej(i32 noundef %477)
  %479 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %33, i32 0, i32 0
  %480 = extractvalue { <2 x float>, <2 x float> } %478, 0
  store <2 x float> %480, ptr %479, align 4
  %481 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %33, i32 0, i32 1
  %482 = extractvalue { <2 x float>, <2 x float> } %478, 1
  store <2 x float> %482, ptr %481, align 4
  %483 = getelementptr inbounds %struct.ImVec4, ptr %33, i32 0, i32 0
  %484 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef @.str.32, ptr noundef %483, i32 noundef 32)
  br i1 %484, label %485, label %492

485:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  %486 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %33)
  store i32 %486, ptr %34, align 4, !tbaa !17
  %487 = load ptr, ptr %3, align 8, !tbaa !5
  %488 = getelementptr inbounds %struct.ImPlotContext, ptr %487, i32 0, i32 15
  %489 = load i32, ptr %27, align 4, !tbaa !17
  %490 = load i32, ptr %32, align 4, !tbaa !17
  %491 = load i32, ptr %34, align 4, !tbaa !17
  call void @_ZN18ImPlotColormapData11SetKeyColorEiij(ptr noundef nonnull align 8 dereferenceable(164) %488, i32 noundef %489, i32 noundef %490, i32 noundef %491)
  call void @_ZN6ImPlot13BustItemCacheEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %492

492:                                              ; preds = %485, %471
  %493 = load i32, ptr %32, align 4, !tbaa !17
  %494 = add nsw i32 %493, 1
  %495 = srem i32 %494, 12
  %496 = icmp ne i32 %495, 0
  br i1 %496, label %497, label %503

497:                                              ; preds = %492
  %498 = load i32, ptr %32, align 4, !tbaa !17
  %499 = load i32, ptr %28, align 4, !tbaa !17
  %500 = sub nsw i32 %499, 1
  %501 = icmp ne i32 %498, %500
  br i1 %501, label %502, label %503

502:                                              ; preds = %497
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  br label %503

503:                                              ; preds = %502, %497, %492
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #10
  br label %504

504:                                              ; preds = %503
  %505 = load i32, ptr %32, align 4, !tbaa !17
  %506 = add nsw i32 %505, 1
  store i32 %506, ptr %32, align 4, !tbaa !17
  br label %466, !llvm.loop !63

507:                                              ; preds = %470
  br label %513

508:                                              ; preds = %462
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef -1.000000e+00, float noundef 0.000000e+00)
  %509 = load i32, ptr %27, align 4, !tbaa !17
  %510 = call noundef zeroext i1 @_ZN6ImPlot14ColormapButtonEPKcRK6ImVec2i(ptr noundef @.str.314, ptr noundef nonnull align 4 dereferenceable(8) %35, i32 noundef %509)
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  br i1 %510, label %511, label %512

511:                                              ; preds = %508
  store i8 1, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4edit, align 1, !tbaa !10
  br label %512

512:                                              ; preds = %511, %508
  br label %513

513:                                              ; preds = %512, %507
  call void @_ZN5ImGui8EndGroupEv()
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %514

514:                                              ; preds = %513
  %515 = load i32, ptr %27, align 4, !tbaa !17
  %516 = add nsw i32 %515, 1
  store i32 %516, ptr %27, align 4, !tbaa !17
  br label %424, !llvm.loop !64

517:                                              ; preds = %431
  %518 = load atomic i8, ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom acquire, align 8
  %519 = icmp eq i8 %518, 0
  br i1 %519, label %520, label %526, !prof !9

520:                                              ; preds = %517
  %521 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom) #10
  %522 = icmp ne i32 %521, 0
  br i1 %522, label %523, label %526

523:                                              ; preds = %520
  invoke void @_ZN8ImVectorI6ImVec4EC2Ev(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom)
          to label %524 unwind label %530

524:                                              ; preds = %523
  %525 = call i32 @__cxa_atexit(ptr @_ZN8ImVectorI6ImVec4ED2Ev, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, ptr @__dso_handle) #10
  call void @__cxa_guard_release(ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom) #10
  br label %526

526:                                              ; preds = %524, %520, %517
  %527 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, align 8, !tbaa !65
  %528 = icmp eq i32 %527, 0
  br i1 %528, label %529, label %534

529:                                              ; preds = %526
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #10
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef 1.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @_ZN8ImVectorI6ImVec4E9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, ptr noundef nonnull align 4 dereferenceable(16) %36)
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #10
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %37, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @_ZN8ImVectorI6ImVec4E9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, ptr noundef nonnull align 4 dereferenceable(16) %37)
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %38) #10
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %38, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  call void @_ZN8ImVectorI6ImVec4E9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, ptr noundef nonnull align 4 dereferenceable(16) %38)
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #10
  br label %534

530:                                              ; preds = %523
  %531 = landingpad { ptr, i32 }
          cleanup
  %532 = extractvalue { ptr, i32 } %531, 0
  store ptr %532, ptr %5, align 8
  %533 = extractvalue { ptr, i32 } %531, 1
  store i32 %533, ptr %6, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom) #10
  br label %600

534:                                              ; preds = %529, %526
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui10BeginGroupEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %535 = call noundef nonnull align 4 dereferenceable(1068) ptr @_ZN5ImGui8GetStyleEv()
  %536 = getelementptr inbounds %struct.ImGuiStyle, ptr %535, i32 0, i32 15
  %537 = getelementptr inbounds %struct.ImVec2, ptr %536, i32 0, i32 0
  %538 = load float, ptr %537, align 4, !tbaa !67
  %539 = fsub float 1.000000e+02, %538
  %540 = fdiv float %539, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef %540, float noundef 0.000000e+00)
  %541 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.315, ptr noundef nonnull align 4 dereferenceable(8) %39)
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  br i1 %541, label %542, label %543

542:                                              ; preds = %534
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #10
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %40, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @_ZN8ImVectorI6ImVec4E9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, ptr noundef nonnull align 4 dereferenceable(16) %40)
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #10
  br label %543

543:                                              ; preds = %542, %534
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  %544 = call noundef nonnull align 4 dereferenceable(1068) ptr @_ZN5ImGui8GetStyleEv()
  %545 = getelementptr inbounds %struct.ImGuiStyle, ptr %544, i32 0, i32 15
  %546 = getelementptr inbounds %struct.ImVec2, ptr %545, i32 0, i32 0
  %547 = load float, ptr %546, align 4, !tbaa !67
  %548 = fsub float 1.000000e+02, %547
  %549 = fdiv float %548, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef %549, float noundef 0.000000e+00)
  %550 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.316, ptr noundef nonnull align 4 dereferenceable(8) %41)
  br i1 %550, label %551, label %554

551:                                              ; preds = %543
  %552 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, align 8, !tbaa !65
  %553 = icmp sgt i32 %552, 2
  br label %554

554:                                              ; preds = %551, %543
  %555 = phi i1 [ false, %543 ], [ %553, %551 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  br i1 %555, label %556, label %557

556:                                              ; preds = %554
  call void @_ZN8ImVectorI6ImVec4E8pop_backEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom)
  br label %557

557:                                              ; preds = %556, %554
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 1.000000e+02)
  %558 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.317, ptr noundef @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4name, i64 noundef 16, i32 noundef 8, ptr noundef null, ptr noundef null)
  %559 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.318, ptr noundef @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4qual)
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef 1.000000e+02, float noundef 0.000000e+00)
  %560 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.319, ptr noundef nonnull align 4 dereferenceable(8) %42)
  br i1 %560, label %561, label %566

561:                                              ; preds = %557
  %562 = load ptr, ptr %3, align 8, !tbaa !5
  %563 = getelementptr inbounds %struct.ImPlotContext, ptr %562, i32 0, i32 15
  %564 = call noundef i32 @_ZNK18ImPlotColormapData8GetIndexEPKc(ptr noundef nonnull align 8 dereferenceable(164) %563, ptr noundef @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4name)
  %565 = icmp eq i32 %564, -1
  br label %566

566:                                              ; preds = %561, %557
  %567 = phi i1 [ false, %557 ], [ %565, %561 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  br i1 %567, label %568, label %574

568:                                              ; preds = %566
  %569 = load ptr, ptr getelementptr inbounds (%struct.ImVector.32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, i32 0, i32 2), align 8, !tbaa !69
  %570 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, align 8, !tbaa !65
  %571 = load i8, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4qual, align 1, !tbaa !10, !range !12, !noundef !13
  %572 = trunc i8 %571 to i1
  %573 = call noundef i32 @_ZN6ImPlot11AddColormapEPKcPK6ImVec4ib(ptr noundef @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4name, ptr noundef %569, i32 noundef %570, i1 noundef zeroext %572)
  br label %574

574:                                              ; preds = %568, %566
  call void @_ZN5ImGui8EndGroupEv()
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN5ImGui10BeginGroupEv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  store i32 0, ptr %43, align 4, !tbaa !17
  br label %575

575:                                              ; preds = %594, %574
  %576 = load i32, ptr %43, align 4, !tbaa !17
  %577 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, align 8, !tbaa !65
  %578 = icmp slt i32 %576, %577
  br i1 %578, label %580, label %579

579:                                              ; preds = %575
  store i32 17, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %597

580:                                              ; preds = %575
  %581 = load i32, ptr %43, align 4, !tbaa !17
  call void @_ZN5ImGui6PushIDEi(i32 noundef %581)
  %582 = load i32, ptr %43, align 4, !tbaa !17
  %583 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI6ImVec4EixEi(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, i32 noundef %582)
  %584 = getelementptr inbounds %struct.ImVec4, ptr %583, i32 0, i32 0
  %585 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef @.str.320, ptr noundef %584, i32 noundef 32)
  br i1 %585, label %586, label %587

586:                                              ; preds = %580
  br label %587

587:                                              ; preds = %586, %580
  %588 = load i32, ptr %43, align 4, !tbaa !17
  %589 = add nsw i32 %588, 1
  %590 = srem i32 %589, 12
  %591 = icmp ne i32 %590, 0
  br i1 %591, label %592, label %593

592:                                              ; preds = %587
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  br label %593

593:                                              ; preds = %592, %587
  call void @_ZN5ImGui5PopIDEv()
  br label %594

594:                                              ; preds = %593
  %595 = load i32, ptr %43, align 4, !tbaa !17
  %596 = add nsw i32 %595, 1
  store i32 %596, ptr %43, align 4, !tbaa !17
  br label %575, !llvm.loop !70

597:                                              ; preds = %579
  call void @_ZN5ImGui8EndGroupEv()
  call void @_ZN5ImGui10EndTabItemEv()
  br label %598

598:                                              ; preds = %597, %376
  call void @_ZN5ImGui9EndTabBarEv()
  br label %599

599:                                              ; preds = %598, %83
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #10
  ret void

600:                                              ; preds = %530, %255, %61
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #10
  br label %601

601:                                              ; preds = %600
  %602 = load ptr, ptr %5, align 8
  %603 = load i32, ptr %6, align 4
  %604 = insertvalue { ptr, i32 } poison, ptr %602, 0
  %605 = insertvalue { ptr, i32 } %604, i32 %603, 1
  resume { ptr, i32 } %605

606:                                              ; preds = %369
  unreachable
}

; Function Attrs: nounwind
declare i32 @__cxa_guard_acquire(ptr) #10

; Function Attrs: nounwind
declare void @__cxa_guard_abort(ptr) #10

; Function Attrs: nounwind
declare void @__cxa_guard_release(ptr) #10

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6ImPlotL10HelpMarkerEPKc(ptr noundef) #6

declare noundef zeroext i1 @_ZN5ImGui11BeginTabBarEPKci(ptr noundef, i32 noundef) #5

declare noundef zeroext i1 @_ZN5ImGui12BeginTabItemEPKcPbi(ptr noundef, ptr noundef, i32 noundef) #5

declare noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, i32 noundef) #5

declare void @_ZN5ImGui10EndTabItemEv() #5

declare void @_ZN5ImGui14LogToClipboardEi(i32 noundef) #5

declare void @_ZN5ImGui8LogToTTYEi(i32 noundef) #5

declare void @_ZN5ImGui7LogTextEPKcz(ptr noundef, ...) #5

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN6ImPlotL11IsColorAutoEi(i32 noundef) #8

declare void @_ZN5ImGui9LogFinishEv() #5

declare void @_ZN5ImGui16SetNextItemWidthEf(float noundef) #5

declare void @_ZN15ImGuiTextFilterC1EPKc(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef) unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN15ImGuiTextFilterD2Ev(ptr noundef nonnull align 8 dereferenceable(276)) unnamed_addr #8 align 2

; Function Attrs: nounwind
declare i32 @__cxa_atexit(ptr, ptr, ptr) #10

declare noundef zeroext i1 @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef, float noundef) #5

declare noundef float @_ZN5ImGui11GetFontSizeEv() #5

declare noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKcS1_(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef, ptr noundef) #5

declare noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef, ptr noundef, i32 noundef) #5

declare void @_ZN5ImGui12PopItemWidthEv() #5

declare void @_ZN5ImGui10BeginGroupEv() #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN18ImPlotColormapData11SetKeyColorEiij(ptr noundef nonnull align 8 dereferenceable(164), i32 noundef, i32 noundef, i32 noundef) #7 align 2

declare void @_ZN5ImGui8EndGroupEv() #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8ImVectorI6ImVec4EC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8ImVectorI6ImVec4ED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorI6ImVec4E9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8ImVectorI6ImVec4E8pop_backEv(ptr noundef nonnull align 8 dereferenceable(16)) #8 align 2

declare noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef, ptr noundef) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI6ImVec4EixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #8 align 2

declare void @_ZN5ImGui9EndTabBarEv() #5

declare void @_ZN11ImPlotStyleC1Ev(ptr)

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!"branch_weights", i32 1, i32 1048575}
!10 = !{!11, !11, i64 0}
!11 = !{!"bool", !7, i64 0}
!12 = !{i8 0, i8 2}
!13 = !{}
!14 = !{i64 0, i64 4, !15, i64 4, i64 4, !17, i64 8, i64 4, !15, i64 12, i64 4, !15, i64 16, i64 4, !15, i64 20, i64 4, !15, i64 24, i64 4, !15, i64 28, i64 4, !15, i64 32, i64 4, !15, i64 36, i64 4, !15, i64 40, i64 4, !15, i64 44, i64 4, !15, i64 48, i64 4, !15, i64 52, i64 4, !15, i64 56, i64 4, !15, i64 60, i64 4, !15, i64 64, i64 4, !15, i64 68, i64 4, !15, i64 72, i64 4, !15, i64 76, i64 4, !15, i64 80, i64 4, !15, i64 84, i64 4, !15, i64 88, i64 4, !15, i64 92, i64 4, !15, i64 96, i64 4, !15, i64 100, i64 4, !15, i64 104, i64 4, !15, i64 108, i64 4, !15, i64 112, i64 4, !15, i64 116, i64 4, !15, i64 120, i64 4, !15, i64 124, i64 4, !15, i64 128, i64 4, !15, i64 132, i64 4, !15, i64 136, i64 4, !15, i64 140, i64 4, !15, i64 144, i64 4, !15, i64 148, i64 4, !15, i64 152, i64 4, !15, i64 156, i64 4, !15, i64 160, i64 4, !15, i64 164, i64 4, !15, i64 168, i64 4, !15, i64 172, i64 336, !19, i64 508, i64 4, !17, i64 512, i64 1, !10, i64 513, i64 1, !10, i64 514, i64 1, !10}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"int", !7, i64 0}
!19 = !{!7, !7, i64 0}
!20 = !{!21, !16, i64 0}
!21 = !{!"_ZTS6ImVec4", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12}
!22 = !{!21, !16, i64 4}
!23 = !{!21, !16, i64 8}
!24 = !{!21, !16, i64 12}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{i64 0, i64 4, !15, i64 4, i64 4, !15, i64 8, i64 4, !15, i64 12, i64 4, !15}
!28 = distinct !{!28, !26}
!29 = !{!30, !18, i64 768}
!30 = !{!"_ZTS13ImPlotContext", !31, i64 0, !35, i64 40, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !37, i64 120, !42, i64 176, !44, i64 216, !11, i64 256, !46, i64 260, !47, i64 776, !48, i64 792, !49, i64 808, !51, i64 976, !53, i64 992, !55, i64 1048, !55, i64 1064, !51, i64 1080, !18, i64 1096, !18, i64 1100, !56, i64 1104, !57, i64 1336, !58, i64 1464, !11, i64 1512, !39, i64 1520, !6, i64 1536, !59, i64 1544, !6, i64 1584, !6, i64 1592}
!31 = !{!"_ZTS6ImPoolI10ImPlotPlotE", !32, i64 0, !33, i64 16, !18, i64 32, !18, i64 36}
!32 = !{!"_ZTS8ImVectorI10ImPlotPlotE", !18, i64 0, !18, i64 4, !6, i64 8}
!33 = !{!"_ZTS12ImGuiStorage", !34, i64 0}
!34 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !18, i64 0, !18, i64 4, !6, i64 8}
!35 = !{!"_ZTS6ImPoolI13ImPlotSubplotE", !36, i64 0, !33, i64 16, !18, i64 32, !18, i64 36}
!36 = !{!"_ZTS8ImVectorI13ImPlotSubplotE", !18, i64 0, !18, i64 4, !6, i64 8}
!37 = !{!"_ZTS12ImPlotTicker", !38, i64 0, !39, i64 16, !41, i64 32, !41, i64 40, !18, i64 48}
!38 = !{!"_ZTS8ImVectorI10ImPlotTickE", !18, i64 0, !18, i64 4, !6, i64 8}
!39 = !{!"_ZTS15ImGuiTextBuffer", !40, i64 0}
!40 = !{!"_ZTS8ImVectorIcE", !18, i64 0, !18, i64 4, !6, i64 8}
!41 = !{!"_ZTS6ImVec2", !16, i64 0, !16, i64 4}
!42 = !{!"_ZTS26ImPlotAnnotationCollection", !43, i64 0, !39, i64 16, !18, i64 32}
!43 = !{!"_ZTS8ImVectorI16ImPlotAnnotationE", !18, i64 0, !18, i64 4, !6, i64 8}
!44 = !{!"_ZTS19ImPlotTagCollection", !45, i64 0, !39, i64 16, !18, i64 32}
!45 = !{!"_ZTS8ImVectorI9ImPlotTagE", !18, i64 0, !18, i64 4, !6, i64 8}
!46 = !{!"_ZTS11ImPlotStyle", !16, i64 0, !18, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !16, i64 40, !41, i64 44, !41, i64 52, !41, i64 60, !41, i64 68, !41, i64 76, !41, i64 84, !41, i64 92, !41, i64 100, !41, i64 108, !41, i64 116, !41, i64 124, !41, i64 132, !41, i64 140, !41, i64 148, !41, i64 156, !41, i64 164, !7, i64 172, !18, i64 508, !11, i64 512, !11, i64 513, !11, i64 514}
!47 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !18, i64 0, !18, i64 4, !6, i64 8}
!48 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !18, i64 0, !18, i64 4, !6, i64 8}
!49 = !{!"_ZTS18ImPlotColormapData", !50, i64 0, !51, i64 16, !51, i64 32, !50, i64 48, !51, i64 64, !51, i64 80, !39, i64 96, !51, i64 112, !52, i64 128, !33, i64 144, !18, i64 160}
!50 = !{!"_ZTS8ImVectorIjE", !18, i64 0, !18, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorIiE", !18, i64 0, !18, i64 4, !6, i64 8}
!52 = !{!"_ZTS8ImVectorIbE", !18, i64 0, !18, i64 4, !6, i64 8}
!53 = !{!"_ZTS2tm", !18, i64 0, !18, i64 4, !18, i64 8, !18, i64 12, !18, i64 16, !18, i64 20, !18, i64 24, !18, i64 28, !18, i64 32, !54, i64 40, !6, i64 48}
!54 = !{!"long", !7, i64 0}
!55 = !{!"_ZTS8ImVectorIdE", !18, i64 0, !18, i64 4, !6, i64 8}
!56 = !{!"_ZTS18ImPlotNextPlotData", !7, i64 0, !7, i64 24, !7, i64 120, !7, i64 126, !7, i64 136, !7, i64 184}
!57 = !{!"_ZTS18ImPlotNextItemData", !7, i64 0, !16, i64 80, !18, i64 84, !16, i64 88, !16, i64 92, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !11, i64 116, !11, i64 117, !11, i64 118, !11, i64 119, !11, i64 120, !11, i64 121, !18, i64 124}
!58 = !{!"_ZTS14ImPlotInputMap", !18, i64 0, !18, i64 4, !18, i64 8, !18, i64 12, !18, i64 16, !18, i64 20, !18, i64 24, !18, i64 28, !18, i64 32, !18, i64 36, !18, i64 40, !16, i64 44}
!59 = !{!"_ZTS6ImPoolI19ImPlotAlignmentDataE", !60, i64 0, !33, i64 16, !18, i64 32, !18, i64 36}
!60 = !{!"_ZTS8ImVectorI19ImPlotAlignmentDataE", !18, i64 0, !18, i64 4, !6, i64 8}
!61 = distinct !{!61, !26}
!62 = !{!30, !18, i64 968}
!63 = distinct !{!63, !26}
!64 = distinct !{!64, !26}
!65 = !{!66, !18, i64 0}
!66 = !{!"_ZTS8ImVectorI6ImVec4E", !18, i64 0, !18, i64 4, !6, i64 8}
!67 = !{!68, !16, i64 76}
!68 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !16, i64 4, !41, i64 8, !16, i64 16, !16, i64 20, !41, i64 24, !41, i64 32, !18, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !41, i64 60, !16, i64 68, !16, i64 72, !41, i64 76, !41, i64 84, !41, i64 92, !41, i64 100, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !18, i64 148, !41, i64 152, !41, i64 160, !16, i64 168, !41, i64 172, !41, i64 180, !41, i64 188, !41, i64 196, !16, i64 204, !11, i64 208, !11, i64 209, !11, i64 210, !16, i64 212, !16, i64 216, !7, i64 220}
!69 = !{!66, !6, i64 8}
!70 = distinct !{!70, !26}


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

%struct.ImPlotStyle = type <{ float, i32, float, float, float, float, float, float, float, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [21 x %struct.ImVec4], i32, i8, i8, i8, i8 }>
%struct.ImVec2 = type { float, float }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiTextFilter = type <{ [256 x i8], %struct.ImVector.49, i32, [4 x i8] }>
%struct.ImVector.49 = type { i32, i32, ptr }
%struct.ImVector.32 = type { i32, i32, ptr }

@GImPlot = external dso_local local_unnamed_addr global ptr, align 8
@.str.32 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style = external hidden global %struct.ImPlotStyle, align 4
@_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style = external hidden global i64, align 8
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4init = external hidden local_unnamed_addr global i8, align 1
@.str.253 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest = external hidden global i32, align 4
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE20output_only_modified = external hidden global i8, align 1
@.str.292 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [21 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter = external hidden global %struct.ImGuiTextFilter, align 8
@_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter = external hidden global i64, align 8
@__dso_handle = external hidden global i8
@.str.299 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags = external hidden local_unnamed_addr global i32, align 4
@.str.300 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [223 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest_0 = external hidden global i32, align 4
@.str.309 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [63 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4edit = external hidden global i8, align 1
@.str.313 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom = external hidden global %struct.ImVector.32, align 8
@_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom = external hidden global i64, align 8
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4name = external hidden global [16 x i8], align 16
@.str.315 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4qual = external hidden global i8, align 1
@.str.318 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [7 x i8], align 1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16), float noundef, float noundef, float noundef, float noundef) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZN6ImPlotL17GetStyleColorVec4Ei(i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #4

declare i32 @__gxx_personality_v0(...)

declare void @_ZN5ImGui13PushItemWidthEf(float noundef) local_unnamed_addr #5

declare void @_ZN5ImGui8SameLineEff(float noundef, float noundef) local_unnamed_addr #5

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #5

declare noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef, ptr noundef) local_unnamed_addr #5

declare noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #5

declare noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #5

declare void @_ZN5ImGui11PopStyleVarEi(i32 noundef) local_unnamed_addr #5

declare void @_ZN5ImGui6PushIDEi(i32 noundef) local_unnamed_addr #5

declare void @_ZN5ImGui5PopIDEv() local_unnamed_addr #5

declare void @_ZN5ImGui4TextEPKcz(ptr noundef, ...) local_unnamed_addr #5

declare noundef nonnull align 4 dereferenceable(1068) ptr @_ZN5ImGui8GetStyleEv() local_unnamed_addr #5

declare noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #5

declare void @_ZN5ImGui12PushStyleVarEif(i32 noundef, float noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(515) ptr @_ZN6ImPlot8GetStyleEv() local_unnamed_addr #1

declare { <2 x float>, <2 x float> } @_ZN5ImGui23ColorConvertU32ToFloat4Ej(i32 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6ImPlot11AddColormapEPKcPK6ImVec4ib(ptr noundef, ptr noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK18ImPlotColormapData8GetIndexEPKc(ptr noundef nonnull align 8 dereferenceable(164), ptr noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6ImPlot15GetColormapNameEi(i32 noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK18ImPlotColormapData11GetKeyCountEi(ptr noundef nonnull align 8 dereferenceable(164), i32 noundef) local_unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK18ImPlotColormapData11GetKeyColorEii(ptr noundef nonnull align 8 dereferenceable(164), i32 noundef, i32 noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6ImPlot15GetColormapSizeEi(i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6ImPlot19GetColormapColorU32Eii(i32 noundef, i32 noundef) local_unnamed_addr #6

declare noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ImPlot14ColormapButtonEPKcRK6ImVec2i(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ImPlot17ShowStyleSelectorEPKc(ptr noundef) local_unnamed_addr #6

declare noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare void @_ZN6ImPlot13BustItemCacheEv() local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ImPlot15ShowStyleEditorEP11ImPlotStyle(ptr noundef %0) local_unnamed_addr #9 personality ptr @__gxx_personality_v0 {
  %2 = alloca %struct.ImVec2, align 4
  %3 = alloca %struct.ImVec2, align 4
  %4 = alloca %struct.ImVec2, align 4
  %5 = alloca %struct.ImVec4, align 8
  %6 = alloca %struct.ImVec2, align 4
  %7 = alloca %struct.ImVec4, align 4
  %8 = alloca %struct.ImVec2, align 4
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca %struct.ImVec2, align 4
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca %struct.ImVec4, align 8
  %13 = alloca %struct.ImVec2, align 4
  %14 = alloca %struct.ImVec4, align 4
  %15 = alloca %struct.ImVec4, align 4
  %16 = alloca %struct.ImVec4, align 4
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca %struct.ImVec4, align 4
  %19 = alloca %struct.ImVec2, align 4
  %20 = alloca %struct.ImVec2, align 4
  %21 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  %22 = tail call noundef nonnull align 4 dereferenceable(515) ptr @_ZN6ImPlot8GetStyleEv()
  %23 = load atomic i8, ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style acquire, align 8
  %24 = icmp eq i8 %23, 0
  br i1 %24, label %25, label %29, !prof !9

25:                                               ; preds = %1
  %26 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style) #13
  %.not = icmp eq i32 %26, 0
  br i1 %.not, label %29, label %27

27:                                               ; preds = %25
  invoke void @_ZN11ImPlotStyleC1Ev(ptr noundef nonnull align 4 dereferenceable(515) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style)
          to label %28 unwind label %34

28:                                               ; preds = %27
  tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style) #13
  br label %29

29:                                               ; preds = %28, %25, %1
  %30 = load i8, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4init, align 1, !tbaa !10, !range !12, !noundef !13
  %31 = trunc nuw i8 %30 to i1
  %32 = icmp eq ptr %0, null
  %or.cond = and i1 %32, %31
  br i1 %or.cond, label %33, label %36

33:                                               ; preds = %29
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(515) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style, ptr noundef nonnull align 4 dereferenceable(515) %22, i64 515, i1 false), !tbaa.struct !14
  br label %36

34:                                               ; preds = %27
  %35 = landingpad { ptr, i32 }
          cleanup
  tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style) #13
  br label %334

36:                                               ; preds = %33, %29
  store i8 0, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4init, align 1, !tbaa !10
  %spec.store.select = select i1 %32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style, ptr %0
  %37 = tail call noundef zeroext i1 @_ZN6ImPlot17ShowStyleSelectorEPKc(ptr noundef nonnull @.str.253)
  br i1 %37, label %38, label %39

38:                                               ; preds = %36
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(515) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style, ptr noundef nonnull align 4 dereferenceable(515) %22, i64 515, i1 false), !tbaa.struct !14
  br label %39

39:                                               ; preds = %38, %36
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %2, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %40 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.254, ptr noundef nonnull align 4 dereferenceable(8) %2)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #13
  br i1 %40, label %41, label %42

41:                                               ; preds = %39
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(515) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE15ref_saved_style, ptr noundef nonnull align 4 dereferenceable(515) %22, i64 515, i1 false), !tbaa.struct !14
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(515) %spec.store.select, ptr noundef nonnull align 4 dereferenceable(515) %22, i64 515, i1 false)
  br label %42

42:                                               ; preds = %41, %39
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %3, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %43 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.255, ptr noundef nonnull align 4 dereferenceable(8) %3)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #13
  br i1 %43, label %44, label %45

44:                                               ; preds = %42
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(515) %22, ptr noundef nonnull align 4 dereferenceable(515) %spec.store.select, i64 515, i1 false), !tbaa.struct !14
  br label %45

45:                                               ; preds = %44, %42
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN6ImPlotL10HelpMarkerEPKc(ptr noundef nonnull @.str.256)
  %46 = call noundef zeroext i1 @_ZN5ImGui11BeginTabBarEPKci(ptr noundef nonnull @.str.257, i32 noundef 0)
  br i1 %46, label %47, label %333

47:                                               ; preds = %45
  %48 = call noundef zeroext i1 @_ZN5ImGui12BeginTabItemEPKcPbi(ptr noundef nonnull @.str.258, ptr noundef null, i32 noundef 0)
  br i1 %48, label %49, label %101

49:                                               ; preds = %47
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.259)
  %50 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef nonnull @.str.260, ptr noundef nonnull %22, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef nonnull @.str.261, i32 noundef 0)
  %51 = getelementptr inbounds i8, ptr %22, i64 8
  %52 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef nonnull @.str.262, ptr noundef nonnull %51, float noundef 2.000000e+00, float noundef 1.000000e+01, ptr noundef nonnull @.str.261, i32 noundef 0)
  %53 = getelementptr inbounds i8, ptr %22, i64 12
  %54 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef nonnull @.str.263, ptr noundef nonnull %53, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef nonnull @.str.261, i32 noundef 0)
  %55 = getelementptr inbounds i8, ptr %22, i64 16
  %56 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef nonnull @.str.264, ptr noundef nonnull %55, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull @.str.265, i32 noundef 0)
  %57 = getelementptr inbounds i8, ptr %22, i64 20
  %58 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef nonnull @.str.266, ptr noundef nonnull %57, float noundef 0.000000e+00, float noundef 1.000000e+01, ptr noundef nonnull @.str.261, i32 noundef 0)
  %59 = getelementptr inbounds i8, ptr %22, i64 24
  %60 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef nonnull @.str.267, ptr noundef nonnull %59, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef nonnull @.str.261, i32 noundef 0)
  %61 = getelementptr inbounds i8, ptr %22, i64 28
  %62 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef nonnull @.str.268, ptr noundef nonnull %61, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.261, i32 noundef 0)
  %63 = getelementptr inbounds i8, ptr %22, i64 32
  %64 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef nonnull @.str.269, ptr noundef nonnull %63, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.261, i32 noundef 0)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.270)
  %65 = getelementptr inbounds i8, ptr %22, i64 36
  %66 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef nonnull @.str.271, ptr noundef nonnull %65, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef nonnull @.str.272, i32 noundef 0)
  %67 = getelementptr inbounds i8, ptr %22, i64 40
  %68 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef nonnull @.str.273, ptr noundef nonnull %67, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull @.str.265, i32 noundef 0)
  %69 = getelementptr inbounds i8, ptr %22, i64 44
  %70 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.274, ptr noundef nonnull %69, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.272, i32 noundef 0)
  %71 = getelementptr inbounds i8, ptr %22, i64 52
  %72 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.275, ptr noundef nonnull %71, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.272, i32 noundef 0)
  %73 = getelementptr inbounds i8, ptr %22, i64 60
  %74 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.276, ptr noundef nonnull %73, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef nonnull @.str.261, i32 noundef 0)
  %75 = getelementptr inbounds i8, ptr %22, i64 68
  %76 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.277, ptr noundef nonnull %75, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef nonnull @.str.261, i32 noundef 0)
  %77 = getelementptr inbounds i8, ptr %22, i64 76
  %78 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.278, ptr noundef nonnull %77, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef nonnull @.str.261, i32 noundef 0)
  %79 = getelementptr inbounds i8, ptr %22, i64 84
  %80 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.279, ptr noundef nonnull %79, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef nonnull @.str.261, i32 noundef 0)
  %81 = getelementptr inbounds i8, ptr %22, i64 156
  %82 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.280, ptr noundef nonnull %81, float noundef 0.000000e+00, float noundef 1.000000e+03, ptr noundef nonnull @.str.272, i32 noundef 0)
  %83 = getelementptr inbounds i8, ptr %22, i64 164
  %84 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.281, ptr noundef nonnull %83, float noundef 0.000000e+00, float noundef 3.000000e+02, ptr noundef nonnull @.str.272, i32 noundef 0)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.282)
  %85 = getelementptr inbounds i8, ptr %22, i64 92
  %86 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.283, ptr noundef nonnull %85, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.272, i32 noundef 0)
  %87 = getelementptr inbounds i8, ptr %22, i64 100
  %88 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.284, ptr noundef nonnull %87, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.272, i32 noundef 0)
  %89 = getelementptr inbounds i8, ptr %22, i64 108
  %90 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.285, ptr noundef nonnull %89, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.272, i32 noundef 0)
  %91 = getelementptr inbounds i8, ptr %22, i64 116
  %92 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.286, ptr noundef nonnull %91, float noundef 0.000000e+00, float noundef 1.000000e+01, ptr noundef nonnull @.str.272, i32 noundef 0)
  %93 = getelementptr inbounds i8, ptr %22, i64 124
  %94 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.287, ptr noundef nonnull %93, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef nonnull @.str.272, i32 noundef 0)
  %95 = getelementptr inbounds i8, ptr %22, i64 132
  %96 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.288, ptr noundef nonnull %95, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.272, i32 noundef 0)
  %97 = getelementptr inbounds i8, ptr %22, i64 140
  %98 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.289, ptr noundef nonnull %97, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef nonnull @.str.272, i32 noundef 0)
  %99 = getelementptr inbounds i8, ptr %22, i64 148
  %100 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef nonnull @.str.290, ptr noundef nonnull %99, float noundef 0.000000e+00, float noundef 0x3FC99999A0000000, ptr noundef nonnull @.str.265, i32 noundef 0)
  call void @_ZN5ImGui10EndTabItemEv()
  br label %101

101:                                              ; preds = %49, %47
  %102 = call noundef zeroext i1 @_ZN5ImGui12BeginTabItemEPKcPbi(ptr noundef nonnull @.str.291, ptr noundef null, i32 noundef 0)
  br i1 %102, label %103, label %213

103:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 7.500000e+01, float noundef 0.000000e+00)
  %104 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.292, ptr noundef nonnull align 4 dereferenceable(8) %4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #13
  br i1 %104, label %105, label %141

105:                                              ; preds = %103
  %106 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest, align 4, !tbaa !17
  %107 = icmp eq i32 %106, 0
  br i1 %107, label %108, label %109

108:                                              ; preds = %105
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef -1)
  br label %110

109:                                              ; preds = %105
  call void @_ZN5ImGui8LogToTTYEi(i32 noundef -1)
  br label %110

110:                                              ; preds = %109, %108
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef nonnull @.str.293)
  %111 = getelementptr inbounds i8, ptr %22, i64 172
  %112 = getelementptr inbounds i8, ptr %spec.store.select, i64 172
  br label %114

113:                                              ; preds = %140
  call void @_ZN5ImGui9LogFinishEv()
  br label %141

114:                                              ; preds = %110, %140
  %indvars.iv = phi i64 [ 0, %110 ], [ %indvars.iv.next, %140 ]
  %115 = getelementptr inbounds [21 x %struct.ImVec4], ptr %111, i64 0, i64 %indvars.iv
  %116 = trunc nuw nsw i64 %indvars.iv to i32
  %117 = call noundef ptr @_ZN6ImPlot17GetStyleColorNameEi(i32 noundef %116)
  %118 = load i8, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE20output_only_modified, align 1, !tbaa !10, !range !12, !noundef !13
  %119 = trunc nuw i8 %118 to i1
  br i1 %119, label %120, label %122

120:                                              ; preds = %114
  %121 = getelementptr inbounds [21 x %struct.ImVec4], ptr %112, i64 0, i64 %indvars.iv
  %bcmp148 = call i32 @bcmp(ptr noundef nonnull dereferenceable(16) %115, ptr noundef nonnull dereferenceable(16) %121, i64 16)
  %.not149 = icmp eq i32 %bcmp148, 0
  br i1 %.not149, label %140, label %122

122:                                              ; preds = %120, %114
  %123 = call noundef zeroext i1 @_ZN6ImPlotL11IsColorAutoEi(i32 noundef %116)
  %124 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %117) #14
  %125 = trunc i64 %124 to i32
  %126 = sub nsw i32 14, %125
  br i1 %123, label %127, label %128

127:                                              ; preds = %122
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef nonnull @.str.294, ptr noundef %117, i32 noundef %126, ptr noundef nonnull @.str.32)
  br label %140

128:                                              ; preds = %122
  %129 = load float, ptr %115, align 4, !tbaa !20
  %130 = fpext float %129 to double
  %131 = getelementptr inbounds i8, ptr %115, i64 4
  %132 = load float, ptr %131, align 4, !tbaa !22
  %133 = fpext float %132 to double
  %134 = getelementptr inbounds i8, ptr %115, i64 8
  %135 = load float, ptr %134, align 4, !tbaa !23
  %136 = fpext float %135 to double
  %137 = getelementptr inbounds i8, ptr %115, i64 12
  %138 = load float, ptr %137, align 4, !tbaa !24
  %139 = fpext float %138 to double
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef nonnull @.str.295, ptr noundef %117, i32 noundef %126, ptr noundef nonnull @.str.32, double noundef %130, double noundef %133, double noundef %136, double noundef %139)
  br label %140

140:                                              ; preds = %127, %128, %120
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 21
  br i1 %exitcond.not, label %113, label %114, !llvm.loop !25

141:                                              ; preds = %113, %103
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 1.200000e+02)
  %142 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef nonnull @.str.296, ptr noundef nonnull @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest, ptr noundef nonnull @.str.297, i32 noundef -1)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %143 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.298, ptr noundef nonnull @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE20output_only_modified)
  %144 = load atomic i8, ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter acquire, align 8
  %145 = icmp eq i8 %144, 0
  br i1 %145, label %146, label %151, !prof !9

146:                                              ; preds = %141
  %147 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter) #13
  %.not141 = icmp eq i32 %147, 0
  br i1 %.not141, label %151, label %148

148:                                              ; preds = %146
  invoke void @_ZN15ImGuiTextFilterC1EPKc(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter, ptr noundef nonnull @.str.32)
          to label %149 unwind label %159

149:                                              ; preds = %148
  %150 = call i32 @__cxa_atexit(ptr nonnull @_ZN15ImGuiTextFilterD2Ev, ptr nonnull @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter, ptr nonnull @__dso_handle) #13
  call void @__cxa_guard_release(ptr nonnull @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter) #13
  br label %151

151:                                              ; preds = %149, %146, %141
  %152 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %153 = fmul float %152, 1.600000e+01
  %154 = call noundef zeroext i1 @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter, ptr noundef nonnull @.str.299, float noundef %153)
  %155 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  %156 = icmp eq i32 %155, 0
  %157 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcb(ptr noundef nonnull @.str.300, i1 noundef zeroext %156)
  br i1 %157, label %158, label %161

158:                                              ; preds = %151
  store i32 0, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  br label %161

159:                                              ; preds = %148
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_guard_abort(ptr nonnull @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter) #13
  br label %334

161:                                              ; preds = %158, %151
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %162 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  %163 = icmp eq i32 %162, 131072
  %164 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcb(ptr noundef nonnull @.str.301, i1 noundef zeroext %163)
  br i1 %164, label %165, label %166

165:                                              ; preds = %161
  store i32 131072, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  br label %166

166:                                              ; preds = %165, %161
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %167 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  %168 = icmp eq i32 %167, 262144
  %169 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcb(ptr noundef nonnull @.str.302, i1 noundef zeroext %168)
  br i1 %169, label %170, label %171

170:                                              ; preds = %166
  store i32 262144, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  br label %171

171:                                              ; preds = %170, %166
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN6ImPlotL10HelpMarkerEPKc(ptr noundef nonnull @.str.303)
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui13PushItemWidthEf(float noundef -1.600000e+02)
  %172 = getelementptr inbounds i8, ptr %5, i64 8
  %173 = getelementptr inbounds i8, ptr %22, i64 172
  %174 = getelementptr inbounds i8, ptr %spec.store.select, i64 172
  br label %176

175:                                              ; preds = %212
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @_ZN5ImGui9SeparatorEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.307)
  call void @_ZN5ImGui10EndTabItemEv()
  br label %213

176:                                              ; preds = %171, %212
  %indvars.iv166 = phi i64 [ 0, %171 ], [ %indvars.iv.next167, %212 ]
  %177 = trunc nuw nsw i64 %indvars.iv166 to i32
  %178 = call noundef ptr @_ZN6ImPlot17GetStyleColorNameEi(i32 noundef %177)
  %179 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKcS1_(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6filter, ptr noundef %178, ptr noundef null)
  br i1 %179, label %180, label %212

180:                                              ; preds = %176
  call void @_ZN5ImGui6PushIDEi(i32 noundef %177)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #13
  %181 = call { <2 x float>, <2 x float> } @_ZN6ImPlotL17GetStyleColorVec4Ei(i32 noundef %177)
  %182 = extractvalue { <2 x float>, <2 x float> } %181, 0
  store <2 x float> %182, ptr %5, align 8
  %183 = extractvalue { <2 x float>, <2 x float> } %181, 1
  store <2 x float> %183, ptr %172, align 8
  %184 = call noundef zeroext i1 @_ZN6ImPlotL11IsColorAutoEi(i32 noundef %177)
  br i1 %184, label %186, label %185

185:                                              ; preds = %180
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 0, float noundef 2.500000e-01)
  br label %186

186:                                              ; preds = %185, %180
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %187 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.304, ptr noundef nonnull align 4 dereferenceable(8) %6)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #13
  br i1 %187, label %188, label %194

188:                                              ; preds = %186
  br i1 %184, label %189, label %191

189:                                              ; preds = %188
  %190 = getelementptr inbounds [21 x %struct.ImVec4], ptr %173, i64 0, i64 %indvars.iv166
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %190, ptr noundef nonnull align 8 dereferenceable(16) %5, i64 16, i1 false), !tbaa.struct !27
  br label %193

191:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #13
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %7, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef -1.000000e+00)
  %192 = getelementptr inbounds [21 x %struct.ImVec4], ptr %173, i64 0, i64 %indvars.iv166
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %192, ptr noundef nonnull align 4 dereferenceable(16) %7, i64 16, i1 false), !tbaa.struct !27
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #13
  br label %193

193:                                              ; preds = %191, %189
  call void @_ZN6ImPlot13BustItemCacheEv()
  br label %194

194:                                              ; preds = %193, %186
  br i1 %184, label %196, label %195

195:                                              ; preds = %194
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 1)
  br label %196

196:                                              ; preds = %195, %194
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %197 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11alpha_flags, align 4, !tbaa !17
  %198 = or i32 %197, 32
  %199 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef %178, ptr noundef nonnull %5, i32 noundef %198)
  br i1 %199, label %200, label %202

200:                                              ; preds = %196
  %201 = getelementptr inbounds [21 x %struct.ImVec4], ptr %173, i64 0, i64 %indvars.iv166
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %201, ptr noundef nonnull align 8 dereferenceable(16) %5, i64 16, i1 false), !tbaa.struct !27
  call void @_ZN6ImPlot13BustItemCacheEv()
  br label %202

202:                                              ; preds = %200, %196
  %203 = getelementptr inbounds [21 x %struct.ImVec4], ptr %173, i64 0, i64 %indvars.iv166
  %204 = getelementptr inbounds [21 x %struct.ImVec4], ptr %174, i64 0, i64 %indvars.iv166
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(16) %203, ptr noundef nonnull dereferenceable(16) %204, i64 16)
  %.not147 = icmp eq i32 %bcmp, 0
  br i1 %.not147, label %211, label %205

205:                                              ; preds = %202
  call void @_ZN5ImGui8SameLineEff(float noundef 1.750000e+02, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %206 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.305, ptr noundef nonnull align 4 dereferenceable(8) %8)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #13
  br i1 %206, label %207, label %208

207:                                              ; preds = %205
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %204, ptr noundef nonnull align 4 dereferenceable(16) %203, i64 16, i1 false), !tbaa.struct !27
  br label %208

208:                                              ; preds = %207, %205
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %209 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.306, ptr noundef nonnull align 4 dereferenceable(8) %9)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #13
  br i1 %209, label %210, label %211

210:                                              ; preds = %208
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %203, ptr noundef nonnull align 4 dereferenceable(16) %204, i64 16, i1 false), !tbaa.struct !27
  call void @_ZN6ImPlot13BustItemCacheEv()
  br label %211

211:                                              ; preds = %208, %210, %202
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #13
  br label %212

212:                                              ; preds = %176, %211
  %indvars.iv.next167 = add nuw nsw i64 %indvars.iv166, 1
  %exitcond169.not = icmp eq i64 %indvars.iv.next167, 21
  br i1 %exitcond169.not, label %175, label %176, !llvm.loop !28

213:                                              ; preds = %175, %101
  %214 = call noundef zeroext i1 @_ZN5ImGui12BeginTabItemEPKcPbi(ptr noundef nonnull @.str.308, ptr noundef null, i32 noundef 0)
  br i1 %214, label %215, label %332

215:                                              ; preds = %213
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef 7.500000e+01, float noundef 0.000000e+00)
  %216 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.292, ptr noundef nonnull align 4 dereferenceable(8) %10)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #13
  br i1 %216, label %217, label %235

217:                                              ; preds = %215
  %218 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest_0, align 4, !tbaa !17
  %219 = icmp eq i32 %218, 0
  br i1 %219, label %220, label %221

220:                                              ; preds = %217
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef -1)
  br label %222

221:                                              ; preds = %217
  call void @_ZN5ImGui8LogToTTYEi(i32 noundef -1)
  br label %222

222:                                              ; preds = %221, %220
  %223 = call noundef i32 @_ZN6ImPlot15GetColormapSizeEi(i32 noundef -1)
  %224 = getelementptr inbounds i8, ptr %21, i64 768
  %225 = load i32, ptr %224, align 4, !tbaa !29
  %226 = call noundef ptr @_ZN6ImPlot15GetColormapNameEi(i32 noundef %225)
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef nonnull @.str.309, ptr noundef %226, i32 noundef %223)
  %227 = icmp sgt i32 %223, 0
  br i1 %227, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %222
  %228 = add nsw i32 %223, -1
  br label %229

._crit_edge:                                      ; preds = %229, %222
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef nonnull @.str.312, ptr noundef %226, ptr noundef %226, ptr noundef %226, i32 noundef %223)
  call void @_ZN5ImGui9LogFinishEv()
  br label %235

229:                                              ; preds = %.lr.ph, %229
  %.0138153 = phi i32 [ 0, %.lr.ph ], [ %234, %229 ]
  %230 = load i32, ptr %224, align 4, !tbaa !29
  %231 = call noundef i32 @_ZN6ImPlot19GetColormapColorU32Eii(i32 noundef %.0138153, i32 noundef %230)
  %232 = icmp eq i32 %.0138153, %228
  %233 = select i1 %232, ptr @.str.32, ptr @.str.311
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef nonnull @.str.310, i32 noundef %231, ptr noundef nonnull %233)
  %234 = add nuw nsw i32 %.0138153, 1
  %exitcond170.not = icmp eq i32 %234, %223
  br i1 %exitcond170.not, label %._crit_edge, label %229, !llvm.loop !61

235:                                              ; preds = %._crit_edge, %215
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 1.200000e+02)
  %236 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef nonnull @.str.296, ptr noundef nonnull @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE11output_dest_0, ptr noundef nonnull @.str.297, i32 noundef -1)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %237 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.313, ptr noundef nonnull @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4edit)
  call void @_ZN5ImGui9SeparatorEv()
  %238 = getelementptr inbounds i8, ptr %21, i64 808
  %239 = getelementptr inbounds i8, ptr %21, i64 968
  %240 = load i32, ptr %239, align 8, !tbaa !62
  %241 = icmp sgt i32 %240, 0
  br i1 %241, label %.lr.ph159, label %._crit_edge160

.lr.ph159:                                        ; preds = %235
  %242 = getelementptr inbounds i8, ptr %21, i64 768
  %243 = getelementptr inbounds i8, ptr %12, i64 8
  br label %246

._crit_edge160:                                   ; preds = %.loopexit, %235
  %244 = load atomic i8, ptr @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom acquire, align 8
  %245 = icmp eq i8 %244, 0
  br i1 %245, label %281, label %285, !prof !9

246:                                              ; preds = %.lr.ph159, %.loopexit
  %.0136156 = phi i32 [ 0, %.lr.ph159 ], [ %278, %.loopexit ]
  call void @_ZN5ImGui6PushIDEi(i32 noundef %.0136156)
  %247 = call noundef i32 @_ZNK18ImPlotColormapData11GetKeyCountEi(ptr noundef nonnull align 8 dereferenceable(164) %238, i32 noundef %.0136156)
  %248 = load i32, ptr %242, align 4, !tbaa !29
  %249 = icmp eq i32 %.0136156, %248
  %250 = call noundef ptr @_ZN6ImPlot15GetColormapNameEi(i32 noundef %.0136156)
  br i1 %249, label %252, label %251

251:                                              ; preds = %246
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 0, float noundef 2.500000e-01)
  br label %252

252:                                              ; preds = %251, %246
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef 1.000000e+02, float noundef 0.000000e+00)
  %253 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %250, ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #13
  br i1 %253, label %254, label %255

254:                                              ; preds = %252
  store i32 %.0136156, ptr %242, align 4, !tbaa !29
  call void @_ZN6ImPlot13BustItemCacheEv()
  br label %255

255:                                              ; preds = %254, %252
  br i1 %249, label %257, label %256

256:                                              ; preds = %255
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 1)
  br label %257

257:                                              ; preds = %256, %255
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN5ImGui10BeginGroupEv()
  %258 = load i8, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4edit, align 1, !tbaa !10, !range !12, !noundef !13
  %259 = trunc nuw i8 %258 to i1
  br i1 %259, label %.preheader, label %275

.preheader:                                       ; preds = %257
  %260 = icmp sgt i32 %247, 0
  br i1 %260, label %.lr.ph155, label %.loopexit

.lr.ph155:                                        ; preds = %.preheader
  %261 = add nsw i32 %247, -1
  br label %262

262:                                              ; preds = %.lr.ph155, %274
  %.0132154 = phi i32 [ 0, %.lr.ph155 ], [ %271, %274 ]
  call void @_ZN5ImGui6PushIDEi(i32 noundef %.0132154)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #13
  %263 = call noundef i32 @_ZNK18ImPlotColormapData11GetKeyColorEii(ptr noundef nonnull align 8 dereferenceable(164) %238, i32 noundef %.0136156, i32 noundef %.0132154)
  %264 = call { <2 x float>, <2 x float> } @_ZN5ImGui23ColorConvertU32ToFloat4Ej(i32 noundef %263)
  %265 = extractvalue { <2 x float>, <2 x float> } %264, 0
  store <2 x float> %265, ptr %12, align 8
  %266 = extractvalue { <2 x float>, <2 x float> } %264, 1
  store <2 x float> %266, ptr %243, align 8
  %267 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef nonnull @.str.32, ptr noundef nonnull %12, i32 noundef 32)
  br i1 %267, label %268, label %270

268:                                              ; preds = %262
  %269 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %12)
  call void @_ZN18ImPlotColormapData11SetKeyColorEiij(ptr noundef nonnull align 8 dereferenceable(164) %238, i32 noundef %.0136156, i32 noundef %.0132154, i32 noundef %269)
  call void @_ZN6ImPlot13BustItemCacheEv()
  br label %270

270:                                              ; preds = %268, %262
  %271 = add nuw nsw i32 %.0132154, 1
  %272 = urem i32 %271, 12
  %.not145 = icmp eq i32 %272, 0
  %.not146 = icmp eq i32 %.0132154, %261
  %or.cond150 = select i1 %.not145, i1 true, i1 %.not146
  br i1 %or.cond150, label %274, label %273

273:                                              ; preds = %270
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  br label %274

274:                                              ; preds = %273, %270
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #13
  %exitcond171.not = icmp eq i32 %271, %247
  br i1 %exitcond171.not, label %.loopexit, label %262, !llvm.loop !63

275:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %13, float noundef -1.000000e+00, float noundef 0.000000e+00)
  %276 = call noundef zeroext i1 @_ZN6ImPlot14ColormapButtonEPKcRK6ImVec2i(ptr noundef nonnull @.str.314, ptr noundef nonnull align 4 dereferenceable(8) %13, i32 noundef %.0136156)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #13
  br i1 %276, label %277, label %.loopexit

277:                                              ; preds = %275
  store i8 1, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4edit, align 1, !tbaa !10
  br label %.loopexit

.loopexit:                                        ; preds = %274, %.preheader, %275, %277
  call void @_ZN5ImGui8EndGroupEv()
  call void @_ZN5ImGui5PopIDEv()
  %278 = add nuw nsw i32 %.0136156, 1
  %279 = load i32, ptr %239, align 8, !tbaa !62
  %280 = icmp slt i32 %278, %279
  br i1 %280, label %246, label %._crit_edge160, !llvm.loop !64

281:                                              ; preds = %._crit_edge160
  %282 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom) #13
  %.not143 = icmp eq i32 %282, 0
  br i1 %.not143, label %285, label %283

283:                                              ; preds = %281
  call void @_ZN8ImVectorI6ImVec4EC2Ev(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom)
  %284 = call i32 @__cxa_atexit(ptr nonnull @_ZN8ImVectorI6ImVec4ED2Ev, ptr nonnull @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, ptr nonnull @__dso_handle) #13
  call void @__cxa_guard_release(ptr nonnull @_ZGVZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom) #13
  br label %285

285:                                              ; preds = %283, %281, %._crit_edge160
  %286 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, align 8, !tbaa !65
  %287 = icmp eq i32 %286, 0
  br i1 %287, label %288, label %289

288:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #13
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %14, float noundef 1.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @_ZN8ImVectorI6ImVec4E9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, ptr noundef nonnull align 4 dereferenceable(16) %14)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #13
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %15, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @_ZN8ImVectorI6ImVec4E9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, ptr noundef nonnull align 4 dereferenceable(16) %15)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #13
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %16, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  call void @_ZN8ImVectorI6ImVec4E9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, ptr noundef nonnull align 4 dereferenceable(16) %16)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #13
  br label %289

289:                                              ; preds = %288, %285
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui10BeginGroupEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #13
  %290 = call noundef nonnull align 4 dereferenceable(1068) ptr @_ZN5ImGui8GetStyleEv()
  %291 = getelementptr inbounds i8, ptr %290, i64 76
  %292 = load float, ptr %291, align 4, !tbaa !67
  %293 = fsub float 1.000000e+02, %292
  %294 = fmul float %293, 5.000000e-01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef %294, float noundef 0.000000e+00)
  %295 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.315, ptr noundef nonnull align 4 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #13
  br i1 %295, label %296, label %297

296:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #13
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %18, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @_ZN8ImVectorI6ImVec4E9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, ptr noundef nonnull align 4 dereferenceable(16) %18)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #13
  br label %297

297:                                              ; preds = %296, %289
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #13
  %298 = call noundef nonnull align 4 dereferenceable(1068) ptr @_ZN5ImGui8GetStyleEv()
  %299 = getelementptr inbounds i8, ptr %298, i64 76
  %300 = load float, ptr %299, align 4, !tbaa !67
  %301 = fsub float 1.000000e+02, %300
  %302 = fmul float %301, 5.000000e-01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef %302, float noundef 0.000000e+00)
  %303 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.316, ptr noundef nonnull align 4 dereferenceable(8) %19)
  %304 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, align 8
  %305 = icmp sgt i32 %304, 2
  %306 = select i1 %303, i1 %305, i1 false
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #13
  br i1 %306, label %307, label %308

307:                                              ; preds = %297
  call void @_ZN8ImVectorI6ImVec4E8pop_backEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom)
  br label %308

308:                                              ; preds = %307, %297
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 1.000000e+02)
  %309 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.317, ptr noundef nonnull @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4name, i64 noundef 16, i32 noundef 8, ptr noundef null, ptr noundef null)
  %310 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.318, ptr noundef nonnull @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4qual)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef 1.000000e+02, float noundef 0.000000e+00)
  %311 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.319, ptr noundef nonnull align 4 dereferenceable(8) %20)
  br i1 %311, label %312, label %.critedge

312:                                              ; preds = %308
  %313 = call noundef i32 @_ZNK18ImPlotColormapData8GetIndexEPKc(ptr noundef nonnull align 8 dereferenceable(164) %238, ptr noundef nonnull @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4name)
  %314 = icmp eq i32 %313, -1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #13
  br i1 %314, label %315, label %321

315:                                              ; preds = %312
  %316 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, i64 8), align 8, !tbaa !69
  %317 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, align 8, !tbaa !65
  %318 = load i8, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4qual, align 1, !tbaa !10, !range !12, !noundef !13
  %319 = trunc nuw i8 %318 to i1
  %320 = call noundef i32 @_ZN6ImPlot11AddColormapEPKcPK6ImVec4ib(ptr noundef nonnull @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE4name, ptr noundef %316, i32 noundef %317, i1 noundef zeroext %319)
  br label %321

.critedge:                                        ; preds = %308
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #13
  br label %321

321:                                              ; preds = %.critedge, %315, %312
  call void @_ZN5ImGui8EndGroupEv()
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN5ImGui10BeginGroupEv()
  %322 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, align 8, !tbaa !65
  %323 = icmp sgt i32 %322, 0
  br i1 %323, label %.lr.ph163, label %._crit_edge164

._crit_edge164:                                   ; preds = %329, %321
  call void @_ZN5ImGui8EndGroupEv()
  call void @_ZN5ImGui10EndTabItemEv()
  br label %332

.lr.ph163:                                        ; preds = %321, %329
  %.0161 = phi i32 [ %326, %329 ], [ 0, %321 ]
  call void @_ZN5ImGui6PushIDEi(i32 noundef %.0161)
  %324 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI6ImVec4EixEi(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, i32 noundef %.0161)
  %325 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef nonnull @.str.320, ptr noundef nonnull %324, i32 noundef 32)
  %326 = add nuw nsw i32 %.0161, 1
  %327 = urem i32 %326, 12
  %.not144 = icmp eq i32 %327, 0
  br i1 %.not144, label %329, label %328

328:                                              ; preds = %.lr.ph163
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  br label %329

329:                                              ; preds = %328, %.lr.ph163
  call void @_ZN5ImGui5PopIDEv()
  %330 = load i32, ptr @_ZZN6ImPlot15ShowStyleEditorEP11ImPlotStyleE6custom, align 8, !tbaa !65
  %331 = icmp slt i32 %326, %330
  br i1 %331, label %.lr.ph163, label %._crit_edge164, !llvm.loop !70

332:                                              ; preds = %._crit_edge164, %213
  call void @_ZN5ImGui9EndTabBarEv()
  br label %333

333:                                              ; preds = %332, %45
  ret void

334:                                              ; preds = %159, %34
  %.pn = phi { ptr, i32 } [ %160, %159 ], [ %35, %34 ]
  resume { ptr, i32 } %.pn
}

; Function Attrs: nofree nounwind
declare i32 @__cxa_guard_acquire(ptr) local_unnamed_addr #10

; Function Attrs: nofree nounwind
declare void @__cxa_guard_abort(ptr) local_unnamed_addr #10

; Function Attrs: nofree nounwind
declare void @__cxa_guard_release(ptr) local_unnamed_addr #10

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6ImPlotL10HelpMarkerEPKc(ptr noundef) local_unnamed_addr #6

declare noundef zeroext i1 @_ZN5ImGui11BeginTabBarEPKci(ptr noundef, i32 noundef) local_unnamed_addr #5

declare noundef zeroext i1 @_ZN5ImGui12BeginTabItemEPKcPbi(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_i(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare void @_ZN5ImGui10EndTabItemEv() local_unnamed_addr #5

declare void @_ZN5ImGui14LogToClipboardEi(i32 noundef) local_unnamed_addr #5

declare void @_ZN5ImGui8LogToTTYEi(i32 noundef) local_unnamed_addr #5

declare void @_ZN5ImGui7LogTextEPKcz(ptr noundef, ...) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN6ImPlotL11IsColorAutoEi(i32 noundef) local_unnamed_addr #8

declare void @_ZN5ImGui9LogFinishEv() local_unnamed_addr #5

declare void @_ZN5ImGui16SetNextItemWidthEf(float noundef) local_unnamed_addr #5

declare void @_ZN15ImGuiTextFilterC1EPKc(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef) unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN15ImGuiTextFilterD2Ev(ptr noundef nonnull align 8 dereferenceable(276)) unnamed_addr #8 align 2

; Function Attrs: nofree nounwind
declare i32 @__cxa_atexit(ptr, ptr, ptr) local_unnamed_addr #10

declare noundef zeroext i1 @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef, float noundef) local_unnamed_addr #5

declare noundef float @_ZN5ImGui11GetFontSizeEv() local_unnamed_addr #5

declare noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKcS1_(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef, ptr noundef) local_unnamed_addr #5

declare noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare void @_ZN5ImGui12PopItemWidthEv() local_unnamed_addr #5

declare void @_ZN5ImGui10BeginGroupEv() local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN18ImPlotColormapData11SetKeyColorEiij(ptr noundef nonnull align 8 dereferenceable(164), i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #7 align 2

declare void @_ZN5ImGui8EndGroupEv() local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8ImVectorI6ImVec4EC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8ImVectorI6ImVec4ED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorI6ImVec4E9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8ImVectorI6ImVec4E8pop_backEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #8 align 2

declare noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI6ImVec4EixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #8 align 2

declare void @_ZN5ImGui9EndTabBarEv() local_unnamed_addr #5

declare void @_ZN11ImPlotStyleC1Ev(ptr) local_unnamed_addr

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="64" "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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nofree nounwind }
attributes #11 = { nofree nounwind willreturn memory(argmem: read) }
attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #13 = { nounwind }
attributes #14 = { 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++ TBAA"}
!9 = !{!"branch_weights", i32 1, i32 1048575}
!10 = !{!11, !11, i64 0}
!11 = !{!"bool", !7, i64 0}
!12 = !{i8 0, i8 2}
!13 = !{}
!14 = !{i64 0, i64 4, !15, i64 4, i64 4, !17, i64 8, i64 4, !15, i64 12, i64 4, !15, i64 16, i64 4, !15, i64 20, i64 4, !15, i64 24, i64 4, !15, i64 28, i64 4, !15, i64 32, i64 4, !15, i64 36, i64 4, !15, i64 40, i64 4, !15, i64 44, i64 4, !15, i64 48, i64 4, !15, i64 52, i64 4, !15, i64 56, i64 4, !15, i64 60, i64 4, !15, i64 64, i64 4, !15, i64 68, i64 4, !15, i64 72, i64 4, !15, i64 76, i64 4, !15, i64 80, i64 4, !15, i64 84, i64 4, !15, i64 88, i64 4, !15, i64 92, i64 4, !15, i64 96, i64 4, !15, i64 100, i64 4, !15, i64 104, i64 4, !15, i64 108, i64 4, !15, i64 112, i64 4, !15, i64 116, i64 4, !15, i64 120, i64 4, !15, i64 124, i64 4, !15, i64 128, i64 4, !15, i64 132, i64 4, !15, i64 136, i64 4, !15, i64 140, i64 4, !15, i64 144, i64 4, !15, i64 148, i64 4, !15, i64 152, i64 4, !15, i64 156, i64 4, !15, i64 160, i64 4, !15, i64 164, i64 4, !15, i64 168, i64 4, !15, i64 172, i64 336, !19, i64 508, i64 4, !17, i64 512, i64 1, !10, i64 513, i64 1, !10, i64 514, i64 1, !10}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"int", !7, i64 0}
!19 = !{!7, !7, i64 0}
!20 = !{!21, !16, i64 0}
!21 = !{!"_ZTS6ImVec4", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12}
!22 = !{!21, !16, i64 4}
!23 = !{!21, !16, i64 8}
!24 = !{!21, !16, i64 12}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{i64 0, i64 4, !15, i64 4, i64 4, !15, i64 8, i64 4, !15, i64 12, i64 4, !15}
!28 = distinct !{!28, !26}
!29 = !{!30, !18, i64 768}
!30 = !{!"_ZTS13ImPlotContext", !31, i64 0, !35, i64 40, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !37, i64 120, !42, i64 176, !44, i64 216, !11, i64 256, !46, i64 260, !47, i64 776, !48, i64 792, !49, i64 808, !51, i64 976, !53, i64 992, !55, i64 1048, !55, i64 1064, !51, i64 1080, !18, i64 1096, !18, i64 1100, !56, i64 1104, !57, i64 1336, !58, i64 1464, !11, i64 1512, !39, i64 1520, !6, i64 1536, !59, i64 1544, !6, i64 1584, !6, i64 1592}
!31 = !{!"_ZTS6ImPoolI10ImPlotPlotE", !32, i64 0, !33, i64 16, !18, i64 32, !18, i64 36}
!32 = !{!"_ZTS8ImVectorI10ImPlotPlotE", !18, i64 0, !18, i64 4, !6, i64 8}
!33 = !{!"_ZTS12ImGuiStorage", !34, i64 0}
!34 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !18, i64 0, !18, i64 4, !6, i64 8}
!35 = !{!"_ZTS6ImPoolI13ImPlotSubplotE", !36, i64 0, !33, i64 16, !18, i64 32, !18, i64 36}
!36 = !{!"_ZTS8ImVectorI13ImPlotSubplotE", !18, i64 0, !18, i64 4, !6, i64 8}
!37 = !{!"_ZTS12ImPlotTicker", !38, i64 0, !39, i64 16, !41, i64 32, !41, i64 40, !18, i64 48}
!38 = !{!"_ZTS8ImVectorI10ImPlotTickE", !18, i64 0, !18, i64 4, !6, i64 8}
!39 = !{!"_ZTS15ImGuiTextBuffer", !40, i64 0}
!40 = !{!"_ZTS8ImVectorIcE", !18, i64 0, !18, i64 4, !6, i64 8}
!41 = !{!"_ZTS6ImVec2", !16, i64 0, !16, i64 4}
!42 = !{!"_ZTS26ImPlotAnnotationCollection", !43, i64 0, !39, i64 16, !18, i64 32}
!43 = !{!"_ZTS8ImVectorI16ImPlotAnnotationE", !18, i64 0, !18, i64 4, !6, i64 8}
!44 = !{!"_ZTS19ImPlotTagCollection", !45, i64 0, !39, i64 16, !18, i64 32}
!45 = !{!"_ZTS8ImVectorI9ImPlotTagE", !18, i64 0, !18, i64 4, !6, i64 8}
!46 = !{!"_ZTS11ImPlotStyle", !16, i64 0, !18, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !16, i64 40, !41, i64 44, !41, i64 52, !41, i64 60, !41, i64 68, !41, i64 76, !41, i64 84, !41, i64 92, !41, i64 100, !41, i64 108, !41, i64 116, !41, i64 124, !41, i64 132, !41, i64 140, !41, i64 148, !41, i64 156, !41, i64 164, !7, i64 172, !18, i64 508, !11, i64 512, !11, i64 513, !11, i64 514}
!47 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !18, i64 0, !18, i64 4, !6, i64 8}
!48 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !18, i64 0, !18, i64 4, !6, i64 8}
!49 = !{!"_ZTS18ImPlotColormapData", !50, i64 0, !51, i64 16, !51, i64 32, !50, i64 48, !51, i64 64, !51, i64 80, !39, i64 96, !51, i64 112, !52, i64 128, !33, i64 144, !18, i64 160}
!50 = !{!"_ZTS8ImVectorIjE", !18, i64 0, !18, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorIiE", !18, i64 0, !18, i64 4, !6, i64 8}
!52 = !{!"_ZTS8ImVectorIbE", !18, i64 0, !18, i64 4, !6, i64 8}
!53 = !{!"_ZTS2tm", !18, i64 0, !18, i64 4, !18, i64 8, !18, i64 12, !18, i64 16, !18, i64 20, !18, i64 24, !18, i64 28, !18, i64 32, !54, i64 40, !6, i64 48}
!54 = !{!"long", !7, i64 0}
!55 = !{!"_ZTS8ImVectorIdE", !18, i64 0, !18, i64 4, !6, i64 8}
!56 = !{!"_ZTS18ImPlotNextPlotData", !7, i64 0, !7, i64 24, !7, i64 120, !7, i64 126, !7, i64 136, !7, i64 184}
!57 = !{!"_ZTS18ImPlotNextItemData", !7, i64 0, !16, i64 80, !18, i64 84, !16, i64 88, !16, i64 92, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !11, i64 116, !11, i64 117, !11, i64 118, !11, i64 119, !11, i64 120, !11, i64 121, !18, i64 124}
!58 = !{!"_ZTS14ImPlotInputMap", !18, i64 0, !18, i64 4, !18, i64 8, !18, i64 12, !18, i64 16, !18, i64 20, !18, i64 24, !18, i64 28, !18, i64 32, !18, i64 36, !18, i64 40, !16, i64 44}
!59 = !{!"_ZTS6ImPoolI19ImPlotAlignmentDataE", !60, i64 0, !33, i64 16, !18, i64 32, !18, i64 36}
!60 = !{!"_ZTS8ImVectorI19ImPlotAlignmentDataE", !18, i64 0, !18, i64 4, !6, i64 8}
!61 = distinct !{!61, !26}
!62 = !{!30, !18, i64 968}
!63 = distinct !{!63, !26}
!64 = distinct !{!64, !26}
!65 = !{!66, !18, i64 0}
!66 = !{!"_ZTS8ImVectorI6ImVec4E", !18, i64 0, !18, i64 4, !6, i64 8}
!67 = !{!68, !16, i64 76}
!68 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !16, i64 4, !41, i64 8, !16, i64 16, !16, i64 20, !41, i64 24, !41, i64 32, !18, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !41, i64 60, !16, i64 68, !16, i64 72, !41, i64 76, !41, i64 84, !41, i64 92, !41, i64 100, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !18, i64 148, !41, i64 152, !41, i64 160, !16, i64 168, !41, i64 172, !41, i64 180, !41, i64 188, !41, i64 196, !16, i64 204, !11, i64 208, !11, i64 209, !11, i64 210, !16, i64 212, !16, i64 216, !7, i64 220}
!69 = !{!66, !6, i64 8}
!70 = distinct !{!70, !26}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,SROAPass,SimplifyCFGPass,TailCallElimPass